Вопрос или проблема
У меня есть следующий LVM-раздел:
# df -h
Файловая система Размер Использовано Доступно Использ% Смонтировано на
/dev/mapper/data-root 5.3G 4.2G 864M 84% /
...
/dev/mapper/data-install 6.8G 5.7G 783M 89% /install
# vgs
VG #PV #LV #SN Атрибут Размер VG Свободно
data 1 2 0 wz--n- <12.50g 0
# vgdisplay
--- Группа томов ---
Имя VG data
Идентификатор системы
Формат lvm2
Области метаданных 1
Номер последовательности метаданных 3
Доступ к VG чтение/запись
Состояние VG изменяемый
MAX LV 0
Текущий LV 2
Открыто LV 2
Max PV 0
Текущий PV 1
Активный PV 1
Размер VG <12.50 GiB
Размер PE 4.00 MiB
Всего PE 3199
Выделено PE / Размер 3199 / <12.50 GiB
Свободно PE / Размер 0 / 0
UUID VG jSACsC-wGwy-ki0w-nSCn-kxMy-bLOV-dVN68E
# pvs
PV VG Фmt Атрибут Размер ПСвободно
/dev/sda2 data lvm2 a-- <12.50g 0
# pvdisplay
--- Физический том ---
Имя PV /dev/sda2
Имя VG data
Размер PV <12.50 GiB / не использовано 3.00 MiB
Могу выделить да (но заполнено)
Размер PE 4.00 MiB
Всего PE 3199
Свободно PE 0
Выделено PE 3199
UUID PV CPggVR-sUXw-4gfw-lb2v-cq0j-M5ey-Ct7td3
# lvs
LV VG Атрибут Размер Пул Происх. Д% Мета% Журнал Коп. Синхр. Конверт
install data -wi-ao---- 7.00g
root data -wi-ao---- <5.50g
# lvdisplay
--- Логический том ---
Путь LV /dev/data/install
Имя LV install
Имя VG data
UUID LV ZXQmp5-L17b-eQyS-g3An-msk7-Jqso-MTaTIw
Доступ на запись LV чтение/запись
Хост создания LV, время localhost, 2018-09-28 14:42:43 +0000
Состояние LV доступен
открыто 1
Размер LV 7.00 GiB
Текущий LE 1792
Сегменты 1
Аллокация унаследовано
Сектора предварительного чтения авто
- в настоящее время установлено 8192
Блочное устройство 253:1
--- Логический том ---
Путь LV /dev/data/root
Имя LV root
Имя VG data
UUID LV i3eMbC-rcm1-H2Gm-JJeF-jRxO-nL9h-toHSHQ
Доступ на запись LV чтение/запись
Хост создания LV, время localhost, 2018-09-28 14:42:55 +0000
Состояние LV доступен
# открыто 1
Размер LV <5.50 GiB
Текущий LE 1407
Сегменты 1
Аллокация унаследовано
Сектора предварительного чтения авто
- в настоящее время установлено 8192
Блочное устройство 253:0
Я удаляю один из логических томов:
# umount /install
# lvremove /dev/data/install
# sed -i 'N;/\/dev\/mapper\/data-install/{s#/dev/mapper/data-install.*\n##}' /etc/fstab
После удаления:
# df -h
Файловая система Размер Использовано Доступно Использ% Смонтировано на
/dev/mapper/data-root 5.3G 4.2G 867M 84% /
...
# vgs
VG #PV #LV #SN Атрибут Размер VG Свободно
data 1 1 0 wz--n- <12.50g 7.00g
# vgdisplay
--- Группа томов ---
Имя VG data
Идентификатор системы
Формат lvm2
Области метаданных 1
Номер последовательности метаданных 4
Доступ к VG чтение/запись
Состояние VG изменяемый
MAX LV 0
Текущий LV 1
Открыто LV 1
Max PV 0
Текущий PV 1
Активный PV 1
Размер VG <12.50 GiB
Размер PE 4.00 MiB
Всего PE 3199
Выделено PE / Размер 1407 / <5.50 GiB
Свободно PE / Размер 1792 / 7.00 GiB
UUID VG jSACsC-wGwy-ki0w-nSCn-kxMy-bLOV-dVN68E
# pvs
PV VG Фmt Атрибут Размер ПСвободно
/dev/sda2 data lvm2 a-- <12.50g 7.00g
# pvdisplay
--- Физический том ---
Имя PV /dev/sda2
Имя VG data
Размер PV <12.50 GiB / не использовано 3.00 MiB
Могу выделить да
Размер PE 4.00 MiB
Всего PE 3199
Свободно PE 1792
Выделено PE 1407
UUID PV CPggVR-sUXw-4gfw-lb2v-cq0j-M5ey-Ct7td3
# lvs
LV VG Атрибут Размер Пул Происх. Д% Мета% Журнал Коп. Синхр. Конверт
root data -wi-ao---- <5.50g
# lvdisplay
--- Логический том ---
Путь LV /dev/data/root
Имя LV root
Имя VG data
UUID LV i3eMbC-rcm1-H2Gm-JJeF-jRxO-nL9h-toHSHQ
Доступ на запись LV чтение/запись
Хост создания LV, время localhost, 2018-09-28 14:42:55 +0000
Состояние LV доступен
# открыто 1
Размер LV <5.50 GiB
Текущий LE 1407
Сегменты 1
Аллокация унаследовано
Сектора предварительного чтения авто
- в настоящее время установлено 8192
Блочное устройство 253:0
Как я могу уменьшить физический том, группу томов и в конечном итоге раздел, учитывая размер свободного пространства после удаления логического тома? Предпочтительно, чтобы это делалось с указанием относительных значений (для pvresize
?) или что-то похожее на lvextend -l 100%FREE
. Также я хотел бы достичь этого, используя только командную строку (без графического интерфейса). Также стоит отметить, что логический том root/system активен и используется постоянно.
Ну, pvresize
не имеет опции для относительных значений, как у lvextend
, поэтому вам нужно указать точный размер, который вы хотите. Вот что вы можете сделать:
- Уменьшите физический том:
pvresize --setphysicalvolumesize 5.5G /dev/sda2
- Уменьшите раздел с помощью инструмента на ваш выбор. Если вы хотите автоматизировать это, вы можете использовать parted. Сделайте раздел немного больше, чем 5.5G, чтобы учесть различные способы расчета размера в байтах, или убедитесь, что вы используете одну и ту же единицу в обоих инструментах.
- Если единицы между инструментами различались, увеличьте физический том, чтобы занять весь раздел:
pvresize /dev/sda2
Ответ или решение
Уменьшение размера физического тома в LVM: Пошаговая инструкция
Логическая система управления томами (LVM) предоставляет множество возможностей для управления разделами диска, включая увеличение и уменьшение логических и физических томов. В вашем случае, после удаления одного из логических томов в группе data
, у вас образовалось свободное пространство, которое можно использовать для уменьшения размера физического тома, а также связанного с ним раздела на диске. Данная инструкция содержит шаги, как это сделать с использованием командной строки.
Шаг 1: Убедитесь в наличии свободного пространства
После удаления логического тома с помощью следующей команды:
umount /install
lvremove /dev/data/install
Вы можете увидеть, что у вас появилось свободное пространство:
vgs
# Вывод команд должен показать 1792 свободных физических единиц
Это свободное пространство будет использовано для уменьшения размера физического тома.
Шаг 2: Уменьшение размера физического тома
Для изменения размера физического тома используйте следующую команду:
pvresize --setphysicalvolumesize 5.5G /dev/sda2
При этом вы указываете, что новый размер физического тома будет 5.5 ГБ, так как именно столько требуется для логического тома root
, который вы оставили активным.
Шаг 3: Уменьшение размера раздела на диске
Теперь, когда размер физического тома уменьшен, вам необходимо также привести в соответствие размер раздела на диске. Для этого можно использовать утилиту parted
, которая обеспечивает возможность работы с разделами на дисках.
-
Запустите утилиту
parted
:parted /dev/sda
-
Проверьте текущие разделы:
print
-
Уменьшите размер раздела (предположим, что это второй раздел, который вы хотите уменьшить):
resizepart 2 5.5GB
При этом убедитесь, что вы задаете размер немного больше, чем 5.5 ГБ, для того чтобы избежать проблем с округлением.
Шаг 4: Корректировка размера физического тома
Если у вас возникли ситуации, когда размер измерялся по-разному между различными инструментами (такими как pvresize
и parted
), вы можете расширить физический том до использования всего пространства в разделе:
pvresize /dev/sda2
Заключение
Следуя вышеупомянутым шагам, вы сможете эффективно уменьшить размер физических томов в LVM, а также связанные с ними разделы на диске. Этот процесс осуществляется полностью через командную строку, что позволяет избежать использования графических интерфейсов. Убедитесь, что у вас есть резервные копии данных перед проведением описанных операций, так как любые операции с разделами могут привести к потере данных.
Также полезно периодически проверять состояние ваших томов, используя команды pvdisplay
, vgdisplay
и lvdisplay
, чтобы оставаться в курсе используемого и свободного пространства.