Здравия всем! В этой заметке расскажу как в Proxmox 7 добавлять различные хранилища для виртуальных машин.
После установки обычно создается хранилище local, которое располагается в системном разделе, там же где и сама операционная система по адресу /var/lib/vz. В нем уже можно и хранить диски виртуальных машин.
Из моей практики, лучше так не делать. И не трогать системный раздел. Я когда ставил Proxmox под системный раздел выделил 35гб. У меня осталось как раз место на диске, чтобы сделать отдельное хранилище.
Подключение диска как LVM хранилище
Давайте на не занятом пространстве диска, создадим раздел. Определим имена дисков в нашей системе.
ls -l /dev | grep sd
brw-rw---- 1 root disk 8, 16 Jul 8 21:29 sda
brw-rw---- 1 root disk 8, 17 Jul 8 21:29 sda1
brw-rw---- 1 root disk 8, 18 Jul 8 21:29 sda2
brw-rw---- 1 root disk 8, 32 Jul 7 21:52 sdb
brw-rw---- 1 root disk 8, 33 Jul 7 21:52 sdb1
brw-rw---- 1 root disk 8, 34 Jul 7 21:52 sdb2
У меня 2 диска sda и sdb. На них уже есть по 2 раздела. Давайте на sdb сделаем еще один раздел с помощью утилиты
cfdisk /dev/sdb
Выбираем свободное пространство, создаем на нем раздел и указываем тип — Linux LVM. Как пользоваться утилитой cfdisk я описывал в статье.
После этих действий, нам нужно перечитать таблицу разделов:
partprobe -s
Если команда не найдена, установите parted:
apt install parted
Проверим новый раздел:
ls -l /dev | grep sd
brw-rw---- 1 root disk 8, 16 Jul 8 21:29 sda
brw-rw---- 1 root disk 8, 17 Jul 8 21:29 sda1
brw-rw---- 1 root disk 8, 18 Jul 8 21:29 sda2
brw-rw---- 1 root disk 8, 18 Jul 8 21:29 sda3
brw-rw---- 1 root disk 8, 32 Jul 7 21:52 sdb
brw-rw---- 1 root disk 8, 33 Jul 7 21:52 sdb1
brw-rw---- 1 root disk 8, 34 Jul 7 21:52 sdb2
Создадим в LVM группу томов:
pvcreate /dev/sda3
vgcreate disk-sda /dev/sda3
Теперь перейдем в веб интерфейс и создадим новое хранилище
Указываем параметры для созданной группы томов
Как видим из скриншота ID это любое имя хранилища, которое нам больше нравится, а Группа томов это тот том, который мы создали в терминале.
Все готово. Новое хранилище добавили. Его можно использовать для хранения дисков виртуальных машин.
Подключение RAID 1 как LVM хранилище
У меня 2 SSD диска. Я решил на них создать RAID 1 из незанятого места на дисках. Определим их в системе:
ls -l /dev | grep sd
brw-rw---- 1 root disk 8, 0 Jul 10 20:18 sda
brw-rw---- 1 root disk 8, 1 Jul 10 20:19 sda1
brw-rw---- 1 root disk 8, 16 Jul 10 20:18 sdb
brw-rw---- 1 root disk 8, 17 Jul 10 20:18 sdb1
brw-rw---- 1 root disk 8, 18 Jul 10 20:18 sdb2
brw-rw---- 1 root disk 8, 32 Jul 10 20:18 sdc
brw-rw---- 1 root disk 8, 33 Jul 10 20:18 sdc1
brw-rw---- 1 root disk 8, 34 Jul 10 20:18 sdc2
У меня это sdb и sdc. На них есть уже по 2 раздела, на которых установлена система. Создадим на каждом из них еще по одному разделу из всего оставшегося свободного места.
cfdisk /dev/sdb
Создаю раздел 400Gb, меняю тип на Linux raid и записываю изменения на диск
Тоже самое делаю со вторым
Теперь перечитаем таблицу разделов
partprobe -s
Проверим новые разделы:
ls -l /dev | grep sd
brw-rw---- 1 root disk 8, 0 Jul 10 21:24 sda
brw-rw---- 1 root disk 8, 1 Jul 10 21:24 sda1
brw-rw---- 1 root disk 8, 16 Jul 10 21:24 sdb
brw-rw---- 1 root disk 8, 17 Jul 10 21:24 sdb1
brw-rw---- 1 root disk 8, 18 Jul 10 21:24 sdb2
brw-rw---- 1 root disk 8, 19 Jul 10 21:24 sdb3
brw-rw---- 1 root disk 8, 32 Jul 10 21:24 sdc
brw-rw---- 1 root disk 8, 33 Jul 10 21:24 sdc1
brw-rw---- 1 root disk 8, 34 Jul 10 21:24 sdc2
brw-rw---- 1 root disk 8, 35 Jul 10 21:24 sdc3
Теперь объединим только что созданные разделы в RAID1:
mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sdb3 /dev/sdc3
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
Проверим информацию о mdadm:
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdc3[1] sdb3[0]
419298304 blocks super 1.2 [2/2] [UU]
[>....................] resync = 2.1% (9203584/419298304) finish=34.1min speed=200064K/sec
bitmap: 4/4 pages [16KB], 65536KB chunk
Все в порядке, массив синхронизируется. Пока массив синхронизируется добавим иноформацию о новом массиве в конфигурационный файл mdadm:
mdadm --examine --scan | grep 'md/1' >> /etc/mdadm/mdadm.conf
Конфигурационный файл примет такой вид:
cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
ARRAY /dev/md/0 metadata=1.2 UUID=28a306c4:47244ca1:070f431b:513a91f7 name=hv1:0
# This configuration was auto-generated on Thu, 07 Jul 2022 21:20:07 +0300 by mkconf
ARRAY /dev/md/1 metadata=1.2 UUID=2676e0b1:5a9cbb0a:ab970234:b702a9e1 name=hv1.hserv.su:1
Теперь создадим том LVM и на его основе хранилище. Выполним инициализацию раздела:
pvcreate /dev/md1
Создадим группу томов:
vgcreate raid1-md1 /dev/md1
Теперь перейдем в веб интерфейс и создадим новое хранилище
Указываем параметры для созданной группы томов
Все готово. Новое хранилище добавили. Его можно использовать для хранения дисков виртуальных машин.
Хранилище по NFS
Очень часто бывает нужно подключить NFS хранилище. Я в основном использую такие хранилища для бэкапов и ISO образов. Подключим его.
Когда указываем адрес сервера, список экспорта будет автоматически запрошен с сервера NFS.
Заключение
Как видно из этой заметки, добавление новых хранилищь очень легкая задача. Главное это без спешки, всё сделать по шагам. И тогда при добавлении нового раздела или raid, вы не потеряите свои данные.
Познавательная статейка, на доступном языке и с детальным объяснением, спасибо. А что если немного усложнить задачку, к примеру, есть 2 ноды Proxmox с картами InfiniBand (сервера соединены напрямую и настроены), сетевые карты тоже есть. В этом случае на обеих нодах есть по LVM на raid60. При создании LVM Storage в Cluster вроде как создается raid60 с типом LVM и на обеих нодах отображается этот раздел/Storage.
Но возникает ошибка при миграции VM с одной ноды на другую независимо от состояния VM (т.е. неважно, включена или выключена). Как в этом случае настроить LVM Storage для совместного использования?
Здравствуйте, Виталий! Я с кластерными нодами работал, когда есть третье устройство NAS сервер или дисковая полка. Добиться «нормальной» для меня работы нод без третьего устройства я не смог.