فایلسیستم پیشفرض خانوادهی RHEL، یعنی XFS، را میتوان آنلاین بزرگ کرد، ولی هرگز نمیتوان کوچک کرد. پس اندازهی اولیه را محتاطانه انتخاب کنید و فضای آزاد را در volume group نگه دارید.
۱. شناسایی دیسک جدید
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTSفرض میکنیم دیسک خالی /dev/sdb است. مطمئن شوید پارتیشن یا دادهای روی آن نیست.
۲. ساخت PV، VG و LV
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 دائمی
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 را هم ثبت کنید:
sudo semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?'
sudo restorecon -Rv /srv/www۴. بزرگ کردن بدون توقف
sudo lvextend -r -L +10G /dev/data/www # -r grows XFS too (xfs_growfs)
df -h /srv/wwwاگر VG فضای آزاد ندارد، اول دیسک دیگری اضافه کنید:
sudo pvcreate /dev/sdc
sudo vgextend data /dev/sdc
sudo vgs۵. snapshot پیش از تغییرات پرخطر
sudo lvcreate -s -n www-snap -L 5G /dev/data/www
sudo lvssnapshot فقط تغییرات بعد از ساخته شدنش را نگه میدارد. اگر بیش از ۵ گیگابایت تغییر رخ دهد، snapshot پر و نامعتبر میشود. برای خواندن فایلها از snapshot، چون UUID آن با اصلی یکی است، XFS گزینهی nouuid لازم دارد:
sudo mkdir -p /mnt/snap
sudo mount -o ro,nouuid /dev/data/www-snap /mnt/snapبازگرداندن کامل به وضعیت snapshot (پس از umount مقصد):
sudo umount /mnt/snap
sudo umount /srv/www
sudo lvconvert --merge /dev/data/www-snap
sudo mount /srv/wwwاگر تغییرات موفق بود، snapshot را حذف کنید تا کارایی کم نشود:
sudo lvremove /dev/data/www-snap