Logical Voliume Mnagaement چیست؟
LVM یک نگاه سطح بالا ٬به دیسک ذخیره سازی را ٬نسبت به روش سنتی در اختیار ما می گذارد. این مسئله قابلیت انعطاف بیشتری را به مدیر سیستم٬ برای نسبت دادن فضا به کاربران و برنامه ها می دهد.
حجمهای ذخیره سازی تحت کنترل LVM ساخته می شوند و می توانند resize و به هر جا منتقل شوند. LVM به شما اجازه می دهد تا Storage Volume ها را به صورت گروههایی مدیرت کنید. اجازه نامگذاری مانند devو sales را می دهد.
در چه مواقعی به آن نیاز داریم؟
LVM به طور کلی وابسته به پیاده سازیهایی است که شامل تعداد زیادی دیسک است. اما برای سیستمهای کوچک با یک یا دو دیسک نیز مناسب است.
مزایای LVM
برای سیستم های کوچک : زمانی که شما در سیستم خانگی خودتون با مشکل کم بودن فضا مواجه می شوبد و برای مثال شاخه home شما پر می شود می توانید به راحتی یک هارد دیسک جدید تهیه کنید و فضای جدید را به راحتی به به پارتیشن home خود اضافه کنید.بدون آنکه نیاز به نصب مجدد سیستم عامل داشته باشید.
برای سیستم های بزرگ: برای سیستم های بزرگ مدیریت دیسکها می تواند کار بسیار زمان بری باشد. با کمک LVM مدیر سیستم می تواند ٬تنها زمانی که به فضای بیشتری نیاز داشت ٬یک دیسک جدید به سیستم اضافه کرده و آن را به فضای قبلی اضافه کند.
ساختمان LVM
برای کار با LVM باید با بخشهای مختلف ساختمان LVM آشنا شوید که در اینجا آنها را تعریف خواهیم کرد.
VG بالاترین سطح ظاهری است که به وسیله LVM استفاده می شود. VG مجموعه ای از LV ها و PV ها را در یک واحد مدیریتی جمع می کند.
PV ها معمولا یک هاردیسک یا چیزی شبیه با آن ( مثلا یک Raid Device ) باشد.
مساوی پارتیشن ها در سیستم های غیر LVM است.
هر PV به تکه های بزرگی از داده تقسیم می شود به نام PE ٬این تکه ها (extent) دارای اندازه ای برابر LE در LV ها هستند.
هر LV به تکه های بزرگی از داده تقسیم می شود به نام LE ٬این اندازه برای تمام LV ها در VG یکسان است.
ارتباط این تعاریف با هم
فرض یک VG داریم که نام آن را VG1 می گذاریم. در این VG دو پارتیشن hda1 و hdb1 را که یکی 80GB و دیگری 60 GB است٬ و PV های ما هستند اضافه می کنیم. اکنون یک فضای یک پارچه ۱۴۰ گیگابایتی داریم که می توانیم به LV های با حجم دلخواه خود تقسیم کنیم. اندازه این LV ها را در آینده نیز می توانید تغییر دهید. هر LE نیز توسط یک mapper بر روی یک PE به صورت خطی یا تصادفی نگاشت می شود.
شروع کار یا LVM
در اکثر توزیع های جدید LVM نسخه ۲ وجود دارد و تنها کافی است آن را نصب کنید.
دفت داشته باشید ما در اینجا بر روی LVM نسخه ۲ کار می کنیم. در صورتی که از توزیع های قدیمی و LVM نسخه ۱استفاده می کنید به LVM Howto مراجعه کنید.
اولین کاری که باید انجام دهیم Initialize کردن (معادلی پیدا نکردم) پارتیشن هاست. این کار توسط دستور pvcreate انجام میگیرد. این دستور یک توصیفگر VG در اول دیسک ایجاد میکند.
ساخت VG
خوب حالا می توانیم یک VG بسازیم.
فعال کردن VG
تا زمانی که شما VG را فعال نکرده باشید نمی توانید به LVها و VG ها دسترسی داشته باشید. با دستورزیر می توانید VG را فعال کنید:
اضافه کردن یک PV به VG
در صورتی که بخواهید یک PV دیگر را به VG اضافه کنید٬ می توانید به شکل زیر عمل نمایید:
ساخت LV
برای ساختن یک LV به ظرفیت 10G به صورت زیر عمل کنید
اگر بخواهید یک LV بسازید که تمام VG را در بر داشته باشد از vgdisplay استفاده کنید تا مجموع PE های موجود را ببینید سپس دستور lvcreate را اجرا کنید:
در اینجا 3576 عدد PE در این VG وجود دارد. برای ساخت LV که تمام این فضا را شامل شود از lvcreate به شکل زیر می توانیم استفاده کنیم:
دقت کنید در اینجا از حرف کوچک l برای مقدار دهی استفاده کردیم.
ساخت سیستم فایل
اکنون LV آماده است و شما می توانید با آن به صورت یک پارتیشن معمولی رفتار کنید .آن را فرمت کنید:
سپس آن را mount کنید و از آن استفاده نمایید. در صورتی که می خواهید در هنگام راه اندازی سیستم به صورت خودکار mount شود آن را به fstab اضافه کنید.
توسعه یک LV
در صورتی که یکPV به VG اضافه کردید٬ یا در VG فعلی فضای خالی در اختیار دارید می توانید LV را توسعه دهید.برای توسعه LV به دو صورت می توانید عمل کنید:
دستور بالا حجم LV را به 12G افزایش می دهد.
دستور بالا یک گیگابایت به my_logical_volume اضافه می کند.
بعد از آنکه LV را توسعه دادید ٬شما باید سیستم فایل را به اندازه ایی که با آن مطابقت داشته باشد افزایش دهید. با کمک دشتور resize2fs می توانید این کار را انجام دهید .نیاز نیست نگران مشخص کردن اندازه باشید.قبل از اجرای resize2fs ٬سیستم فایل را چک کنید:
پاک کردن LVM
برای پاک کردن LVM بر عکس مسیر ساخت عمل می کنیم. ابتدا باید LV را پاک شود ٬قبل از همه باید آن را umount کنید .سپس با کمک دستور زیر آن را remove کنید:
بعد از اون نوبت به پاک کردن VG میرسد:
و در آخر پاک کردن PV :
پیشنهاد:
- LVM امکانات زیادی رو در اختیار ما قرار می دهد مانند mirror و snapshot که هم در man page آن و هم در منبع این مقاله می تونید بخونید
- من توصیه می کنم نگاهی به man page دستورات دیگه ای که برای LVM هست بندازید (vgrename , vgsplite , vgmerge, vgdisplay, lvreduce, lvresize, lvdisplay lvdisplay و...)
منبع: http://tldp.org/HOWTO/LVM-HOWTO
LVM یک نگاه سطح بالا ٬به دیسک ذخیره سازی را ٬نسبت به روش سنتی در اختیار ما می گذارد. این مسئله قابلیت انعطاف بیشتری را به مدیر سیستم٬ برای نسبت دادن فضا به کاربران و برنامه ها می دهد.
حجمهای ذخیره سازی تحت کنترل LVM ساخته می شوند و می توانند resize و به هر جا منتقل شوند. LVM به شما اجازه می دهد تا Storage Volume ها را به صورت گروههایی مدیرت کنید. اجازه نامگذاری مانند devو sales را می دهد.
در چه مواقعی به آن نیاز داریم؟
LVM به طور کلی وابسته به پیاده سازیهایی است که شامل تعداد زیادی دیسک است. اما برای سیستمهای کوچک با یک یا دو دیسک نیز مناسب است.
مزایای LVM
برای سیستم های کوچک : زمانی که شما در سیستم خانگی خودتون با مشکل کم بودن فضا مواجه می شوبد و برای مثال شاخه home شما پر می شود می توانید به راحتی یک هارد دیسک جدید تهیه کنید و فضای جدید را به راحتی به به پارتیشن home خود اضافه کنید.بدون آنکه نیاز به نصب مجدد سیستم عامل داشته باشید.
برای سیستم های بزرگ: برای سیستم های بزرگ مدیریت دیسکها می تواند کار بسیار زمان بری باشد. با کمک LVM مدیر سیستم می تواند ٬تنها زمانی که به فضای بیشتری نیاز داشت ٬یک دیسک جدید به سیستم اضافه کرده و آن را به فضای قبلی اضافه کند.
ساختمان LVM
برای کار با LVM باید با بخشهای مختلف ساختمان LVM آشنا شوید که در اینجا آنها را تعریف خواهیم کرد.
کد:
VG)Volume Group) :
کد:
PV) Physical Volume) :
کد:
: (LV) Logical Volume
کد:
: (PE) Physical Extent
کد:
: (LE) Logical extent
ارتباط این تعاریف با هم
فرض یک VG داریم که نام آن را VG1 می گذاریم. در این VG دو پارتیشن hda1 و hdb1 را که یکی 80GB و دیگری 60 GB است٬ و PV های ما هستند اضافه می کنیم. اکنون یک فضای یک پارچه ۱۴۰ گیگابایتی داریم که می توانیم به LV های با حجم دلخواه خود تقسیم کنیم. اندازه این LV ها را در آینده نیز می توانید تغییر دهید. هر LE نیز توسط یک mapper بر روی یک PE به صورت خطی یا تصادفی نگاشت می شود.
شروع کار یا LVM
در اکثر توزیع های جدید LVM نسخه ۲ وجود دارد و تنها کافی است آن را نصب کنید.
کد:
apt-get install lvm2
اولین کاری که باید انجام دهیم Initialize کردن (معادلی پیدا نکردم) پارتیشن هاست. این کار توسط دستور pvcreate انجام میگیرد. این دستور یک توصیفگر VG در اول دیسک ایجاد میکند.
کد:
pvcreate /dev/hda5
خوب حالا می توانیم یک VG بسازیم.
کد:
vgcreate my_volume_group /dev/hda5
تا زمانی که شما VG را فعال نکرده باشید نمی توانید به LVها و VG ها دسترسی داشته باشید. با دستورزیر می توانید VG را فعال کنید:
کد:
vgchange -ay my_volume_group
در صورتی که بخواهید یک PV دیگر را به VG اضافه کنید٬ می توانید به شکل زیر عمل نمایید:
کد:
vgextend my_volume_group /dev/hdb1
برای ساختن یک LV به ظرفیت 10G به صورت زیر عمل کنید
کد:
lvcreate -L 10G my_volume_group --name my_logical_volume
کد:
root@debian~: vgdisplay | grep "Total PE" Total PE 3576
کد:
lvcreate -l 3576 my_volume_group --name my_logical_volume
ساخت سیستم فایل
اکنون LV آماده است و شما می توانید با آن به صورت یک پارتیشن معمولی رفتار کنید .آن را فرمت کنید:
کد:
mkfs.ext3 /dev/my_volume_group/my_logical_volume
توسعه یک LV
در صورتی که یکPV به VG اضافه کردید٬ یا در VG فعلی فضای خالی در اختیار دارید می توانید LV را توسعه دهید.برای توسعه LV به دو صورت می توانید عمل کنید:
کد:
lvextend -L12G /dev/my_volume_group/my_logical_volume
کد:
lvextend -L+1G /dev/my_volume_group/my_logical_volume
بعد از آنکه LV را توسعه دادید ٬شما باید سیستم فایل را به اندازه ایی که با آن مطابقت داشته باشد افزایش دهید. با کمک دشتور resize2fs می توانید این کار را انجام دهید .نیاز نیست نگران مشخص کردن اندازه باشید.قبل از اجرای resize2fs ٬سیستم فایل را چک کنید:
کد:
e2fsck -f /dev/my_volume_group/my_logical_volume resize2fs /dev/my_volume_group/my_logical_volume
برای پاک کردن LVM بر عکس مسیر ساخت عمل می کنیم. ابتدا باید LV را پاک شود ٬قبل از همه باید آن را umount کنید .سپس با کمک دستور زیر آن را remove کنید:
کد:
lvremove /dev/my_volume_group/my_logical_volume
بعد از اون نوبت به پاک کردن VG میرسد:
کد:
vgremove my_volume_group
کد:
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