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

گسترش / کاهش LVM در لینوکس

گسترش / کاهش 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 تغییرات نوشته و ذخیره کنید.

پس از تکمیل تغییرات، سیستم را دوباره راه‌اندازی کنید.

ایجاد پارتیشن LVM

ایجاد پارتیشن LVM

حالا پارتیشن ساخته‌شده را بررسی کرده و لیست کنید.


# fdisk -l /dev/sda

تأیید پارتیشن LVM

تأیید پارتیشن LVM

سپس حجم فیزیکی یا 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 

محاسبه اندازه PE

حالا با استفاده از PE اندازه حجم منطقی را کاهش می‌دهیم.


# lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test

کاهش حجم منطقی با استفاده از PE

کاهش حجم منطقی با استفاده از PE

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


# 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، و همین طور با نحوه کاهش حجم منطقی آشنا شدیم. امیدواریم که این مطلب نسبتاً طولانی مورد توجه و استفاده شما قرار گرفته باشد.