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

Измените LVM LVM без полосок на LVM с полосами

В настоящее время у меня есть несколько логических томов (LV) в группе томов (VG). Эта группа VG размещается на одном физическом томе (PV). У меня есть запасной диск, который я могу использовать для перетасовки данных.

У меня также теперь есть новый привод, который соответствует моему оригинальному приводу PV. Я хотел бы переместить существующие LV, чтобы в итоге LV были разделены на два PV. Это возможно? Как ты это делаешь?

Похоже, это невозможно из командной строки. striping сильно отличается от значения по умолчанию linear схема размещения. Таким образом, хотя вы можете расширить файловую систему на несколько физических томов (PV), вы не получите преимуществ чередования по «балансировке нагрузки».

Чтобы расширить файловую систему, сделайте что-то вроде этого:

pvcreate /dev/mapper/md2_crypt
vgextend crypto /dev/mapper/md2_crypt
umount /dev/mapper/crypto-srv
fsck.ext4 -C0 -f /dev/mapper/crypto-srv
lvresize -l +100%FREE /dev/mapper/crypto-srv
resize2fs /dev/mapper/crypto-srv
mount /srv

В приведенном выше примере md2_crypt представляет собой криптографический том поверх массива RAID-1, но это может быть любое устройство. crypto группа томов (VG) и crypto-srv это логический том, который содержит файловую систему, смонтированную на /srv.

Напоминание: вы действительно должны использовать как минимум массив RAID-1, потому что, если PV выходит из строя в linear логический том (LV), вы можете потерять все данные.

Это будет не сделать /srv перегородки с полосами поперек PV. Это потому что нет инструментов пользовательского пространства для поддержки linear к striped конверсии. Логично, что это было бы в lvconvert команда, но это поддерживает только переход от linear к mirror режим и обратно, например. И со всеми новыми разработками BTRFSЯ был бы удивлен, если бы это когда-нибудь задокументировали.

Одно вы жестяная банка однако, есть новый данные на диске будут чередоваться. Это довольно сложно, но возможно. Предположим, мы хотим полоску crypto-tmp, LV для /tmp. Сначала нам нужно освободить место для полос в первом PV:

pvmove -n crypto/tmp /dev/mapper/md1_crypt

Это перераспределит LV по PV, в моем случае он переместил все это во второй PV:

root@foo:~# pvs --segments -o+lv_name,seg_start_pe,segtype
  PV                    VG     Fmt  Attr PSize PFree  Start SSize  LV   Start Type
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 10.00g     0   2384 root     0 linear
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 10.00g  2384    256 swap     0 linear
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 10.00g  2640   2560          0 free
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 10.00g  5200 709901 srv      0 linear
  /dev/mapper/md2_crypt crypto lvm2 a--  1.82t  1.81t     0   2560 tmp      0 linear
  /dev/mapper/md2_crypt crypto lvm2 a--  1.82t  1.81t  2560 474077          0 free

Теперь вы можете увеличить файловую систему (скажем, мы удвоим ее размер) и указать LVM разделить новые данные:

root@foo:~# lvresize -i 2 -l 5120 /dev/crypto/tmp
  Using default stripesize 64.00 KiB
  Extending logical volume tmp to 20.00 GiB
  Logical volume tmp successfully resized

Теперь новые данные для /tmp проходит через два PV:

root@foo:~# pvs --segments -o+lv_name,seg_start_pe,segtype
  PV                    VG     Fmt  Attr PSize PFree Start SSize  LV   Start Type
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 5.00g     0   2384 root     0 linear
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 5.00g  2384    256 swap     0 linear
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 5.00g  2640   1280 tmp   2560 striped
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 5.00g  3920   1280          0 free
  /dev/mapper/md1_crypt crypto lvm2 a--  2.73t 5.00g  5200 709901 srv      0 linear
  /dev/mapper/md2_crypt crypto lvm2 a--  1.82t 1.80t     0   2560 tmp      0 linear
  /dev/mapper/md2_crypt crypto lvm2 a--  1.82t 1.80t  2560   1280 tmp   2560 striped
  /dev/mapper/md2_crypt crypto lvm2 a--  1.82t 1.80t  3840 472797          0 free

Но исходные данные все еще в linear Режим. Может быть возможно шаг файловую систему до полосатой границы, но считайте это упражнением для читателя на данном этапе. :)

Смотрите также Увеличение объема LVM с чередованием и Redhat LVM меняет полосы?.

Также обратите внимание, что обратное (преобразование striped к linear) возможно, однако: Можно ли преобразовать чередующийся логический том в линейный логический том?.