При использовании LXC контейнеров и виртуальных машин в Proxmox, часто бывает необходимо передавать файлы между контейнерами. Есть простой способ сделать доступной папку хоста внутри контейнера:
pct set 103 -mp0 /home,mp=/hohome
Команда очень простая. Для LXC контейнера с номером 103, мы делаем доступной (монтируем) папку /home как /hohome (HostHome). При монтировании, у нас есть 8 слотов, от mp0 до mp7.
Другой пример, флешка sda1 может быть смонтирована так:
pct set 103 -mp1 /mnt/sda1,mp=/hosda1
Добавление дискового массива в LXC
Рассмотрим пример добавления 4х вновь подключенных дисков в LXC контейнер с OMV
Как видно, OMV получил очень скромные ресурсы и всего 4 GB дискового пространства, при этом работает очень шустро.
Я подключил к системе 4 HDD по 2 TB и хочу сделать из них ZFS raid 5 (на рисунке это sda — sdd).
Для начала посмотрим инфо о дисках и уберем все заводские разбивки.
fdisk -l
Далее установим gparted и сбросим таблицу разделов
apt install parted -y
parted /dev/sda # запускаем для диска sda
(parted) print
Warning: Not all of the space available to /dev/sda appears to be used, you can fix
the GPT to use all of the space (an extra 195352752 blocks) or continue with the
current setting?
Fix/Ignore? f
parted) mklabel GPT # удаляем все разделы и выходим
В итоге получаем чистые диски:
Посмотрим с помощью fdisk
fdisk -l | grep ‘Disk /dev/sd’
Disk /dev/sdb: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk /dev/sdc: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk /dev/sdd: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Итак, делаем 4 раза команду fdisk /dev/sda # для каждого из дисков a b c d
root@pve2:~# fdisk /dev/sdd
Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.### n — new
Command (m for help): n
Partition number (1-128, default 1):
First sector (34-3907029134, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3907029134, default 3907028991):Created a new partition 1 of type ‘Linux filesystem’ and of size 1.8 TiB.
### p — print
Command (m for help): p
Disk /dev/sdd: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: TOSHIBA DT01ACA2
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: AB117175-80F0-493B-AF5A-A425D6E91A00Device Start End Sectors Size Type
/dev/sdd1 2048 3907028991 3907026944 1.8T Linux filesystem### w -write — самая важная команда, записывает изменения на диск!
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Далее форматируем разделы в ext4, для каждого sda1 sdb1 sdc1 sdd1:
mkfs.ext4 /dev/sda1
Контейнер OMV имеет номер 100, обязательно гасим контейнер, иначе ничего не получится.
После снова заходим в консоль pve и пишем :
root@pve2:~# pct set 100 -mp1 /mnt/sda1,mp=/hda1
root@pve2:~# pct set 100 -mp2 /mnt/sdb1,mp=/hdb1
root@pve2:~# pct set 100 -mp3 /mnt/sdc1,mp=/hdc1
root@pve2:~# pct set 100 -mp4 /mnt/sdd1,mp=/hdd1
У меня это не сработало, т.е. диски монтируются, но контейнер не может стартовать. После нескольких проверок, обнаружилась проблема именно в контейнере, т.к. к другим контейнерам диски подцеплялись без проблем.
В итоге через веб-интерфейс в разделе Datacenter я сделал новый zfs raidz из 4 дисков x 2 TB, и назвал его sdz6 (raid5, поэтому емкость 6 TB).
Его можно прикрепить к контейнеру командой, как показано ниже, или через веб-интерфейс, добавляя новую шару в ресурсах контейнера и указывая новый путь и размер диска.
pct set 100 -mp0 /mnt/sdz6,mp=/sdz6