Назад | Перейти на главную страницу

Расширение групп томов LVM с помощью физических экстентов и pvresize

У меня есть два несколько связанных вопроса о LVM относительно расширения управляемых томов LVM.

во-первых, от (редактировать: старый), которую я читал о LVM и взаимосвязи между группами томов и физическими экстентами, если вы хотите увеличить VG до более 256 ГБ, у вас должен быть размер PE более 4 МБ. Пример из Эта статья где отображается сообщение "максимальный размер логического тома - 255,99 гигабайт"с PE размером 4 МБ. Однако я ожидал, что это будет означать, что группа VG не позволит вам определять / добавлять в нее тома объемом более 256 ГБ, если размер PE составляет 4 МБ, и выдает ошибку или, по крайней мере, предупреждение, если вы пытались это сделать. Я поднимаю это, потому что у меня есть виртуальная машина, которая показывает это для одной из своих групп томов (отрывок):

VG Size               499.50 GiB
PE Size               4.00 MiB
Total PE              127872
Alloc PE / Size       127872 / 499.50 GiB
Free  PE / Size       0 / 0   

Группа VG состоит из двух физических томов: 100 ГБ (/ dev / sda2) и 400 ГБ (/ dev / sda3). Как возможно, что я успешно (?) Определил 500 ГБ пространства в этом VG с размером PE только 4 МБ? Мне еще предстоит провести практический тест, пытаясь заполнить смонтированные логические тома, чтобы убедиться, что я действительно могу хранить 500 ГБ, но если что-то не изменится в работе LVM, логические тома просто «перестанут записывать» данные, как только они достигнут 256 ГБ использованное пространство, несмотря на то, что он показывает оставшиеся 244 ГБ? Могу ли я в любом случае успешно изменить размер PE VG (на месте) на 8 МБ?

Во-вторых, если бы я предпочел расширить раздел LVM / физический том, чтобы использовать дополнительное пространство, когда я увеличиваю размер жесткого диска vmdk, вместо того, чтобы создавать новый физический том и добавлять его в VG (поскольку эта отличная статья охватывает для VMWare) я бы использовал pvresize? Моими ограничениями было бы не уничтожать существующие данные, а просто добавлять пространство к тому, что и выполняется в статье базы знаний VMWare, тогда как у меня есть сомнения после прочтения этот вопрос SE относительно того, можете ли вы просто расширить том или должны «удалить и создать более крупный».

Поскольку статья о VMWare полагается на возможность добавления основного раздела, вы, очевидно, можете следовать этой процедуре только до максимум 4 основных разделов, после чего вы либо больше не сможете наращивать свои тома, либо я предполагаю, что вы должны использовать что-то вроде pvresize (что я понятия не имею, как правильно использовать / не решаюсь попробовать, опасаясь уничтожить существующие данные). Любые указания на то, может ли pvresize делать то, что я ищу?

Ответ на 1-й вопрос

Учтите, что статья, на которой вы основываете все свои соображения ОЧЕНЬ устарело! Несмотря на то, что точная дата не указана на странице HOWTO, которую вы связали, взгляните на код, относящийся к упомянутому HOWTO, вы можете видеть, что это относится к ядру 2.3.99, выпущенному еще в 2000 году! 15 лет назад!

Это полностью соответствует моему непосредственному опыту, когда я Нет проблема вообще с многотерабайтными PV, с PE 4MB. Вот результат работы работающей системы: RAID5 VG (vg_raid), построенный поверх 5 дисков S-ATA по 2 ТБ и обслуживающий один LV 7,28 ТБ (lv_raid):

[root@nocdump ~]# cat /etc/centos-release 
CentOS release 6.5 (Final)

[root@nocdump ~]# uname -r
2.6.32-431.17.1.el6.x86_64

[root@nocdump ~]# rpm -q lvm2
lvm2-2.02.100-8.el6.x86_64

[root@nocdump ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg_raid
  System ID             
  Format                lvm2
  Metadata Areas        5
  Metadata Sequence No  19
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                5
  Act PV                5
  VG Size               9,10 TiB
  PE Size               4,00 MiB
  Total PE              2384655
  Alloc PE / Size       2384655 / 9,10 TiB
  Free  PE / Size       0 / 0   
  VG UUID               rXke5K-2NOo-5jwR-74LT-hw3L-6XcW-ikyDp0    

[root@nocdump ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               7ToSLb-H9Of-unDk-Yt22-upwi-qkVE-ZiEKo2

  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               PaUyX1-jykz-B2Tp-KE2M-9VaT-E4uY-iv8ppi

  --- Physical volume ---
  PV Name               /dev/sdd1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               DCag4w-CWbp-bUUI-7S24-JCFL-NlUK-Vgskab

  --- Physical volume ---
  PV Name               /dev/sde1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               3GW2LM-b01Y-oIgd-DHJf-Or0a-fys2-wLesSX

  --- Physical volume ---
  PV Name               /dev/sdf1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               fxd1rG-E9RA-2WsN-hLrG-6IgP-lZTE-0U52Ge


[root@nocdump ~]# lvdisplay /dev/vg_raid/lv_raid
  --- Logical volume ---
  LV Path                /dev/vg_raid/lv_raid
  LV Name                lv_raid
  VG Name                vg_raid
  LV UUID                fRzAnT-BQZf-J1oc-nOK9-BC10-S7w1-zoEv2s
  LV Write Access        read/write
  LV Creation host, time nocdump, 2014-05-23 00:17:02 +0200
  LV Status              available
  # open                 1
  LV Size                7,28 TiB
  Current LE             1907720
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1280
  Block device           253:15

Ответ на 2-й вопрос

Ты говоришь: "... Я сомневаюсь ... можно ли просто расширить том или нужно "удалить и создать более крупный ...""

Поясним некоторые предварительные концепции:

  1. Предположим, вы под нормальные условия: у вас есть жесткий диск с общими разделами msdos. Таким образом, у вас есть не более 4 основных разделов;

  2. Предположим, что ваш физический том LVM определен поверх одного из четырех указанных выше основных разделов и что такой раздел LVM (тип 8e) охватывает максимальное доступное пространство на диске (другими словами, между ними нет другого раздела. LVM-Type-8e и конец диска)

Итак, исходя из вышеизложенного, у вас есть жесткий диск, подобный этому:

[root@nocdump ~]# parted /dev/sda print
Modello: ATA ST2000DM001-1E61 (scsi)
Disco /dev/sda: 2000GB
Dimensione del settore (logica/fisica): 512B/4096B
Tabella delle partizioni: msdos

Numero  Inizio  Fine    Dimensione  Tipo     File system  Flag
 1      1049kB  525MB   524MB       primary  ext4         avvio
 2      525MB   1999GB  1998GB      primary               lvm

В таком состоянии:

  1. если у вас заканчивается место, вы должны учитывать, что:

    3a) то, что будет заполнено, - это ваша файловая система («вещь», обычно упоминаемая в EXT3, EXT4, NTFS, FAT32, HFS и т. Д.);

    3b) ваша файловая система инкапсулирована внутри устройства. В сценарии без LVM такое устройство обычно является «разделом». Но в вашем случае, поскольку мы на LVM, таким устройством является логический том LVM

    3c) логический том содержится в группе томов LVM

    3d) группа томов состоит из физических томов;

    3e) Физический том построен поверх «устройства» (то же устройство, которое упоминалось на шаге 3b в сценарии без LVM), и в вашем случае такое устройство является одним основным разделом (/ dev / sda2 в моем случае, выше )

так:

  1. в вашем случае шаги, необходимые для увеличения файловой системы:

    i) увеличить физический диск, добавив «неразмеченное пространство» в конце диска;

    ii) предоставить LVM возможность использовать такое неразмеченное пространство. Этого можно добиться в двух разных режимах:

    iii / 1) увеличение раздела LVM-type-8e так, чтобы он заканчивался на новом конце диска (это возможно только в том случае, если существующий раздел является последним на диске. Отсюда требование пункта 2 выше)

    iii / 2) назначить неразмеченное пространство новому основному разделу, которому будет присвоен тип 8e. Это будет новый LVM-Physical_Volume, полезный для увеличения Volume_Group;

Поскольку вам кажется, что пункт iii / 1 интересен, я сосредоточусь на нем. Так... как увеличить существующий основной раздел?

ВНИМАНИЕ !: это будет рискованно! Убедитесь, что у вас есть надлежащая резервная копия ваших данных, а также правильный план аварийного восстановления. Если вы не понимаете рисков, которым подвергаетесь, не продолжайте!

Ответ довольно прост! Поскольку на первичный раздел в таблице разделов диска ссылаются с помощью START_CYLINDER и END_CYLINDER, вам просто нужно изменить END_CYLINDER. Текущее значение для цилиндров START и END можно получить с помощью "fdisk -lu / dev / sda", например:

[root@nocdump ~]# fdisk -lu /dev/sda

Disco /dev/sda: 2000.4 GB, 2000398934016 byte
[...]
Sector size (logical/physical): 512 bytes / 4096 bytes
[...]
Dispositivo Boot      Start         End      Blocks   Id  System
[...]
/dev/sda2         1026048  3904294911  1951634432   8e  Linux LVM

поэтому мой / dev / sda2 начинается с 1026048 и заканчивается в 3904294911. Теперь вы можете просто УДАЛИТЬ раздел / dev / sda2 и СОЗДАТЬ новый раздел, начиная с 1026048 и заканчивая ... новым концом увеличенного диска. Не забудьте присвоить такому разделу тип 8e и, разумеется, не забудьте сохранить изменения. если вы не чувствуете себя комфортно в этом процессе - поскольку это рискованно - ваш единственный вариант - iii / 2

  • iv) теперь, когда у вас есть увеличенный раздел, вы должны убедить вашу ОС перезагрузить таблицу разделов. В вопросе о SF, который вы упомянули, подробностей предостаточно. В худшем случае вам потребуется перезагрузить сервер.

  • v) теперь, когда у вас увеличенный раздел, и он правильно распознается ОС, у тебя новая проблема: у вас есть LVM-Physical_Volume, который, как известно, имеет определенный размер (исходный размер), и такой размер меньше, чем базовый раздел 8e-Physical (который вы только что увеличили). Вы можете самостоятельно проверить такое несовпадение с помощью:

  • pvdisplay : показывает исходный меньший размер;
  • lvmdiskscan -l : показывает новый, больший размер. Как только вышеуказанные числа известны, вы можете переустановить метаданные PV на новый, больший размер с помощью: "pvresize" и это "setphysicalvolumesize"параметр, например:

    pvresize --setphysicalvolumesize 49.51G /dev/sda2

Обратите внимание, что я сильно предлагаю немного использовать меньше значение в pvresize, чем показанное lvmdiskscan. Это потому, что, если вы ошибочно установите размер PV на большее значение, чем физическое доступное пространство, могут произойти очень плохие вещи (например, приостановленные LV, невозможность вернуться в онлайн!). Поэтому, если у вас есть физический раздел 49,52 ГБ, вы должны установить размер физического тома на 49,51 ГБ.

  • vi) теперь, когда у вас есть увеличенный PV, у вас есть свободное место в VG и ... такое свободное пространство можно выделить для ваших LV. Так...

  • vii) вы можете продлить свой LV с помощью lvextend команда. В моем случае, когда я решил выделить 100% свободного места (в VG), я использовал: lvextend -l +100%FREE /dev/vg_raid/lv_raid

В основном мы сделали. Теперь у нас есть расширенный LV, который, к сожалению, все еще имеет внутри «меньшую» файловую систему. Если вы полагаетесь на EXT3 или EXT4, высоки шансы, что вы сможете использовать resize2fs. На его странице руководства:

"Программа resize2fs изменит размер файловых систем ext2, ext3 или ext4. [...] Если файловая система смонтирована, ее можно использовать для увеличения размера смонтированной файловой системы, при условии, что ядро ​​поддерживает изменение размера в режиме онлайн."

Время, которое потребуется resize2fs для выполнения изменения размера, будет зависеть от множества факторов: размер файловой системы и выполняемая в ней активность ввода-вывода являются наиболее важными.

Вот и все.

Очередной раз: будьте осторожны при выполнении всего вышеперечисленного и, если вы слегка думаете, что подвергаетесь риску, пожалуйста, не продолжайте! Не вините меня, если что-то пойдет не так!