Я создал раздел LVM для гостя KVM. Гость KVM также сам использует разделы LVM.
Первоначальный размер гостевого раздела LVM на гипервизоре составлял 160 ГБ. Я расширил до 200 ГБ.
Я перезагрузил гостя, и он узнал новый размер:
# fdisk -l
Disk /dev/vda: **214.7 GB**, 214748364800 bytes
16 heads, 63 sectors/track, 416101 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c1b11
Device Boot Start End Blocks Id System
/dev/vda1 * 3 1018 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2 1018 332882 167259136 8e Linux LVM
Partition 2 does not end on cylinder boundary.
Disk /dev/mapper/vg_main-lv_root: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_main-lv_root doesn't contain a valid partition table
Disk /dev/mapper/vg_main-lv_swap: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_main-lv_swap doesn't contain a valid partition table
Disk /dev/mapper/vg_main-lv_mysql: 158.4 GB, 158385307648 bytes
255 heads, 63 sectors/track, 19255 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_main-lv_mysql doesn't contain a valid partition table
Однако я не могу расширить физический том, чтобы выделить новое пространство для LVM на гостевой машине (/ dev / mapper / vg_main-lv_mysql):
# pvresize -v /dev/vda2
Using physical volume(s) on command line
Archiving volume group "vg_main" metadata (seqno 17).
Resizing volume "/dev/vda2" to 334516224 sectors.
No change to size of physical volume /dev/vda2.
Updating physical volume "/dev/vda2"
Creating volume group backup "/etc/lvm/backup/vg_main" (seqno 18).
Physical volume "/dev/vda2" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
Право Фалька в том, что вы можете изменить размер раздела, но это потенциально более безопасный способ, и тот, который обычно работает без перезагрузки, заключался бы в использовании parted для создания новый раздел, затем создайте новый PV, добавьте его в VG, затем расширьте LV и, наконец, resize2fs FS.
Просто хотел, чтобы вы знали, что есть более одного пути.
Вам нужно изменить размер раздела /dev/vda2
также, поскольку ваш физический том находится в разделе. Ты можешь использовать parted
изменить размер раздела онлайн. Когда вы изменили размер раздела, вы можете изменить размер pv с помощью pvresize
а затем LV с lvextend
.
Лучший,
Фальк
Добавление нового физического тома увеличит фрагментацию, также это не то, что вы можете делать на регулярной основе, иначе у вас будет слишком много PV.
Увеличение размера / dev / vda2 так, чтобы он занимал (в настоящее время) нераспределенное пространство, является правильным путем. Если вы посмотрите на свою таблицу разделов, / dev / vda2 имеет размер всего 160 ГБ, а размер диска - 216 ГБ.
Есть отличный инструмент под названием virt-resize (часть инструментов libguestfs), которая делает именно то, что вам нужно.
Он должен использоваться на самом хосте KVM, а не в гостевой системе.
Если на хосте KVM запущен Debian wheezy или более поздняя версия, вы можете установить этот инструмент с помощью:
apt-get install libguestfs-tools
apt-get update (without this, update-guestfs-appliance might fail)
update-guestfs-appliance
Если вы используете другой дистрибутив, см. http://libguestfs.org/guestfs-faq.1.html#binaries
Предполагая, что имя LV, содержащего гостя, - / dev / vg / guest, вы должны запустить:
lvrename /dev/vg/guest /dev/vg/guest-backup
lvcreate -n guest -L 200G /dev/vg
virt-resize /dev/vg/guest-backup /dev/vg/guest --expand /dev/vda2
virt-resize скопирует все данные из старого LV в новый LV и расширит раздел / dev / vda внутри LV. Конечно, это предполагает, что у вас есть 200 ГБ доступных в vg хоста KVM.
Если вы этого не сделаете, вы должны сделать так, как предлагал Chopper3: обновить таблицу разделов гостевой системы, чтобы «последний» сектор раздела / dev / vda2 был последним сектором / dev / vda.