Задача: Хочу в своей локальной сети поднять NFS
сервис, как общий ресурс для виртуальных машин гипервизора Debian 10 + Proxmox 6
. Это одна из частей большой заметки, про то как познакомиться к кластером из двух нод Proxmox 6
А вот сервис NFS
будет развернут на обычном компьютере и конечно же под Ubuntu 18.04 Server
, а вот диски под это дело у меня буду M.2
, т.е. я по-сути смогу смоделировать как будто бы у меня выделенное хранилище.
Что понадобится:
Гипервизор на базе Debian 10 + Proxmox 6
Hostname: srv-proxmox
IP: 172.33.33.25
Станция/Сервер
Hostname: srv-nas
IP: 172.33.33.21
На заметку: Часть настроек была взята из заметки »
Шаг №1:
Моя базовая настройка системы Ubuntu 18.04 Server
на последующую работу:
ekzorchik@srv-nas:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject ekzorchik@srv-nas:~$ sudo ./dproject/default
Шаг №2:
Поднимаю на системе Ubuntu 18.04 Server
сервис NFS
версии 3 (Network File System):
ekzorchik@srv-nas:~$ sudo apt-get install -y nfs-kernel-server
Шаг №3:
Произвожу настройки на доступ в каталог /srv/vm
куда по сети буду складываться и работать их него виртуальные машины сервиса Debian 10 + Proxmox 6:
ekzorchik@srv-nas:~$ sudo mkdir /srv/vm ekzorchik@srv-nas:~$ sudo chown nobody:nogroup /srv/vm ekzorchik@srv-nas:~$ sudo nano /etc/exports /srv/vm 172.33.33.0/24(rw,sync,no_subtree_check,no_root_squash)
Шаг №4:
Перезапускаю сервис NFS
для активации настроек
ekzorchik@srv-nas:~$ sudo exportfs -a ekzorchik@srv-nas:~$ sudo exportfs /srv/vm 172.33.33.0/24 ekzorchik@srv-nas:~$ sudo systemctl restart nfs-kernel-server && sudo systemctl status nfs-kernel-server | head -n5 ● nfs-server.service - NFS server and services Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled) Active: active (exited) since Thu 2020-04-30 09:44:40 MSK; 11ms ago Process: 2358 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS) Process: 2357 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS) ekzorchik@srv-nas:~$
Шаг №5:
Чтобы отобразить какие ресурсы и для кого расшарены:
ekzorchik@srv-nas:~$ sudo showmount -e Export list for srv-nas: /srv/vm 172.33.33.0/24 ekzorchik@srv-nas:~$
из вывода видно, что папка /srv/vm
доступна всем из сети 172.33.33.0/24
Шаг №6:
Подключаю NFS
ресурс в Proxmox 6
https://IP&DNS:8006 (https://172.33.33.25:8006) — user&pass — Datacenter — Storage — Add — NFS
Затем указываю настройки добавления NFS
хранилища:
ID (Имя хранилища): nfs
Nodes: srv-proxmox
Server (Адрес хоста где поднята серверная часть NFS): 172.33.33.21
Enable (Включение/Выключение хранилища): отмечено галочкой
Max Backups (Максимальное численное значение сохраняемых файлов резервных копий. Более старые файлы резервных копий автоматически удаляются): 100
Export (Доступный разделяемый ресурс NFS): /srv/vm
Content (Тип сохраняемого содержимого): Disk image, ISO image, VZDump backup file
Advanced: отмечаю галочкой
NFS Version: 3
и нажимаю Add
Шаг №7:
Результат используемых хранилищ на моем гипервизоре Debian 10 + Proxmox 6
Сделаю пояснения, что это за хранилища:
- disk1,disk2 (LVM-Thin) создан по заметке «Как добавить диск, как LVM-Thin в Proxmox 6 on Debian 10«
- local (Directory) — это единственный диска на компьютере, на нем стоит Debian 10 + Proxmox 6
- nfs (NFS) — это сетевая файловая система на другой системе, там у меня диск размером в 1Tb.
Теперь у Вас есть возможность при создании VM
указать что файлы виртуальной машины расположить на NFS
-разделе
ekzorchik@srv-nas:~$ sudo apt-get install -y tree ekzorchik@srv-nas:~$ sudo tree /srv/vm /srv/vm ├── dump ├── images │ └── 103 │ └── vm-103-disk-0.qcow2 └── template └── iso 5 directories, 1 file ekzorchik@srv-nas:~$
Шаг №8:
Помимо создания и указания, что в роли хранилища будет выступать NFS
, можно клонировать VM
и т.д, как если бы это было локально подключенные диски.
На заметку: Обязательно в этом случае должна быть схема:
Гипервизоре (ether gigabit)
NFS (ether gigabit)
Роутер (ether gigabit)
т.е. вся Ваша сеть должна быть не менее 1Gb/s
дабы не было мучительно долго ожидать отклика от виртуальных маших и взаимодействия с ними. А лучше сделать объединение сетевых интерфейсов, т.е. настроить bonding
. Два по 1Gb/s
превратятся в 2Gb/s.
Шаг №9:
Также можно не через Web
-интерфейс Proxmox 6
настроить подключение, а через правку конфигурационных файлов:
ekzorchik@srv-proxmox:~$ sudo pvesm nfsscan 172.33.33.21 /srv/vm 172.33.33.0/24 ekzorchik@srv-proxmox:~$ ekzorchik@srv-proxmox:~$ sudo bash -c "cat /etc/pve/storage.cfg" [sudo] password for ekzorchik: lvmthin: disk1 thinpool data vgname disk1 content images,rootdir dir: local path /var/lib/vz content vztmpl,rootdir,iso,images,snippets maxfiles 0 lvmthin: disk2 thinpool data2 vgname disk2 content images,rootdir nfs: nfs export /srv/vm path /mnt/pve/nfs server 172.33.33.21 content images,iso,backup maxfiles 100 nodes srv-proxmox options vers=3 ekzorchik@srv-proxmox:~$ systemctl restart pveproxy.service
На заметку: Я в этом случае ("Шаг №9"
) выбираю все же добавление хранилища через Web
-интерфейс.
Итого данной заметкой я получил возможность сделать общее сетевое хранилище для виртуальных машин своего тестового полигона на базе связки Debian 10 + Proxmox 6
. К тому же если в Вашей сети есть NFS
, то можно опубликовать отдельный каталог для VM
, для Backup
— ведь бекап не так часто используется, да и будет располагаться не на самом хосте. Ведь по правилам, бекап должен быть в другом месте, а не на сервере/системе где он делается. А лучше бекап бекапа. Итого заметка работоспособна, на этом пока все, с уважением автор блога Олло Александр aka ekzorchik.