Расширение диска внутри Hyper-V с помощью LVM

В моей лабораторной среде у меня есть сервер Ubuntu 12.04, к которому я пытаюсь добавить пространство. LVM был настроен при загрузке, и после добавления 100 ГБ с помощью мастера редактирования диска я не могу добавить это пространство в разделы. Я пытался использовать Part Magic, но он не позволяет увеличить размер, хотя я вижу дополнительное пространство.

fdisk -l дает мне;

Disk /dev/sda: 108.4 GB, 108447924224 bytes
255 heads, 63 sectors/track, 13184 cylinders, total 211812352 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097307

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758    33552383    16525313    5  Extended
/dev/sda5          501760    33552383    16525312   8e  Linux LVM

Disk /dev/mapper/ubuntu--vg-root: 14.8 GB, 14751367168 bytes
255 heads, 63 sectors/track, 1793 cylinders, total 28811264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/ubuntu--vg-root doesn't contain a valid partition table

Disk /dev/mapper/ubuntu--vg-swap_1: 2143 MB, 2143289344 bytes
255 heads, 63 sectors/track, 260 cylinders, total 4186112 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/ubuntu--vg-swap_1 doesn't contain a valid partition table

Я до сих пор не использовал LVM и вообще не гуру Linux, поэтому я не уверен, какими будут мои дальнейшие действия, так как я ищу Howtos в этом процессе. В конце я хотел бы также добавить немного места в загрузочный раздел.

Спасибо, что уделили время на чтение этого вопроса, и дайте мне знать, если есть дополнительные подробности, которые я мог бы вам дать.

2 ответа

Решение

Ты используешь gparted изменить размер разделов. В 12.04 вам нужно будет загрузиться с livecd и запустить его оттуда, так как он не может изменить размер смонтированных разделов. В более поздних выпусках он может увеличить количество разделов, пока они монтируются. Это только даст LVM больше места для логических томов. Если вы хотите увеличить логический том, вы можете запустить, например, lvresize -L 30g ubuntu-vg/root увеличить размер вашего корня до 30г. Затем вам нужно указать файловой системе использовать это новое пространство, что вы можете сделать с resize2fs /dev/ubuntu-vg/rootпри условии, что вы используете файловую систему ext4 по умолчанию. Эти два последних шага могут быть выполнены онлайн, а не загружаться с других носителей. Вы также можете указать 100% вместо 30g в lvresize использовать все доступное пространство, но это в некотором роде противоречит цели использования LVM в первую очередь для выделения всего пространства одному логическому тому, поскольку у вас нет свободного места для создания моментальных снимков, новых логических томов или увеличения некоторых томов потом.

Если вы хотите сделать это без инструментов графического интерфейса, вы можете использовать parted.

В моей системе я расширял корневую файловую систему (которая была на dev/sda3) от 128 ГБ до 160 ГБ. Измените приведенные ниже примеры в зависимости от вашей настройки. Все команды необходимо запускать от имени root (sudo -i для входа в систему как root).

Раньше у меня было 95% использования:

# df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv  124G  113G  6.3G  95% /

С виртуальными машинами Gen2 все можно делать онлайн без перезагрузки.

Сначала разверните виртуальный диск с помощью графического интерфейса Hyper-V или инструментов интерфейса командной строки.

Затем вам нужно указать Ubuntu повторно сканировать блочное устройство, в данном случае sda:

# echo 1 > /sys/block/sda/device/rescan

Далее запустите parted и выберите p за print. Он должен признать, что таблица разделов не использует все пространство, и спросить, хотите ли вы исправить это, поэтому выберите Fix в этот момент.

# parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
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 69206016 blocks) or continue with the current setting?
Fix/Ignore? Fix
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 172GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  538MB   537MB   fat32              boot, esp
 2      538MB   1612MB  1074MB  ext4
 3      1612MB  136GB   135GB

Теперь вам нужно расширить раздел. Еще в parted, используйте resizepartдля этого. В моем случае, поскольку я расширяю sda3Я говорю ему изменить размер раздела 3 до 100% доступного пространства. Опять же, настройте команду для своей установки.

(parted) resizepart 3 100%
(parted) p
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 172GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  538MB   537MB   fat32              boot, esp
 2      538MB   1612MB  1074MB  ext4
 3      1612MB  172GB   170GB

(parted) quit

Если вы используете LVM, вам теперь нужно указать ему расширить физический том. pvsпоказывает информацию о ваших физических томах; использовать pvresizeчтобы расширить его. Без заданных параметров он будет использовать все доступное пространство.

# pvs
  PV         VG        Fmt  Attr PSize    PFree
  /dev/sda3  ubuntu-vg lvm2 a--  <125.50g    0
# pvresize /dev/sda3
  Physical volume "/dev/sda3" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized
# pvs
  PV         VG        Fmt  Attr PSize    PFree
  /dev/sda3  ubuntu-vg lvm2 a--  <158.50g 33.00g

Теперь вам нужно расширить логический том, а также саму файловую систему. lvextend с -r переключатель может делать и то, и другое.

# lvs
  LV        VG        Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  ubuntu-lv ubuntu-vg -wi-ao---- <125.50g

# lvextend -l +100%FREE -r /dev/mapper/ubuntu--vg-ubuntu--lv
  Size of logical volume ubuntu-vg/ubuntu-lv changed from <125.50 GiB (32127 extents) to <158.50 GiB (40575 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 16, new_desc_blocks = 20
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 41548800 (4k) blocks long.

Это оно! Теперь убедитесь, что файловая система видит лишнее пространство:

# df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv  156G  113G   38G  76% /

Если бы вы не использовали LVM, вы могли бы заменить эти шаги на resize2fs вместо.

В этой статье о Teknophiles есть некоторые дополнительные сведения об этом процессе, а также снимки экрана с инструментами Hyper-V.

По состоянию на 2019 год у меня возникли некоторые проблемы при попытке изменить размер виртуальной машины Ubuntu 18.04, работающей на Hyper-V. Установка gparted:sudo apt install gparted, запустив его: sudo gparted и прохождение процесса изменения размера в графическом интерфейсе приложения решило мою проблему.

gparted GUI помощь: https://youtu.be/cDgUwWkvuIY?t=330

Другие вопросы по тегам