زمان تخمینی مطالعه:‌ 7 دقیقه

آموزش LVM (Logical Volume Management) در لینوکس


LVM چیست ؟

LVM به معنای مدیریت ظرفیت غیر فیزیکی است که یک لایه انتزاعی بین ظرفیت های فیزیکی و غیر فیزیکی (منطقی) ایجاد می کند که در نهایت باعث استفاده راحت تر از فضا برای filesystem می باشد.

LVM از ویژگی device mapper لینوکس استفاده می کند (/dev/mapper).

کاربرد LVM:

در مواردی که شما نمی توانید تخمین درستی از میزان حافظه مورد نیاز خود داشته باشید یا از دیسک برای ذخیره موارد رشد شونده استفاده می کنید(مانند ذخیره دیتا بیس) استفاده از LVM به شدت توصیه می شود.

نکته: توصیه می شود در فایل سیستم هر فولدر اصلی را یک LVM جداگانه در نظر بگیرید مثلا فولدر root یا dev در دو LVM جدا باشند تا پایداری سیستم بالا رود.

LVM چگونه کار می کند:

دیسک ها، پارتیشن ها و دیوایس های RAID از حافظه های فیزیکی می باشند، که به صورت گروه حافظه یا Volume Group نام برده میشوند.

یک گروه حافظه به قطعات مساوی کوچکی به نام Physical Extent تقسیم می شود، که به صورت 1 به 1 به Logical Extent ها نگاشت (map) می شوند.

حالا logical extent ها با هم گروه می شوند و یک logical volume یا حافظه غیر فیزیکی را می سازند که filesystem ها روی آن ساخته می شوند.

چگونه یک حافظه غیر فیزیکی یا Logical Volume بسازیم

1. یک دیسک مجازی یا واقعی به ماشین لینوکس خود اضافه می کنیم.

2. با دستور زیر مطمئن می شویم که دیسک جدید شناخته شده است (مثلا روی /dev/sda)

lsblk

3. یک پارتیشن جدید روی دیسک جدید می سازیم (از نوع Linux LVM = 0x8E).

این کار اجباری نیست ولی توصیه می شود انجام شود چون بقیه سیستم عامل ها LVMرا نمی فهمند و دیسک را پارتیشن بندی نشده و خالی نشان می دهند و احتمال دارد آن را پارتیشن بندی کنند و تمام اطلاعات شما حذف شود.

fdisk /dev/sda

4. حافظه فیزیکی را برای استفاده LVM آماده می کنیم.

pvcreate /dev/sda1

5. یک Volume Group تعریف کرده و سایز Physical Extent های آن را 8 مگابایت می گذاریم، توجه کنید که سایز پیش فرض 4 مگابایت می باشد.

vgcreate -s 8M myvg0 /dev/sda1

(یا) می توانیم یک حافظه فیزیکی به Volume Group فعلی اضافه کنیم :

vgextend myvg0 /dev/sda1

6. یک Logical Volume یا حافظه غیر فیزیکی می سازیم :

lvcreate -L 1024M -n mylv myvg0

7. یک filesystem روی Logical Volume می سازیم :

mkfs -t ext3 /dev/myvg0/mylv

8. Logical Volume ای که ساختیم را برای استفاده mount می کنیم :

mount /dev/myvg0/mylv /mnt/mystuff

چگونه سایز Logical Volume را افزایش دهیم

1. برای افزایش ظرفیت یک دیسک مجازی یا واقعی دیگر را به ماشین لینوکس خود اضافه می کنیم.

2. دیسک جدید را پارتیشن بندی می کنیم:

fdisk /dev/sdc

3. حافظه جدید را روی /dev/sdc آماده می کنیم:

pvcreate /dev/sdc

4. /dev/sdc را به Volume Group فعلی اضافه می کنیم:

vgextend myvg0 /dev/sdc

5. فضای Logical Volume را 2 گیگا بایت افزایش می دهیم:

lvextend -L 2048M /dev/myvg0/mylv

6. یا:

lvresize -L+2048M /dev/myvg0/mylv

7. یا حتی با این دستور Logical Volume کل فضای خالی را در اختیار می گیرد:

lvresize -l+100%FREE /dev/myvg/mylv

8. در آخر filesystem را افزایش می دهیم:

resize2fs /dev/myvg0/mylv

چگونه سایز Logical Volume را کاهش دهیم

1. Filesystem را کاهش می دهیم یا به اصطلاح shrink می کنیم:

resize2fs /dev/myvg0/mylv 900M

2. Logical Volume را به اندازه 900 مگابایت کاهش می دهیم:

lvreduce -L 900M /dev/myvg0/mylv

3. یا:

lvresize -L-900M /dev/myvg0/mylv

چگونه از Logical Volume نسخه پشتیبان (backup) یا تصویر لحظه ای (snapshot)بگیریم

1. این دستور یک snapshot دقیقا مثل Logical Volume از آن تهیه می کند:

lvcreate -s -L 1024M -n snapshot0 /dev/myvg0/mylv

2. از snapshot با هر ابزار پشتیبان گیری، بک آپ بگیرید:

tar cvzf snapshot0.tar.gz snapshot0

3. در آخرsnapshot را پاک کنید:

lvremove /dev/mvvg0/snapshot0

لطفا در راستای هرچه بهتر شدن کیفیت مطالب نظر خود را در رابطه با این سرفصل برای ما ارسال نمایید.