Logical Voliume Mnagaement چیست؟
LVM یک نگاه سطح بالا ٬به دیسک ذخیره سازی را ٬نسبت به روش سنتی در اختیار ما می گذارد. این مسئله قابلیت انعطاف بیشتری را به مدیر سیستم٬ برای نسبت دادن فضا به کاربران و برنامه ها می دهد. حجمهای ذخیره سازی تحت کنترل LVM ساخته می شوند و می توانند resize و به هر جا منتقل شوند. LVM به شما اجازه می دهد تا Storage Volume ها را به صورت گروههایی مدیرت کنید. اجازه نامگذاری مانند devو sales را می دهد.


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


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

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

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

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

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

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 را اجرا کنید:

# 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

پیشنهاد:
– LVM امکانات زیادی رو در اختیار ما قرار می دهد مانند mirror و snapshot که هم در man page آن و هم در منبع این مقاله می تونید بخونید
– من توصیه می کنم نگاهی به man page دستورات دیگه ای که برای LVM هست بندازید (vgrename , vgsplite , vgmerge, vgdisplay, lvreduce, lvresize, lvdisplay lvdisplay و…)

منبع: http://tldp.org/HOWTO/LVM-HOWTO