4.3.6. Использование NFS¶
Сетевая файловая система – это реализация протокола распределенной файловой системы NFS. Она обеспечивает (совместное) использование удаленных каталогов по сети. Такие каталоги принято называть shared-ресурсами.
С помощью NFS удаленные каталоги монтируются в локальную файловую систему, что позволяет работать с файлами (shared-ресурсами) так же, как если бы они были локальными файлами.
Определите физическую ноду для установки серверной части и способ хостинга ресурсов сетевой файловой системы (ОС Linux). Рекомендуется выбрать ту же ОС, которая устанавливается на узлы облачной инфраструктуры.
Подключите узел к инфраструктурной сети и обеспечьте сетевую связность с управляющими узлами. Выполните установку ПО NFS на узле:
sudo dnf install nfs-utils
Выполните настройку экспорта ресурса (Раздел 4.3.6.1).
После завершения редактирования параметров экспорта NFS-ресурса
запустите системную службу nfs-server
:
systemctl start nfs-server
Проверьте работоспособность подсистем NFS (Раздел 4.3.6.2) и включите автозагрузку службы (при старте ОС):
systemctl enable nfs-server
Сконфигурируйте бэкэнд на управляющем узле (Раздел 4.3.6.3).
Внимание.
Убедитесь, что (на УУ) установлены пакеты
nfs-kernel-server
иnfs-common
. Оба пакета используются как сервером так и клиентом NFS.
4.3.6.1. Настройка экспорта (NFS-сервера)¶
Настройки NFS-сервера хранятся в файле конфигурации экспорта ресурсов NFS.
Откройте этот файл (/etc/exports
) в текстовом редакторе и
отредактируйте. Используйте одну из команд:
vi /etc/exports
или
nano /etc/exports
Например, при настройке NFS-ресурса для хранения резервных копий Cinder
файл exports
должен содержать строку:
/home/cinder-backup *(rw,sync,no_root_squash,no_all_squash)
Смысловое значение параметров подключения директории, хранящеся в «домашней»
файловой системе узла, в точку монтирования (/home/cinder-backup
):
rw – доступ на чтение и запись (может принимать значение ro – только чтение);
sync – синхронный режим доступа (может принимать обратное значение – async):
sync - указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами;
async - указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных.
no_root_squash – запрет подмены uid/gid для суперпользователя (root).
По умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией снимается это ограничение;
all_squash / no_all_squash – установка подмены идентификатора от всех пользователей.
Варианты использования:
- all_squash: подмена запросов от ВСЕХ пользователей (не только root) на анонимного uid/gid,либо на пользователя, заданного в параметре anonuid/anongid. Используется обычно для публичного экспорта директорий;
- no_all_squash: запрет подмены uid/gid для от всех пользователей.
4.3.6.2. Монтирование раздела NFS¶
Когда планируется использование бэкэнда NFS (Раздел 4.3.6.3) службой образов (Glance), необходимо выполнить следующие действия:
- Обеспечить поддержку файловых систем, основанных на использовании NFS-сервера.
dnf install nfs-utils
Проверить, загружен ли модуль ядра, обеспечивающий поддержку (nfs):
cat /proc/filesystems | grep nfs
Если модуль (
nfs
) не отобразился в выводе, то необходимо его загрузить:modprobe nfs
Примонтировать общий ресурс (NFS-share) в точку монтирования:
mount <IP-адрес_NFS-сервера>:/<shared-ресурс> /var/lib/glance/images
где:
<shared-ресурс> – название точки доступу к shared-ресурсу (сетевой папке).
Необходимо, чтобы директория /var/lib/glance
и вложенные папки
(images
) были наделены правами доступа пользователя glance.
Выполните команду:
ls -la /var/lib/glance
Если права не соответствуют требованию доступа (glance:glance), то выполните команду chown -R glance:glance /var/lib/glance.
Для проверки работы подсистем NFS рекомендуется загрузить файл образа (Раздел 4.4) и дождаться завершения операции [2]:
glance image-list
Примечание.
В случае, если общий ресурс не удаётся примонтировать, подключитесь к узлу, разделяющему ресурс с помощью NFS-сервера, и уточните содержимое файла
/etc/exports
[3].
4.3.6.3. Конфигурирование бэкэнда NFS¶
Конфигурирование бэкэнда NFS выполняется на УУ.
Пропишите параметры настройки бэкэнда в секциях [DEFAULT] и [nfs], как показано ниже [4]:
[DEFAULT]
enable_backends = nfs
[nfs]
volume_backend_name = nfs
volume_driver = cinder.volume.drivers.nfs.NfsDriver
nfs_mount_point_base = /var/lib/cinder/mnt
nas_host = <IP-адрес_NFS-сервера>
nas_share_path = <экспорт_NFS-сервера>
nas_secure_file_operations = False
nas_secure_file_permissions = False
nas_option = False
nfs_snapshot_support = True
image_upload_use_cinder_backend = True
image_upload_use_internal_tenant = True
Укажите в параметре „nas_host=“ IP-адрес сервера NFS и в параметре „nas_share_path=“ путь к директории экспорта (Раздел 4.3.6.1).
При использовании бэкэнда Cinder для хранения образов необходимо
скорректировать найстроку сервиса Glance. Для этого в файле
reference/k8s/glance/glance-api.conf
блок параметров в секции
[glance_store] должен выглядеть следующим образом:
[glance_store]
stores = cinder
default_store = cinder
cinder_volume_type = nfs
cinder_catalog_info = volumev2:cinderv2:publicURL
cinder_store_auth_address = https://keystone.test.tionix.ru:5000/v3/
cinder_store_user_name = cinder
cinder_store_password = пароль
cinder_store_project_name = service
rootwrap_config = /etc/glance/rootwrap.conf
Разграничение volume type указывается, если настроено несколько хранилищ (бэкэндов). Для выбора использования бэкэнда по-умолчанию укажите параметр „default_volume_type“.
После изменений в конфигурации бэкэнда необходимо перезапустить связанные с ним системные службы. Выполните команду:
systemctl restart openstack-cinder-*
Сноски
[1] | https://baks.dev/article/centos/how-to-install-and-configure-an-nfs-server-on-centos-8 |
[2] | https://docs.openstack.org/glance/victoria/admin/manage-images.html |
[3] | https://linux.die.net/man/5/exports, https://losst.ru/nastrojka-nfs-v-ubuntu-16-04 |
[4] | https://docs.openstack.org/ocata/config-reference/block-storage/config-options.html |