LVM зеркалирование

Иногда создавать программный RAID массив в Linux не очень удобно. Особенно, если новый жесткий диск большего размера. Можно воспользоваться LVM зеркалированием. В моем случае я к 1му 160 Гб диску добавил второй 250 гигабайтовый.

На новом жестком диске создаем 2 раздела с помощью fdisk. 1й раздел делаем чуть больше того логического тома (logical volume), который будем зеркалировать. Оставшееся место отводим под второй раздел.

Добавляем 2 раздела 2го жесткого диска в группу томов (volume group), в моем случае — vg_gate.

pvcreate /dev/sdb1 /dev/sdb2
vgextend vg_gate /dev/sdb1 /dev/sdb2


Конвертируем логический том lv_root, входящий в состав группы томов vg_gate в зеркалируемый том, при этом зеркалируется /dev/sda2 (где, к слову у меня и находился lv_root) на /dev/sdb1, а /dev/sdb2 используется для ведения файла журнала. Не нужно опасаться, что /dev/sdb2 будет использоваться нерационально — все оставшееся свободное место на нем может использоваться.

lvconvert -m 1 /dev/vg_gate/lv_root /dev/sda2 /dev/sdb1 /dev/sdb2


Конвертация тома проходит на лету.

Проверяем:

lvs -a -o +devices


LV                 VG      Attr   LSize   Origin Snap%  Move Log          Copy%  Convert Devices                                
  lv_root            vg_gate mwi-ao 144.65g                    lv_root_mlog 100.00         lv_root_mimage_0(0),lv_root_mimage_1(0)
  [lv_root_mimage_0] vg_gate iwi-ao 144.65g                                                /dev/sda2(0)                           
  [lv_root_mimage_1] vg_gate iwi-ao 144.65g                                                /dev/sdb1(0)                           
  [lv_root_mlog]     vg_gate lwi-ao   4.00m                                                /dev/sdb2(0)                           
  lv_swap            vg_gate -wi-ao   3.91g                                                /dev/sda2(37031)


Видим, что том lv_root зеркалируется на 2 устройства /dev/sda2 и /dev/sdb1.