در این مطلب میخواهیم نحوه اضافهکردن گروه حجمی (volume group) و همینطور گسترش و کاهش یک حجم منطقی یا logical volume را بررسی کنیم. در ابزار مدیریت حجم منطقی LVM این امکان وجود دارد که اندازه پارتیشنها را کم یا زیاد کنید؛ این امکان را «حجم فایل سیستمی انعطافپذیر» مینامند.
برای دنبال کردن این آموزش حتماً باید قبلاً فضای دیسک انعطافپذیر با LVM ایجاد کرده باشید.
چه زمانی نیاز به کاهش حجم داریم؟
در مدیریت حافظه دیسک ممکن است نیاز به ساخت یک پارتیشن جداگانه برای استفادهای خاص پیدا کنیم و یا اینکه بخواهیم ابعاد هر کدام از پارتیشنها را اضافه کنیم. در چنین حالتی میتوانیم اندازه یک پارتیشن بزرگتر را کاهش دهیم و به این ترتیب، با چند گام ساده، ابعاد پارتیشن با فضای کمتر را اضافه کنیم.
پیشنیازها
سیستمعامل – لینوکس CentOS 6.5 همراه با نصب LVM
IP سرور – 192.168.0.200
نحوه اضافهکردن گروه حجمی و کاهش حجم منطقی
گسترش حجم منطقی
در اینجا ما یک حجم PV، VG و دو LV داریم. ابتدا با استفاده از فرمانهای زیر آنها را لیست میکنیم.
<br data-mce-bogus="1"> # pvs # vgs # lvs
هیچگونه فضای آزادی در Physical Volume و Volume group وجود ندارد. بنابراین نمیتوانیم اندازه LVM را اضافه کنیم. به منظور گسترش حجم، ابتدا باید یک حجم فیزیکی (PV) اضافه کنیم و سپس ابعاد گروه حجمی (VG) را افزایش دهیم. در نتیجه، فضای لازم برای افزایش حجم منطقی (LV) را در اختیار خواهیم داشت. پس در ابتدا، یک PV جدید ایجاد میکنیم. برای این منظور، فرمان fdisk برای ساخت پارتیشن LVM به کمک ما میآید.
# fdisk -cu /dev/sda
- برای ایجاد یک پارتیشن جدید کلید N را فشار دهید.
- برای انتخاب پارتیشن اولیه از کلید P استفاده کنید.
- شماره پارتیشن موردنظر را برای ساخت پارتیشن اولیه انتخاب کنید.
- در صورتی که یک دیسک دیگر در دسترس بود، کلید 1 را فشار دهید.
- با استفاده از حرف t نوع پارتیشن را تغییر دهید.
- با تایپ 8e نوع پارتیشن را به لینوکس LVM تغییر دهید.
- با استفاده از p پارتیشن ساختهشده را چاپ کنید (در اینجا از این گزینه استفاده نکردهایم).
- با حرف w تغییرات نوشته و ذخیره کنید.
پس از تکمیل تغییرات، سیستم را دوباره راهاندازی کنید.
حالا پارتیشن ساختهشده را بررسی کرده و لیست کنید.
# fdisk -l /dev/sda
سپس حجم فیزیکی یا PV جدید را با استفاده از فرمان زیر بسازید.
# pvcreate /dev/sda1
با کمک فرمان زیر این حجم ساخته شده را بررسی و تأیید کنید.
# pvs
افزایش اندازه Volume Group
این حجم فیزیکی را به گروه حجمی vg_tecmint اضافه میکنیم تا برای فضای اضافی برای گسترش LV در اختیار داشته باشیم.
# vgextend vg_tecmint /dev/sda1
حالا با استفاده از فرمان زیر ابعاد Volume Group را بررسی میکنیم.
# vgs
در عین حال، میتوانیم ببینیم که کدام حجم PV برای گروه حجمی به کار گرفته شده است.
# pvscan
در اینجا میتوانیم مشاهده کنیم که کدام گروه حجمی زیرمجموعه کدام حجمهای فیزیکی قرار میگیرد. در حال حاضر، یک PV اضافه کردهایم و این حجم کاملاً آزاد است. اکنون اندازه هر کدام از حجمهای منطقی که در اختیار داریم، بررسی میکنیم.
- LogVol00 برای حافظه Swap تعریف شده است.
- در حال حاضر 5 گیگابایت حافظه برای / (root) در اختیار داریم.
- اکنون تعداد 4226 واحد افزایش حجم Physical Extend در دسترس قرار گرفته است.
در اینجا میخواهیم پارتیشن LogVol01 را گسترش دهیم. پس از این گسترش میتوانیم لیست اندازه پارتیشنها را برای بررسی بیشتر مشاهده کنیم. برای این منظور از Physical Extend یا PE استفاده میکنیم.
برای دریافت ابعاد Physical Extend که در دسترس قرار دارد، فرمان زیر را اجرا نمایید.
# vgdisplay
در نتیجه مشاهده میشود که تعداد 4607 واحد PE و یا به عبارتی ۱۸ گیگابایت فضای خالی در دسترس قرار دارد. بنابراین میتوانیم حجم منطقی خود را به اندازه ۱۸ گیگابایت افزایش دهیم. برای این منظور داریم:
# lvextend -l +4607 /dev/vg_tecmint/LogVol01
با استفاده از علامت + فضا را اضافه میکنیم. پس از افزایش حجم، باید اندازه فایل سیستمی را نیز دوباره تعیین کنیم.
# resize2fs /dev/vg_tecmint/LogVol01
- این فرمانی است که برای اضافهکردن حجم منطقی با استفاده از PE به کار میرود.
- در اینجا میتوانیم مشاهده کنیم که حجم از 51 به 34 گیگابایت رسیده است.
- در صورتی که فایل سیستم در حال استفاده است، باید اندازه فایل را دوباره تعیین کنید.
- برای اضافهکردن حجمهای منطقی نیازی به unmount کردن فایل سیستمی ندارید.
حالا اندازه حجم منطقی جدید را بررسی میکنیم.
# lvdisplay
- LogVol01 برای حجمی که اضافه شده، تعریف شده است.
- پس از افزایش حجم، اندازه از 5 به 34.5 تغییر یافته است.
- تعداد PE های کنونی پس از افزایش حجم و با درنظر گرفتن 4607 واحد دیگر به 8833 واحد رسیدهاند.
حالا اگر تعداد PE های در دسترس VG را بررسی کنیم، پاسخ برابر صفر خواهد بود.
# vgdisplay
نتیجه افزایش حجم را ببینید.
# pvs # vgs # lvs
- حجم فیزیکی جدید اضافه شده است.
- گروه حجمی vg_tecmint از 51 به 35.5 گیگابایت رسیده است.
- حجم منطقی LogVol01 از 51 به 34.5 گیگابایت رسیده است.
در اینجا فرآیند افزایش حجم گروه حجمی و حجمهای منطقی به پایان میرسد. در ادامه میخواهیم به برخی نکات جذاب در رابطه با مدیریت حجم منطقی بپردازیم. در ادامه با وبلاگ آریانت همراه باشید.
کاهش حجم منطقی LVM
میخواهیم ببینیم که چگونه میتوان حجمهای منطقی را کاهش داد. این موضوع شاید برای همه امری حیاتی باشد و شاید خیلیها در حین این کار، دچار مشکلات عمدهای شوند. در عین حال، کاهش اندازه LVM شاید یکی از بخشهای جذاب در مدیریت حجم منطقی باشد.
- قبل از این کار را شروع کنیم، بهتر است که نسخه پشتبیان از دادهها تهیه کنیم. در نتیجه، خیالتان از بروز اشتباه و خطا در روند کار راحت خواهد بود.
- برای کاهش یک حجم منطقی تعداد ۵ مرحله وجود دارند که باید بهدقت انجام شوند.
- برای اضافهکردن حجم منطقی لازم نیست که حتماً حجم موردنظر به صورت آفلاین باشد، ولی برای کاهش حجم حتماً باید فایل سیستم را unmount کرد.
پنج مرحلهای که در بالا اشاره شد، از قرار زیرند:
- unmount کردن فایل سیستم به منظور کاهش حجم.
- بررسی فایل سیستمی بعد از unmount کردن.
- کاهش اندازه فایل سیستم.
- کاهش اندازه حجم منطقی به کمتر از اندازه کنونی.
- بررسی دوباره فایل سیستم برای خطاهای احتمالی
- راهاندازی دوباره و آنلاین کردن فایل سیستم.
برای فهم بهتر مسئله در این آموزش، یک گروه حجمی و حجم منطقی به صورت جداگانه ایجاد شده و در اینجا میخواهیم حجم منطقی tecmint_reduce_test را کاهش دهیم. این حجم در حال حاضر برابر 18 گیگابایت است. باید آن را بدون از دست رفتن دادهها تا ۱۰ گیگابایت کاهش دهیم. هماکنون ۴ گیگابایت داده در این حجم وجود دارد.
# lvs
در اینجا اطلاعات فایل سیستم را مشاهده میکنید.
# df -h
- اندازه حجم برابر 18 گیگابایت است.
- در حال حاضر تنها 9 گیگابایت آن استفاده شده است.
- فضای در دسترس برابر 13 گیگابایت است.
ابتدا باید حجم را unmount و یا از دسترس خارج کنیم.
# umount -v /mnt/tecmint_reduce_test/
سپس با استفاده از فرمان زیر خطای فایل سیستم را بررسی کنید.
# e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test
نکته: در هر کدام از مراحل باید این تست بدون خطا انجام شود. در غیر این صورت، ممکن است فایل سیستم شما مشکل داشته باشد.
در مرحله بعد، باید اندازه فایل سیستم را کاهش دهید.
# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 10GB
با استفاده از اندازه GB، حجم منطقی را کاهش میدهیم.
# lvreduce -L -8G /dev/vg_tecmint_extra/tecmint_reduce_test
برای کاهش حجم منطقی با استفاده از واحد اندازه PE باید اندازه پیشفرض PE و همچنین تعداد کل PE گروه حجمی را بدانیم تا بتوانیم دقیقاً میزان کاهش حجم را مشخص کنیم.
# lvdisplay vg_tecmint_extra
در اینجا اندکی محاسبات برای تعیین واحد PE حجم 10 گیگابایت با استفاده از فرمان bc لازم خواهد بود.
1024MB x 10GB = 10240MB or 10GB 10240MB / 4PE = 2048PE
حالا کلیدهای CRTL+D را فشار دهید تا از محیط BC خارج شوید.
حالا با استفاده از PE اندازه حجم منطقی را کاهش میدهیم.
# lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test
اندازه فایل سیستم را دوباره تعیین کنید. اگر در این مرحله با هر گونه خطایی مواجه شدید، به معنای آن است که فایل سیستم خراب شده است.
# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test
فایل سیستم را دوباره به مدار باز گردانید.
# mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/
حالا اندازه پارتیشن و فایلها را بررسی کنید.
# lvdisplay vg_tecmint_extra
در اینجا میتوانیم نتیجه نهایی کار را مشاهده کنیم که در آن اندازه حجم منطقی به ۱۰ گیگابایت کاهش پیدا کرده است.
در این مطلب با نحوه اضافهکردن اندازه گروه حجمی یا VG و حجم منطقی یا LV، و همین طور با نحوه کاهش حجم منطقی آشنا شدیم. امیدواریم که این مطلب نسبتاً طولانی مورد توجه و استفاده شما قرار گرفته باشد.