Перейти к содержанию

Администрирование системы хранения#

В этом разделе описывается, как оборудование физического хранилища сопоставляется с виртуальными машинами (ВМ) и программными объектами, используемыми API управления для выполнения задач, связанных с хранилищем. Подробные разделы по каждому из поддерживаемых типов хранения содержат следующую информацию:

  • процедуры создания хранилища для виртуальных машин с помощью интерфейса командной строки с параметрами конфигурации устройств, зависящими от типа хранилища;
  • создание моментальных снимков для целей резервного копирования;
  • рекомендации по управлению хранилищем;
  • настройка параметров QoS для виртуального диска.

Хранилище данных#

Хранилище данных (Storage Repsitory или SR) - это определенный целевой объект хранения, в котором хранятся образы виртуальных дисков виртуальных машин (VDI). VDI является дисковой абстракцией, содержащей контент виртуального диска.

Образы VDI поддерживаются большим количеством различных типов хранилищ.

Хранилища Numa vServer имеют встроенную поддержку дисков, как локальных:

  • IDE;
  • SATA;
  • SCSI;
  • SAS.

Так и удалённых:

  • iSCSI;
  • NFS;
  • CIFS/SMB;
  • SAS;
  • Fibre Channel.

Хранилища данных и абстракции VDI предоставляют поддержку усовершенствованных функций, таких как thin-provisioning (возможность экономичного выделения места для нужд хранения данных, далее по тексту термин даётся в англоязычном варианте либо как «экономичное выделение»), поддержка снимков состояния VDI (snapshots) и быстрого клонирования, которые будут выполняться на поддерживающих их подсистемах хранения. Для подсистем хранения, не поддерживающих эти операции непосредственно, предоставляется программный стек на основе спецификации механизма предоставления виртуального жесткого диска (Virtual Hard Disk, VHD) реализующий эти операции программно.

Каждый сервер может использовать множество хранилищ данных и различные их типы одновременно. Хранилище также может использоваться различными серверами совместно или быть выделенным определенному серверу. Совместно используемая система хранения используется участниками определенного ресурсного пула. Совместно используемое хранилище должно быть доступным по сети для каждого сервера. Все участники пула рекомендуется иметь, по крайней мере, одно совместно используемое хранилище данных.

Хранилища данных не только являются местом хранения образов виртуальных дисков (VDI), но также поддерживают операции для создания, удаления, изменения размеров, клонирования, присоединения и обнаружения содержащихся в них отдельных образов. Хранилища являются постоянной структурой данных на диске. Для типов хранилищ на базе блочных устройств процесс создания нового хранилища подразумевает затирание любых существующих данных в указанном месте хранения.

Образы виртуальных дисков (VDI)#

Образы виртуальных дисков (VDI) являются абстрактными (логическими) объектами хранения, которые предоставляются виртуальным машинам как физические диски. Образ VDI является основной единицей виртуализированного хранения в Numa vServer. Подобно хранилищам данных, образы VDI являются персистентными дисковыми объектами и существуют независимо от серверов. Фактическое дисковое представление данных образа отличается в зависимости от типа хранилища и управляется при помощи отдельного интерфейса программного модуля, называемого SM API (для каждого хранилища отдельно).

Физические блочные устройства (PBD)#

Физические блочные устройства (Physical Block Devices, PBD) представляют собой интерфейс между физическим сервером и присоединённым SR. Физические блочные устройства являются соединительными объектами, которые позволяют сопоставить SR c сервером. PBD хранят поля конфигурации устройства, используются для соединения и взаимодействия с выбранным местом назначения трафика хранения (англ. storage target). Например, конфигурация устройства NFS включает IP-адрес сервера NFS и связанного пути, который хост Numa vServer использует для монтирования диска. Объекты PBD управляют присоединением данного хранилища к данному хосту Numa vServer.

Виртуальные блочные устройства (VBD)#

Виртуальные блочные устройства (VBD), как и PBD, являются связующими объектами, позволяющими задавать соответствие между образами VDI и ВМ.

В дополнение к обеспечению механизма для присоединения (также названного подключением, англ. plugging) VDI в ВМ, VBD позволяет выполнить настройку параметров QoS, статистики и возможности загрузки с данного VDI.

Взаимосвязь объектов хранения#

Взаимосвязь физических, логических и виртуальных элементов системы хранения

Взаимосвязь физических, логических и виртуальных элементов системы хранения

На рисунке выше показано, как связаны объекты хранения.

Форматы виртуальных дисков#

Существуют следующие типы сопоставления физического хранилища с VDI:

  • VHD на базе логического тома на LUN (Logical Unit – логический блок, логическая единица, на которую разбивается контейнер хранилища данных). По умолчанию в Numa vServer систему хранения на базе блочных устройств добавляет менеджер логического тома (англ. Logical Volume Manager, LVM) на диск – либо на локально подключенное устройство (хранилище типа LVM), либо на LUN, присоединённый к SAN по протоколу Fibre Channel (хранилище типа LVMoHBA), iSCSI (хранилище типа LVMoISCSI) или SAS (хранилище типа LVMoHBA). Образы VDI представляются как отдельные тома с менеджерами LVM и хранятся в формате VHD для возможности экономичного выделения памяти (thin provisioning) для связанных узлов при создании снимков и клонировании.
  • VHD на базе файла в файловой системе. Образы ВМ хранятся как файлы формата VHD с возможностью thin-provisioning в локальной (не совместно используемой) файловой системе (хранилища типа EXT), или в совместно используемой NFS (хранилище NFS).

Типы VDI#

В общем случае создаётся VDI формата VHD. Администратор может решить использовать «сырой» («неразмеченный», англ. raw) тип при создании VDI (с помощью xe CLI). Чтобы проверить, был ли VDI создан с type=raw, нужно проверить его map-параметр sm-config. С этой целью могут использоваться, соответственно, команды sr-param-list и vdi-param-list.

Создание не размеченного виртуального диска при помощи интерфейса CLI#

  • выполнить следующую команду для создания VDI, указав UUID хранилища, в которое требуется поместить виртуальный диск:
xe vdi-create sr-uuid=<sr-uuid> type=user virtual-size=<virtual-size> name-label=<VDI_name> sm-config:type=raw
  • присоединить новый виртуальный диск к ВМ и использовать в ней обычные инструменты для создания и форматирования разделов (или использовать новый диск иным образом). Можно использовать команду vbd-create для создания нового VBD для отображения виртуального диска в ВМ.

Преобразование между форматами VDI#

Невозможно сделать прямое преобразование между форматом VHD и raw. Вместо этого можно создать новый VDI (неразмеченный, как описано выше, или VHD), а затем скопировать данные в него из существующего тома. Рекомендуется использовать xe CLI, чтобы быть уверенным, что новый VDI имеет виртуальный размер не меньше копируемого VDI (путем проверки его поля виртуального размера, например, при помощи команды vdi-param-list). Затем можно присоединить этот новый VDI к ВМ и использовать в ней соответствующие инструменты (стандартные инструменты управления дисками в Windows или команда dd в Linux), для создания поблочной копии данных. Если новый том является томом VHD, важно использовать инструмент, который поможет избежать записи пустых секторов на диск – чтобы пространство было использовано в базовом хранилище оптимально – в этом случае основанный на файле подход копирования может подойти больше.

Образы виртуальных дисков на основе VHD#

Файлы VHD могут быть объединены в цепь, позволяя двум образам виртуальных дисков совместно использовать общие данные. В случаях, когда ВМ с VHD клонируется, получающиеся виртуальные машины совместно используют общие дисковые данные во время клонирования. Каждая ВМ продолжает вносить свои собственные изменения в собственную отдельную версию VDI (механизм copy-on-write, CoW). Эта функция позволяет быстро клонировать основанные на VHD ВМ из шаблонов, упрощая и ускоряя настройку и развертывание новых ВМ.

Это приводит к созданию со временем деревьев объединённых в цепь образов VDI, так как ВМ и связанные с ними образы виртуальных дисков клонируются. Когда один из VDI в цепи удаляется, Numa vServer рационализирует другие VDI в ней для удаления ненужных образов. Этот процесс объединения (англ. coalescing) работает асинхронно. Сумма исправленного дискового пространства и время, необходимое для выполнения процесса, зависят от размера VDI и суммы совместно используемых данных. Только один подобный процесс объединения может быть активен в хранилище в каждый момент времени. Поток этого процесса запускается на главном хосте (мастере) хранилища.

Если имеет место критическая работа ВМ мастера пула и медленный случайный ввод-вывод из-за этого процесса, можно предпринять следующие шаги:

  • переместить ВМ на другой хост (миграция);
  • установить дисковый приоритет ввода-вывода в более высокий уровень и скорректировать настройки планировщика (см. раздел Настройки QoS для виртуальных дисков).

Формат VHD, используемый в Numa vServer хранилищами на основе LVM или файлов, использует механизм экономичного выделения места thin-provisioning. Файл образа автоматически расширяется (блоками, по 2 Мбайта), по мере того как ВМ записывает на диск данные. Для VHD на базе файла это имеет значительное преимущество: файлы образов ВМ занимают не больше пространства в физической системе хранения, чем реально требуется для записанных на них данных. В случае VHD, основанного на LVM, объём логического контейнера должен быть изменён до виртуального размера VDI, однако при создании снимка или клона неиспользуемое место на диске CoW-экземпляра исправляется.

Различие между описанными двумя вариантами поведения может быть характеризовано следующим образом:

  • для VHD, основанных на LVM, «разностные» узлы в цепочке используют ровно столько данных, сколько было записано на диск, но узлы-«листья» такой древоподобной структуры (то есть клоны VDI) занимают виртуальный диск полностью. Узлы-«листья», представляющие собой снимки VDI, продолжают занимать минимальное требуемое пространство, когда не используются, и для сохранения своего размера могут быть присоединены в режиме «только для чтения». Когда узлы-снимки присоединяются в режиме «чтение и запись», они будут полностью «растянуты» на всё свободное пространство диска при присоединении и возвращены к реальным размерам при отсоединении;
  • в случае VHD на базе файлов все узлы используют лишь объёмы памяти, соразмерные объёмам записанных данных, и размеры файлов, соответствующих узлам-«листьям», растут в соответствии с темпами активной записи. Если для новой ВМ выделяется VDI на 100 Гбайт, и устанавливается ОС, файл VDI физически будет иметь размер, равный совокупному объёму данных ОС, записанных на диск, плюс небольшие издержки метаданных.

При клонировании ВМ на основе единственного шаблона VHD каждая дочерняя ВМ формирует цепочку, где записаны новые изменения к новой ВМ, а старые блоки считываются непосредственно из родительского шаблона. Если новая ВМ была преобразована в дальнейшем в шаблон и из него появляется ещё больше клонов, получающаяся цепочка приведёт к ухудшению производительности. Numa vServer поддерживает максимальную длину цепочки 30, но обычно не рекомендуется приближаться к этому пределу без серьезных оснований. При наличии сомнений лучше скопировать ВМ, используя команду vm-copy, которая автоматически сбросит длину цепочки в «0».

Форматы хранилищ#

Новые хранилища могут быть созданы через интерфейс CLI командой sr-create. Эта команда создаёт новое хранилище данных на аппаратных средствах хранения (потенциально уничтожая любые уже существующие данные на них) и создает программный объект «хранилище» и соответствующую запись PBD, позволяя виртуальным машинам использовать хранилище. К успешно созданному хранилищу автоматически подключается PBD. Если для хранилища установлен флаг shared=true, запись PBD создаётся и подключается для каждого хоста Numa vServer в пуле.

При создании хранилища для системы хранения с поддержкой протокола IP (англ. IP-based storage) (iSCSI или NFS), можно сконфигурировать под его нужды сетевой адаптер/интерфейс, обрабатывающий управляющий трафик, или новый сетевой адаптер.

Процесс присвоения IP-адреса сетевому интерфейсу (адаптеру) описан в разделе Настройка сетевого интерфейса, выделенного для соединения с хранилищем Все типы хранилищ в Numa vServer поддерживают изменение размеров VDI, быстрое клонирование и снимки состояний. Хранилища на основе LVM (локальные, iSCSI или HBA) обеспечивают thin-provisioning для снимка и скрытых родительских узлов. Другие типы хранилищ имеют полную поддержку thin-provisioning, включая таковую и для активных виртуальных дисков.

Внимание!

Когда VHD VDI не присоединены, например, в случае снимка VDI, они сохраняются по умолчанию с поддержкой thin-provisioning. Из-за этого обязательно необходимо обеспечить для VDI достаточный объём доступного дискового пространства, для превращения его в диск с неэкономичным выделением (thick-provisioning) при попытке присоединить его.

Клоны VDI будут поддерживать thick-provisioning.

Максимальные поддерживаемые размеры VDI описаны в таблице ниже.

Таблица – Поддерживаемые максимальные размеры VDI

Формат хранилища данных Максимальный размер VDI
EXT3 2 Tбайта
LVM 2 Tбайта
NFS 2 Tбайта
LVMoFCOE 2 Tбайта
LVMoiSCSI 2 Tбайта
LVMoHBA 2 Tбайта

Локальный LVM#

Хранилища типа локальный LVM представляют собой диски в локально присоединенной группе томов. По умолчанию Numa vServer использует локальный диск на том физическом хосте, на котором он установлен. Менеджер логического тома (LVM) Linux используется для управления хранением ВМ. Образы VDI представляются в формате VHD на логическом томе LVM указанного размера.

Особенности работы с LVM#

Реализованные в Numa vServer возможности создания снимков состояния и быстрого клонирования для основанных на LVM хранилищ влекут соответствующие потери производительности. В случаях, где важна оптимальная производительность, Numa vServer поддерживает создание из образов VDI в не размеченном (raw) формате в дополнение к формату VHD по умолчанию. Функциональность снимка Numa vServer не поддерживается на необработанных образах VDI.

Примечание

Нетранспортабельные снимки, использующие по умолчанию провайдер Windows VSS, будут работать с любым типом из VDI.

Предупреждение

Не следует делать снимок ВМ, имеющей присоединенные диски с типом type=raw. Это может привести к созданию частичного снимка. Можно идентифицировать такой снимок образа VDI путём проверки поля snapshot-of и затем удалить его.

Создание локального хранилища на основе LVM#

Хранилище на основе LVM создаётся по умолчанию при установке хоста.

Для создания локального хранилища LVM на /dev/sdb используется следующая команда:

xe sr-create host-uuid=<valid_uuid> content-type=user name-label=<Example Local LVM SR> shared=false device-config:device=/dev/sdb type=lvm

Локальный EXT3#

Использование EXT3 включает экономичное выделение места (thin-provisioning) на локальных хранилищах. Однако типом хранилища по умолчанию является LVM, обеспечивающий непротиворечивую производительность записи и предотвращающий переполнение хранения (англ. overcommitting). Клиенты, использующие EXT3, могут заметить уменьшение производительности:

  • при выполнении операций жизненного цикла ВМ (создание, приостановка и возобновление ВМ);
  • создание больших файлов в файловой системе ВМ.

Локальное хранилище на основе EXT должно быть сконфигурировано с помощью интерфейса CLI.

Создание локального хранилища на основе EXT3 (ext)#

Для создания локального хранилища EXT3 на /dev/sdb используется следующая команда:

xe sr-create host-uuid=<valid_uuid> content-type=user name-label=<Example Local EXT3 SR> shared=false device-config:device=/dev/sdb type=ext

Udev#

Тип udev подразумевает устройства, подключенные как образы VDI при помощи диспетчера устройств udev.

Numa vServer имеет два хранилища типа udev, которые представляют собой съемные устройства хранения: первое используется для CD- или DVD-диска в физическом приводе CD-ROM или DVD-ROM хоста Numa vServer, второе – для USB-устройства, подключенного к порту USB Numa vServer. Образы VDI, соответствующие этим носителям, подключаются и отключаются в соответствии с установкой и отсоединением CD-дисков и USB накопителей.

ISO#

Тип ISO относится к образам CD-дисков, сохраненным в виде файлов в формате ISO. Этот тип хранилищ полезен для создания совместно используемых библиотек ISO.

Для хранилищ, хранящих библиотеку образов ISO, параметр content-type (тип контента) должен быть установлен в значение ISO.

Например:

xe sr-create host-uuid=<valid_uuid> content-type=iso type=iso name-label=<Example ISO SR> device-config:location=<nfs server:path>

Рекомендуется использовать SMB версии 3.0 для монтирования ISO SR на файловом сервере Windows. Версия 3.0 выбрана по умолчанию, потому что она более безопасна и надежна, чем SMB версии 1.0. Однако можно смонтировать ISO SR, используя SMB версии 1.0, используя следующую команду:

xe sr-create content-type=iso type=iso shared=true device-config:location=<valid location> device-config:username=<username> device-config:cifspassword=<password> device-config:type=cifs device-config:vers=<Choose either 1.0 or 3.0> name-label=<Example ISO SR>

Программная поддержка iSCSI#

Numa vServer предоставляет поддержку для совместно используемых хранилищ на iSCSI LUN. Поддержка реализуется при помощи iSCSI-инициатора «Open-iSCSI» (программное обеспечение) или при помощи поддерживаемого адаптера шины хоста (англ. Host Bus Adapter, HBA) iSCSI. Шаги, которые необходимо выполнить для использования HBA iSCSI, идентичны описанным для адаптеров Fibre Channel HBA (см. раздел Удаление записей устройств SAS, FC или iSCSI основанных на HBA).

Поддержка совместного использования iSCSI при помощи программного обеспечения инициатора iSCSI реализована на основе Менеджера томов Linux (LVM) и обеспечивает тот же выигрыш в производительности, что и использование образов VDI на LVM в случае локальных дисков. Совместное использование хранилищ iSCSI, основанное на программном обеспечении инициатора хоста, допускает использование миграции ВМ: ВМ могут быть запущены на любых серверах пула и перемещаться между ними без существенной потери времени.

Хранилища iSCSI полностью используют LUN, определённый в процессе создании хранилища, и не могут охватывать более одного LUN. Поддержка CHAP предоставляется для аутентификации клиента – как во время инициализации информационного канала, так и во время фаз открытия LUN (LUN discovery phases).

Примечание

Размер блока iSCSI LUN должен составлять 512 байт

Настройка iSCSI для хостов Numa vServer#

Для однозначного определения в сети у всех инициаторов iSCSI и мест назначения трафика хранения («целей») должны быть уникальные имена. Инициатор имеет адрес инициатора iSCSI, и цель имеет целевой адрес iSCSI. В совокупности они дают так называемые iSCSI Qualified Names, IQN («уточнённые имена iSCSI»).

Хосты Numa vServer поддерживают наличие единственного инициатора iSCSI, автоматически создаваемого и конфигурирующегося со случайным IQN при установке хоста. Один инициатор может использоваться для соединения с несколькими целевыми iSCSI одновременно.

Целевые iSCSI обычно обеспечивают управление доступом с помощью списков IQN инициатора iSCSI таким образом, что все целевые iSCSI/LUN для возможности получения доступа к ним со стороны хоста Numa vServer должны быть сконфигурированы для предоставления доступа на основе IQN инициатора хоста. Точно так же целевые LUN, которые планируются использовать в качестве совместно используемых iSCSI-хранилищ, должны быть сконфигурированы для предоставления доступа для IQN всех хостов пула.

Примечание

Целевые объекты iSCSI, которые не обеспечивают управление доступом, обычно по умолчанию ограничивают доступ LUN одним инициатором для обеспечения целостности данных. Если iSCSI LUN используется в качестве общего SR на нескольких серверах в пуле, убедитесь, что для указанного LUN включен доступ с несколькими инициаторами

Значение IQN хоста Numa vServer может быть скорректировано следующей командой при использовании программного инициатора iSCSI:

xe host-param-set uuid=<valid_host_id> other-сonfig:iscsi_iqn=<new_initiator_iqn>

Внимание!

Обязательно, чтобы у каждой цели iSCSI и инициатора было уникальное IQN. Если используется групповой идентификатор IQN, могут произойти повреждения данных или отказ доступа к LUN.

Не следует изменять IQN хоста Numa vServer, имеющего хранилища, присоединенные по iSCSI. Такое изменение может привести к отказам соединения с новыми местами назначения (targets) или существующими хранилищами.

Программное хранилище FCoE#

Программное обеспечение FCoE предоставляет стандартную структуру, к которой поставщики оборудования могут подключить свои сетевые адаптеры с поддержкой FCoE и получить те же преимущества, что и аппаратный FCoE. Эта функция исключает необходимость использования дорогих адаптеров HBA.

Перед созданием программного хранилища FCoE вручную выполните настройку, необходимую для предоставления LUN хосту. Эта конфигурация включает в себя настройку структуры FCoE и выделение LUN для общедоступного имени вашей сети SAN (PWWN). После завершения этой конфигурации доступный LUN подключается к CNA хоста как устройство SCSI. Устройство SCSI может затем использоваться для доступа к LUN, как если бы оно было локально подключенным устройством SCSI. Для получения информации о настройке физического коммутатора и массива для поддержки FCoE см. документацию, предоставленную поставщиком.

Примечание

Программное обеспечение FCoE может использоваться с Open vSwitch и Linux bridge в качестве серверной сети

Настройка программного хранилища FCoE#

Перед созданием программного хранилища FCoE необходимо убедиться, что к хосту подключены сетевые карты с поддержкой FCoE.

Команда для создания программного хранилища FCoE:

xe sr-create type=lvmofcoe name-label="FCoE SR" shared=true device-config:SCSIid=<SCSI_id>

Аппаратные контроллеры шин хоста (Hardware HBA)#

Этот подраздел описывает различные операции, требуемые для управления аппаратными контроллерами шин SAS, Fibre Channel и iSCSI хостов Numa vServer.

Пример настройки QLogic iSCSI HBA#

Полное руководство по конфигурированию HBA для Fibre Channel QLogic и iSCSI см. на официальном веб-сайт QLogic.

Как только HBA физически установлен на хосте Numa vServer, возможно использовать следующие шаги для конфигурирования HBA:

  • настроить сетевую конфигурацию протокола IP для HBA. В этом примере предполагается использовать порт 0 (port 0) для DHCP и HBA. Необходимо определить надлежащие значения для использования статической IP-адресации или многопортового HBA.
  • добавить постоянную iSCSI-цель для порта 0 HBA.
  • использовать команду xe sr-probe для запуска повторного сканирования контроллера HBA и вывода на экран списка доступных LUN.
Удаление записей устройств SAS, FC или iSCSI основанных на HBA#

Примечание

Данный шаг не является обязательным и должен выполняться лишь опытными администраторами при возникновении такой необходимости

Каждому основанному на HBA LUN соответствует запись, содержащая глобальный путь к устройству /dev/disk/by-scsibus в формате <SCSIid>-<adapter>:<bus>:<target>:<lun> и стандартный путь к устройству в /dev. Для демонтирования записи о LUN, который больше не планируется использовать в качестве хранилища, следует выполнить следующие действия:

  • использовать sr-forget или sr-destroy для хранилищ, которые требуется удалить из базы данных хоста Numa vServer (см. раздел Удаление хранилища);
  • удалите конфигурацию зонирования в пределах SAN для требуемого LUN на хостах;
  • использовать команду sr-probe для определения значений ADAPTER, BUS, TARGET и LUN, соответствующих удаляемому LUN;
  • удалить записи устройства следующей командой:
echo "1" > /sys/class/scsi_device/<adapter>:<bus>:<target>:<lun>/device/delete

Предупреждение

Необходимо убедиться, какой именно LUN удалять. Случайное удаление LUN, необходимого для работы хоста, такого как загрузочное или корневое устройство, делает хост непригодным для использования.

Совместно используемое хранилище типа LVM#

Совместно используемый тип LVM представляет диски как логические тома в группе томов, созданной в LUN на основе iSCSI (FC или SAS).

Примечание

Размер блока iSCSI LUN должен составлять 512 байт

Создание совместно используемого LVM поверх хранилища iSCSI с использованием программного инициатора iSCSI (lvmoiscsi)#

Таблица – Параметры конфигурации устройства для хранилищ lvmoiscsi

Имя параметра Описание Обязательность
target IP-адрес или имя хоста iSCSI-файлера (iSCSI-filer), на котором расположено хранилище Да
targetIQN IQN-target-адрес iSCSI-файлера, на котором расположено хранилище Да
SCSIid Идентификатор шины SCSI целевого LUN Да
chapuser Имя пользователя, которое будет использоваться для аутентификации CHAP Нет
chappassword Пароль, который будет использоваться для аутентификации CHAP Нет
port Номер сетевого порта, на который посылается запроса к целевому хранилищу Нет
usediscoverynumber Определенный индекс записи iSCSI для использования Нет
incoming_chapuser Имя пользователя, которое фильтр iSCSI будет использовать для аутентификации на хосте Нет
incoming_chappassword Пароль, который фильтр iSCSI будет использовать для аутентификации на хосте Нет

Для создания совместно используемого хранилища типа lvmoiscsi на определенном LUN iSCSI используют следующую команду:

xe sr-create host-uuid=<valid_uuid> content-type=user name-label=<"Example shared LVM over iSCSI SR"> shared=true device-config:target=<target_ip=> device-config:targetIQN=<target_iqn> device-config:SCSIid=<scsi_id> type=lvmoiscsi
Создание совместно используемого LVM поверх хранилища на базе Fibre Channel/Fibre Channel over Ethernet/iSCSI HBA или SAS (lvmohba)#

Хранилища типа lvmohba создаются и управляются через интерфейс CLI.

Для создания совместно используемого хранилища lvmohba необходимо выполнить следующие шаги на каждом хосте пула:

  • внести в зону один или более LUN каждому хосту Numa vServer пула. Детали процесса зависят от используемого оборудования SAN;
  • использовать команду sr-probe для определения глобального пути устройства LUN HBA. Команда sr-probe осуществляет пересканирование установленных HBA в системе для обнаружения любых новых LUN, призонированных к хосту, и возвращает список свойств для каждого найденного LUN. Следует определить параметр host-uuid, чтобы убедиться, что пересканирование происходит на требуемом хосте.

Глобальный путь устройства, возвращённый в свойстве <path>, будет годен для всех хостов пула и поэтому должен использоваться в качестве значения для параметра device-config:device при создании хранилища. Если присутствует несколько LUN, используют имя поставщика, размер LUN, порядковый номер LUN или идентификатор SCSI для включения в состав <path> для однозначной идентификации требуемого LUN:

xe sr-probe type=lvmohba host-uuid=<host-uuid>
xe sr-probe type=lvmohba host-uuid=1212c7b3-f333-4a8d-a6fb-80c5b79b5b31

    Error code: SR_BACKEND_FAILURE_90
    Error parameters: , The request is missing the device parameter, \
    <?xml version="1.0" ?>
    <Devlist>
        <BlockDevice>
            <path>
                /dev/disk/by-id/scsi-360a9800068666949673446387665336f
            </path>
            <vendor>
                HITACHI
            </vendor>
            <serial>
                730157980002
            </serial>
            <size>
                80530636800
            </size>
            <adapter>
                4
            </adapter>
            <channel>
                0
            </channel>
            <id>
                4
            </id>
            <lun>
                2
            </lun>
            <hba>
                qla2xxx
            </hba>
        </BlockDevice>
        <Adapter>
            <host>
                Host4
            </host>
            <name>
                qla2xxx
            </name>
            <manufacturer>
                QLogic HBA Driver
            </manufacturer>
            <id>
                4
            </id>
        </Adapter>
    </Devlist>
  • на основном хосте пула создать хранилище, задав глобальный путь устройства в соответствии с путём, возвращённым в свойстве <path> в качестве результата команды sr-probe. PBD будут созданы и включены для каждого хоста в пуле автоматически:
xe sr-create host-uuid=<valid_uuid> content-type=user name-label=<"Example shared LVM over HBA SR"> shared=true device-config:SCSIid=<device_scsi_id> type=lvmohba

NFS и SMB#

Общие ресурсы на серверах NFS (которые поддерживают NFSv4 или NFSv3) или на серверах SMB (которые поддерживают SMB 3.0) можно сразу использовать в качестве SR для виртуальных дисков. VDI хранятся только в формате Microsoft VHD. Кроме того, поскольку эти SR могут совместно использоваться, VDI, хранящиеся в совместно используемых SR, позволяют:

  • запускать виртуальные машины на любых серверах Numa vServer в пуле ресурсов;
  • использовать миграцию виртуальных машин между серверами Numa vServer в пуле ресурсов с использованием динамической миграции (без заметных простоев)

Примечание

Поддержка SMB 3.0 ограничивается возможностью подключения к общему ресурсу по протоколу 3.0. Дополнительные функции, такие как прозрачная отработка отказа, зависят от доступности функций в вышестоящем ядре Linux и не поддерживаются в Numa vServer

Примечание

Для NFSv4 поддерживается только AUTH_SYS тип аутентификации

VDI, хранимые на файловых SR, имеют thin-provisioning (экономичное выделение места хранения). Дисковое пространство для файла образа выделяется, когда виртуальная машина записывает данные на диск. Этот подход имеет значительное преимущество в том, что файлы образов виртуальных машин занимают столько места в хранилище, сколько требуется. Например, если VDI 100 Гбайт выделен для виртуальной машины и установлена ОС, файл VDI отражает только размер данных ОС, записанных на диск, а не все 100 Гбайт.

Файлы VHD также могут быть объединены в цепочку, что позволяет двум VDI обмениваться общими данными. В случаях, когда файловая виртуальная машина клонирована, полученные виртуальные машины совместно используют общие данные на диске во время клонирования. Каждая виртуальная машина продолжает вносить свои собственные изменения в изолированную версию VDI с копированием при записи. Эта функция позволяет быстро клонировать виртуальные машины на основе файлов из шаблонов, обеспечивая очень быструю подготовку и развертывание новых виртуальных машин.

Примечание

Максимальная поддерживаемая длина цепочек VHD равняется 30.

Реализации SR и VHD на основе файлов в Numa vServer предполагают, что они имеют полный контроль над каталогом SR на файловом сервере. Администраторы не должны изменять содержимое каталога SR, так как это может привести к повреждению содержимого VDI.

Примечание

Поскольку VDI на файловых SR создаются с thin-provisioning, администраторы должны убедиться, что на файловых SR достаточно дискового пространства для всех необходимых VDI. Сервер Numa vServer не проверяет наличие пространства, необходимого для VDI на файловых SR.

Настройка общего хранилища NFS#

Чтобы создать NFS SR, необходимо указать имя хоста или IP-адрес сервера NFS. Можно создать SR на любом допустимом пути назначения, используя команду sr-probe для отображения списка допустимых путей назначения, экспортируемых сервером.

В тех случаях, когда Numa vServer используется с хранилищем нижнего уровня, он осторожно ожидает подтверждения всех записей перед передачей подтверждений на виртуальные машины. Этот подход требует заметных затрат производительности и может быть решен путем установки хранилища для представления точки монтирования SR как экспорта в асинхронном режиме. Записи асинхронного экспорта подтверждают, что на самом деле их нет на диске.

Внимание!

Сервер NFS должен быть настроен на экспорт указанного пути на всех серверах в пуле. Если эта конфигурация не выполнена, создание SR и подключение PBD завершится неудачей.

В реализации Numa vServer NFS по умолчанию используется TCP. Если ситуация позволяет, можно настроить реализацию на использование UDP в сценариях, где может быть выигрыш в производительности. Для этого при создании SR необходимо указать параметр device-config:useUDP=true.

Для создания совместно используемого хранилища NFS на 192.168.1.10:/export1 можно использовать следующую команду:

xe sr-create content-type=user name-label="shared NFS SR" shared=true device-config:server=192.168.1.10 device-config:serverpath=/export1 type=nfs nfsversion=<"3", "4">

Для создания NFS SR без общего доступа необходимо выполнить следующую команду:

xe sr-create host-uuid=host_uuid content-type=user name-label="Non-shared NFS SR" device-config:server=192.168.1.10 device-config:serverpath=/export1 type=nfs nfsversion=<"3", "4">
Настройка общего хранилища SMB#

Чтобы создать SR SMB, необходимо указать имя хоста или IP-адрес сервера SMB, полный путь экспортируемого общего ресурса и соответствующие учетные данные.

Например, чтобы создать общий SR SMB 192.168.1.10:/share1, используется следующая команда:

xe sr-create content-type=user name-label="Example shared SMB SR" shared=true device-config:server=//192.168.1.10/share1 device-config:username=<valid_username> device-config:password=<valid_password> type=smb

Чтобы создать не общий SR SMB, используется следующая команда:

xe sr-create host-uuid=host_uuid content-type=user name-label="Non-shared SMB SR" device-config:server=//192.168.1.10/share1 device-config:username=<valid_username> device-config:password=<valid_password> type=smb

LVM поверх аппаратных HBA#

Хранилища типа LVM поверх аппаратных HBA представляют диски как устройства VHD на логических томах (logical volumes) в созданной группе томов на обеспечении LUN HBA, например, основанном на аппаратных средствах iSCSI или поддержке FC.

Хосты Numa vServer поддерживают SAN (storage area networks) на Fibre Channel (FC) через адаптеры HBA от Emulex или QLogic. Все настройки FC, необходимые для предоставления LUN FC хосту, должны быть выполнены вручную, включая устройства хранения, сетевые устройства и адаптеры HBA на хосте. Как только вся конфигурация FC будет настроена, HBA представит хосту устройство SCSI, работающее «поверх» FC LUN. Устройство SCSI можно будет использовать для получения доступа к FC LUN так, будто это локально присоединённое устройство SCSI.

Для вывода списка поддерживаемых в настоящий момент на хосте устройств SCSI на основе LUN следует использовать команду sr-probe. Эта команда вызывает сканирование для новых подобных устройств SCSI. Значение пути, возвращаемое sr-probe для устройств SCSI, пригодно для всех хостов с доступом к LUN и потому должно указываться при создании совместно используемого хранилища в пуле.

Те же функции применимы к iSCSI HBA от QLogic.

См. раздел Создание хранилищ для получения дополнительной информации о создании совместно использования.

Внимание

Numa vServer для Fibre Channel не поддерживает прямое сопоставление LUN с виртуальной машиной. LUN на основе HBA должны быть сопоставлены с хостом и указаны для использования в SR. VDI в SR выставляются виртуальным машинам как стандартные блочные устройства.

Numa vServer для Fibre Channel не поддерживает прямое сопоставление LUN с виртуальной машиной. LUN на основе HBA должны быть сопоставлены с хостом и указаны для использования в SR. VDI в SR выставляются виртуальным машинам как стандартные блочные устройства.

Создание и настройка хранилищ данных#

В этом разделе описываются процессы создания хранилищ различных типов и предоставления доступа к ним хостам Numa vServer. Примеры показывают, как сделать это с использованием интерфейса командной строки.

Создание хранилищ#

В этом разделе объясняется, как создать хранилища (SR) разных типов и сделать их доступными для сервера Numa vServer. Приведенные примеры охватывают создание SR с помощью xe CLI.

Создание нового хранилища данных для использования на хосте Numa vServer включает два основных шага, выполняемых с помощью CLI:

  • сканирование хранилищ для определения значений любых требуемых параметров;
  • создание хранилища. Для инициализации объектов хранилища и связанных объектов PBD следует включить PBD и активировать хранилище.

Эти шаги отличаются в зависимости от типа создаваемого хранилища, в случае успеха команда sr-create возвращает UUID созданного хранилища.

Когда хранилища долго не используются, они могут также быть удалены, чтобы освободить физическое устройство, или «деактивированы» (forgotten) для отсоединения хранилища от одного хоста Numa vServer и присоединения к другому (см.раздел Удаление хранилища).

Сканирование хранилища#

Команда sr-probe может использоваться двумя способами:

  • нахождение значений неизвестных параметров для использования в создании хранилища;
  • возвращение списка уже существующих хранилищ.

В обоих случаях sr-probe работает путём определения типа хранилища и одного или нескольких параметров device-config для этого типа хранилищ. Когда набор параметров неполный, sr-probe сообщает об ошибке (сообщает о том, что указанные параметры отсутствуют, а также предлагает возможные варианты значений для недостающих параметров). Когда предоставлен полный набор параметров, команда возвращает список существующих хранилищ. Весь вывод sr-probe возвращается в виде XML.

Например, для сканирования определённого места назначения трафика хранения (т.н. «цель») на базе iSCSI следует указать его имя или IP-адрес. В результате сканирования будет возвращён набор IQN, доступных на «цели»:

xe sr-probe type=lvmoiscsi device-config:target=<target-ip>
xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10

    Error code: SR_BACKEND_FAILURE_96
    Error parameters: , The request is missing or has an incorrect target IQN parameter, \
    <?xml version="1.0" ?>
    <iscsi-target-iqns>
        <TGT>
            <Index>
                0
            </Index>
            <IPAddress>
                192.168.1.10
            </IPAddress>
            <TargetIQN>
                iqn.192.168.1.10:filer1
            </TargetIQN>
        </TGT>
    </iscsi-target-iqns>

При повторном сканировании цели с заданием как имени/IP-адреса, так и требуемого IQN будет возвращён набор идентификаторов SCSI (точнее, LUN), доступных на target/IQN.

xe sr-probe type=lvmoiscsi device-config:target=<target-ip> device-config:targetIQN=iqn.<target-ip>:filer1
xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 device-config:targetIQN=iqn.192.168.1.10:filer1
    Error code: SR_BACKEND_FAILURE_107
    Error parameters: , The SCSIid parameter is missing or incorrect, \
    <?xml version="1.0" ?>
    <iscsi-target>
        <LUN>
            <vendor>
                IET
            </vendor>
            <LUNid>
                0
            </LUNid>
            <size>
                42949672960
            </size>
            <SCSIid>
                149455400000000000000000002000000b70200000f000000
            </SCSIid>
        </LUN>
    </iscsi-target>

Повторное сканирование цели с предоставлением всех трёх параметров возвращает список хранилищ, существующих на LUN (если таковые имеются).

1
2
3
xe sr-probe type=lvmoiscsi device-config:target=<target-ip>  \
    device-config:targetIQN=<target-ip>:filer1 \
    device-config:SCSIid=<SCSIid>
xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10  \
    device-config:targetIQN=192.168.1.10:filer1 \
    device-config:SCSIid=149455400000000000000000002000000b70200000f000000

    <?xml version="1.0" ?>
    <SRlist>
        <SR>
            <UUID>
                3f6e1ebd-8687-0315-f9d3-b02ab3adc4a6
            </UUID>
            <Devlist>
                /dev/disk/by-id/scsi-149455400000000000000000002000000b70200000f000000
            </Devlist>
        </SR>
    </SRlist>

Таблица ниже содержит парамтеры для каждого типа хранилищ с указанием, какие из параметров сканируются.

Таблица – Параметры хранилищ

Тип хранилища Параметр конфигурации устройства, в порядке зависимости Может ли быть сканирован Требуется ли для sr-create
lvmoiscsi target Нет Да
Chapuser Нет Нет
chappassword Нет Нет
targetIQN Да Да
SCSIid Да Да
lvmohba SCSIid Да Да
NetApp Target Нет Да
Username Нет Да
Password Нет Да
Chapuser Нет Нет
chappassword Нет Нет
Aggregate Нет* Да
FlexVols Нет Нет
Allocation Нет Нет
Asis Нет Нет
nfs Server Нет Да
serverpath Да Да
lvm Device Нет Да
ext Device Нет Да
EqualLogic target Нет Да
username Нет Да
password Нет Да
chapuser Нет Нет
chappassword Нет Нет
storagepool Нет** Да

Примечание

* – сканирование Aggregate возможно только во время выполнения sr-create. Должно быть сделано так, чтобы aggregate мог быть определен в точке, в которой было создано хранилище.
** – сканирование пула хранилища возможно только во время sr-create. Должно быть сделано так, чтобы агрегат мог быть определен в точке, в которой было создано хранилище.

Удаление хранилища#

Хранилище можно удалить различными способами:

  • отсоединить: разрывает связь между хранилищем и хостом (отключение PBD). SR (и его VDI) становятся недоступными. Содержимое VDI и метаинформация, используемая виртуальными машинами для доступа к VDI, сохраняются. Отсоединение можно использовать, когда необходимо временно отключить SR, например, для обслуживания. Отдельный SR может быть позже присоединен.
  • забыть: сохраняет содержимое SR на физическом диске, но информация, которая подключает виртуальную машину к ее VDI, навсегда удаляется. Например, позволяет повторно подключить SR к другому серверу Numa vServer, не удаляя содержимое SR.
  • уничтожить: полностью удаляет содержимое с физического диска и все упоминания о SR.

Для того что бы уничтожить или забыть PBD подключенный к SR, он должен быть отключен от хоста.

  • отсоединить PBD для разрыва связи SR с сервером Numa vServer:
xe pbd-unplug uuid=<pbd_uuid>
  • уничтожить хранилище, PBD и записи в базе данных:
xe sr-destroy uuid=<sr_uuid>
  • забыть хранилище, что удалит PBD и записи в базе данных, но оставит содержимое SR на физическом носителе без изменений:
xe sr-forget uuid=<sr_uuid>

Примечание

Удаление программного объекта, соответствующего хранилищу, может занять некоторое время, пока «сборщик мусора» не удалит его.

Повторный ввод хранилища в работу#

Чтобы повторно ввести в работу хранилище, которое ранее было деактивировано («забыто»), необходимо выполнить специальную команду sr-introduce, создать PBD и вручную подключить PBD к надлежащему Numa vServer для активации хранилища.

Следующий пример описывает порядок действий для повторного ввода в работу хранилища типа lvmoiscsi:

  1. просканировать (probe) существующее хранилище для определения его UUID:
    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 device-config:targetIQN=192.168.1.10:filer1 device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    
  2. выполнить sr-introduce для хранилища, UUID которого возвращен командой sr-probe на первом шаге (команда возвратит UUID нового хранилища):
    xe sr-introduce content-type=user name-label=<Example Shared LVM over iSCSI SR> shared=true uuid=<valid_sr_uuid> type=lvmoiscsi
    
  3. создать для данного хранилища новый PBD (команда возвратит UUID нового PBD):
    xe pbd-create type=lvmoiscsi host-uuid=<valid_uuid> sr-uuid=<valid_sr_uuid> device-config:target=<192.168.0.1> device-config:targetIQN=<192.168.1.10:filer1> device-config:SCSIid=<149455400000000000000000002000000b70200000f000000>
    
  4. подключить PBD для присоединения к хранилищу:
    xe pbd-plug uuid=<pbd_uuid>
    
  5. проверить статус подключения PBD. Если подключение успешно, то свойство currently-attached будет равно true («истина»):
    xe pbd-list sr-uuid=<sr_uuid>
    

Примечание

Шаги 3–5 должны быть выполнены для каждого хоста в пуле

Расширение LUN#

Чтобы увеличить размер LUN, выделенного для сервера Numa vServer необходимо:

  • увеличить размер LUN в хранилище;
  • на Numa vServer выполнить команду:
xe sr-scan sr-uuid=<sr_uuid>

Эта команда повторно сканирует SR, что позволяет дополнить его ёмкость.

Предупреждение

Уменьшение размера LUN в массиве хранения может привести к потере данных

«Живая» миграция VDI#

«Живая» миграция (англ. live migration) VDI позволяет администратору перемещать VDI виртуальных машин без выключения ВМ. Это делает доступными администратору такие операции:

  • перемещение ВМ из низкоскоростных хранилищ в более быстрые, отказоустойчивые, основанные на массиве (array-backed) хранилища;
  • перемещение ВМ из среды разработки в среду готового продукта;
  • перемещение между уровнями системы хранения (storage tiers), когда ВМ ограничивается объёмом хранилища;
  • выполнение обновлений массива хранения.
Ограничения и предостережения#

«Живая» миграция VDI подвергается следующим ограничениям:

  • на целевом хранилище должно быть доступно достаточное дисковое пространство;
  • образы VDI, имеющие более одного снимка, не могут быть перемещены.

«Холодная» миграция образов VDI между хранилищами (offline-миграция)#

VDI, связанные с виртуальной машиной, могут быть скопированы с одного SR на другой для соответствия требованиям обслуживания или многоуровневой конфигурации хранилища.

Копирование отдельных образов виртуальных дисков на выбранное хранилище#

Интерфейс командной строки позволяет копировать отдельные образы виртуальных дисков между хранилищами следующим образом:

  • завершить работу ВМ;
  • использовать соответствующую команду CLI для идентификации UUID образов VDI, которые предполагается переместить. Если ВМ имеет DVD-привод, то его параметр vdi-uuid будет выведен как <not in database> и может быть проигнорирован:
xe vbd-list vm-uuid=<valid_vm_uuid>

Внимание!

Команда vbd-list выводит на экран идентификаторы UUID VBD и VDI. Последние обязательно следует записать.

  • для каждого требуемого VDI выполнить команду vbd-destroy;

Предупреждение

При использовании команды vbd-destroy для отсоединения VDI, заданных идентификаторами UUID, обязательно нужно убедиться, что параметр VBD other-config:owner установлен в значение true. Если это так, следует установить его в значение false, поскольку команда vbd-destroy с параметром other-config:owner=true уничтожит также связанный с VBD образ VDI.

  • скопировать каждый из образов VDI ВМ командой vdi-copy для перемещения их в требуемое хранилище:
xe vdi-copy uuid=<valid_vdi_uuid> sr-uuid=<valid_sr_uuid>
  • использовать команду vbd-create, указав в ней образы VDI из нового хранилища;
  • удалить исходные образы:
vdi-destroy uuid=<uuid_of_vdi>

Преобразование локальных хранилищ на основе Fibre Channel в совместно используемое хранилище#

Для подобного преобразования следует выполнить приведённую ниже последовательность действий:

  • обеспечить, чтобы всем хостам в пуле зонировали LUN хранилища (см. раздел Сканирование хранилища для получения подробностей по использованию команды sr-probe для проверки LUN, имеющихся на хосте).
  • преобразовать хранилище в совместно используемое:
xe sr-param-set shared=true uuid=<local_fc_sr>

Автоматическое исправление пространства при удалении снимков состояния#

При удалении моментальных снимков с Numa vServer автоматически исправляется всё выделенное место в хранилищах, основанных на LVM, перезагрузка ВМ не требуется (так называемая функция Online Coalesce).

Примечание

Функция Online Coalesce применима только к хранилищам на основе LVM (LVM, LVMoISCSI и LVMoHBA) и не применима к хранилищам EXT или NFS, поведение которых остаётся неизменным

Рекомендуется использовать инструмент Off-Line Coalesce в следующих случаях:

  • в условиях значительных объёмов ввода-вывода ВМ;
  • когда пространство не остаётся неисправленным даже после истечения некоторого промежутка времени после удаления снимка.

Примечание

Использование инструмента Off Line Coalesce ведёт к некоторому простою виртуальной машины вследствие выполнения операций приостановки и возобновления

Прежде чем прибегнуть к этому инструменту, необходимо удалить любые снимки и клоны, которые больше не требуются; сценарий исправит как можно больше пространства. Если необходимо исправить всё пространство, следует удалить все снимки и клоны.

Все диски ВМ должны располагаться в общем или локальном хранилище единственного хоста. ВМ с дисками в хранилищах двух этих типов не могут быть объединены.

Исправление пространства при помощи инструмента Off Line Coalesce#

Примечание

Функция Online Coalesce применима только к хранилищам, основанным на LVM (LVM, LVMoISCSI и LVMoHBA) и не применима к хранилищам на основе EXT или NFS, поведение которых остается неизменным

  • открыть консоль на хосте и выполнить следующую команду:
xe host-call-plugin host-uuid=<host-uuid> plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=<VM-uuid>

Например, если UUID ВМ – «9bad4022-2c2d-dee6-abf5-1b6195b1dad5», а идентификатор UUID хоста – «b8722062-de95-4d95-9baa-a5fe343898ea», необходимо выполнить следующую команду:

xe host-call-plugin host-uuid=b8722062-de95-4d95-9baa-a5fe343898ea plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=9bad4022-2c2d-dee6-abf5-1b6195b1dad5
  • данная команда приостанавливает ВМ (если она ещё не выключена), инициирует процесс восстановления пространства и затем возобновляет ВМ.

Примечание

Перед использованием Off Line Coalesce рекомендуется завершить работу или приостановить ВМ вручную посредством CLI. При применении инструмента Coalesce к работающей ВМ она будет автоматически приостанавлена и возобновлена после выполнения требуемых VDI Coalesce действий (по объединению).

Если образы VDI, которые предполагается объединить, находятся на совместно используемом хранилище, необходимо выполнить операцию Off Line Coalesce на хосте, являющемся мастером пула.

Если образы виртуальных дисков, которые предполагается объединить, хранятся локально, необходимо выполнить операцию Off Line Coalesce на сервере, к которому присоединено локальное хранилище.

Настройка планировщика дискового ввода-вывода#

Для общей производительности планировщик дискового ввода-вывода (англ. Disk IO Scheduler, по умолчанию используется планировщик Noop) применяется ко всем новым типам хранилищ. Планировщик ввода-вывода Noop обеспечивает самую справедливую производительность для ВМ, конкурирующих за доступ к одному устройству. При использовании механизма QoS для диска (см. раздел Настройки QoS для виртуальных дисков) необходимо переопределить настройку по умолчанию и присвоить параметру other-config:scheduler (выбор планировщика для хранилища) значение cfq. Соответствующий PBD должен быть отключен и повторно включен для применения новых параметров планировщика. Дисковый планировщик может быть скорректирован с помощью следующей команды:

xe sr-param-set other-config:scheduler=noop|cfq|anticipatory|deadline uuid=<valid_sr_uuid>

Предупреждение

Эта команда не работает с хранилищами на основе EqualLogic, NetApp или NFS

Настройки QoS для виртуальных дисков#

Виртуальные диски имеют настройку QoS приоритета ввода-вывода (необязательная опция). В данном пункте описано, как применить эту установку к существующим виртуальным дискам с помощью интерфейса xe CLI.

В случае совместно используемого хранилища, когда множество хостов получает доступ к одному и тому же LUN, установки QoS применяются к виртуальным блочным устройствам, осуществляющим доступ к LUN на том же хосте. QoS не применяется между хостами пула.

Прежде чем конфигурировать любые параметры QoS для VBD, следует обеспечить хранилище соответствующим дисковым планировщиком (см. раздел Настройка планировщика дискового ввода-вывода). Для хранилищ, которым требуется поддержка QoS, параметр планировщика должен быть установлен в значение cfq.

Внимание

После установки для требуемого хранилища параметра планировщика в значение cfq следует убедиться, что физическое блочное устройство было переподключено, чтобы изменения для планировщика вступили в силу

Первым параметром является qos_algorithm_type. Этот параметр должен быть установлен в значение ionice (единственный тип алгоритма QoS, поддерживаемый для виртуальных дисков в данной версии Numa vServer).

Сами параметры QoS задаются парами «ключ/значение», ассоциированными с параметром qos_algorithm_param. Для виртуальных дисков qos_algorithm_param использует ключ sched (тип плана QoS) и, в зависимости от значения, также требует ключ класса class.

Возможные значения параметра qos_algorithm_param:sched:

  • sched=rt или sched=real-time устанавливает параметр планирования QoS в значение «приоритет реального времени», требующего установки значения параметра класса;
  • sched=idle соответствует режиму бездействия планировщика QoS (idle priority), не требующему установки значения какого-либо параметра класса;
  • sched=<anything> соответствует приоритету по принципу «лучшей попытки» (best effort), требующему установки значения параметра класса.

Возможные значения для класса:

  • одно из следующих ключевых слов: highest («самый высокий»), high («высокий»), normal («нормальный»), low («низкий»), lowest («самый низкий»);
  • целое число между 0 и 7, где «7» соответствует самому высокому приоритету, а «0» – самому низкому, так, чтобы, например, запрос на ввод-вывод с приоритетом «5» будет обработан раньше запроса с приоритетом «2».

Для включения настроек QoS диска также необходимо установить параметр other-config:scheduler в значение cfq и переподключить физические блочные устройства для рассматриваемого хранилища.

Например, следующие команды устанавливают виртуальное блочное устройство виртуального диска для использования приоритета «5» (реального времени):

xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_type=ionice
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:sched=rt
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:class=5
xe sr-param-set uuid=<sr_uuid> other-config:scheduler=cfq
xe pbd-plug uuid=<pbd_uuid>

Многоканальные соединения в системе хранения#

Поддержка динамической многоканальности (multipathing) доступна для хранилищ на основе Fibre Channel и iSCSI. По умолчанию Numa vServer применяет циклическую балансировку загрузки round-robin. Таким образом, оба маршрута имеют активный трафик на них во время нормального функционирования.

Многоканальное соединение можно включить в xe CLI. Однако сначала убедитесь, что на сервере хранения действительно доступно более одного целевого хранилища. Например, бэкенд хранения iSCSI, запрошенный командой sendtargets на данном портале, должен возвратить более одной цели, как в примере ниже:

1
2
3
4
iscsiadm -m discovery --type sendtargets --portal 192.168.0.161

192.168.0.161:3260,1 iqn.strawberry:litchie
192.168.0.204:3260,2 iqn.strawberry:litchi

Только для iSCSI dom0 имеет IP-адрес в каждой подсети, используемой многопоточным хранилищем. Убедитесь, что для каждого пути к хранилищу есть сетевая карта, а для каждой сетевой карты настроен IP-адрес. Например, если нужно четыре пути к хранилищу, должно быть четыре сетевых адаптера, для каждого из которых настроен IP-адрес.

Для включения многоканального соединения для системы хранения выполните в xe CLI следующие шаги:

  1. Отключите все PBD на хосте:
    xe pbd-unplug uuid=<pbd_uuid>
    
  2. Установите для хоста параметр other-config:multipathing:
    xe host-param-set other-config:multipathing=true uuid=<host_uuid>
    
  3. Установите для хоста параметр other-config:multipathhandle в значение dmp:
    xe host-param-set other-config:multipathhandle=dmp uuid=<host_uuid>
    
  4. Если существующие на хосте хранилища работают в одноканальном режиме, но имеют возможность многоканального использования:

    • перенесите или приостановите любые работающие ВМ с виртуальными дисками в затронутых SR;
    • отключите и повторно включите все влияющие на хранилища PBD, чтобы повторно подключить их, используя многоканальное соединение:
      xe pbd-unplug uuid=<pbd_uuid>
      xe pbd-plug uuid=<pbd_uuid>
      

Для отключения многоканального соединения:

  1. Сначала отключите VBD, установив на хосте параметр other-config:multipathing в значение false.
  2. Затем повторно включите физические блочные устройства, как это описано выше. Параметр other-config:multipathing изменять не следует, поскольку это будет сделано автоматически.

Поддержка многоканальности в Numa vServer основывается на наборе компонентов multipathd components модуля ядра Linux, называемого device-mapper. Активация и деактивация многоканальных подключенных узлов осуществляется автоматически Storage Manager API. В отличие от стандартных инструментов dm-multipathd tools в Linux, узлы device-mapper не создаются для всех LUN в системе автоматически: новые узлы вводятся в действие лишь в случаях, когда LUN активно используются уровнем управления системы хранения. В связи с этим нет нужды использовать какой-либо инструмент dm-multipath командной строки для запроса или обновления табличных узлов device-mapper на хосте Numa vServer. Если необходимо запросить состояние таблиц device-mapper вручную или вывести список активных многоканальных узлов device-mapper в системе, следует использовать утилиту mpathutil:

  • mpathutil status − запрос статуса;
  • mpathutil list − вывод списка.

Предупреждение

Из-за несовместимостей с интегрированной архитектурой управления многоканальности, стандартная утилита командной строки dm-multipath не должна использоваться с Numa vServer. Следует использовать инструмент командной строки mpathutil для того, чтобы запросить состояние узлов на хосте

Поддержка многоканальности в массивах EqualLogic не охватывает многоканальность ввода-вывода системы хранения (Storage IO multipathing) в традиционном смысле этого термина. Управление многоканальными соединениями должно происходить на уровне сетей/агрегаций сетевых интерфейсов. См. документацию EqualLogic для получения информации о настройках механизмов обеспечения отказоустойчивости сети для хранилищ на основе EqualLogic или LVMoISCSI.