5

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

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 ответа2

7

Шаг 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 -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 и умножьте их вместе, чтобы найти размер физического тома в байтах (снова используя 1MB = 1048576 байтов). Затем вычтите номер начального сектора вашего нового раздела sda2 из его конечного, добавьте 1, чтобы подсчитать последний сектор, и умножьте на размер сектора вашего диска (который должен быть либо 512, либо 4096 байт). Убедитесь, что два результата совпадают.

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

0

Не уверен, будет ли это работать - я только увеличил 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 и потерянные данные, обычно лучше оставить неиспользованное пространство на случай путаницы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .