Proxmox. Подключение дисков в хранилище

Здравия всем! В этой заметке расскажу как в 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. Подключение дисков в хранилище»

  1. Познавательная статейка, на доступном языке и с детальным объяснением, спасибо. А что если немного усложнить задачку, к примеру, есть 2 ноды Proxmox с картами InfiniBand (сервера соединены напрямую и настроены), сетевые карты тоже есть. В этом случае на обеих нодах есть по LVM на raid60. При создании LVM Storage в Cluster вроде как создается raid60 с типом LVM и на обеих нодах отображается этот раздел/Storage.
    Но возникает ошибка при миграции VM с одной ноды на другую независимо от состояния VM (т.е. неважно, включена или выключена). Как в этом случае настроить LVM Storage для совместного использования?

    1. Здравствуйте, Виталий! Я с кластерными нодами работал, когда есть третье устройство NAS сервер или дисковая полка. Добиться «нормальной» для меня работы нод без третьего устройства я не смог.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.