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

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

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.

Введите описание изображения здесь

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

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

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

    Например:

     resize2fs /dev/volgrp01/lv_scratch 50G 

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

    Шаг 3: Сократите логический том, используя lvreduce .

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

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

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

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

     pvresize --setphysicalvolumesize 88G /dev/sda2 

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

    Шаг 5: sda2 раздела sda2 с помощью fdisk .

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

    Если вы хотите быть более осторожным – и я бы порекомендовал вас, особенно если вам нужно было указать другой размер на pvresize раньше – проверьте размер PE и Total PE вашего физического тома с помощью pvdisplay /dev/sda2 и умножьте их Вместе, чтобы найти размер физического объема в байтах (снова используя 1MB = 1048576 bytes). Затем вычтите свой начальный номер сектора 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 и потерять данные, обычно лучше оставить оставшееся неиспользуемое пространство в случае путаницы.

    Давайте будем гением компьютера.