Как я могу сжать логический том и перераспределить освободившееся пространство в новый раздел на том же диске?

У меня есть диск, Сда. Имеет два раздела:

sda1: /boot
sda2: LVM managed in Volume Group volgrp01

volgrp01 содержит следующие логические тома:

lv_root (30 GB)
lv_swap (8 GB)
lv_scratch (430 GB)

Я хочу уменьшить lv_scratch до 50 ГБ и перераспределить эти освобожденные 380 ГБ в новый раздел, sda3 (который я затем добавлю в другую группу томов).

Я приложил изображение моего желаемого ДО и ПОСЛЕ. Я нахожусь в середине изучения LVM, и хотя я могу понять идею изменения размера логических томов в группе томов, я не уверен, как можно было бы перераспределить это пространство в новый раздел.

Я использую RHEL6.

введите описание здесь

2 ответа

Шаг 1: Сделайте резервные копии.

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

Шаг 2: Сожмите файловую систему в lv_scratch, Если это файловая система ext2/3/4, размонтируйте ее и используйте resize2fs; если это что-то еще, вам нужно поискать документацию по изменению размера файловой системы этого типа.

Например:

resize2fs /dev/volgrp01/lv_scratch 50G

Когда это будет сделано (при условии, что вы используете resize2fs), он сообщит вам новый размер файловой системы в байтах. Запишите этот номер, потому что вы можете использовать его для проверки безопасности на следующем шаге.

Шаг 3: Уменьшите логический том, используя lvreduce,

  • Если вы хотите быть простым, используйте lvreduce --size 50G volgrp01/lv_scratch,
  • Если вы хотите быть особенно осторожными, чтобы не сжимать LV до размера, меньшего, чем файловая система, которую он содержит, проверьте размер физического экстента вашей группы томов, используя vgdisplay volgrp01и вычислите, сколько физических экстентов требуется для хранения размера в байтах вашей файловой системы (используя 1 МБ = 1048576 байт). Затем укажите это число, используя --extents вариант вместо --size 50G,

Кроме того, вы можете пропустить шаг 1 и вместо этого использовать lvreduce"s -r возможность изменить размер файловой системы автоматически. Это может быть проще, но у меня нет личного опыта, чтобы знать, насколько это надежно.

На данный момент я бы порекомендовал запустить fsck -f на ваше /dev/volgrp01/vg_scratch просто чтобы убедиться, что он не поврежден. Если вы получаете какие-либо ошибки о "доступе за пределы устройства", это означает, что вы слишком сильно сократили LV и вам необходимо lvextend это, прежде чем продолжить.

Шаг 4: Уменьшите физический объем, используя pvresize,

pvresize --setphysicalvolumesize 88G /dev/sda2

Вам не нужна дополнительная проверка безопасности здесь, так как pvresize откажется уменьшить физический том до размера, который слишком мал для существующих логических томов. Но если размеры других ваших LV не являются точными, кратными 1 ГБ, 88G может быть слишком маленьким, и вам может потребоваться использовать другое значение.

Шаг 5: Сожмите sda2 раздел с помощью fdisk,

Бежать fdisk /dev/sdaи по его подсказке запустите p посмотреть на ваши существующие разделы. Запишите начальный номер сектора вашего sda2 раздел. Затем удалите sda2 раздел - это не касается фактических данных, просто удаляет запись о том, где он начинается и заканчивается, - и создает новый sda2 с тем же стартовым сектором (это жизненно важно) и размером 88G. Код типа раздела должен быть 8e, "Linux LVM".

Если вы хотите быть очень осторожными - и я бы порекомендовал вам сделать это, особенно если вам нужно было указать другой размер pvresize раньше - проверьте размер PE и Total PE вашего физического тома, используя pvdisplay /dev/sda2 и умножьте их вместе, чтобы найти размер физического тома в байтах (снова используя 1 МБ = 1048576 байтов). Затем вычтите ваш новый sda2 Номер начального сектора раздела от его конечного, добавьте 1, чтобы подсчитать последний сектор, и умножьте на размер сектора вашего диска (который должен быть либо 512, либо 4096 байт). Убедитесь, что два результата совпадают.

Теперь создайте свой новый sda3 раздел, сохранить изменения и выйти fdisk, Если вы получили сообщение о необходимости перезагрузки, чтобы изменения вступили в силу, перезагрузите компьютер.

Не уверен, будет ли это работать - я только увеличил pv. И ни в коем случае НЕ ПЫТАЙТЕСЬ НА ЦЕННЫЕ ДАННЫЕ, ЕСЛИ У ВАС ЕСТЬ ЧИТАЕМЫЙ РЕЗЕРВ.

  1. Используйте инструмент, специфичный для FS (если есть), чтобы изменить размер FS на lv_scratch

  2. lvresize -L 50G /dev/volgrp01/lv_scratch

  3. pvresize --setphysicalvolumesize 88G /dev/sda2

  4. Измените размер вашего /dev/sda2 (не уверен, возможно ли это с помощью parted / cfdisk и т. Д., Возможно, вам понадобится другой редактор разделов)

  5. Создать новый раздел, сделать новый PV, создать группу томов и т. Д.

При изменении размера дважды проверяйте все числа, так как если вы уменьшаете свой логический или физический том больше, чем FS, у вас могут получиться сломанные FS и потерянные данные, обычно лучше оставить неиспользованное пространство на случай путаницы.

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