Я использую LXD несколько лет, и я рад использовать эту платформу в своей тестовой среде. Но несколько дней назад мне не удалось установить Microsoft SQL server 2017. Причина в том, что я использовал бэкэнд ZFS по умолчанию.
Хорошо, я проверил, нужен ли ext4. Мне нужно использовать LVM. Нет проблем, я создал «Группу томов» и пометил использовать эту группу в LXD. Но ... Первая проблема, которую я видел, что LXD создает логические тома не более 10GB.
После этой команды
lxc init ubuntu:16.04 container2
Я получил этот том:
Disk /dev/mapper/mainVG-containers_container2: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Я пытался добавить размер через lvextend
:
lvextend -L +10G /dev/mapper/mainVG-containers_container2
Но я получил следующую ошибку:
Логический том container_container2 не найден в группе томов mainVG
Хорошо, я попытался создать логический том без LXD.
Я сделал:
lvcreate -n lv_data1 --size 12G mainVG
И получил:
Disk /dev/mapper/mainVG-lv_data1: 12 GiB, 12884901888 bytes, 25165824 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
И я сделал:
lvextend -L +10G /dev/mapper/mainVG-lv_data1
Size of logical volume mainVG/lv_data1 changed from 12.00 GiB (3072 extents) to 22.00 GiB (5632 extents).
Logical volume mainVG/lv_data1 successfully resized.
Как видите, в этом случае я могу успешно изменить размер логического тома.
Может я чего-то не знаю?
Может надо что-то добавить в какую-нибудь группу безопасности? Не могли бы вы мне помочь ?
Если вы знаете другой способ изменить размер моего логического тома, я буду рад услышать его от вас. Спасибо
И есть еще вариант. Вы можете попросить LXD изменить размер за вас.
Но он не справится с изменением размера тонкого пула (если он недостаточно велик).
root@hawk:~# lxc config set CONTAINER root size 100GB
Имейте в виду, что в большинстве случаев вам необходимо перезапустить контейнер.
А также есть ограничение LVM, если есть снимки с этого тома, вы не можете изменить его размер, пока они не будут удалены.
Вы можете просто расширить LV с помощью lvextend. Вот пример.
Вы начинаете с загрузки pool0 с хранилищем 600 ГБ и тома container_mirrors с хранилищем 10 ГБ.
root@hawk:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
containers_lugbg main Vwi-a-tz-- 10.00g pool0 images_15 8.31
containers_mirrors main Vwi-a-tz-- 10.00g pool0 images_33 7.59
containers_ubuntu main Vwi-aotz-- 10.00g pool0 images_39 7.03
images_15 main Vwi-a-tz-- 10.00g pool0 6.10
images_33 main Vwi-a-tz-- 10.00g pool0 5.86
images_39 main Vwi-a-tz-- 10.00g pool0 6.22
pool0 main twi-aotz-- 600.00g 0.63 3.39
root main -wi-ao---- 40.00g
Затем вы расширяете том (container_mirrors):
root@hawk:~# lvextend -L +800G main/containers_mirrors
WARNING: Sum of all thin volume sizes (880.00 GiB) exceeds the size of thin pool main/pool0 (600.00 GiB).
WARNING: You have not turned on protection against thin pools running out of space.
WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
Size of logical volume main/containers_mirrors changed from 10.00 GiB (2560 extents) to 810.00 GiB (207360 extents).
Logical volume main/containers_mirrors successfully resized.
Вы можете не обращать внимания на ошибку, если это то, что вам нужно, но если вы действительно хотите расширить thinpool, теперь вам нужно сделать:
root@hawk:~# lvextend -l +300G main/pool0
Invalid argument for --extents: +300G
Error during parsing of command line.
root@hawk:~# lvextend -L +300G main/pool0
Size of logical volume main/pool0_tdata changed from 600.00 GiB (153600 extents) to 900.00 GiB (230400 extents).
Logical volume main/pool0_tdata successfully resized.
Результат теперь такой:
root@hawk:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
containers_lugbg main Vwi-a-tz-- 10.00g pool0 images_15 8.31
containers_mirrors main Vwi-a-tz-- 810.00g pool0 images_33 0.09
containers_ubuntu main Vwi-aotz-- 10.00g pool0 images_39 7.03
images_15 main Vwi-a-tz-- 10.00g pool0 6.10
images_33 main Vwi-a-tz-- 10.00g pool0 5.86
images_39 main Vwi-a-tz-- 10.00g pool0 6.22
pool0 main twi-aotz-- 900.00g 0.42 3.59
root main -wi-ao---- 40.00g
Наконец, вам нужно изменить размер файловой системы контейнера, что делается с помощью resize2fs. Во избежание проблем сначала следует остановить контейнер:
root@hawk:~# lxc stop mirrors
Затем проверьте fs:
root@hawk:~# e2fsck -f /dev/main/containers_mirrors
e2fsck 1.45.0 (6-Mar-2019)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/main/containers_mirrors: 16531/655360 files (0.2% non-contiguous), 203696/2621440 blocks
И, наконец, измените размер fs:
root@hawk:~# resize2fs /dev/main/containers_mirrors
resize2fs 1.45.0 (6-Mar-2019)
Resizing the filesystem on /dev/main/containers_mirrors to 212336640 (4k) blocks.
The filesystem on /dev/main/containers_mirrors is now 212336640 (4k) blocks long.