LVM asoslari
Oddiy bo'lim (partition) diskning belgilangan joyidan chegaralanmagan, o'zgarmas hajmga ega. Disk to'lib qolsa, bo'limni kengaytirish ko'pincha diskni butunlay qayta bo'lishni talab qiladi. LVM (Logical Volume Manager) shu muammoni hal qilish uchun disk va bo'lim ustiga qo'shimcha, moslashuvchan qatlam qo'shadi: bir nechta diskni bitta hajm hovuziga birlashtiradi va undan kerakli o'lchamdagi mantiqiy tom (logical volume) ajratadi.
Bu maqola bo'limlar mavzusidan keyingi qadam — jismoniy bo'lim tayyor bo'lgach, uni LVM orqali qanday moslashuvchan hajmga aylantirish mumkinligini ko'rsatadi. Hajmni keyinchalik o'zgartirish va snapshot olish LVM: hajmni o'zgartirish va snapshot maqolasida davom etadi.
O'quv maqsadlari
Maqolani tugatgach:
- PV, VG va LV tushunchalarini va ular orasidagi munosabatni tushunasiz;
pvcreate,vgcreate,lvcreatebilan yangi LVM tuzilmasini yarata olasiz;pvs,vgs,lvsvalvdisplaybilan joriy holatni tekshira olasiz;- LVM device-mapper nomlarini (
/dev/mapper/...) oddiy bo'lim nomidan farqlaysiz; lvremove,vgremove,pvremovebilan LV/VG/PV'ni to'g'ri tartibda o'chira olasiz;- oddiy bo'lim va LVM o'rtasida qachon qaysi birini tanlash kerakligini baholaysiz.
Uch qatlamli model: PV, VG, LV
LVM uchta qatlamdan iborat:
Physical Volume (PV) → Volume Group (VG) → Logical Volume (LV)
/dev/sdb1 vg_data lv_app, lv_logs
/dev/sdc1
- Physical Volume (PV) — LVM metama'lumoti yozilgan disk yoki bo'lim. Xom disk (
/dev/sdb) ham, oddiy bo'lim (/dev/sdb1) ham PV bo'la oladi. - Volume Group (VG) — bir yoki bir nechta PV'ni birlashtirgan umumiy hajm hovuzi. VG hajmi unga kiritilgan barcha PV'larning yig'indisiga teng.
- Logical Volume (LV) — VG ichidan ajratilgan, fayl tizimi yaratiladigan mantiqiy bo'lim. Oddiy bo'limdan farqi — hajmi VG chegarasida istalgan vaqt o'zgartirilishi mumkin.
Info
LV disk ustida jismoniy jihatdan uzluksiz joylashishi shart emas — u VG ichidagi turli PV'lardan yig'ilgan bo'lishi mumkin. Foydalanuvchi va fayl tizimi uchun bu farqi sezilmaydi, LV oddiy blok qurilmasi sifatida ko'rinadi.
LVM ni qachon ishlatish kerak
| Vaziyat | Oddiy bo'lim | LVM |
|---|---|---|
| Hajmni keyinchalik kengaytirish ehtimoli bor | Qiyin, ko'pincha qayta bo'lish kerak | lvextend bilan online kengaytiriladi |
| Bir nechta diskni bitta hajm sifatida ishlatish | Mumkin emas | VG bir nechta PV'ni birlashtiradi |
| Snapshot orqali tezkor backup | Yo'q | lvcreate -s bilan mavjud |
| Eng oddiy, minimal qatlamli sozlash (masalan, kichik VM) | Qulay | Ortiqcha murakkablik bo'lishi mumkin |
LVM foydali, lekin har doim shart emas. Hajmi hech qachon o'zgarmaydigan, bitta diskli kichik serverda oddiy bo'lim yetarli bo'lishi mumkin.
Kerakli paket
Debian/Ubuntu oilasida:
lvm2 o'rnatilgach, pvcreate, vgcreate, lvcreate kabi buyruqlar mavjud bo'ladi.
Danger
Quyidagi buyruqlar diskning mavjud ma'lumotini o'chirib yuboradi. Ularni faqat bo'sh, ishlatilmayotgan disk yoki bo'limda, tercihan disposable test VM'da bajaring. Production diskda tajriba qilishdan oldin backup va o'zgarishlarni tasdiqlaydigan maintenance oynasi bo'lsin.
Yangi LVM tuzilmasi yaratish
Faraz qilaylik, /dev/sdb va /dev/sdc — ikkita bo'sh disk.
1. Physical Volume yaratish
Natijani tekshirish:
pvs qisqa jadval, pvdisplay batafsil ma'lumot beradi.
2. Volume Group yaratish
vg_data — VG nomi, ikkinchi va undan keyingi argumentlar unga kiritiladigan PV'lar. Tekshirish:
vgs chiqishidagi VSize ustuni ikkala diskning umumiy hajmini ko'rsatadi.
3. Logical Volume yaratish
-n lv_app— LV nomi;-L 20G— aniq hajm (masalan, gigabaytda).
VG hajmining bir qismini emas, barchasini bitta LV'ga berish uchun:
-l (kichik harf) foizni yoki extent sonini, -L (katta harf) aniq baytli hajmni bildiradi.
Yangi LV device-mapper orqali ikki xil yo'l bilan ko'rinadi:
Ikkalasi ham bir xil qurilmaga ishora qiladi; fstab va boshqa konfiguratsiyada odatda birinchi, o'qish uchun qulayroq shakl ishlatiladi.
4. Fayl tizimi yaratish va mount qilish
Doimiy ulanish uchun /etc/fstab ga UUID orqali yozish tavsiya etiladi — bu fstab maqolasida batafsil ko'rilgan.
Joriy holatni tekshirish buyruqlari
| Buyruq | Nima ko'rsatadi |
|---|---|
pvs / pvdisplay |
Physical Volume'lar ro'yxati va holati |
vgs / vgdisplay |
Volume Group'lar, umumiy va bo'sh hajm |
lvs / lvdisplay |
Logical Volume'lar, hajm va holat |
lsblk |
Diskdan LV'gacha butun ierarxiyani daraxt ko'rinishida |
Namunaviy natija:
NAME MAJ:MIN RM SIZE RO TYPE LSBLK MOUNTPOINTS
sdb 8:16 0 10G 0 disk
└─vg_data-lv_app 253:0 0 20G 0 lvm /mnt/app
sdc 8:32 0 10G 0 disk
└─vg_data-lv_app 253:0 0 20G 0 lvm /mnt/app
lsblk yordamida qaysi disklar qaysi LV ostida birlashganini bir qarashda ko'rish mumkin.
LV, VG va PV'ni o'chirish
O'chirish har doim yaratishga teskari tartibda bajariladi: avval LV, keyin VG, so'ng PV. Tartib buzilsa, masalan hali LV bor VG'ni o'chirishga urinilsa, LVM xato berib to'xtatadi.
Danger
Quyidagi buyruqlar ma'lumotni qaytarib bo'lmas holda o'chiradi. Ularni faqat kerak bo'lmagan, oldindan backup olingan yoki disposable test VM'dagi LV/VG/PV uchun bajaring.
1. LV'ni o'chirish
Avval mount qilingan bo'lsa, unmount qiling:
lvremove odatda tasdiq so'raydi (Do you really want to remove...); skriptda avtomatlashtirish kerak bo'lsa -y (yoki --yes) qo'shiladi:
Tekshirish:
O'chirilgan LV endi ro'yxatda ko'rinmasligi kerak.
2. VG'ni o'chirish
VG ichida boshqa LV qolmagandan keyin:
VG'da hali LV bo'lsa, vgremove "Volume group ... contains ... logical volume(s)" deb xato beradi — bu tasodifan butun guruhni o'chirib yubormaslik uchun himoya.
3. PV'ni o'chirish
VG o'chirilgandan keyin, disk yoki bo'limdagi LVM metama'lumotini butunlay olib tashlash:
Tekshirish:
pvremovedan keyin diskni boshqa maqsadda (masalan, oddiy fayl tizimi sifatida) qayta ishlatish mumkin bo'ladi.
Ko'p uchraydigan xatolar
PV'ni to'g'ridan-to'g'ri mount qilishga urinish
PV va VG o'zi fayl tizimi emas — ular faqat LVM metama'lumoti. Mount qilinadigan narsa faqat tayyor LV.
VG hajmini diskning umumiy hajmi bilan adashtirish
vgs dagi VFree — hali LV'ga ajratilmagan bo'sh hajm. Yangi LV yaratishda shu ustunga qarash kerak, jismoniy disk hajmiga emas.
-L va -l ni chalkashtirish
-L 20G — aniq hajm, -l 50%FREE — bo'sh joyning foizi. Ikkisini bir vaqtda ishlatib bo'lmaydi.
Amaliy mashqlar
- Disposable VM'da ikkita qo'shimcha virtual disk qo'shing va ularni bitta VG'ga birlashtiring.
pvs,vgs,lvsnatijalarini solishtiring — har birida qaysi ustun nimani ifodalashini yozing.- VG hajmining yarmini bitta LV'ga, qolgan qismini boshqa LV'ga ajrating.
lvsorqali ikkalasining hajmini tekshiring. lsblkdaraxtida disk → PV → VG → LV bog'lanishini toping.
Xulosa
LVM disk boshqaruviga PV → VG → LV qatlamlarini qo'shib, hajmni bo'lim chegarasidan ozod qiladi. Yangi tuzilma pvcreate, vgcreate, lvcreate uchligi bilan yaratiladi, joriy holat esa pvs/vgs/lvs bilan kuzatiladi. Keyingi LVM: hajmni o'zgartirish va snapshot maqolasi shu LV'ni ishlatilayotgan holatda qanday kengaytirish va undan snapshot olishni ko'rsatadi.