بزرگ کردن virtual disk الزاماً filesystem را بزرگ نمی‌کند. امشب لایهٔ image، partition و filesystem را با copy جدید و آزمون ظرفیت جدا می‌کنیم.

این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.

جایگاه در دوره: هدف‌های 351.5 آزمون 305-300.

محیط: COLD_IMAGE qcow2 سرد، output جدید و backup؛ نام partition از inspection واقعی انتخاب می‌شود.

virt-filesystems -a "$COLD_IMAGE" --all --long -h
qemu-img create -f qcow2 lab01-expanded.qcow2 20G

ROOT_PART را به partition واقعی filesystem root در خروجی، مثلاً /dev/sda1 فقط اگر همان است، تنظیم کن:

virt-resize --expand "$ROOT_PART" "$COLD_IMAGE" lab01-expanded.qcow2
virt-filesystems -a lab01-expanded.qcow2 --all --long -h
virt-df -a lab01-expanded.qcow2 -h

این /dev/sda1 نام device در appliance libguestfs است، نه دیسک host. مقصد باید برای همهٔ داده و layout کافی باشد؛ shrinking به تحلیل جدا و محدودیت filesystem نیاز دارد. qemu-img resize فقط اندازهٔ virtual disk را تغییر می‌دهد؛ resize partition/filesystem مرحلهٔ دیگر است.

sparsify مستقل#

virt-sparsify --format qcow2 --convert qcow2 "$COLD_IMAGE" lab01-sparse.qcow2
qemu-img info lab01-sparse.qcow2
du -h lab01-sparse.qcow2

sparsify می‌تواند فضای unused را قابل sparse شدن کند؛ compression همهٔ داده یا پاک‌سازی قطعی راز نیست. copy-mode نیاز به فضای temp و output دارد؛ روی datastore کم‌جا شروع نکن. discard/TRIM guest و storage backend سیاست مستقل دارند.

آزمون: output expanded در Clone با identity جدید بوت کند، marker و ظرفیت filesystem صحیح باشند. sparse output نیز دادهٔ ضروری را نگه دارد؛ اندازهٔ کوچک به‌تنهایی نتیجهٔ موفق نیست.

بازگشت: source سرد ثابت مانده؛ outputهای تازه را فقط پس از قطع VM وابسته حذف کن. روی دیسک فعال inplace repair/resize اجرا نمی‌کنیم.

منبع: virt-resize ، virt-sparsify .