Хранилища на базе файловой технологии хранения#
Особенности файловой технологии хранения#
Файловая технология хранения позволяет хранить образы дисков в виде файла. В качестве системы хранения данных (СХД) может выступать локальное хранилище сервера (например, специально выделенное блочное устройство) или внешнее хранилище. В ПВ поддерживаются внешние хранилища, построенные на таких технологиях, как NAS и SAN:
NAS (Network Attached Storage — сетевое хранилище данных) обеспечивает доступ к данным на уровне файлов;
SAN (Storage Area Network — сеть хранения данных) обеспечивает доступ к данным на уровне блочных устройств.
SAN обеспечивает предоставление блочных устройств посредством сетевых протоколов, таких как Fibre Channel или iSCSI. Для доступа к определенному сетевому блочному устройству используется специализированный адрес этого устройства — LUN (Logical Unit Number — номер логического устройства). Для организации хранения в ПВ требуется выделение как минимум двух LUN (один — для хранилища образов, второй — для системного хранилища). Эти LUN должны быть презентованы каждому компьютеру, на котором развернуты службы сервера управления и/или сервера виртуализации. Файловая технология хранения подразумевает, что подключенные системы хранения данных размечены с использованием одной из файловых систем.
Предупреждение
Сетевая файловая система NFS не поддерживает использование меток безопасности. Если планируется использование этой файловой системы при построении хранилища, функционирующего в мандатном контексте, то для ВМ следует установить уровень целостности, назначаемый по умолчанию, равным 0.
Рекомендуется иметь несколько хранилищ, построенных на базе файловой технологии хранения и с применением различных методов передачи данных, для:
распределения операций ввода-вывода между серверами хранения данных;
обеспечения непрерывности обслуживания.
Ограничения, связанные с функционированием файловой системы NFS#
В дискреционном режиме функционирования ПВ при использовании NFS на каждом сервере виртуализации следует установить уровень целостности, назначаемый по умолчанию для ВМ, равным 0. Для этого необходимо выполнить следующие действия:
Остановить службу libvirtd командой:
sudo systemctl stop libvirtd.service
В конфигурационном файле
/etc/libvirt/libvirtd.conf
, установить значение параметраilev_vm
равное 0:
ilev_vm = 0
Запустить службу
libvirtd
командой:
sudo systemctl start libvirtd.service
Особенности использования методов передачи данных#
Метод передачи SSH#
Метод передачи ssh использует локальную файловую систему узлов для размещения образов работающих виртуальных машин. Таким образом все файловые операции выполняются локально, но образы всегда необходимо копировать на узлы. Данный драйвер также не допускает использование динамических перемещений между узлами:

При развертывании ВМ на сервере виртуализации в каталоге системного хранилища (100) создается рабочий каталог ВМ с наименованием, соответствующем идентификатору этой ВМ (7). Из каталога хранилища образов (101) в рабочий каталог ВМ копируется файл исходного образа, указанного в шаблоне ВМ. Копии исходных образов имеют наименование вида disk.<номер>
, где <номер>
— цифра, соответствующая номеру диска в шаблоне.
Предупреждение
Необходимо убедиться в том, что все компьютеры, включая сервер управления, могут осуществлять ssh-передачу на любой другой компьютер, включая самих себя. В противном случае перемещения не будут выполняться.
При создании снимка состояния работающей ВМ в рабочем каталоге этой ВМ создается файл состояния ВМ с наименованием вида snap-<номер>.xml
, где <номер>
— порядковый номер снимка, начиная с цифры 0.
Для выключенной ВМ можно зафиксировать состояние диска этой ВМ (сделать снимок). При этом файлы снимков состояния диска являются полной копией файла диска ВМ и размещаются в каталоге: /var/lib/one/datastores/<идентификатор_системного_хранилища>/ <идентификатор_ВМ>/disk.<номер>.snap/
где <номер>
— цифра, соответствующая номеру диска в шаблоне.
Примечание
Пример
Для файла образа диска disk.1
:
``/var/lib/one/datastores/100/7/disk.1.snap/``
В качестве наименования файлов снимков состояния диска, размещенных в этом каталоге, выступает порядковый номер снимка, начиная с цифры 0.
Если в качестве исходного выступал постоянный образ, то при уничтожении ВМ все файлы снимков состояний диска будут перемещены в хранилище образов в каталог: /var/lib/one/datastores/<идентификатор_хранилища_образов>/ <идентификатор_образа>.snap/
.
Примечание
Пример
Для файла образа диска disk.1
все файлы из каталога /var/lib/one/datastores/100/7/disk.1.snap/
будут перемещены в каталог /var/lib/one/datastores/101/4b2cda93.snap/
Регистрация хранилищ#
Предупреждение
Действия по регистрации хранилищ в ПВ выполняются под учетной записью администратора ПВ.
Регистрация системного хранилища#
При регистрации нового системного хранилища необходимо указать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
NAME |
<Наименование_хранилища> |
TYPE |
SYSTEM_DS |
TM_MAD |
Одно из следующих значений: shared, qcow2 или ssh. В зависимости от используемого метода передачи данных между хранилищем образов и системным хранилищем |
Предупреждение
Необходимо использовать одинаковый метод передачи данных (параметр TM_MAD
) для системного хранилища и для хранилища образов.
Примечание
Пример
Регистрация системного хранилища, в котором используется драйвер qcow2:
Создать файл
systemds.txt
со следующим содержанием:
NAME = fs_system
TYPE = SYSTEM_DS
TM_MAD = qcow2
Выполнить команду:
onedatastore create systemds.txt
Пример вывода после выполнения команды:
ID: 100
Регистрация хранилища образов#
При регистрации нового хранилища образов необходимо указать значения параметров в соответствии с таблицей:
Параметр |
Значение |
---|---|
NAME |
<Наименование_хранилища> |
TYPE |
IMAGE_DS |
DS_MAD |
fs |
TM_MAD |
Одно из следующих значений: |
SAFE_DIRS |
Перечень каталогов, разделенных символом пробела, в которых разрешается размещать образы. По умолчанию имеет значение |
Предупреждение
Необходимо использовать одинаковый метод передачи данных (параметр TM_MAD
) для системного хранилища и для хранилища образов.
Примечание
Пример
Регистрация хранилища образов, в котором используется драйвер qcow2:
Создать файл
imageds.txt
со следующим содержанием:
NAME = fs_images
TYPE = IMAGE_DS
DS_MAD = fs
TM_MAD = qcow2
Выполнить команду:
onedatastore create imageds.txt
Пример вывода после выполнения команды:
ID: 101
Монтирование блочных устройств в каталоги хранилищ#
Предупреждение
Действия по монтированию блочных устройств выполняются в ОС СН
под учетной записью администратора ОС СН
с высоким уровнем целостности.
Особенности монтирования блочных устройств в ПВ#
На сервере виртуализации необходимо создать каталоги для созданных ранее хранилищ на базе файловой технология хранения (по умолчанию
/var/lib/one/datastores/<идентификатор_хранилища>
). Для этого последовательно выполнить команды:
sudo mkdir /var/lib/one/datastores/<идентификатор_системного_хранилища>
sudo mkdir /var/lib/one/datastores/<идентификатор_хранилища_образов>
Примечание
Пример
Создание каталогов хранилищ, с идентификаторами 100 и 101:
sudo mkdir /var/lib/one/datastores/100
sudo mkdir /var/lib/one/datastores/101
На сервере виртуализации необходимо смонтировать подготовленную систему хранения данных в каталог хранилища. Если все хранилища одного типа, можно смонтировать весь каталог /var/lib/one/datastores
.
На сервере управления необходимо смонтировать только хранилище образов.
Кроме того, необходимо убедиться в том, что на смонтированном дисковом ресурсе достаточно места для хранения образов и дисков виртуальных машин, которые находятся в состоянии остановлена и не размещена.
Монтирование сетевых блочных устройств с OCFS2#
В общем случае для монтирования блочных устройств, размеченных с использованием кластерной файловой системы OCFS2
, необходимо выполнить следующую последовательность действий:
Определить идентификаторы (
UUID
) сетевых блочных устройств командой:
sudo blkid
Пример вывода после выполнения команды:
/dev/vda1: UUID="b5fd411a-4c96-491b-bfc0-b4e9e2670e9c" TYPE="ext4" \ PARTUUID="50741579-01"
/dev/vda5: UUID="31daa40d-8e07-44cc-b851-d985f2121bb7" TYPE="swap" \ PARTUUID="50741579-05"
/dev/sdb: UUID="3bd71b84-6463-42ec-8aff-106cafdae2e2" TYPE="ocfs2"
/dev/sda: UUID="41ff6399-368e-4b81-bae4-bdfa4aedd45a" TYPE="ocfs2"
где в качестве блочных устройств sda
и sdb
выступают сетевые блочные устройства.
В файл
/etc/fstab
добавить строки c описанием настроек монтирования сетевых блочных устройств следующего вида:
UUID=<идентификатор_блочного_устройства> <точка_монтирования> \ ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
Примечание
Пример
При монтировании сетевых блочных устройств, представленных в примере выше, в каталоги каталогов хранилищ с идентификаторами 100 и 101 строки будут иметь следующий вид:
UUID=41ff6399-368e-4b81-bae4-bdfa4aedd45a /var/lib/one/datastores/100 \ ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
UUID=3bd71b84-6463-42ec-8aff-106cafdae2e2 /var/lib/one/datastores/101 \ ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
Выполнить монтирование командой:
sudo mount -a
Результатом выполнения команды должен быть пустой вывод без ошибок.
Перезагрузить компьютер.
Предупреждение
После добавления записи об автоматическом монтировании в файле /etc/fstab
и перезагрузки компьютера, необходимо назначить на каталог этого хранилища владельца oneadmin
. В противном случае при перезагрузке компьютера владелец меняется на root
и использование хранилища будет не доступно.
Для того чтобы назначить на каталог хранилища владельца oneadmin
необходимо выполнить команду:
sudo chown oneadmin:oneadmin /var/lib/one/datastores/<идентификатор_хранилища>
Монтирование сетевых ресурсов с NFS#
Предупреждение
Для каждого сетевого каталога, предоставляемого сетевым хранилищем, предварительно необходимо назначить владельцем пользователя с UID
равным 9869 (соответствует пользователю oneadmin
). А в качестве группы-владельца — группу с GID
равным 9869 (соответствует группе oneadmin
).
Для монтирования сетевых ресурсов, предоставляемого NFS-сервером, на каждом компьютере (выполняющем функцию сервера управления или сервера виртуализации) необходимо выполнить следующую последовательность действий: 1. Установить службу клиента NFS командой: .. code-block:: bash
sudo apt install nfs-common
2. Просмотреть перечень доступных сетевых ресурсов командой: .. code-block:: bash
sudo showmount -e <IP-адрес_сервера_NAS>
Примечание
Пример
Вывод списка сетевых ресурсов, предоставляемых NFS-сервером с IP-адресом 192.168.1.10
sudo showmount -e 192.168.1.10
Пример вывода после успешного выполнения команды: .. code-block:: console
Export list for 192.168.1.10: /mnt/nfs-images node?,front /mnt/nfs-system node?,front
где /mnt/nfs-system
и /mnt/nfs-images
— сетевые ресурсы, предоставляемые NFS-сервером, запись node?,front
означает, что доступ предоставлен компьютерам, сетевое имя которых начинается с последовательности символов node
(далее следует один любой символ), а также компьютеру с сетевым именем front
.
Настроить автоматическое монтирование сетевых ресурсов в точки монтирования. Для этого в файл
/etc/fstab
добавить строки c описанием настроек монтирования сетевых ресурсов:<IP-адрес_сервера_NFS>:<сетевой_ресурс> <точка_монтирования> \ nfs _netdev,timeo=14,intr 0 0
В качестве точек монтирования необходимо указать каталоги созданных хранилищ.
Примечание
Пример Для сетевых ресурсов, представленных выше, строки будут иметь следующий вид:
192.168.1.10:/mnt/nfs-images /var/lib/one/datastores/101 \ nfs _netdev,timeo=14,intr 0 0
192.168.1.10:/mnt/nfs-system /var/lib/one/datastores/100 \ nfs _netdev,timeo=14,intr 0 0
Выполнить монтирование командой:
sudo mount -a
Результатом выполнения команды должен быть пустой вывод без ошибок.