پرش به محتوا

افزودن دیسک با LVM و XFS، بزرگ کردن و snapshot

دیسک جدید را به volume group اضافه کنید، روی آن XFS بسازید و دائمی mount کنید، فضا را بدون توقف سرویس بزرگ کنید و پیش از تغییرات snapshot بگیرید.

Rocky Linux 10سطح: مقدماتیبرای: Rocky Linux 10، AlmaLinux 10، CentOS Stream 10، Rocky Linux 9، AlmaLinux 9به‌روزرسانی: ۱۷ آبان ۱۴۰۵

فایل‌سیستم پیش‌فرض خانواده‌ی RHEL، یعنی XFS، را می‌توان آنلاین بزرگ کرد، ولی هرگز نمی‌توان کوچک کرد. پس اندازه‌ی اولیه را محتاطانه انتخاب کنید و فضای آزاد را در volume group نگه دارید.

۱. شناسایی دیسک جدید

bash
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS

فرض می‌کنیم دیسک خالی /dev/sdb است. مطمئن شوید پارتیشن یا داده‌ای روی آن نیست.

۲. ساخت PV، VG و LV

bash
sudo dnf install -y lvm2
sudo pvcreate /dev/sdb
sudo vgcreate data /dev/sdb
sudo lvcreate -n www -L 20G data
sudo mkfs.xfs /dev/data/www

۳. mount دائمی

bash
sudo mkdir -p /srv/www
echo "UUID=$(sudo blkid -s UUID -o value /dev/data/www) /srv/www xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo systemctl daemon-reload
sudo mount -a
df -h /srv/www

اگر وب‌سرور از این مسیر فایل می‌خواند، برچسب SELinux را هم ثبت کنید:

bash
sudo semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?'
sudo restorecon -Rv /srv/www

۴. بزرگ کردن بدون توقف

bash
sudo lvextend -r -L +10G /dev/data/www   # -r grows XFS too (xfs_growfs)
df -h /srv/www

اگر VG فضای آزاد ندارد، اول دیسک دیگری اضافه کنید:

bash
sudo pvcreate /dev/sdc
sudo vgextend data /dev/sdc
sudo vgs

۵. snapshot پیش از تغییرات پرخطر

bash
sudo lvcreate -s -n www-snap -L 5G /dev/data/www
sudo lvs

snapshot فقط تغییرات بعد از ساخته شدنش را نگه می‌دارد. اگر بیش از ۵ گیگابایت تغییر رخ دهد، snapshot پر و نامعتبر می‌شود. برای خواندن فایل‌ها از snapshot، چون UUID آن با اصلی یکی است، XFS گزینه‌ی nouuid لازم دارد:

bash
sudo mkdir -p /mnt/snap
sudo mount -o ro,nouuid /dev/data/www-snap /mnt/snap

بازگرداندن کامل به وضعیت snapshot (پس از umount مقصد):

bash
sudo umount /mnt/snap
sudo umount /srv/www
sudo lvconvert --merge /dev/data/www-snap
sudo mount /srv/www

اگر تغییرات موفق بود، snapshot را حذف کنید تا کارایی کم نشود:

bash
sudo lvremove /dev/data/www-snap