کاهش اندازه LVM – چگونه یک پارتیشن LVM را کاهش دهیم
چگونه سایز یک پارتیشن LVM را در لینوکس با کاهش اندازه file system و سپس کاهش اندازه logical volume کوچک کنیم
طی این سناریو حجم روت Debian 12 را از ۱۰۰ گیگ به ۸۰ گیگ کاهش می دهیم. برخی از دستورات ممکن است در توزیع های مختلف لینوکس متفاوت باشند. این نوشته برای ubuntu و centos هم تست شده است و کاربردی می باشد.
در این مثال ما با دشوارترین حالت یعنی پارتیشن روت ( / ) که mount point آن /etc/debian/debian-root است کاهش حجم از ۱۰۰ گیگابایت به ۸۰ گیگابایت کار خواهیم کرد.
فهرست مطالب
مروری بر Logical Volume Manager (LVM)
قبل از انجام فرآیند تغییر اندازه، مهم است که ابتدا برخی از مفاهیم اساسی در مورد physical volumes و volume groups و logical volumes و file system را درک کنید.
Physical Volume (PV): بر روی یک دیسک فیزیکی کامل (مثلا /dev/sda) یا یک پارتیشن لینوکس ایجاد می شود.
Volume Group (VG): حداقل از یک یا چند دیسک فیزیکی یا همان physical volumes تشکیل شده است.
Logical Volume (LV): گاهی اوقات به آن پارتیشن نیز گفته می شود، در یک volume group قرار دارد و یک file system روی آن نوشته شده است.
File System: به روش و ساختاری گفته می شود که سیستم عامل از آن استفاده می کند تا فایل ها را بر روی دیسک یا پارتیشن سامان دهی کند. یک سیستم فایل مانند ext4 بر روی logical volume خواهد بود.
تغییر اندازه LVM – نحوه کاهش یا کوچک کردن logical volume
برای کاهش اندازه یک پارتیشن LVM، ابتدا باید file system را کاهش دهید تا از خراب شدن داده ها جلوگیری شود. از آنجایی که اگر دستور را اشتباه وارد کنید این امکان وجود دارد که این اتفاق بیفتد، اکیداً توصیه می شود قبل از ادامه، یک نسخه بکاپ کامل از اطلاعات خود داشته باشید. کوچک کردن logical volume فضای آزاد بیشتری را در volume group به شما می دهد، به این معنی که در عوض می توانید volume group دیگری را با این فضای خالی ایجاد کنید.
کاهش سایز ریشه روت root volume
حجم روت معمولاً logical volume است که روی / نصب می شود. شما نمی توانید آن را unmount کنید تا سایز آن را کاهش دهید، زیرا توسط سیستم عامل در حال اجراست، به این معنی که برای تکمیل این کار باید ابتدا از یک LiveCD بوت کنید.
بوت سیستم طریق از LiveCD یا Rescue Mode
ما برای رسکیومد همیشه از دبیان ۱۲ استفاده می کنیم. کافیست فایل iso آن را دانلود کنید و بر روی سرور مانت کنید.
سپس سرور را ریستارت کرده و از iso بوت کنید. از گزینه Advanced option گزینه Rescue mode را انتخاب کنید.
یکسری موارد از جمله انتخاب زبان و لایه کیبورد و … پرسیده می شود اینتر بزنید.
در مرحله کارت شبکه نیازی به تنظیم آن نیست و گزینه do not configure the network at this time را انتخاب کنید.
ما در اینجا برای Device to use as root file system گزینه /dev/sda1 را انتخاب می کنیم.
در ادامه گزینه Execute a shell in the installer environment را انتخاب کنید.
کاهش سایز root volume
پس از راهاندازی در Live CD، ممکن است ابتدا لازم باشد دستور زیر را برای دریافت ولومهای LVM اجرا کنید، اما معمولاً در هنگام بوت بصورت خودکار انجام می شود، بنابراین ممکن است مورد نیاز نباشد ولی اجرای آن ایرادی ندارد.
vgchange -a y
قبل از اینکه بتوانید اندازه LVM را کاهش دهید، ابتدا باید file system check روی آن اجرا کنید. اگر این کار را انجام ندهید، یک پیغام خطا دریافت می کنید و نمی توانید ادامه دهید. این یک مرحله ضروری است زیرا تغییر اندازه یک file system در حالت بد می تواند باعث خرابی داده ها شود. سوئیچ -f باعث می شود که چک اجرا شود حتی اگر سیستم فایل تمیز به نظر برسد.
با توجه به اینکه قصد داریم / را کاهش دهیم، مسیر ما به این صورت است:
e2fsck -fy /dev/debian-vg/root
شما باید ببینید مسیر شما با چه چیزی نامگذاری شده است. مثلا برای centos تقریبا به شکل زیر است:
/dev/mapper/centos-root
یا مثلا اوبونتو هم /dev/ubuntu/vg/root است. به سادگی می توانید در مسیر dev آن را بیابید.
چنانچه قادر به یافتن نام آن نیستید، کافیست سرور را ریستارت کنید و سیستم عامل لود شود و با دستور df -h مشاهده کنید که مسیر / به چه نامی اختصاص یافته است.
در مرحله بعد باید file system را کوچک کنید، برای ایمن بودن، سیستم فایل را کمتر از مقدار logical volume کوچک می کنیم. این به این دلیل است که نمیخواهیم در مرحله بعد logical volume را به اندازهای کمتر از سیستم فایل کوچک کنیم، زیرا این امر میتواند منجر به خرابی و از دست رفتن داده شود. نگران نباشید، ما در پایان فضا را پس خواهیم گرفت.
کاهش سایز file system و logical volume
ما قصد داریم دبیان ۱۰۰ گیگی خود را به ۸۰ گیگ کاهش دهیم. برای اینکه بین فایل سیستم و لاجیک والیوم تداخل ایجاد نشود ما فایل سیستم را ابتدا ۷۵ گیگ میکنیم. بعد از اینکه lvreduce را ۸۰ گیگ اجرا کردیم در مراحل پایانی دوباره فایل سیستم را به ۸۰ گیگ اکستند می کنیم و تمام فضا را استفاده میکنیم. صرفا برای جلوگیری از ایجاد اشکال این سناریوی ایمن را اجرا می کنیم.
resize2fs /dev/debian-vg/root 75G
هنگامی که سیستم فایل کاهش یافت، می توانیم logical volume را با دستور lvreduce کوچک کنیم. همانطور که توسط پرچم -L مشخص شده است، آن را به اندازه ای که می خواهید کاهش دهید.
lvreduce -L 80G /dev/debian-vg/root
با دستور بالا سایز لاجیکال والیوم ۸۰ گیگ خواهد شد.
هنگامی که دستور lvreduce را اجرا می کنید، یک هشدار دریافت می کنید «y» را وارد کرده و enter را فشار دهید.
پس از اینکه logical volume به اندازه مورد نیاز کاهش یافت، resize2fs را روی حجم اجرا کنید.
این کار file system را گسترش میدهد تا از تمام فضای موجود در logical volume استفاده کند.
resize2fs /dev/debian-vg/root
حالا می توانید سرور را ریستارت کرده و فضای آزاد شده را برای پارتیشن جدیدی اختصاص دهید.
سخن پایانی
تادسرور به عنوان ارائه دهنده خدمات سرور و دیتاسنتر، می تواند شما را در نگهداری سرور و پشتیبانی یاری رساند.
شما می توانید سرورمجازی یا سرور اختصاصی خود را از تاد سرور تهیه کرده و از خدمات مدیریت سرور تاد بهره مند شوید.