لینوکس ۳۰۵؛ شب ۲۸: resize و sparsify تصویر آفلاین
فهرست نوشته
بزرگ کردن 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 .