Убрать свободное пространство из LVM

У меня есть контейнер LVM2 объемом 500 ГБ на жестком диске объемом 500 ГБ, который содержит корневой раздел объемом 96 ГБ (ext4) и раздел подкачки объемом 4 ГБ. Я сделал эту настройку, используя альтернативный компакт-диск, и установил для дискового пространства 100 ГБ, предполагая, что оставшаяся часть станет доступной как обычное незашифрованное дисковое пространство.

Оказывается, что, как показывает мне Дисковая утилита, 400 ГБ свободного дискового пространства фактически инкапсулировано в контейнере LVM2. Как мне сжать контейнер LVM2, чтобы я мог использовать эти 400 ГБ?

2 ответа

Решение

Простой ответ - вы не можете. (Но вы можете сделать что-то еще, чтобы получить то, что вы хотите - см. Ниже)

LVM2 имеет 3 "уровня": физические тома (что, как я полагаю, вы называете контейнером LVM2), группы томов и логические тома.

Обычно вы определяете один или несколько разделов как физические тома для LVM2. После этого раздел не может использоваться ни для чего другого (таким же образом раздел может использоваться только для одной файловой системы).

Например:

# pvcreate /dev/sdb3

Затем вы создаете новую группу томов или добавляете физический том в существующую группу.

# vgcreate MyVolGroup /dev/sdb3

или же

# vgextend MyVolGroup /dev/sdb3

Затем вы создаете логический том, который фактически используется для файловой системы.

# lvcreate -L100G --name MyVolume MyVolGroup

Логические тома могут быть изменены без потери данных, хотя это не тривиально. Но размеры физических томов фиксируются как размеры раздела.

Если вы действительно хотите использовать пространство 400 ГБ, которое уже выделено для физического тома (контейнера LVM2), тогда ответом является создание другого логического тома и его использование.

Чтобы найти имя группы томов (если вы ее еще не знаете), используйте vgs команда.

# lvcreate -L400G --name MySpace VolGroup
# mkfs -text4 /dev/VolGroup/MySpace
# mount /dev/VolGroup/MySpace /mnt

Более продвинутая альтернатива, если у вас достаточно свободного места для создания нового раздела, - это принудительное перемещение существующего логического тома (используя pvmove) чтобы освободить физический том объемом 500 Гб (vgreduce а также pvremove команд), а затем создайте меньший контейнер и снова переместите данные обратно, но, вероятно, есть небольшое преимущество по сравнению с простым использованием логических томов для всего.

Вы не указали, почему вы хотите сжать раздел LVM, поэтому возможно, что вы захотите просто создать новые логические тома в контейнере LVM. Если вы уверены, что действительно хотите уменьшить размер контейнера LVM, тогда вы можете использовать pvresize чтобы уменьшить размер физического тома, а затем разделить инструменты, такие как fdisk или же parted уменьшить размер раздела на диске, который содержит физический том. Вы должны убедиться, что вы используете единицы секторов при разбиении (в unit s команда сделает это). Вам нужно будет удалить раздел, а затем воссоздать его с тем же начальным сектором, но меньшего размера. Если указать размер pvresize в ГБ вам нужно будет преобразовать в сектора, умножив на 1024 * 1024 * 2, и должны округлить в целях безопасности, то есть добавить дополнительные ГБ. Вам нужно будет перезагрузиться, чтобы изменения в таблице разделов вступили в силу, а затем вы можете использовать pvresize снова без аргумента размера, чтобы расширить его до максимального размера, который содержит новый раздел. Тогда у вас будет нераспределенное пространство по вашему желанию.

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