Download PDF
Download page NAS.
NAS
Возможность работы с NAS доступна только в версии VMmanager Infrastructure.
NAS (Network Attached Storage) — это сетевое хранилище, обеспечивающее доступ к данным на уровне файлов. NAS может быть использовано для хранения образов ВМ и связанных клонов.
Если NAS-хранилище подключено к кластеру, то оно автоматически добавляется в качестве репозитория ISO-образов. Подробнее см. в статье Репозитории ISO-образов.
Ограничения NAS
Миграция ВМ c дисками в NAS доступна только в другое NAS или файловое хранилище.
Рекомендуется использовать высокоскоростное сетевое подключение к хранилищу (10 Гбит/с). При подключении с меньшей пропускной способностью скорость обмена данными будет существенно снижена.
GlusterFS
Использование узлов кластера VMmanager в качестве узлов GlusterFS не поддерживается. Это может привести к:
- снижению производительности ВМ и системы хранения данных из-за конфликтов доступа к ресурсам;
- риску потери данных и снижению доступности хранилища из-за высокой нагрузки на сервер.
Логика работы
Чтобы подключить NAS к узлу кластера, на устройстве с NAS должна быть настроена NFS или кластерная файловая система. Кластерная файловая система — это система, которая может одновременно использоваться несколькими серверами. К таким системам относятся OCFS2, GlusterFS, CephFS, GFS2 и др.
Для корректной работы используйте NFS версии не ниже 4.2.
Узлы кластера VMmanager получают доступ к NAS через примонтированную директорию, которая указывается при подключении хранилища.
Настройка файловой системы
В качестве примера рассматривается настройка NFS на серверах с ОС Astra Linux и AlmaLinux. Вы также можете использовать файловую систему на базе OCFS2, GlusterFS, CephFS или GFS2.
Astra Linux
Подключение хранилища NFS к узлу кластера с ОС Astra Linux с уровнем защищенности "Воронеж" не поддерживается. Это связано с тем, что NFS не поддерживает мандатное управление доступом и мандатный контроль целостности.
Для установки и настройки NFS используйте инструкции из официальной документации Astra Linux. Настройку сервера выполните на сервере с хранилищем, настройку клиента — на узлах кластера.
При настройке конфигурационного файла /etc/exports укажите для разделяемого ресурса параметр no_root_squash:
Пример конфигурации
/srv/vmshare 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
Если на узлах кластера включена отказоустойчивость, для монтирования хранилища выполните команды:
mount.nfs4 -o user,soft,timeo=5,retry=1 <NAS_IP>:/<NAS_DIR> /<NODE_DIR>
chmod -R 777 <NODE_DIR>
<NAS_IP> — IP-адрес хранилища
<NAS_DIR> — монтируемая директория на сервере хранилища
<NODE_DIR> — директория на узле кластера
Настройка клиента с помощью Ansible
Вы можете автоматизировать настройку клиента NFS. Для этого запустите на каждом узле кластера Ansible-скрипт следующего содержания:
Замените в скрипте IP-адрес 192.0.2.1 на IP-адрес хранилища.
---
- name: Настройка подключения NFS
hosts: all
become: true
tasks:
- name: Установить пакет nfs-common
apt:
name: nfs-common
state: present
update_cache: yes
- name: Проверить, смонтирован ли NFS в /mnt/nfsshare
command: mountpoint -q /mnt/nfsshare
register: mountpoint_check
ignore_errors: true
- name: Создать каталог /mnt/nfsshare
file:
path: /mnt/nfsshare
state: directory
mode: '0755'
when: mountpoint_check.rc != 0
- name: Подключить NFS-ресурс
mount:
src: 192.0.2.1:/srv/vmshare
path: /mnt/nfsshare
fstype: nfs
opts: defaults
state: mounted
when: mountpoint_check.rc != 0
- name: Создать резервную копию файла /etc/fstab
copy:
src: /etc/fstab
dest: /etc/fstab.bak
remote_src: yes
- name: Добавить запись в /etc/fstab
lineinfile:
path: /etc/fstab
line: "192.0.2.1:/srv/vmshare /mnt/nfsshare nfs defaults 0 0"
state: present
Подробнее о создании и запуске скриптов см. в статье Создание скрипта для узла.
AlmaLinux
- На сервере хранилища:
Создайте директорию для монтирования. Например, /mnt/nfsshare/:
mkdir -p /mnt/nfsshareBASHУстановите права на доступ к директории:
chown nobody:nobody /mnt/nfsshareBASHchmod 777 /mnt/nfsshareBASHУстановите серверное ПО NFS:
dnf update -yBASHdnf -y install nfs-utilsBASHЗапустите сервис и добавьте его в автозагрузку:
systemctl start nfs-server.serviceBASHsystemctl enable nfs-server.serviceBASHДобавьте IP-адреса узлов кластера в конфигурационный файл /etc/exports. Для этого для каждого узла кластера выполните команду:
echo '/mnt/nfsshare <NODE_IP>(rw,sync,no_subtree_check,no_root_squash)' >> /etc/exports && exportfs -vraBASH<NODE_IP> — IP-адрес узла кластера
Разрешите подключения NFS в настройках файрвола:
firewall-cmd --permanent --add-port=2049/tcpBASHfirewall-cmd --reloadBASH
На узлах кластера:
Установите клиентское ПО NFS:
dnf -y install nfs-utils nfs4-acl-toolsBASHЗапустите сервис и добавьте его в автозагрузку:
systemctl start nfs-client.targetBASHsystemctl enable nfs-client.targetBASHСоздайте директорию, к которой будет примонтировано хранилище. Например, /mnt/nas/:
mkdir -p /mnt/nasBASHПримонтируйте хранилище:
Если в кластере отключена отказоустойчивость
mount.nfs4 <NAS_IP>:/mnt/nfsshare /mnt/nasBASHЕсли в кластере включена отказоустойчивость
mount.nfs4 -o user,soft,timeo=5,retry=1 <NAS_IP>:/mnt/nfsshare /mnt/nas && chmod -R 777 /mnt/nasBASH<NAS_IP> — IP-адрес хранилища
Добавьте примонтированный раздел в автозагрузку. Для этого добавьте в файл /etc/fstab строку:
<NAS_IP>:/mnt/nfsshare /mnt/nas nfs rw,suid,dev,auto,nouser,sync 0 0CODE<NAS_IP> — IP-адрес хранилища