در چه مواقعی به آن نیاز داریم؟
LVM به طور کلی وابسته به پیاده سازیهایی است که شامل تعداد زیادی دیسک است. اما برای سیستمهای کوچک با یک یا دو دیسک نیز مناسب است.


مزایای LVM
برای سیستم های کوچک : زمانی که شما در سیستم خانگی خودتون با مشکل کم بودن فضا مواجه می شوبد و برای مثال شاخه home شما پر می شود می توانید به راحتی یک هارد دیسک جدید تهیه کنید و فضای جدید را به راحتی به به پارتیشن home خود اضافه کنید.بدون آنکه نیاز به نصب مجدد سیستم عامل داشته باشید.
برای سیستم های بزرگ: برای سیستم های بزرگ مدیریت دیسکها می تواند کار بسیار زمان بری باشد. با کمک LVM مدیر سیستم می تواند ٬تنها زمانی که به فضای بیشتری نیاز داشت ٬یک دیسک جدید به سیستم اضافه کرده و آن را به فضای قبلی اضافه کند.


ساختمان LVM


برای کار با LVM باید با بخشهای مختلف ساختمان LVM آشنا شوید که در اینجا آنها را تعریف خواهیم کرد.


VG)Volume Group) :
VG بالاترین سطح ظاهری است که به وسیله LVM استفاده می شود. VG مجموعه ای ازLV ها و PV ها را در یک واحد مدیریتی جمع می کند.


PV) Physical Volume) :
PV ها معمولا یک هاردیسک یا چیزی شبیه با آن ( مثلا یک Raid Device ) باشد.


: (LV) Logical Volume
مساوی پارتیشن ها در سیستم های غیر LVM است.


: (PE) Physical Extent
هر PV به تکه های بزرگی از داده تقسیم می شود به نام PE ٬این تکه ها (extent) دارای اندازه ای برابر LE در LV ها هستند.


: (LE) Logical extent
هر LV به تکه های بزرگی از داده تقسیم می شود به نام LE ٬این اندازه برای تمام LV ها درVG یکسان است.


ارتباط این تعاریف با هم
فرض یک VG داریم که نام آن را VG1 می گذاریم. در این VG دو پارتیشن hda1 و hdb1 را که یکی 80GB و دیگری 60 GB است٬ و PV های ما هستند اضافه می کنیم. اکنون یک فضای یک پارچه ۱۴۰ گیگابایتی داریم که می توانیم به LV های با حجم دلخواه خود تقسیم کنیم.اندازه این LV ها را در آینده نیز می توانید تغییر دهید. هر LE نیز توسط یک mapper بر روی یک PE به صورت خطی یا تصادفی نگاشت می شود.


شروع کار یا LVM
در اکثر توزیع های جدید LVM نسخه ۲ وجود دارد و تنها کافی است آن را نصب کنید.
apt-get install lvm2
دفت داشته باشید ما در اینجا بر روی LVM نسخه ۲ کار می کنیم. در صورتی که از توزیع های قدیمی و LVM نسخه ۱استفاده می کنید به LVM Howto مراجعه کنید.
اولین کاری که باید انجام دهیم Initialize کردن (معادلی پیدا نکردم) پارتیشن هاست. این کار توسط دستور pvcreate انجام می‌گیرد. این دستور یک توصیفگر VG در اول دیسک ایجاد می‌کند.
pvcreate /dev/hda5
ساخت VG
خوب حالا می توانیم یک VG بسازیم.
vgcreate my_volume_group /dev/hda5
فعال کردن VG
تا زمانی که شما VG را فعال نکرده باشید نمی توانید به LVها و VG ها دسترسی داشته باشید. با دستورزیر می توانید VG را فعال کنید:
vgchange -ay my_volume_group
اضافه کردن یک PV به VG
در صورتی که بخواهید یک PV دیگر را به VG اضافه کنید٬ می توانید به شکل زیر عمل نمایید:
vgextend my_volume_group /dev/hdb1
ساخت LV
برای ساختن یک LV به ظرفیت 10G به صورت زیر عمل کنید
lvcraete -L 10G my_volume_group --name my_logical_volume
اگر بخواهید یک LV بسازید که تمام VG را در بر داشته باشد از vgdisplay استفاده کنید تا مجموع PE های موجود را ببینید سپس دستور lvcreate را اجرا کنید:
root@debian~: vgdisplay | grep "Total PE"
Total PE 3576
در اینجا 3576 عدد PE در این VG وجود دارد. برای ساخت LV که تمام این فضا را شامل شود از lvcreate به شکل زیر می توانیم استفاده کنیم:
lvcreate -l 3576 my_volume_group --name my_logical_volume
دقت کنید در اینجا از حرف کوچک l برای مقدار دهی استفاده کردیم.


ساخت سیستم فایل
اکنون LV آماده است و شما می توانید با آن به صورت یک پارتیشن معمولی رفتار کنید .آن را فرمت کنید:
mkfs.ext3 /dev/my_volume_group/my_logical_volume
سپس آن را mount کنید و از آن استفاده نمایید. در صورتی که می خواهید در هنگام راه اندازی سیستم به صورت خودکار mount شود آن را به fstab اضافه کنید.


توسعه یک LV
در صورتی که یکPV به VG اضافه کردید٬ یا در VG فعلی فضای خالی در اختیار دارید می توانید LV را توسعه دهید.برای توسعه LV به دو صورت می توانید عمل کنید:
lvextend -L12G /dev/my_volume_group/my_logical_volume
دستور بالا حجم LV را به 12G افزایش می دهد.
lvextend -L+1G /dev/my_volume_group/my_logical_volume
دستور بالا یک گیگابایت به my_logical_volume اضافه می کند.
بعد از آنکه LV را توسعه دادید ٬شما باید سیستم فایل را به اندازه ایی که با آن مطابقت داشته باشد افزایش دهید. با کمک دشتور resize2fs می توانید این کار را انجام دهید .نیاز نیست نگران مشخص کردن اندازه باشید.قبل از اجرای resize2fs ٬سیستم فایل را چک کنید:
e2fsck -f /dev/my_volume_group/my_logical_volume
resize2fs /dev/my_volume_group/my_logical_volume
پاک کردن LVM
برای پاک کردن LVM بر عکس مسیر ساخت عمل می کنیم. ابتدا باید LV را پاک شود ٬قبل از همه باید آن را umount کنید .سپس با کمک دستور زیر آن را remove کنید:
lvremove /dev/my_volume_group/my_logical_volume


بعد از اون نوبت به پاک کردن VG می‌رسد:
vgremove my_volume_group
و در آخر پاک کردن PV :
pvremove /dev/hda5
pvremove /dev/hdb1