در این مطلب میخواهیم نحوه اضافهکردن گروه حجمی (volume group) و همینطور گسترش و کاهش یک حجم منطقی یا logical volume را بررسی کنیم. در ابزار مدیریت حجم منطقی LVM این امکان وجود دارد که اندازه پارتیشنها را کم یا زیاد کنید؛ این امکان را «حجم فایل سیستمی انعطافپذیر» مینامند.

گسترش / کاهش LVM در لینوکس
برای دنبال کردن این آموزش حتماً باید قبلاً فضای دیسک انعطافپذیر با LVM ایجاد کرده باشید.
چه زمانی نیاز به کاهش حجم داریم؟
در مدیریت حافظه دیسک ممکن است نیاز به ساخت یک پارتیشن جداگانه برای استفادهای خاص پیدا کنیم و یا اینکه بخواهیم ابعاد هر کدام از پارتیشنها را اضافه کنیم. در چنین حالتی میتوانیم اندازه یک پارتیشن بزرگتر را کاهش دهیم و به این ترتیب، با چند گام ساده، ابعاد پارتیشن با فضای کمتر را اضافه کنیم.
پیشنیازها
سیستمعامل – لینوکس CentOS 6.5 همراه با نصب LVM
IP سرور – 192.168.0.200
نحوه اضافهکردن گروه حجمی و کاهش حجم منطقی
گسترش حجم منطقی
در اینجا ما یک حجم PV، VG و دو LV داریم. ابتدا با استفاده از فرمانهای زیر آنها را لیست میکنیم.
1 2 3 4 5 6 7 | <br data-mce-bogus= "1" > # pvs # vgs # lvs |

اضافهکردن حجم منطقی
هیچگونه فضای آزادی در Physical Volume و Volume group وجود ندارد. بنابراین نمیتوانیم اندازه LVM را اضافه کنیم. به منظور گسترش حجم، ابتدا باید یک حجم فیزیکی (PV) اضافه کنیم و سپس ابعاد گروه حجمی (VG) را افزایش دهیم. در نتیجه، فضای لازم برای افزایش حجم منطقی (LV) را در اختیار خواهیم داشت. پس در ابتدا، یک PV جدید ایجاد میکنیم. برای این منظور، فرمان fdisk برای ساخت پارتیشن LVM به کمک ما میآید.
1 | # fdisk -cu /dev/sda |
- برای ایجاد یک پارتیشن جدید کلید N را فشار دهید.
- برای انتخاب پارتیشن اولیه از کلید P استفاده کنید.
- شماره پارتیشن موردنظر را برای ساخت پارتیشن اولیه انتخاب کنید.
- در صورتی که یک دیسک دیگر در دسترس بود، کلید 1 را فشار دهید.
- با استفاده از حرف t نوع پارتیشن را تغییر دهید.
- با تایپ 8e نوع پارتیشن را به لینوکس LVM تغییر دهید.
- با استفاده از p پارتیشن ساختهشده را چاپ کنید (در اینجا از این گزینه استفاده نکردهایم).
- با حرف w تغییرات نوشته و ذخیره کنید.
پس از تکمیل تغییرات، سیستم را دوباره راهاندازی کنید.

ایجاد پارتیشن LVM
حالا پارتیشن ساختهشده را بررسی کرده و لیست کنید.
1 | # fdisk -l /dev/sda |

تأیید پارتیشن LVM
سپس حجم فیزیکی یا PV جدید را با استفاده از فرمان زیر بسازید.
1 | # pvcreate /dev/sda1 |
با کمک فرمان زیر این حجم ساخته شده را بررسی و تأیید کنید.
1 | # pvs |

ایجاد حجم فیزیکی
افزایش اندازه Volume Group
این حجم فیزیکی را به گروه حجمی vg_tecmint اضافه میکنیم تا برای فضای اضافی برای گسترش LV در اختیار داشته باشیم.
1 | # vgextend vg_tecmint /dev/sda1 |
حالا با استفاده از فرمان زیر ابعاد Volume Group را بررسی میکنیم.
1 | # vgs |

افزایش گروه حجمی
در عین حال، میتوانیم ببینیم که کدام حجم PV برای گروه حجمی به کار گرفته شده است.
1 | # pvscan |

بررسی گروه حجمی
در اینجا میتوانیم مشاهده کنیم که کدام گروه حجمی زیرمجموعه کدام حجمهای فیزیکی قرار میگیرد. در حال حاضر، یک PV اضافه کردهایم و این حجم کاملاً آزاد است. اکنون اندازه هر کدام از حجمهای منطقی که در اختیار داریم، بررسی میکنیم.

بررسی تمام حجمهای منطقی
- LogVol00 برای حافظه Swap تعریف شده است.
- در حال حاضر 5 گیگابایت حافظه برای / (root) در اختیار داریم.
- اکنون تعداد 4226 واحد افزایش حجم Physical Extend در دسترس قرار گرفته است.
در اینجا میخواهیم پارتیشن LogVol01 را گسترش دهیم. پس از این گسترش میتوانیم لیست اندازه پارتیشنها را برای بررسی بیشتر مشاهده کنیم. برای این منظور از Physical Extend یا PE استفاده میکنیم.
برای دریافت ابعاد Physical Extend که در دسترس قرار دارد، فرمان زیر را اجرا نمایید.
1 | # vgdisplay |

بررسی اندازه فیزیکال در دسترس
در نتیجه مشاهده میشود که تعداد 4607 واحد PE و یا به عبارتی ۱۸ گیگابایت فضای خالی در دسترس قرار دارد. بنابراین میتوانیم حجم منطقی خود را به اندازه ۱۸ گیگابایت افزایش دهیم. برای این منظور داریم:
1 | # lvextend -l +4607 /dev/vg_tecmint/LogVol01 |
با استفاده از علامت + فضا را اضافه میکنیم. پس از افزایش حجم، باید اندازه فایل سیستمی را نیز دوباره تعیین کنیم.
1 | # resize2fs /dev/vg_tecmint/LogVol01 |

اضافهکردن حجم منطقی
- این فرمانی است که برای اضافهکردن حجم منطقی با استفاده از PE به کار میرود.
- در اینجا میتوانیم مشاهده کنیم که حجم از 51 به 34 گیگابایت رسیده است.
- در صورتی که فایل سیستم در حال استفاده است، باید اندازه فایل را دوباره تعیین کنید.
- برای اضافهکردن حجمهای منطقی نیازی به unmount کردن فایل سیستمی ندارید.
حالا اندازه حجم منطقی جدید را بررسی میکنیم.
1 | # lvdisplay |

تغییر اندازه حجم منطقی
- LogVol01 برای حجمی که اضافه شده، تعریف شده است.
- پس از افزایش حجم، اندازه از 5 به 34.5 تغییر یافته است.
- تعداد PE های کنونی پس از افزایش حجم و با درنظر گرفتن 4607 واحد دیگر به 8833 واحد رسیدهاند.
حالا اگر تعداد PE های در دسترس VG را بررسی کنیم، پاسخ برابر صفر خواهد بود.
1 | # vgdisplay |
نتیجه افزایش حجم را ببینید.
1 2 3 4 5 | # pvs # vgs # lvs |

تأیید اندازه جدید پارتیشن
- حجم فیزیکی جدید اضافه شده است.
- گروه حجمی vg_tecmint از 51 به 35.5 گیگابایت رسیده است.
- حجم منطقی LogVol01 از 51 به 34.5 گیگابایت رسیده است.
در اینجا فرآیند افزایش حجم گروه حجمی و حجمهای منطقی به پایان میرسد. در ادامه میخواهیم به برخی نکات جذاب در رابطه با مدیریت حجم منطقی بپردازیم. در ادامه با وبلاگ آریانت همراه باشید.
کاهش حجم منطقی LVM
میخواهیم ببینیم که چگونه میتوان حجمهای منطقی را کاهش داد. این موضوع شاید برای همه امری حیاتی باشد و شاید خیلیها در حین این کار، دچار مشکلات عمدهای شوند. در عین حال، کاهش اندازه LVM شاید یکی از بخشهای جذاب در مدیریت حجم منطقی باشد.
- قبل از این کار را شروع کنیم، بهتر است که نسخه پشتبیان از دادهها تهیه کنیم. در نتیجه، خیالتان از بروز اشتباه و خطا در روند کار راحت خواهد بود.
- برای کاهش یک حجم منطقی تعداد ۵ مرحله وجود دارند که باید بهدقت انجام شوند.
- برای اضافهکردن حجم منطقی لازم نیست که حتماً حجم موردنظر به صورت آفلاین باشد، ولی برای کاهش حجم حتماً باید فایل سیستم را unmount کرد.
پنج مرحلهای که در بالا اشاره شد، از قرار زیرند:
- unmount کردن فایل سیستم به منظور کاهش حجم.
- بررسی فایل سیستمی بعد از unmount کردن.
- کاهش اندازه فایل سیستم.
- کاهش اندازه حجم منطقی به کمتر از اندازه کنونی.
- بررسی دوباره فایل سیستم برای خطاهای احتمالی
- راهاندازی دوباره و آنلاین کردن فایل سیستم.
برای فهم بهتر مسئله در این آموزش، یک گروه حجمی و حجم منطقی به صورت جداگانه ایجاد شده و در اینجا میخواهیم حجم منطقی tecmint_reduce_test را کاهش دهیم. این حجم در حال حاضر برابر 18 گیگابایت است. باید آن را بدون از دست رفتن دادهها تا ۱۰ گیگابایت کاهش دهیم. هماکنون ۴ گیگابایت داده در این حجم وجود دارد.
1 | # lvs |

کاهش حجم منطقی
در اینجا اطلاعات فایل سیستم را مشاهده میکنید.
1 | # df -h |

بررسی ابعاد فایل سیستم
- اندازه حجم برابر 18 گیگابایت است.
- در حال حاضر تنها 9 گیگابایت آن استفاده شده است.
- فضای در دسترس برابر 13 گیگابایت است.
ابتدا باید حجم را unmount و یا از دسترس خارج کنیم.
1 | # umount -v /mnt/tecmint_reduce_test/ |

از مدار خارج کردن پارتیشن
سپس با استفاده از فرمان زیر خطای فایل سیستم را بررسی کنید.
1 | # e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test |

اسکن فایل سیستم برای خطاهای احتمالی
نکته: در هر کدام از مراحل باید این تست بدون خطا انجام شود. در غیر این صورت، ممکن است فایل سیستم شما مشکل داشته باشد.
در مرحله بعد، باید اندازه فایل سیستم را کاهش دهید.
1 | # resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 10GB |

کاهش اندازه فایل سیستم
با استفاده از اندازه GB، حجم منطقی را کاهش میدهیم.
1 | # lvreduce -L -8G /dev/vg_tecmint_extra/tecmint_reduce_test |

کاهش پارتیشن منطقی
برای کاهش حجم منطقی با استفاده از واحد اندازه PE باید اندازه پیشفرض PE و همچنین تعداد کل PE گروه حجمی را بدانیم تا بتوانیم دقیقاً میزان کاهش حجم را مشخص کنیم.
1 | # lvdisplay vg_tecmint_extra |
در اینجا اندکی محاسبات برای تعیین واحد PE حجم 10 گیگابایت با استفاده از فرمان bc لازم خواهد بود.
1 2 3 | 1024MB x 10GB = 10240MB or 10GB 10240MB / 4PE = 2048PE |
حالا کلیدهای CRTL+D را فشار دهید تا از محیط BC خارج شوید.

محاسبه اندازه PE
حالا با استفاده از PE اندازه حجم منطقی را کاهش میدهیم.
1 | # lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test |

کاهش حجم منطقی با استفاده از PE
اندازه فایل سیستم را دوباره تعیین کنید. اگر در این مرحله با هر گونه خطایی مواجه شدید، به معنای آن است که فایل سیستم خراب شده است.
1 | # resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test |

تعیین اندازه فایل سیستم
فایل سیستم را دوباره به مدار باز گردانید.
1 | # mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/ |

آنلاین کردن فایل سیستم
حالا اندازه پارتیشن و فایلها را بررسی کنید.
1 | # lvdisplay vg_tecmint_extra |
در اینجا میتوانیم نتیجه نهایی کار را مشاهده کنیم که در آن اندازه حجم منطقی به ۱۰ گیگابایت کاهش پیدا کرده است.

تأیید اندازه حجم منطقی
در این مطلب با نحوه اضافهکردن اندازه گروه حجمی یا VG و حجم منطقی یا LV، و همین طور با نحوه کاهش حجم منطقی آشنا شدیم. امیدواریم که این مطلب نسبتاً طولانی مورد توجه و استفاده شما قرار گرفته باشد.