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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Физические блочные устройства (PBD) представляют собой интерфейс между физическим сервером и присоединённым хранилищем. PBD являются соединительными объектами, которые позволяют сопоставить хранилище 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). Чтобы проверить, был ли VDI создан с type=raw, нужно проверить его map-параметр sm-config. С этой целью могут использоваться, соответственно, команды xe sr-param-list и xe vdi-param-list.

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

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

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

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

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

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

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

Формат 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».

Замечания по объединению VHD#

Только один подобный процесс объединения может быть активен в хранилище в каждый момент времени. Поток этого процесса запускается на главном хосте (мастере) хранилища.

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

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

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

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

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

Все типы хранилищ в Numa vServer поддерживают изменение размеров VDI, быстрое клонирование и снимки состояний. Хранилища на основе LVM (локальные, iSCSI или HBA) обеспечивают thin-provisioning для снимков состояния и скрытых родительских узлов. Другие типы хранилищ (EXT3, EXT4, NFS) имеют полную поддержку 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 не поддерживается на raw-образах VDI.

Примечание

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

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

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

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

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

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

xe sr-create host-uuid=<host-uuid> content-type=user name-label=<sr-name> shared=false device-config:device=/dev/<раздел-диска> type=lvm
где device – имя устройства на локальном сервере для использования в хранилище. Вы также можете предоставить список имен, разделенных запятыми.

Локальный EXT3#

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

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

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

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

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

xe sr-create host-uuid=<host-uuid> content-type=user name-label=<sr-name> shared=false device-config:device=/dev/<раздел-диска> type=ext
где device – имя устройства на локальном сервере для использования в хранилище. Вы также можете предоставить список имен, разделенных запятыми.

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-хранилищ:

  • nfs_iso: тип хранилища NFS ISO обрабатывает образы компакт-дисков, хранящиеся в виде файлов в формате ISO, доступных как общий ресурс NFS;
  • cifs: тип хранилища для общего доступа к файлам Windows (SMB/CIFS). Обрабатывает образы компакт-дисков, хранящихся в виде файлов в формате ISO, доступных в качестве общего ресурса Windows (SMB/CIFS).

Если вы не укажете тип хранилища при создании, Numa vServer использует сведения из параметра конфигурации location для определения типа.

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

xe sr-create host-uuid=<host-uuid> content-type=iso type=iso name-label=<sr-name> device-config:location=<path-to-mount>
Для монтирования ISO-хранилища можно использовать NFS или SMB.

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

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

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

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

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

Внимание!

  1. У каждой цели iSCSI и инициатора обязательно должно быть уникальное IQN. Если используется неуникальный (групповой) идентификатор IQN, может произойти повреждение данных или отказ в доступе к LUN.
  2. Не следует изменять IQN сервера Numa vServer с подключенными iSCSI-хранилищем. Это может привести к сбоям подключения с новымм целямм или существующим хранилищем.

Программное хранилище 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=<sr-name> shared=true device-config:SCSIid=<SCSI_id>

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

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

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

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

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

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

Примечание

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

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

  1. Используйте команды xe sr-forget или xe sr-destroy для хранилищ, которые требуется удалить из базы данных сервера Numa vServer (см. раздел Удаление хранилища).
  2. Удалите конфигурацию зонирования в пределах SAN для нужного LUN на сервере.
  3. Используйте команду xe sr-probe для определения значений ADAPTER, BUS, TARGET и LUN, соответствующих удаляемому LUN.
  4. Удалите записи устройства следующей командой:
    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 в SAN, где размещен SR. Это также может быть список значений, разделенных запятыми, для подключения к нескольким целям. Да
targetIQN Квалифицированное имя iSCSI (IQN) цели в iSCSI SAN, где размещено хранилище, или * для подключения ко всем IQN. Да
SCSIid Идентификатор шины SCSI целевого LUN Да
chapuser Имя пользователя, которое будет использоваться для аутентификации CHAP Нет
chappassword Пароль, который будет использоваться для аутентификации CHAP Нет
port Номер сетевого порта, на который посылается запроса к целевому хранилищу Нет
usediscoverynumber Определенный индекс записи iSCSI для использования Нет
incoming_chapuser Имя пользователя, которое фильтр iSCSI будет использовать для аутентификации на хосте Нет
incoming_chappassword Пароль, который фильтр iSCSI будет использовать для аутентификации на хосте Нет

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

xe sr-create host-uuid=<vhost-uuid> content-type=user name-label=<sr-name> 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 выполните следующие шаги на каждом сервере в пуле:

  1. Зонируйте один или несколько LUN для каждого сервера в пуле. Детали процесса зависят от используемого оборудования SAN.
  2. Используйте команду xe sr-probe для определения глобального пути устройства LUN HBA. Команда xe 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>
    
  3. На мастере пула создайте хранилище, задав глобальный путь устройства в соответствии с путём, возвращённым в свойстве <path> в качестве результата команды sr-probe. PBD будут созданы и включены для каждого хоста в пуле автоматически:

    xe sr-create host-uuid=<host-uuid> content-type=user name-label=<sr-name> shared=true device-config:SCSIid=<device_scsi_id> type=lvmohba
    

NFS и SMB#

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

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

Примечание

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

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

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

Примечание

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

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

Примечание

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

Убедитесь, что вы следите за свободным пространством на вашем хранилище. Если использование хранилища достигнет 100%, дальнейшие записи с ВМ завершаются неудачей. Эти неудачные записи могут привести к зависанию или сбою ВМ.

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

Примечание

Если вы попытаетесь подключить NFS-хранилище только для чтения, то действие завершится ошибкой: «SR_BACKEND_FAILURE_461 — Невозможно выполнить запись в файловую систему для SR».

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

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

Внимание!

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

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

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

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

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

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

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

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

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

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

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

xe sr-create host-uuid=host_uuid content-type=user name-label=<non-shared-sr-name> 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 на логических томах в группе томов, созданной на HBA LUN, который обеспечивает, например, аппаратную поддержку iSCSI или FC.

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

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

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

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

Внимание

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

Размер блока LVM по HBA LUN должен быть 512 байт. Для использования хранилища с физическими блоками 4 КБ хранилище также должно поддерживать эмуляцию блоков распределения по 512 байт (логический размер блока должен быть 512 байт).

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

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

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

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

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

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

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

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

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

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

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

В обоих случаях xe sr-probe работает путём определения типа хранилища и одного или нескольких параметров device-config для этого типа хранилищ. Если предоставлен неполный набор параметров, xe sr-probe сообщает об ошибке, указывающее на отсутствие параметров и возможные варианты для отсутствующих параметров. Когда предоставлен полный набор параметров, команда возвращает список существующих хранилищ. Весь вывод xe 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 будет возвращён набор SCSIid (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 возможно только во время выполнения xe sr-create. Должно быть сделано так, чтобы aggregate мог быть определен в точке, в которой было создано хранилище.
** – сканирование пула хранилища возможно только во время xe sr-create. Должно быть сделано так, чтобы пула мог быть определен в точке, в которой было создано хранилище.

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

Хранилище может быть удален временно или навсегда. Существуют следующие способы:

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

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

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

Примечание

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

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

Чтобы повторно ввести в работу ранее забытое хранилище, создайте 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. Выполните команду xe sr-introduce для хранилища, UUID которого был выведен на предыдущем шаге командой xe 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:

  1. Увеличьте размер LUN в хранилище.
  2. На 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 на другой для соответствия требованиям обслуживания или многоуровневой конфигурации хранилища.

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

Для копирования отдельных VDI между хранилищами можно использовать команды xe в CLI:

  1. Выключите ВМ.
  2. Используйте соответствующую команду CLI для идентификации UUID VDI, которые нужно переместить. Если ВМ имеет DVD-привод, то его параметр vdi-uuid будет выведен как <not in database> и может быть проигнорирован:

    xe vbd-list vm-uuid=<valid_vm_uuid>
    

    Внимание!

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

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

    xe vbd-destroy uuid=<vbd_uuid>
    

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

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

  4. Скопируйте каждый из образов VDI ВМ командой xe vdi-copy для перемещения их в требуемое хранилище:

    xe vdi-copy uuid=<valid_vdi_uuid> sr-uuid=<valid_sr_uuid>
    
  5. Используйте команду xe vbd-create, указав для параметра uuid значения UUID VDI из нового хранилища.

  6. Удалите исходные VDI:
    vdi-destroy uuid=<vdi_uuid>
    

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

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

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

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

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

Примечание

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

В некоторых случаях автоматическое восстановление пространства может не работать. Мы рекомендуем использовать офлайн-слияние в следующих сценариях:

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

Примечание

Запуск офлайн-слияния ведёт к некоторому простою ВМ из-за выполнения операций приостановки и возобновления.

Перед запуском инструмента удалите все ненужные снимки и клоны ВМ. Инструмент восстанавливает столько места, сколько возможно, учитывая оставшиеся снимки и клоны. Если необходимо восстановить всё пространство, удалите все снимки и клоны.

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

Освобождение места в пространстве при помощи офлайн-слияния#

Примечание

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

  1. Откройте консоль на сервере и выполните следующую команду:

    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
    
  2. Данная команда приостанавливает ВМ (если она ещё не выключена), инициирует процесс освобождения пространства и затем возобновляет работу ВМ.

Примечание

Перед запуском офлайн-слияния рекомендуем завершить или приостановить работу ВМ вручную посредством CLI. Если вы запустите процесс слияния на работающей ВМ, то данный процесс автоматически приостановит работу ВМ, выполнит требуемые операции слияния VDI и возобновит работу ВМ.

Если объединяемые VDI находятся на общем хранилище, необходимо запустить офлайн-слияния на сервере, являющимся мастером пула.

Если объединяемые VDI находятся на локальном хранилище, запустить офлайн-слияния на сервере, к которому подключено локальное хранилище.

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

Вы можете настроить планировщик дискового ввода-вывода и параметры приоритета дискового ввода-вывода, чтобы изменить производительность ваших дисков.

Примечание

Возможности дискового ввода-вывода, описанные в данном разделе, не применимы к хранилищам EqualLogic, NetApp или NFS

Для общей производительности планировщик дискового ввода-вывода (англ. Disk IO Scheduler, по умолчанию используется планировщик Noop) применяется на всех новых типах хранилищ. Планировщик ввода-вывода Noop обеспечивает наиболее справедливую производительность для ВМ, конкурирующих за доступ к одному устройству.

  1. Настройте планировщик диска с помощью команды:
    xe sr-param-set other-config:scheduler=<noop|cfq|anticipatory|deadline> uuid=<sr_uuid>
    
  2. Отключите и снова подключите соответствующий PBD, чтобы параметр планировщика вступил в силу.
    xe pbd-unplug uuid=<pbd_uuid>
    xe pbd-plug uuid=<pbd_uuid>
    

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

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

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

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

Внимание

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

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

Настройка параметров запроса дискового ввода-вывода#

Эти настройки можно применить к существующим виртуальным диска с помощью команды xe vbd-param-set со следующими параметрами:

  • qos_algorithm_type – этот параметр должен быть установлен в значение ionice (единственный тип алгоритма QoS, поддерживаемый для виртуальных дисков в данной версии Numa vServer).
  • qos_algorithm_param – используйте этот параметр для установки пар ключ-значение. Для виртуальных дисков параметр qos_algorithm_param использует ключ sched (тип плана QoS) и, в зависимости от значения, также требует ключ class.

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

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

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

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

Например, следующие команды устанавливают виртуальное блочное устройство виртуального диска для использования приоритета 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-unplug uuid=<pbd_uuid>
xe pbd-plug uuid=<pbd_uuid>

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

Поддержка динамической многоканальности (multipathing) доступна для хранилищ на основе Fibre Channel и iSCSI.

Настройка multipathing обеспечивает избыточность для трафика удаленного хранилища в случае частичной потери подключения. Многопутевой режим направляет трафик хранилища на устройство хранения по нескольким путям для избыточности и повышения пропускной способности. Вы можете использовать до 16 путей к одному LUN. Многопутевой режим представляет собой конфигурацию «активный-активный».

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

Многоканальное соединение можно включить через 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-адрес.

Включение multipathing#

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

  1. Отключите все PBD на сервере:

    xe pbd-unplug uuid=<pbd_uuid>
    
    где pbd_uuid можно найти с помощью команды xe pbd-list

  2. Установите для параметра other-config:multipathing значение true:

    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. Если существующие на сервере хранилища работают в одноканальном режиме, но имеют возможность многоканального использования:

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

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

  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.