Блочные хранилища
Общие сведения
Раздел Хранилища – Сетевые хранилища основного меню содержит две вкладки: Файловые и Блочные.
К блочным хранилищам относят хранилища, предоставляемые по протоколам iSCSI и FC.
Сетевые хранилища типов iSCSI и FC основаны на принципе предоставления блочных устройств, которые после подключения воспринимаются системой как локальные диски. Основное отличие данных хранилищ — это метод подключения к ним серверов.
Технология iSCSI работает поверх протокола TCP/IP. На стороне СХД настраиваются точки подключения, именуемые «цели» (iSCSI target), в которых презентуются блочные устройства (LUN). Подключение к ним со стороны сервера осуществляется «инициатором» (iSCSI initiator). В качестве «инициатора» может выступать клиентское ПО или физический сетевой адаптер, настроенный на режим iSCSI-инициатора. Возможность настройки адаптера как «инициатора» необходимо уточнять у производителя. Блочные устройства становятся доступными на сервере после запуска «инициатора» и, в случае работы программного клиента, доступны только после загрузки ОС гипервизора.
Блочный доступ FC основывается на собственной технологии передачи данных, требует установки специализированных адаптеров (карт расширения), специализированных коммутаторов и систем хранения с поддержкой данной технологии. За счёт собственных адаптеров использование «инициатора» не требуется и блочные устройства презентуются серверу на аппаратном уровне и воспринимаются как локальные диски. При использовании FC необходимо учитывать данный момент, так как добавление LUN может изменить порядок подключенных физических носителей в ОС гипервизора.
Правила предоставления блочных устройств от СХД к серверам для FC настраиваются в коммутаторе и в ПО управления самой СХД, так как основными идентификаторами «клиентов» и портов на СХД являются WWN — аналог MAC-адреса для обычного сетевого адаптера. Другие идентификаторы для данной технологии не предусмотрены.
На сервере или в ВМ работа с подключенным блочным устройством LUN происходит так же, как и с НЖМД — его можно отдать под управление LVM, отформатировать в файловую систему. При использовании коллективного доступа к LUN необходимо форматировать его в кластерную файловую систему, которая будет следить за конкурентным доступом к ресурсам устройства.
Существенным плюсом использования доступа к блочным устройствам является то, что многие системы хранения имеют механизмы повышения отказоустойчивости. Некоторые СХД также предоставляют возможность объединения их в кластер и настройки репликации одного блочного устройства LUN таким образом, что при выходе из строя одного сервера, подключенная система автоматически переключится на резервную копию.
Создание
При создании блочного сетевого хранилища необходимо настроить все параметры подключения в соответствии с выбранным типом хранилища.
Повторное монтирование
Повторное монтирование одного блочного хранилища на один узел не рекомендуется.
Данное действие может привести к сбоям в работе системы.
При подключении к хранилищу iSCSI необходимо знать IP-адреса или доменные имена хранилища (sources), порты подключения, имена целей (iSCSI target), логин и пароль подключения (если требуется). Имена целей должны соответствовать формату, установленному стандартом, и иметь вид:
iqn.2018-11.com.raidix:target0
eui.0123456789abcdef
naa.0123456789abcdef
naa.0123456789abcdef0123456789abcdef
В рамках одной цели может предоставляться несколько блочных устройств.
Для создания блочного хранилища iSCSI необходимо перейти в раздел Хранилища - Сетевые хранилища - Блочные основного меню и нажать кнопку Добавить хранилище.
В открывшемся окне необходимо выполнить следующие действия:
-
Указать название сетевого хранилища.
-
Выбрать тип подключения.
-
Выбрать локацию.
-
Выбрать сервер для монтирования сразу после создания.
-
Добавить IP-адрес или доменное имя сервера хранения и порт.
Если указать несколько адресов, то в окне Опции необходимо указать, к какому адресу относится каждый таргет.
-
Проверить доступность сервера и получить список доступных таргетов с помощью кнопки Получить доступные таргеты (target).
-
Указать имя iSCSI Target.
-
Указать логин и пароль для подключения (если требуется).
-
Выбрать производителя.
-
Выполнить настройку в окне Опции.
После нажатия кнопки Опции в открывшемся окне нужно выполнить действия:
-
Выбрать таргет.
-
Выбрать адрес (IP-адрес/доменное имя), относящийся к выбранному таргету.
-
С помощью кнопки
добавить еще таргет и его адрес (если это необходимо). Чтобы удалить путь к сетевому хранилищу (убрать пару Таргет – Адрес), нужно нажать на кнопку
.
После заполнения полей подтвердить действия с помощью кнопки Сохранить.
-
-
Добавить описание хранилища.
Для подтверждения операции необходимо нажать кнопку ОК.
Подключение серверов
Для подключения серверов к созданному хранилищу необходимо:
-
Нажать на название созданного хранилища в разделе Хранилища – Сетевые хранилища – Блочные.
-
В открывшемся окне в разделе Информация рядом с надписью Серверы нажать кнопку
. При этом откроется окно с возможностью выбора серверов, к которым будет подключено данное хранилище.
После добавления серверов рядом с надписью Серверы появится их количество и кнопка раскрытия списка серверов. С серверами также можно выполнять операции передобавления и отключения от хранилища.
При использовании хранилища, подключаемого по FC, СХД предоставляет блочные устройства LUN на аппаратном уровне в соответствии с правилами, настроенными на FC коммутаторе и на стороне СХД. Для настройки правил подключения (презентации) LUN с СХД к серверам необходимо обратиться к документации производителя СХД и FC коммутатора. При использовании схемы прямого подключения СХД к серверам SpaceVM (схема DAS - Direct Attached Storage) настройка производится на самом СХД.
Для регистрации в системе управления подключенных LUN необходимо знать адрес WWN порта СХД, с которого происходит обслуживание подключений от серверов SpaceVM. Это необходимо для того, чтобы система управления SpaceVM собрала в группу только те LUN, которые подключены от этого WWN. Это сделано для возможности группировки LUN по WWN СХД, если по FC доступно более одного СХД. При регистрации система опрашивает все блочные устройства, подключенные к серверу, находит имеющие пометку о подключенных по шине FС и презентованные от указанного WWN.
После подключения блочных хранилищ к серверам SpaceVM видимые активные LUN можно использовать как LVM-shared хранилища, как часть ZFS-пула, форматировать их в кластерную файловую систему (GFS2) и подключать их напрямую к ВМ.
Окно подробного просмотра блочного хранилища
В окне Хранилища – Сетевые хранилища – Блочные – <Имя блочного хранилища> содержится информация, разделенная на группы:
-
Информация.
-
LUNs.
-
События.
-
Задачи.
-
Теги.
Информация
В окне Хранилища – Сетевые хранилища – Блочные – <Имя блочного хранилища> – Информация содержатся сведения о блочном хранилище.
Информация о блочном хранилище
-
Название (редактируемый параметр).
-
Описание (редактируемый параметр).
-
Тип подключения.
-
Локация.
-
Дата и время создания.
-
Дата и время изменения.
-
Target.
-
Производитель (редактируемый параметр).
-
Опции iSCSI.
-
Опции производителя (редактируемый параметр).
-
Sources (редактируемый параметр).
-
Cерверы (раскрывающийся список с возможностью добавления, повторного добавления и удаления серверов).
При добавлении сервера в открывшемся окне необходимо выбрать сервер из доступных и нажать кнопку ОК.
LUNs
В окне Хранилища – Сетевые хранилища – Блочные – <Имя блочного хранилища> – LUNs содержится информация о LUNs на хранилище. Существует возможность обновления и сканирования LUN.
Информация о LUN на хранилище
В окне LUNs доступна следующая информация о LUN:
-
Название.
-
Подключение.
-
Серийный номер.
-
ВМ.
-
Хранилище.
-
Тип ФС.
-
Размер.
-
Приоритет.
-
Статус.
При нажатии на существующий LUN в открывшемся окне доступны следующие операции:
-
Перенос данных на другой LUN.
При нажатии на кнопку Перенос данных LUN возможно выбрать LUN, на который будут скопированы данные с текущего LUN, после чего запускается процесс копирования.
-
Сканирование LUN.
Кнопка Сканирование LUN служит для обновления информации об актуальном размере LUN на узлах, если он был расширен на СХД. Также, если LUN отформатирован в ФС GFS2 и примонтирован хотя бы на одном узле, происходит расширение файловой системы и соответствующего пула данных. Каждый узел, на котором примонтирована в данный момент ФС GFS2 на сканируемом LUN, должен получить обновленную информацию о размере LUN перед расширением ФС. Поэтому задача расширения ФС не будет выполнена, если не все узлы, на которых подключен LUN, в состоянии ACTIVE. Если узлы не в состоянии ACTIVE просто выключены и при включении узлов LUN на них будет отображаться сразу с актуальным размером, можно использовать опцию Сканировать форсированно. Если изменение размера LUN с ФС GFS2 незначительно (меньше размера группы ресурсов конкретной ФС), из-за чего расширение ФС невозможно, шаг с изменением размера ФС завершится с ошибкой, что является штатной ситуацией.
-
Форматирование в файловую систему.
После нажатия на кнопку Форматировать в ФС в открывшемся окне необходимо выбрать тип файловой системы и указать максимальное количество узлов в кластере, после чего подтвердить операцию, нажав кнопку ОК. Подробнее: создание общего(их) для кластера пула(ов) данных GFS2 на LUN(s), если уже есть кластерный транспорт GFS2.
-
Монтирование.
-
Настройка лимитов I/O для LUN, подключенных к ВМ.
При нажатии на кнопку Настройки I/O возможно задать максимальные значения производительности LUN при подключении его к ВМ в качестве диска.
-
Тестирование производительности LUN.
При нажатии на кнопку Статистика I/O необходимо выбрать тип теста, время и количество потоков тестирования.
Внимание
Тесты, осуществляющие запись (write/rw/trim), приводят к потере данных на LUN.
-
Очистка LUN.
Кнопка Очистить служит для стирания информации на LUN. Если СХД, которой принадлежит LUN, поддерживает TRIM/discard, стирание производится через команды TRIM. В противном случае стирание производится путём записи секторов с нулями по всему объёму LUN.
-
Удаление LUN.
Для LUN с ФС GFS2 существуют дополнительные действия:
-
Сведения о ФС.
При нажатии на кнопку Детальная информация ФС выводятся ID кластера, имя таблицы блокировки, число журналов и тип блокировки.
-
Добавление журналов GFS2.
При нажатии на кнопку Журналы GFS2 возможно ввести требуемое число журналов в ФС GFS2, после чего начнется процесс добавления журналов. Это необходимо, если в кластер добавлены новые узлы, а текущее число журналов недостаточно для монтирования ко всем узлам.
В окне подробного просмотра LUN содержится информация, разделенная на группы: Информация, События, Задачи и Теги.
Раздел Информация в окне подробного просмотра LUN
В данном разделе представлена следующая информация о LUN:
-
Название (редактируемый параметр).
-
Путь.
-
Устройство dev.
-
Тип шины.
-
Размер.
-
Тип ФС.
-
Тип кэширования (редактируемый параметр).
-
Опции I/O (редактируемый параметр).
-
Приоритет (редактируемый параметр).
-
Статус.
-
Хранилище.
-
Серийный номер.
-
Подключенная ВМ.
-
Режим использования LUN несколькими ВМ (редактируемый параметр).
-
Репликация LUN.
-
Опции.
Во вкладке Опции возможны действия:
- Размонтирование LUN (GFS2) от всех узлов с помощью кнопки.
- Смена имени таблицы блокировок с помощью кнопки. Это необходимо для привязки ФС GFS2 на LUN, созданной на другом кластере, с целью получить возможность монтировать данную ФС в текущем кластере.
-
Серверы.
Для каждого сервера возможны действия:
- Монтирование LUN (GFS2) на этом сервере.
- Размонтирование LUN (GFS2) на этом сервере.
- Информация о состоянии путей данного LUN на данном сервере.
- Отключение сервера от LUN. -
Дата и время создания.
-
Дата и время изменения.
События
В разделе Хранилища – Сетевые хранилища – Блочные – <Имя блочного хранилища> – События содержатся события, зарегистрированные в системе, возникающие при работе с блочными сетевыми хранилищами с возможностью их сортировки по признакам — «По всем типам», «Ошибки», «Предупреждения», «Информационные».
Задачи
В разделе Хранилища – Сетевые хранилища – Блочные – <Имя блочного хранилища> – Задачи отображаются зарегистрированные в системе задачи, возникающие при выполнении действий с выбранным блочным хранилищем.
Теги
В разделе Хранилища – Сетевые хранилища – Блочные – <Имя блочного хранилища> – Теги содержится список присвоенных хранилищу меток. Также имеется возможность обновления, создания и применения тега.
Настройки multipath
Внимание
Если для нужного устройства нет предустановленного файла конфигурации, необходимо найти его у производителя СХД и добавить вручную через CLI с помощью команд:
1. storage multipath-edit - команда для редактирования конфигурационного файла.
2. storage multipath-conf-set-default - команда для сброса файла конфигурации multipath до базового.
Для просмотра настроек multipath
в CLI используется команда:
storage multipath-conf
Для сканирования доступных путей в CLI используется команда:
storage scsi-host-discovery
Для изменения политики группировки путей LUN в CLI используется команда:
storage modify-multipath-path-grouping-policy [policy]
По умолчанию
path_grouping_policy
=failover
.
Варианты path_grouping_policy
failover
— один путь для каждой группы приоритетов.multibus
— все пути в одной группе приоритетов.group_by_serial
— одна группа приоритетов для каждого серийного номера.group_by_prio
— одна группа приоритетов для каждого значения приоритета. Приоритеты путей определяются при помощи программ callout, которые передают значения приоритетов, указанных в соответствующих секциях (глобальной, для определенных контроллеров хранения, для определенных путей) конфигурационного файла.group_by_node_name
— Одна группа приоритетов для каждого имени целевого узла. Имена целевых узлов берутся из /sys/class/fc_transport/target*/node_name.
Для изменения политики выбора путей LUN в CLI используется команда:
storage modify-multipath-path-selector [path_selector]
По умолчанию
path_selector
=service-time 0
.
Варианты path_selector
service-time 0
— отправляет следующую часть операций I/O по пути с наименьшим расчетным временем обслуживания, которое определяется делением общего объема ожидающих операций I/O для каждого пути на его относительную пропускную способность.round-robin 0
— поочередно перебирает все пути в группе, отправляя одинаковый объем операций I/O на каждый путь.queue-length 0
— выбирает путь для следующей части операций I/O на основе количества ожидающих операций I/O на этом пути.
Подключение FC хранилища
-
При физическом подключении блочного хранилища по FC к серверу контроллер выдаст подсказку серверу о том, что есть неизвестные блочные хранилища.
-
Если есть подсказка, то необходимо перейти во вкладку сервера Хранилища – Блочные хранилища и нажать кнопку Сканировать. Если на сервере найдутся незарегистрированные в базе контроллера хранилища, то они создадутся в базе или обновится связь с теми, что есть в базе.
-
Командой
storage hba-npiv
в CLI можно посмотреть имеющиеся FC карточки, включая состояние их портов (port_state и speed). -
Командой
storage fc-luns
в CLI можно посмотреть FC LUNs. -
Командой
storage multipath
в CLI можно посмотреть LUN и пути, по которым они доступны. -
Просмотр WWNS подключенных хранилищ возможен во вкладке сервера Хранилища – Блочные хранилища по кнопке WWNS или в CLI командой
storage fc-wwns
. -
Просмотр локальных WWNS сервера возможен во вкладке сервера Хранилища – Блочные хранилища по кнопке Локальные WWNS или в CLI командой
storage local-wwns
. -
Пересканировать
scsi
шину узла можно в CLI командойstorage rescan-scsi-bus
. -
В некоторых случаях (например, этого требуют FCoE адаптеры HPE630FLB) для включения FC функционала на них необходимо выполнить команду CLI
net fcoe enable <adapter>
, например,net fcoe enable eno3
.
Действия после изменения размера LUN на хранилище или его удаления
В том случае, если LUN был сначала виден на серверах SpaceVM, а потом его удалили в хранилище или изменили его размер, то автоматически обновление информации об этом действии не произойдет.
Рекомендации:
-
Повторно сканировать
scsi
шину узла можно в CLI командойstorage rescan-scsi-bus
. Так как размер LUN проверяется на всех узлах, где он виден, то необходимо повторно сканировать шину на всех узлах. Для удобства можно это делать из CLI контроллераnode nodes-cli 'storage rescan-scsi-bus'
. -
Перезапустить сервис
multipathd
в CLI командойservices restart multipath
. Так как размер LUN проверяется на всех узлах, где он виден, то необходимо перезапустить сервис на всех узлах. Для удобства можно это делать из CLI контроллераnode nodes-cli 'services restart multipath'
.
Проверить изменение размера LUN можно, посмотрев в CLI вывод команды storage luns
(storage fc-luns
, storage iscsi-luns
).
Необходимо учитывать, что размер в CLI выводится в Гибибайтах (Тебибайтах и т.д.). В Web-интерфейсе контроллера размер LUN
выводится в Гигабайтах (для удобства, так как в других местах выводится в таких же единицах) и изменяется
автоматически после того, как узел увидел новый размер LUN.
Именование LUN (iqn)
Именование LUN должно происходить согласно стандартам:
Создание имен iSCSI с использованием формата IQN
The following is an example of an iSCSI name string from a storage
service provider:
Organization String
Naming Defined by Org.
Type Date Authority Naming Authority
+-+ +-----+ +-------------+ +----------------------+
| | | | | | | |
iqn.1995-11.com.example.ssp:customers.4567.disks.107
Создание имен iSCSI с использованием формата EUI
The details of
constructing EUI-64 identifiers are specified by the IEEE
Registration Authority (see https://www.rfc-editor.org/rfc/rfc3721.html#ref-EUI64).
Example iSCSI name:
Type EUI-64 identifier (ASCII-encoded hexadecimal)
+--++--------------+
| || |
eui.02004567A425678D
Создание имен iSCSI с использованием формата NAA
An example of an iSCSI name with a 64-bit NAA value follows:
Type NAA identifier (ASCII-encoded hexadecimal)
+--++--------------+
| || |
naa.52004567BA64678D
An example of an iSCSI name with a 128-bit NAA value follows:
Type NAA identifier (ASCII-encoded hexadecimal)
+--++------------------------------+
| || |
naa.62004567BA64678D0123456789ABCDEF
В случае несоблюдении стандарта можно попробовать отредактировать файл /etc/multipath.conf.
В /etc/multipath.conf необходимо добавить секцию multipaths
с подсекцией multipath
, где вписать сопоставления wwid
и alias.
Пример редактирования файла /etc/multipath.conf
multipaths {
multipath {
wwid 8iqn.1998-01.com.vmware:529f9d5bdb8ebd45-cf97c35adc6ecc5f,L,0x0000000000000000
alias 360000000000000000e00000000120001
}
}
После редактирования необходимо рестартовать сервис multipath
командой в CLI services restart multipath
.