راهاندازی LVM در لینوکس
LVM چیست
LVM مخفف Logical Volume Manager روشی پیشرفته برای مدیریت پارتیشنها و فضای دیسک سخت در لینوکس است که امکانات بسیار گستردهتری را نسبت به مدل پارتیشنبندی سنتی در اختیار مدیر سیستم میگذارد.
در LVM میتوانیم مجموعهای از دیسکهای سخت و یا پارتیشنها را که Physical Volume نامیده میشوند بهصورت یک یا چندین دیسک منطقی بزرگتر و یکپارچه با نام Volume Group به وجود بیاوریم و سپس روی این دیسک ایجاد شده پارتیشنهای خود که در اینجا Logical Volume نامیده میشود ایجاد کنیم.
از جمله مزایای این روش این است زمانی که فضای یکی از پارتیشنها رو به اتمام است بهراحتی میتوانیم بهصورت آنلاین و داینامیک فضای بیشتری را به آن تخصیص بدهیم.
متأسفانه LVM قابلیت تحمل خطاپذیری و بازیابی دادهها را همانند آنچه در RAID ها داریم، ندارد و در صورت خرابی یکی از دیسکها دادههایمان از بین خواهد رفت.
مقاله راه اندازی RAID در لینوکس می تواند مفید باشد
برای اطلاعات بیشتر در مورد LVM می توانید به مقاله “ Logical Volume Manager یا LVM در لینوکس چیست ؟ ” مراجعه کنید
آموزش نحوه نصب و پیکربندی LVM در لینوکس
ابتدا میبایست بسته lvm2 را روی سیستم نصب کنیم.
$ sudo apt install lvm2
$ sudo yum install lvm2
پس میبایست توسط دستور pvcreate پارتیشن یا دیسکهای مورد نظرمان را به Physical Volume تبدیل کنیم.
# pvcreate /dev/sda /dev/sdb
پس از اجرای دستور فوق میتوانیم برای آگاهی از وضعیت Physical Volume ها از دستور زیر استفاده کنیم.
# pvdisplay
که خروجی آن برای مثال ما بصورت زیر خواهد بود.
"/dev/sda" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sda
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID cAwfbX-Nik0-X1iR-lAzP-GJGD-5FNS-tX5fuY
"/dev/sdb" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID VRDlaw-eeXm-p3XP-2w4t-fCZ8-92NP-2izZb3
همانطور که مشاهده میکنید دیسکهای sda و sdb هر کدام با حجم 8 گیگ تعریف شدهاند.
حال میبایست برای Physical Volume های ایجاد شده یک Volume Group تعریف کنیم.
# vgcreate vg_server /dev/sda /dev/sdb
که در اینجا یک Volume Group با نام vg_server ایجاد نمودیم و دو دیسک sda و sdb را به آن اضافه کردیم.
برای بررسی وضعیت Volume Group ایجاد شده دستور زیر را وارد میکنیم.
# vgdisplay vg_server
که خروجی آن بصورت زیر خواهد بود.
--- Volume group ---
VG Name vg_server
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 15.99 GiB
PE Size 4.00 MiB
Total PE 4094
Alloc PE / Size 0 / 0
Free PE / Size 4094 / 15.99 GiB
VG UUID udnHV5-QwGw-PkA4-zsF3-5ABo-WhOA-XI51SZ
همانطور که مشاهده میکنید در بخش Free PE/ Size مجموع فضای دیسکها اضافه شده را نمایش می دهد.
برای اضافه نمودن دیسکهای بیشتر به Volume Group میتوانیم به صورت زیر عمل کنیم.
# pvcreate /dev/sdd
# vgextend vg_server /dev/sdd
که در اینجا ما یک Physical Volume به نام sdd را به Volume Group اضافه نمودیم.
سپس میتوانیم بهصورت زیر Logical Volume های مورد نظرمان را روی Volume Group ایجاد شده تعریف کنیم.
# lvcreate -L 1G -n Vol01 vg_server
که در اینجا ما یک Logical Volume با حجم 1Gb و نام Vol01 تعریف نمودیم.
جهت مشاهده وضعیت Logical Volume ایجاد شده دستور زیر را وارد میکنیم.
# lvdisplay vg_server
که خروجی آن بصورت زیر خواهد بود.
--- Logical volume ---
LV Path /dev/vg_server/Vol01
LV Name Vol01
VG Name vg_server
LV UUID dwdyI0-yy7l-jF9U-bPHB-QNpO-15RO-0uKlPH
LV Write Access read/write
LV Creation host, time debian, 2016-08-11 11:48:48 -0400
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
سپس میتوانیم Logical Volume ایجاد شده را با فرمت فایل سیستم مورد نظرمان بهصورت زیر فرمت کنیم.
# mkfs -t ext4 /dev/vg_server/vol01
و در نهایت توسط دستور mount انرا ماونت کنیم.
# mount /dev/vg_server/vol01 /mnt
در صورتی که بخواهیم اندازه Logical Volume مورد نظرمان را تغییر دهیم میتوانیم بهصورت زیر عمل کنیم.
# lvextend -L +800 /dev/vg_server/vol01
و سپس توسط دستور زیر جهت اعمال تغییرات روی فایل سیستم Logical Volume وارد میکنیم.
# resize2fs /dev/vg_server/vol01
در مثال فوق 800Mb از فضای خالی Volume Group به Logical Volume اضافه نمودیم.
برای حذف Logical Volume میتوانیم بهصورت زیر عمل کنیم.
# lvremove /dev/vg_server/vol01
و برای حذف Volume Group دستور زیر را وارد میکنیم.
# vgremove vg_server