Product SiteDocumentation Site

29.4.2. Хранилище NFS/NAS

Конфигурация на базе NFS/NAS предполагает использование общего сетевого тома, смонтированного на всех узлах кластера (включая узел управления). Этот том используется для хранения:
  • образов дисков (в Images Datastore);
  • дисков работающих ВМ (в System Datastore).
Преимущества:
  • быстрое развёртывание ВМ (с использованием hardlinks или copy-on-write);
  • поддержка live-migration;
  • централизованное управление хранилищем.
Ограничения:
  • производительность зависит от пропускной способности сети и возможностей NFS-сервера;
  • высокая I/O-нагрузка может стать узким местом инфраструктуры.
Для повышения масштабируемости можно использовать несколько NFS-серверов, что позволяет:
  • балансировать I/O-нагрузку;
  • применять разные политики SLA (резервное копирование, QoS);
  • изолировать критические важные ВМ на отдельных томах.

Примечание

Формат образов qcow2 по умолчанию использует thin provisioning (динамическое выделение дискового пространства), что позволяет экономить место на хранилище.

29.4.2.1. Настройка управляющего узла

На управляющем узле необходимо смонтировать каталог хранилища образов с сервера NAS/SAN в каталог /var/lib/one/datastores/<ID_хранилища>. Если все хранилища данных относятся к одному типу, допускается монтирование всего каталога /var/lib/one/datastores/.

Примечание

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

Примечание

Рекомендуемые параметры монтирования NFS:
soft, intr, rsize=32768, wsize=32768
При использовании данной конфигурации libvirt/kvm доступ к файлам образов осуществляется от имени пользователя oneadmin.
Если файлы должны быть доступны от имени root, необходимо добавить параметр no_root_squash на NFS-сервере:
/export *(rw,sync,no_root_squash)

29.4.2.2. Настройка узлов виртализации

На каждом узле виртуализации необходимо смонтировать каталоги хранилищ данных в /var/lib/one/datastores/<ID_хранилища>.

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

После настройки хранилища на узле управления и вычислительных узлах необходимо зарегистрировать два хранилища: системное и хранилище образов.
Регистрация системного хранилища:
  1. Создайте файл systemds.conf:
    NAME    = nfs_system
    TM_MAD  = shared
    TYPE    = SYSTEM_DS
    
  2. Зарегистрируйте хранилище:
    $ onedatastore create systemds.conf
    ID: 103
    
Для создания системного хранилища необходимо указать:
  • NAME — название хранилища;
  • TYPE — SYSTEM_DS;
  • TM_MAD — shared (режим общей файловой системы);
  • BRIDGE_LIST — список узлов с подключённым системным хранилищем (через пробел).
Регистрация хранилища образов:
  1. Создайте файл imageds.conf:
    NAME    = nfs_images
    DS_MAD  = fs
    TM_MAD  = shared
    TYPE    = IMAGE_DS
    
  2. Зарегистрируйте хранилище:
    $ onedatastore create imageds.conf
    ID: 104
    
Для создания хранилища образов необходимо указать:
  • NAME — название хранилища;
  • DS_MAD — fs (файловый драйвер);
  • TYPE — IMAGE_DS;
  • TM_MAD — shared (режим общей файловой системы);
  • CONVERT — yes (по умолчанию) или no; при yes формат образа будет преобразован в формат, поддерживаемый драйвером.

Примечание

Если доступно несколько системных хранилищ данных, атрибут TM_MAD_SYSTEM будет установлен после выбора хранилища данных.

Примечание

Оба хранилища (системное и хранилище образов) должны использовать одинаковый драйвер передачи (TM_MAD).
После регистрации на узле управления в каталоге /var/lib/one/datastores/ будут созданы каталоги 103 и 104. На узлах виртуализации эти каталоги не создаются автоматически, поэтому их необходимо создать вручную:
$ mkdir /var/lib/one/datastores/103
$ mkdir /var/lib/one/datastores/104
В каталог /var/lib/one/datastores/<ID_хранилища> на узле управления и на узлах виртуализации необходимо смонтировать удалённый NFS-каталог. Например:
# mount -t nfs 192.168.0.157:/export/storage /var/lib/one/datastores/104
Для автоматического монтирования при загрузке системы добавьте запись в файл /etc/fstab:
192.168.0.157:/export/storage /var/lib/one/datastores/104   nfs   intr,soft,nolock,_netdev,x-systemd.automount    0 0

Примечание

Для возможности монтирования NFS-хранилища на всех узлах должен быть запущен клиент NFS:
# systemctl enable --now nfs-client.target
Список экспортируемых ресурсов NFS-сервера можно получить командой:
# showmount -e 192.168.0.157

Важно

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

29.4.2.4. Дополнительная конфигурация

Дополнительно могут использоваться следующие параметры:
  • QCOW2_OPTIONS — дополнительные параметры для qemu-img create (например, -o cluster_size=2M). Задаются в файле /etc/one/tmrc;
  • DD_BLOCK_SIZE — размер блока для операций dd (по умолчанию 64 КБ). Может быть задан в файле /var/lib/one/remotes/etc/datastore/fs/fs.conf;
  • SUPPORTED_FS — список поддерживаемых файловых систем (через запятую). Может быть установлен в файле /var/lib/one/remotes/etc/datastore/datastore.conf;
  • FS_OPTS_<FS> — параметры создания файловой системы для конкретного типа ФС. Указывается отдельно для каждого типа файловой системы в файле /var/lib/one/remotes/etc/datastore/datastore.conf;
  • SPARSE — если установлено в NO, файлы будут занимать всё выделенное пространство (неразрежённые файлы). Требует установки параметра QCOW2_STANDALONE="YES" в системном хранилище;
  • QCOW2_STANDALONE — если установлено в YES, создаётся автономный qcow2-диск без backing file.

Примечание

Перед добавлением новой файловой системы в список SUPPORTED_FS убедитесь, что команда mkfs.<fs_name> доступна на узле управления и гипервизорах.