رفتن به نوشته‌ها

اظافه کردن فضا به lvm با فایل‌سیستم xfs

مدتی هست که رفتم سراغ BTRFS و سعی می کنم از فایل سیستم‌های مدرن استفاده کنم. در این بین اما سیستم‌های قدیمی مون رو هنوز داریم مثل centos8 😈
تا این ها رو ببرم‌شون روی ubuntu طول میکشه، احتمالا تا ۱۴۰۱ و آمدن اوبونتو ۲۲.۰۴ صبر می‌کنم. خوب بگذریم؛ با centos8ای که فضا کم آورده چه کنیم؟!
خوشبختانه sysAdmin قبلی همه چیز رو پیشفرض XFS و از نوع LVM انتخاب کرده و ما کار نسبتا راحتی داریم.

اضافه کردن دیسگ

لطفا یا با root لاگین کنید، یا برای ادامه دستورات sudo بزنید، همین اول یه yum update شیرین بزنید تا همه چیز بروز شه و آخرین پیچ های کرنل رو هم بگیرید.

میدونم نمی‌زنید ولی خوب سالی یک بار آپدیت کنید بد نیست!

مهدی (م‌ج)

و بعدش poweroff کنید تا پروسه‌ها عین آدم stop بشوند.

از پنل esxi تون یه فضا n گیگی به ماشین مجازی بدید و مجدد ماشین رو روشن کنید، اگر هم از qemu و یا proxmox استفاده می کنید که احسنتم :))

خوب حالا اگر یه lsblk بگیرید می بینید که یه دیسک دیگه به نام /dev/sdb یا هر sdX نام دیگه‌ای اضافه شده.

کاری که میخواهیم انجام بدهیم expand کردن فضا برای / روت مون هست، مراحل کار به ترتیب زیر هستش:

فرمت کردن دیسک

دستور fdisk میاد جدول پارتیشن‌بندی دیسک هامون رو تغییر/ایجاد میکنه، مثلا وقتی من می خواهم دیسک‌ام رو از نوع LVM انتخاب کنم میام و می زنم.

fdisk /dev/sdb


اول از همه بهش میگم نوع فایل‌سیستم Linux LVM هست پس می زنیم t و اوکت 8e رو انتخاب می کنیم. بهش میگم یه دیسک جدید می‌خواهم n , دیسک رو از نوع پرایمری انتخاب می کنم p در ادامه بهش میگم پرایمری شماره ۱ام باشه و همه فضا رو بهش می دهم و با w میگم اطلاعات رو ذخیره کنم و خارج میشیم.

مفاهیم LVM

اگر یک بار دیگه lsblk بگیرید می‌بینید که زیر /dev/sdb تون یه /dev/sdb1 آمده، خوب ما با همین میایم و LVM مون رو می سازیم ولی بگذارید اولش ۳ تا مفهوم رو توضیح بدهم:

  • Physical Volume یا PV : اولین لایه بعد از هارد دیسک های فیزیکی است ، به پارتیشن هایی که مستقیما بر روی هارد دیسک یا یک فایل loopback ایجاد می شوند و شما می توند Volume Group های LVM را در آنها ایجاد کنید PV گفته می شود.
  • Volume Group یا VG : یک VG شامل مجموعه ای از Physical Volume ها است که در قالب یک دیسک نمایش داده می شوند یا بهتر بگوییم در قالب یک Storage Volume نمایش داده می شوند. VG ها شامل Logical Volume های ما هستند ، شما می توانید برای درک بهتر از VG به عنوان هارد درایوی که سیستم شناخته است یاد کنید.
  • Logical Volume یا LV : این قسمت در واقع همان پارتیشن هایی هستند که شما می شناسید ، یک Virtual یا Logical Partition که بر روی یک Volume Group قرار گرفته است می تواند شامل چندین Physical Extents باشد. در واقع LV نتیجه کاری LVM است که قرار است ما از آن استفاده کنیم. LV ها محل ذخیره سازی داده های ما هستند.

نمایش اطلاعات دیسک در LVM

حالا برای اینکه بدونیم چیا روی سیستم داریم بیاید و چند تا دستور بزنیم و خروجی شون رو ببینیم

دستور pvs اطلاعاتی در مورد physical volume به ما میدهد.
برای دیدن physical volume ها با جزئیات بیشتر می تونم از pvdisplay استفاده کنیم.

دستور vgs هم اطلاعاتی در مورد volume group به ما میدهد و اطلاعات بیشتر رو میشه از vpdisplay گرفت.

برای دیدن volume group ها با جزئیات بیشتر می تونم از vgdisplay استفاده کنیم.

دستور lvs هم اطلاعاتی در مورد logical volumes به ما میدهد و برای دیدن logical volumes ها با جزئیات بیشتر می تونم از lvdisplay استفاده کنیم که دیگه در اینجا عکسش رو نیاردم (عکس‌ها همین الانش هم گافیک شده هستن😅)

اضافه کردن فضای دیسک به LVM

خوب الان که با هم دیدیم چی به چیه میآیم از دیسکی که امضای lvm داره (همون sdb1 مون) یک physical volume جدید می سازیم.

pvcreate /dev/sdb1

و آن رو به volume group اضافه کنیم برای اینکار از دستور vgextend استفاده می کنیم. این دستور physical volumes رو به volume group اضافه می کنه. (همون طور که در تصاویر هم مشاهده کردید اسم volume group مون cl هستش)

vgextend cl /dev/sdb1

و بعدش lvextend می کنیم تا فضای آماده شده volume group رو به logical volume مون اضافه کنه (در اینجا من همه فضا رو بهش دادم)

lvextend -l +100%FREE /dev/cl/root

چون ما از xfs استفاده می کنیم برای فهماندن این فضای اضافه شده به فایل‌سیستم‌مون از دستور xfs_growfs استفاده می کنیم. (اگر ext4 بود باید از resize2fs استفاده می کردیم)

xfs_growfs /dev/mapper/cl-root

در اینجا /dev/mapper/XYZ به دیسک ما اشاره می کنه و تمام. اگر یک بار دیگر vgs بگیرید می بینید که تمام دیسکی که به lvm دادیم، انتقال یافته.

اضافه شدن فضای دیسک به lvm

برای اینکه چک کنید درست کار می کنه یه نه یک دور reboot کنید و دوباره lsblk بگیرید 🙂

بن‌مایه‌ها:

sleeplessbeastie’s notes, tosinso

منتشر شده در بلاگ

اولین باشید که نظر می دهید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

56 − = 50