Product SiteDocumentation Site

29.4.4. Хранилище SAN

Конфигурация на базе SAN предполагает использование блочных устройств (LUN), экспортированных по протоколам iSCSI или Fibre Channel. OpenNebula поддерживает два основных подхода:
  • LVM-only — ВМ работают напрямую с логическими томами LVM;
  • гибридный — образы хранятся в файловой системе поверх LVM, а ВМ используют блочные устройства.
Требования:
  • минимум два LUN: один для хранилища образов, один для системного хранилища;
  • все узлы кластера (включая сервер управления) должны иметь одинаковый доступ ко всем LUN.
Хранилище SAN может предоставлять доступ к образам двумя способами:
  • режим NFS — файлы образов доступны непосредственно на узлах виртуализации через распределённую файловую систему (например, NFS или GlusterFS) с использованием драйвера fs_lvm;
  • режим SSH — файлы образов передаются на узлы виртуализации по SSH с использованием драйвера fs_lvm_ssh.

29.4.4.1. Настройка сервера управления

Для сервера управления:
  • в режиме LVM-only — сервер управления должен иметь доступ к LUN и быть включён в BRIDGE_LIST;
  • в гибридном режиме — необходимо смонтировать файловую систему (например, OCFS2) в каталог /var/lib/one/datastores/<ID_хранилища>.

Примечание

Если используется только LVM-only, сервер управления не требует монтирования файловых систем, но должен иметь доступ к LUN.

29.4.4.2. Настройка вычислительных узлов

Базовые требования:
  • установлен пакет LVM2;
  • служба lvmetad должна быть отключена. В файле /etc/lvm/lvm.conf необходимо установить:
    use_lvmetad = 0
    и отключить службу, если она запущена:
    # systemctl disable --now lvm2-lvmetad.service
  • пользователь oneadmin добавлен в группу disk:
    # gpasswd -a oneadmin disk
  • все узлы должны иметь доступ к одним и тем же LUN;
  • для каждого хранилища данных необходимо создать группу томов LVM (LVM VG) на общем LUN с именем vg-one-<system_ds_id>. Создание выполняется только на одном узле.

Примечание

После перезагрузки узла виртуализации логические тома необходимо активировать, чтобы они снова стали доступны гипервизору.
Если установлен пакет opennebula-node-kvm, активация выполняется автоматически. В противном случае, логические тома ВМ, работавших на узле до перезагрузки, необходимо активировать вручную командой:
# lvchange -ay <DEVICE>
Также можно использовать скрипт активации /var/tmp/one/tm/fs_lvm/activate, доступный в удалённых скриптах OpenNebula.
Конфигурация в режиме SSH
Диски ВМ представляют собой символические ссылки на блочные устройства. Дополнительные файлы ВМ (например, контрольные точки и файлы развёртывания) хранятся в каталоге /var/lib/one/datastores/<ID_хранилища>. Необходимо убедиться, что на локальном хранилище достаточно свободного пространства для этих файлов.
Настройка режима NFS
Каталоги хранилищ образов и системного хранилища данных должны быть доступны всем гипервизорам, например, с использованием NFS или аналогичных механизмов. Все узлы должны монтировать соответствующие каталоги и иметь доступ к образам и системным данным.

Примечание

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

29.4.4.3. Регистрация хранилищ в OpenNebula

После настройки хранилища на узле управления и вычислительных узлах необходимо зарегистрировать два хранилища: системное и хранилище образов.
Регистрация системного хранилища:
  1. Создайте файл systemds.conf:
    NAME    = lvm-system
    TM_MAD  = fs_lvm_ssh
    TYPE    = SYSTEM_DS
    BRIDGE_LIST = "host-01 host-02"
    DISK_TYPE = BLOCK
    
  2. Зарегистрируйте хранилище:
    $ onedatastore create systemds.conf
    ID: 105
    
Для создания системного хранилища необходимо указать:
  • NAME — название хранилища;
  • TYPE — SYSTEM_DS;
  • TM_MAD — fs_lvm (режим NFS), fs_lvm_ssh (режим SSH);
  • DISK_TYPE — BLOCK. Используется для временных (volatile) дисков;
  • BRIDGE_LIST — список узлов, имеющих доступ к логическим томам (не требуется, если сервер управления имеет прямой доступ к LUN).
Регистрация хранилища образов:
  1. Создайте файл imageds.conf:
    NAME    = lvm-images
    TM_MAD  = fs_lvm_ssh
    TYPE    = IMAGE_DS
    DISK_TYPE = "BLOCK"
    DS_MAD  = fs
    SAFE_DIRS = "/var/tmp /tmp"
    
  2. Зарегистрируйте хранилище:
    $ onedatastore create imageds.conf
    ID: 106
    
Для создания хранилища образов необходимо указать:
  • NAME — название хранилища;
  • DS_MAD — fs (файловый драйвер);
  • TYPE — IMAGE_DS;
  • TM_MAD — fs_lvm (режим NFS), fs_lvm_ssh (режим SSH);
  • DISK_TYPE — BLOCK;
  • BRIDGE_LIST — список узлов с доступом к логическим томам (опционально).

Примечание

Системное хранилище и хранилище образов должны использовать одинаковый драйвер передачи (TM_MAD).
Атрибут BRIDGE_LIST можно опустить, если сервер управления имеет прямой доступ к LUN.
На сервере управления в каталоге /var/lib/one/datastores/ будут автоматически созданы каталоги 105 и 106. На вычислительных узлах эти каталоги необходимо создать вручную:
$ mkdir /var/lib/one/datastores/{105,106}
29.4.4.3.1. Настройка драйвера LVM
По умолчанию драйвер LVM обнуляет все создаваемые логические тома, чтобы предотвратить утечку данных между виртуальными машинами. Эта операция может занимать значительное время и увеличивать время развёртывания ВМ.
Поведение драйвера настраивается в файле /var/lib/one/remotes/etc/fs_lvm/fs_lvm.conf:
  • ZERO_LVM_ON_CREATE — обнулять тома при создании (yes/no);
  • ZERO_LVM_ON_DELETE — обнулять тома при удалении (рекомендуется включать);
  • DD_BLOCK_SIZE — размер блока для операций dd (по умолчанию: 64 КБ).
Пример конфигурации:
ZERO_LVM_ON_CREATE=no
ZERO_LVM_ON_DELETE=yes
DD_BLOCK_SIZE=32M
Дополнительно для каждого типа хранилища можно задать:
  • SUPPORTED_FS — список файловых систем, поддерживаемых для создания форматированных блочных устройств (через запятую). Может быть установлен в файле /var/lib/one/remotes/etc/datastore/datastore.conf;
  • FS_OPTS_<FS> — параметры создания файловой системы для соответствующего типа ФС. Настраиваются в файле /var/lib/one/remotes/etc/datastore/datastore.conf.

29.4.4.4. Подключение СХД

29.4.4.4.1. Особенности подключения СХД по FC
Алгоритм подключения:
  1. Подготовить СХД (создать LUN).
  2. На сервере установить FC HBA-адаптеры и драйверы к ним.
  3. Настроить сетевое подключение.
  4. Подключить СХД к серверу.
  5. Предоставить серверу доступ к СХД по WWPN.

Примечание

Для определения глобальных имён портов (WWPN) можно воспользоваться утилитой systool из пакета sysfsutils.
Пакет sysfsutils необходимо установить из репозитория:
# apt-get install sysfsutils
Чтобы получить WWPN, выполните команду:
# systool -c fc_host -A port_name
Пример вывода:
Class = "fc_host"
Class Device = "host1"
port_name = "0x10000090fa59a61a"
Device = "host1"
Class Device = "host16"
port_name = "0x10000090fa59a61b"
Device = "host16"
Просмотреть список подключённых устройств можно, например, с помощью команды:
# lsblk
Пример:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 59G 0 disk
sdb 8:16 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdc 8:32 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sdd 8:48 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
sde 8:64 0 931,3G 0 disk
└─mpatha 253:0 0 931,3G 0 mpath
В данном примере один LUN объёмом ~1 ТБ доступен по четырём путям.
29.4.4.4.2. Особенности подключения СХД по ISCSI
Все соединения iSCSI должны устанавливаться автоматически при загрузке узла. Для этого параметру node.startup необходимо задать значение automatic.
Значение параметра node.session.timeo.replacement_timeout по умолчанию составляет 120 секунд. Рекомендуется уменьшить его до 15 секунд.
Эти параметры задаются в файле /etc/iscsi/iscsid.conf (глобально). Если iSCSI-цель уже подключена, необходимо изменить настройки для конкретной цели в файле /etc/iscsi/nodes/<TARGET>/<PORTAL>/default.
На всех узлах необходимо:
  1. Установить пакет open-iscsi, запустить и добавить сервис iscsid в автозагрузку:
    # apt-get install open-iscsi
    # systemctl enable --now iscsid
    
  2. Указать параметры в файле /etc/iscsi/iscsid.conf:
    node.startup = automatic
    node.session.timeo.replacement_timeout = 15
    
  3. Выполнить обнаружение iSCSI-целей и подключиться к ним:
    # iscsiadm -m discovery -t sendtargets -p <iscsi-target-1-ip>
    # iscsiadm -m discovery -t sendtargets -p <iscsi-target-2-ip>
    # iscsiadm -m node --login
    
  4. Настроить автоматическое подключение iSCSI-целей:
    • в файле /etc/iscsi/iscsid.conf:
      node.startup = automatic
    • в файлах /var/lib/iscsi/send_targets/<TargetServer>,<Port>/st_config:
      discovery.sendtargets.use_discoveryd = Yes
  5. После перезагрузки должны появиться подключенные устройства:
    # lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
    sda 8:0 0 59G 0 disk
    sdb 8:16 0 931,3G 0 disk
    └─mpatha 253:0 0 931,3G 0 mpath
    sdc 8:32 0 931,3G 0 disk
    └─mpatha 253:0 0 931,3G 0 mpath
    sdd 8:48 0 931,3G 0 disk
    └─mpatha 253:0 0 931,3G 0 mpath
    sde 8:64 0 931,3G 0 disk
    └─mpatha 253:0 0 931,3G 0 mpath
    
    В данном примере один LUN объёмом ~1 ТБ доступен по четырём путям.

Примечание

Примеры использования команды iscsiadm:
  • отключить хранилище (отключить все iSCSI-цели):
    # iscsiadm -m node --logout
    
  • отключить конкретную цель:
    # iscsiadm -m node --targetname "iscsi-target-1.test.alt:server.target1" --logout
    
  • переопросить устройства iSCSI:
    # iscsiadm -m node -R
    
  • просмотреть активные iSCSI-сессии:
    # iscsiadm -m session
    

29.4.4.5. Настройка Multipath

Многопутевой ввод-вывод (Multipath I/O) — технология, позволяющая использовать несколько маршрутов к одному устройству хранения. В случае отказа одного пути ОС автоматически использует альтернативный маршрут, что повышает отказоустойчивость и позволяет балансировать нагрузку.
Multipath объединяет несколько физических путей в одно логическое устройство, обеспечивая:
  • автоматический выбор пути;
  • переключение при отказе;
  • увеличение пропускной способности за счёт балансировки нагрузки.
На всех узлах необходимо установить пакет multipath-tools:
# apt-get install multipath-tools
И запустить службу multipathd:
# systemctl enable --now multipathd && sleep 5; systemctl status multipathd
29.4.4.5.1. Конфигурация multipath

Примечание

Команда multipath используется для обнаружения и управления многопутевыми устройствами.
Основные параметры команды multipath:
  • -l — отобразить текущую multipath-топологию, полученную из sysfs и устройства сопоставления устройств;
  • -ll — отобразить текущую multipath-топологию, собранную из sysfs, устройства сопоставления устройств и всех других доступных компонентов системы;
  • -f <device> — удалить указанное multipath-устройство;
  • -F — удалить все неиспользуемые multipath-устройства;
  • -w <device> — удалить WWID устройства из файла wwids;
  • -W — сбросить файл wwids, чтобы включить только текущие многопутевые устройства;
  • -r — принудительно перечитать конфигурацию.
После подключения СХД устройство должно автоматически определиться как multipath:
# multipath -ll
mpatha (3600c0ff00014f56ee9f3cf6301000000) dm-0 HP,P2000 G3 FC
size=931G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 1:0:0:1 sdb 8:16 active ready running
| `- 16:0:1:1 sde 8:64 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 1:0:1:1 sdc 8:32 active ready running
`- 16:0:0:1 sdd 8:48 active ready running
Вывод команды условно делится на три части:
  • Информация об устройстве multipath:
    • mpatha (3600c0ff00014f56ee9f3cf6301000000) — алиас устройства
    • dm-0 — имя устройства dm
    • HP,P2000 G3 FC — производитель и модель
    • size=931G — размер
    • features='1 queue_if_no_path' — функции
    • hwhandler='1 alua' — аппаратный обработчик
    • wp=rw — режим доступа
  • Информация о группе путей:
    • policy='service-time 0' — политика планирования
    • prio=50 — приоритет группы путей
    • status=active — статус группы путей
  • Информация о конкретных путях:
    • 16:0:1:1 — адрес устройства (host:channel:id:LUN)
    • sde — имя диска
    • 8:64 — номера major:minor
    • active — статус dm
    • ready — статус пути
    • running — online статус
Для получения дополнительной информации об используемых устройствах можно выполнить команду:
# multipath -v3
Настройки multipath задаются в файле /etc/multipath.conf. Пример базовой конфигурации:
defaults {
    find_multipaths         yes
    user_friendly_names     yes
}
Если user_friendly_names = no, устройство будет именоваться по WWID /dev/mapper/<WWID> и /dev/dm-X:
# ls /dev/mapper/
3600c0ff00014f56ee9f3cf6301000000

# lsblk
NAME                                        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                                           8:0    0    59G  0 disk
sdb                                           8:16   0 931,3G  0 disk
└─3600c0ff00014f56ee9f3cf6301000000         253:0    0 931,3G  0 mpath
sdc                                           8:32   0 931,3G  0 disk
└─3600c0ff00014f56ee9f3cf6301000000         253:0    0 931,3G  0 mpath
sdd                                           8:48   0 931,3G  0 disk
└─3600c0ff00014f56ee9f3cf6301000000         253:0    0 931,3G  0 mpath
sde                                           8:64   0 931,3G  0 disk
└─3600c0ff00014f56ee9f3cf6301000000         253:0    0 931,3G  0 mpath
Если user_friendly_names = yes, то для имени multipath-устройства задаётся алиас (псевдоним) вида mpathХ. Имя устройства будет /dev/mapper/mpathХ и /dev/dm-X:
# ls /dev/mapper/
mpatha

# lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                8:0    0    59G  0 disk
sdb                8:16   0 931,3G  0 disk
└─mpatha         253:0    0 931,3G  0 mpath
sdc                8:32   0 931,3G  0 disk
└─mpatha         253:0    0 931,3G  0 mpath
sdd                8:48   0 931,3G  0 disk
└─mpatha         253:0    0 931,3G  0 mpath
sde                8:64   0 931,3G  0 disk
└─mpatha         253:0    0 931,3G  0 mpath
ОС при загрузке определяет пути к устройствам в изменяющейся среде выполнения (например, при новой загрузке в среде выполнения ОС появились новые устройства хранения или исчезли старые, и т.п.) по отношению к предыдущей загрузке или по отношению к заданной ранее конфигурации. Это может приводить к противоречиям при именовании устройств. Для того чтобы избежать такого поведения, рекомендуется:
  • Сделать явное исключение для устройства (раздела) хранения (например, для 3600c0ff00014f56ee9f3cf6301000000, которое в настоящее время определяется как /dev/mapper/mpatha). Для этого в файл /etc/multipath.conf добавить секции:
    blacklist {
            wwid .*
    }
    
    blacklist_exceptions {
            wwid "3600c0ff00014f56ee9f3cf6301000000"
    }
    
    Данная настройка предписывается внести в чёрный список любые найденные устройства хранения данных, за исключением нужного.
  • Создать ещё одну секцию:
    multipaths {
      multipath {
            wwid "3600c0ff00014f56ee9f3cf6301000000"
            alias mpatha
      }
    }
    
    В этом случае устройство всегда будет доступно как /dev/mapper/mpatha. Вместо mpatha можно вписать любое желаемое имя устройства.

Примечание

Получить WWID устройства можно командой:
# /lib/udev/scsi_id -g -u -d /dev/sdb
3600c0ff00014f56ee9f3cf6301000000
Для устройств в одном multipath WWID совпадают.
В файл /etc/multipath.conf может также потребоваться внести рекомендованные производителем СХД параметры.
После изменения файла /etc/multipath.conf необходимо перезапустить службу multipathd:
# systemctl restart multipathd.service

Примечание

Проверить файл /etc/multipath.conf на наличие ошибок можно, выполнив команду:
# multipath -t

29.4.4.6. Разметка хранилища образов

Устройство, на котором размещается хранилище образов, должно быть отформатировано кластерной ФС.
Ниже приведён пример создания кластерной файловой системы OCFS2 на multipath-устройстве и подключения этого устройства в OpenNebula.
29.4.4.6.1. Кластерная ФС ocfs2
На всех узлах кластера необходимо установить пакет ocfs2-tools:
# apt-get install ocfs2-tools

Примечание

Основной конфигурационный файл для OCFS2 — /etc/ocfs2/cluster.conf. Этот файл должен быть идентичен на всех узлах кластера. При изменении в одном месте его нужно скопировать на остальные узлы. При добавлении нового узла в кластер описание этого узла должно быть добавлено на всех остальных узлах до монтирования OCFS2-раздела с нового узла.
Создание конфигурации кластера возможно как с помощью команд, так и путём ручного редактирования файла /etc/ocfs2/cluster.conf.
Пример создания кластера из трёх узлов:
  • В командной строке:
    • создать кластер с именем mycluster:
      # o2cb_ctl -C -n mycluster -t cluster -a name=mycluster
      
    • добавить узлы (команду необходимо выполнить для каждого узла):
      # o2cb_ctl -C -n <имя_узла> -t node -a number=0 -a ip_address=<IP_узла> -a ip_port=7777 -a cluster=mycluster
      
  • Редактирование конфигурационного файла /etc/ocfs2/cluster.conf:
    cluster:
    node_count = 3
    heartbeat_mode = local
    name = mycluster
    
    node:
    ip_port = 7777
    ip_address = <IP_узла-01>
    number = 0
    name = <имя_узла-01>
    cluster = mycluster
    
    node:
    ip_port = 7777
    ip_address = <IP_узла-02>
    number = 1
    name = <имя_узла-02>
    cluster = mycluster
    
    node:
    ip_port = 7777
    ip_address = <IP_узла-03>
    number = 2
    name = <имя_узла-03>
    cluster = mycluster
    

Примечание

Имя узла кластера должно совпадать со значением, указанным в файле /etc/hostname.
Для включения автоматической загрузки сервиса OCFS2 можно использовать скрипт /etc/init.d/o2cb:
# /etc/init.d/o2cb configure
Для ручного запуска кластера выполните:
# /etc/init.d/o2cb load
checking debugfs...
Loading filesystem "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Затем переведите кластер в онлайн-состояние:
# /etc/init.d/o2cb online mycluster
checking debugfs...
Setting cluster stack "o2cb": OK
Registering O2CB cluster "mycluster": OK
Setting O2CB cluster timeouts : OK
Далее на одном из узлов необходимо создать раздел OCFS2:
  1. Создать физический раздел /dev/mapper/mpatha-part1 на устройстве /dev/mapper/mpatha:
    # fdisk /dev/mapper/mpatha
    
  2. Отформатировать созданный раздел:
    # mkfs.ocfs2 -b 4096 -C 4k -L DBF1 -N 3 /dev/mapper/mpatha-part1
    mkfs.ocfs2 1.8.7
    Cluster stack: classic o2cb
    Label: DBF1
    …
    mkfs.ocfs2 successful
    

Таблица 29.2. Параметры команды mkfs.ocfs2

Параметр
Описание
-L метка_тома
Метка тома, позволяющая его однозначно идентифицировать его при подключении на разных узлах. Для изменения метки можно использовать утилиту tunefs.ocfs2
-C размер_кластера
Размер кластера — минимальная единица пространства, выделяемая файлу. Возможные значения: 4, 8, 16, 32, 64, 128, 256, 512 и 1024 КБ. Не может быть изменён после форматирования
-N количество_узлов_кластера
Максимальное количество узлов, которые могут одновременно монтировать том. Может быть изменено с помощью tunefs.ocfs2
-b размер_блока
Наименьшая единица пространства, адресуемая ФС. Возможные значения: 512 байт (не рекомендуется), 1 КБ, 2 КБ или 4 КБ (рекомендуется). Не может быть изменён после форматирования

Примечание

Для создания нового раздела может потребоваться предварительно удалить существующие данные на устройстве /dev/mapper/mpathX (использовать с осторожностью):
# dd if=/dev/zero of=/dev/mapper/mpathX bs=512 count=1 conv=notrunc
29.4.4.6.2. Использование OCFS2 в OpenNebula
На каждом узле OpenNebula необходимо добавить OCFS2 в список файловых систем, автоматически монтируемых при загрузке узла:
  1. Определить UUID раздела:
    # blkid
    /dev/mapper/mpatha-part1: LABEL="DBF1" UUID="df49216a-a835-47c6-b7c1-6962e9b7dcb6" BLOCK_SIZE="4096" TYPE="ocfs2" PARTUUID="15f9cd13-01"
    
  2. Добавить запись в /etc/fstab:
    UUID=<uuid> /var/lib/one/datastores/<идентификатор_хранилища> ocfs2 _netdev,defaults 0 0
    
    Например:
    UUID=df49216a-a835-47c6-b7c1-6962e9b7dcb6       /var/lib/one/datastores/102     ocfs2 _netdev,defaults 0 0
    
  3. Проверить монтирование:
    # mount -a
    
    Команда должна завершиться без вывода ошибок.
Пример итоговой конфигурации:
# lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                8:0    0    59G  0 disk
`-sda1             8:1    0   255M  0 part  /boot/efi
sdb                8:16   0 931.3G  0 disk
`-mpatha         253:0    0 931.3G  0 mpath
  `-mpatha-part1 253:1    0 931.3G  0 part  /var/lib/one/datastores/102
sdc                8:32   0 931.3G  0 disk
|-sdc1             8:33   0 931.3G  0 part
`-mpatha         253:0    0 931.3G  0 mpath
  `-mpatha-part1 253:1    0 931.3G  0 part  /var/lib/one/datastores/102
sdd                8:48   0 931.3G  0 disk
`-mpatha         253:0    0 931.3G  0 mpath
  `-mpatha-part1 253:1    0 931.3G  0 part  /var/lib/one/datastores/102
sde                8:64   0 931.3G  0 disk
`-mpatha         253:0    0 931.3G  0 mpath
  `-mpatha-part1 253:1    0 931.3G  0 part  /var/lib/one/datastores/102

Примечание

Опция _netdev гарантирует, что раздел будет монтироваться только после запуска сетевой подсистемы.

Важно

При использовании файлового хранилища после добавления записи в /etc/fstab и перезагрузки ОС необходимо назначить владельцем каталога пользователя oneadmin. Например:
# chown oneadmin: /var/lib/one/datastores/102

Примечание

Для просмотра OCFS2 файловых систем можно использовать команды:
# mounted.ocfs2 -f
Device                    		Stack  Cluster  F  	Nodes
/dev/mapper/mpatha-part1  	o2cb               		server, host-02, host-01
# mounted.ocfs2 -d
Device                    Stack  Cluster  F  UUID                              Label
/dev/mapper/mpatha-part1  o2cb               DF49216AA83547C6B7C16962E9B7DCB6  DBF

29.4.4.7. Разметка системного хранилища

LUN для системного хранилища будет обслуживаться менеджером томов LVM.
Предварительные условия:
  • служба lvmetad должна быть отключена. В файле /etc/lvm/lvm.conf необходимо установить:
    use_lvmetad = 0
    и отключить службу, если она запущена:
    # systemctl disable --now lvm2-lvmetad.service
  • пользователь oneadmin добавлен в группу disk:
    # gpasswd -a oneadmin disk
  • все узлы должны иметь доступ к одним и тем же LUN;
  • для каждого хранилища необходимо создать LVM VG с именем vg-one-<ID_хранилища>.

Примечание

LUN должен быть доступен по пути /dev/mapper/ и не содержать разметки.
При необходимости его можно очистить:
# wipefs -fa /dev/mapper/[LUN_WWID]
Настройка на узле управления:
  1. Создать физический том (PV) на LUN:
    # pvcreate /dev/mapper/mpathb
    Physical volume "/dev/mapper/mpathb" successfully created.
    
  2. Создать группу томов с именем vg-one-<ID_хранилища>
    # vgcreate vg-one-101 /dev/mapper/mpathb
    Volume group "vg-one-101" successfully created
    
  3. Вывести информацию о физических томах:
    # pvs
    PV                       VG         Fmt  Attr PSize   PFree
    /dev/mapper/mpathb       vg-one-101 lvm2 a--  931.32g 931.32g
    
Созданные хранилища будут отображаться в веб-интерфейсе OpenNebula. Отображаемый объём должен соответствовать размеру LUN, выделенного на СХД.
После создания и запуска ВМ будет создан логический том:
# lvscan
  ACTIVE            '/dev/vg-one-101/lv-one-52-0' [50,00 GiB] inherit
# lsblk
sde                               8:64   0   931.3G  0 disk
└─mpathb                        253:1    0   931.3G  0 mpath
  └─vg--one--101-lv--one--52--0 253:3    0   51G     0 lvm
где 52 — идентификатор ВМ.