====== Работа с LVM ====== Все Физические диски по 8 Gb Создадим физические тома из дисков или разделов ''pvcreate /dev/sdb1 \\ pvcreate /dev/sdc'' Создаем группу физических томов ''vgcreate -s 32M vg1 /dev/sdb1 /dev/sdc '' - s размер экстента vg1 - название группы добавим еще один pv в vg1 создадим физический том на /dev/sde '' pvcreate /dev/sde\\ vgextend vg1 /dev/sde'' проверим что получилось ''vgdisplay vg1'' смотрим VG Size 23,91 GiB создадим логические тома lv1 10 GB и lv2 12 GB ''lvcreate -n lv1 -L 10G vg1\\ lvcreate -n lv2 -L 8G vg1'' посмотрим информацию о группе томов '' vgdisplay vg1 \\ --- Volume group ---\\ VG Name vg1\\ System ID \\ Format lvm2\\ Metadata Areas 3\\ Metadata Sequence No 3\\ VG Access read/write\\ VG Status resizable\\ MAX LV 0\\ Cur LV 2\\ Open LV 0\\ Max PV 0\\ Cur PV 3\\ Act PV 3\\ VG Size 23,91 GiB\\ PE Size 32,00 MiB\\ Total PE 765\\ Alloc PE / Size 576 / 18,00 GiB\\ Free PE / Size 189 / 5,91 GiB\\ VG UUID 0SveiU-T4WX-2emH-qbt1-1X0t-8jV2-7U3I59 '' У нас осталось 5,91 свободного места добавим 2 GB в логический том lv1 ''lvresize -L 12G vg1/lv1\\ Size of logical volume vg1/lv1 changed from 10,00 GiB (320 extents) to 12,00 GiB (384 extents).\\ Logical volume lv1 successfully resized. '' просмотри информацию о логических томах ''lvdisplay \\ --- Logical volume ---\\ LV Path /dev/vg1/lv1\\ LV Name lv1\\ VG Name vg1\\ LV UUID N4XNNV-fW5t-bXhM-d90a-aDgf-LpfB-j9sMer\\ LV Write Access read/write\\ LV Creation host, time ktest.mkm, 2016-10-22 19:39:50 +0300\\ LV Status available\\ # open 0\\ LV Size 12,00 GiB\\ Current LE 384\\ Segments 3\\ Allocation inherit\\ Read ahead sectors auto\\ - currently set to 256\\ Block device 253:3\\ --- Logical volume ---\\ LV Path /dev/vg1/lv2\\ LV Name lv2\\ VG Name vg1\\ LV UUID XXIda1-K8fc-RcTZ-G1YZ-DNTE-yABY-Yn9aLi\\ LV Write Access read/write\\ LV Creation host, time ktest.mkm, 2016-10-22 20:03:09 +0300\\ LV Status available\\ # open 0\\ LV Size 8,00 GiB\\ Current LE 256\\ Segments 2\\ Allocation inherit\\ Read ahead sectors auto\\ - currently set to 256\\ Block device 253:4\\ '' создадим файловую систему на логическом диске lv1 ''mkfs.ext4 /dev/vg1/lv1'' создадим точки монтирования и примонтируем ''mkdir /lv1 \\ mkdir /lv2'' ''mount /dev/vg1/lv1 /lv1/'' Запишим туда файл который займет все место ''dd if=/dev/urandom of=/lv1/data.raw'' ''du -h /lv1/data.raw '' посчитаем контрольную сумму ''md5sum /lv1/data.raw\\ a23415baeeb3f9ab152e1de079ffd9c8 /lv1/data.raw'' добавим два гигабайта на lv1 ''lvresize -L 14G vg1/lv1 '' теперь увеличим размер файловой системы для этого размонтируем ''umount /lv1'' проверим файловую систему ''fsck -f /dev/vg1/lv1'' дораспределим 2 gb на диске ''resize2fs /dev/vg1/lv1 14G'' смонтируем ''mount /dev/vg1/lv1 /lv1/'' посмотрим доступное место на диске '' df -h\\ Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg1-lv1 14G 12G 1,3G 91% /lv1 '' проверим файл посчитав контрольную сумму '' md5sum /lv1/data.raw \\ a23415baeeb3f9ab152e1de079ffd9c8 /lv1/data.raw'' создадим файловую систему и смонтируем второй логический том (для примера обратимся через mapper) ''mkfs.ext3 /dev/mapper/vg1-lv2\\ mount /dev/mapper/vg1-lv2 /lv2/'' создадим файл с данными на диске '' dd if=/dev/urandom of=/lv2/data2.raw\\ dd if=/dev/urandom of=/lv2/data2.raw\\ dd: запись в «/lv2/data2.raw»: На устройстве кончилось место\\ 16198809+0 записей считано\\ 16198808+0 записей написано\\ скопировано 8293789696 байт (8,3 GB), 578,605 c, 14,3 MB/c'' и займем все место на первом томе ''dd if=/dev/urandom of=/lv1/data3.raw dd: запись в «/lv1/data2.raw»: На устройстве кончилось место 4128505+0 записей считано'' Теперь представим что место что один из дисков нужно заменить (делается все на примонтированных томах) Тк у нас все логические тома забиты до отказа, то можно утверждать что исмользованы все диски физические диски и физически места в системе больше нет Перед заменой нам придется создать физический том и добавить его в нашу группу томов '' pvcreate /dev/sdf \\ vgextend vg1 /dev/sdf'' перенесем данные на другие физические тома с /dev/sdb1 ''pvmove /dev/sdb1'' удалим наш том из группы томов ''vgreduce vg1 /dev/sdb1'' Снимим отметку о том что это том lvm ''pvremove /dev/sdb1'' добавим в систему физитеский том и добавим его в группу томов vg1 ''pvcreate /dev/sdg'' ''vgextend vg1 /dev/sdg'' сделаем снимок тома lv1 ''lvcreate -l 10%VG -s -n 20161025_lv1 /dev/vg1/lv1'' -s снимок -l 10%VG - 10 % места в группе томов Откат на снапшот ''lvconvert --merge /dev/mapper/vg1-20161025_lv3'' ПРсмотрим на каких фзических томах располагается тот или иной логический том ''lvdisplay -m\\ pvdisplay -m'' создадим зеркалирование добавим новые физические тома в vg1 ''pvcreate /dev/sdh\\ pvcreate /dev/sdi\\ vgextend vg1 /dev/sdi /dev/sdh'' Добавление зеркала к логическому тому ''lvconvert -m 1 -b vg1/lv1'' -m 1 добавить одно зеркало -b делать в фоне Посмотрим на каких дисках лежат логические тома и увидим ''pvdisplay -m\\ --- Physical volume ---\\ PV Name /dev/sdc\\ VG Name vg1\\ PV Size 8,00 GiB / not usable 32,00 MiB\\ Allocatable yes \\ PE Size 32,00 MiB\\ Total PE 255\\ Free PE 60\\ Allocated PE 195\\ PV UUID SLWeEE-brs2-dVoO-Kluw-mR8B-ZXCg-xmBO8k\\ --- Physical Segments ---\\ Physical extent 0 to 64:\\ Logical volume /dev/vg1/lv1_mimage_0\\ Logical extents 255 to 319\\ Physical extent 65 to 65:\\ Logical volume /dev/vg1/lv2\\ Logical extents 255 to 255\\ Physical extent 66 to 193:\\ Logical volume /dev/vg1/lv1_mimage_0\\ Logical extents 320 to 447\\ Physical extent 194 to 194:\\ Logical volume /dev/vg1/lv1_mlog\\ Logical extents 0 to 0\\ Physical extent 195 to 254:''\\ на томе /dev/sdc1 лежит ''/dev/vg1/lv1_mimage_0'' Отключим диск и подключим другой ********************** lvconvert -m0 vg0/lv3 vgchange -ay --partial vg1 ********************* создадим физический том с используя опцию --restorefile /etc/lvm/backup/vg1 ''pvcreate --uuid SLWeEE-brs2-dVoO-Kluw-mR8B-ZXCg-xmBO8k --restorefile /etc/lvm/backup/vg1 /dev/sdc'' выполним востановление группы томов ''vgcfgrestore -f /etc/lvm/backup/vg1 vg1'' использование ssd кеша в lvm подключим к системе ssd носитель размером 16 GB он оперделился как /dev/sdj ''pvcreate /dev/sdj \\ vgextend vg1 /dev/sdj '' ''lvcreate -n metacache_lv1 -L2G vg1 /dev/sdj\\ lvcreate -n datacache_lv1 -L13G vg1 /dev/sdj'' создадим из них пул '' lvconvert --type cache-pool --cachemode writeback --poolmetadata vg1/metacache_lv1 vg1/datacache_lv1'' writethrough - любые данные будут записаны на кеш и диск, при потере кеша данные не теряются writeback - данные пишутся сначала на кеш, после сбрасываются на диск, есть риск потерять данные Соберем кешпул и кешируемый логический том '' lvconvert --type cache --cachepool vg1/datacache_lv1 vg1/lv2'' кешируем lv2 т.к. кеширование зеркальных томов не поддерживается проверим кеширование ''lvs -a\\ lv2 vg1 Cwi-a-C--- 8,00g [datacache_lv1] 0,00 0,09 0,00 \\ в любой непонятной ситуации\\ Возможно reboot \\ systemctl start lvm2-monitor.service \\ lvscan vgchange -ay \\ '' [[https://ghost.im/posts/linux-lvm/|R1]]