Proxmox 6. Thin Provisioning vs Thick Provisioning trong Proxmox VE

VanTai

Intern

1. Tổng quan​

Khi tạo đĩa cho VM/CT, có một yếu tố mang tính quyết định chính là lựa chọn giữa cấp phát mỏng (thin) hay cấp phát dày (thick). Lựa chọn này có thể quyết định dung lượng thực bị chiếm, tốc độ tạo đĩa, rủi ro chiếm chỗ (overcommit) và một phần hiệu năng I/O.
Tài liệu này định nghĩa rõ hai kiểu cấp phát, chỉ ra kiểu nào khả dụng trên từng loại storage của Proxmox (LVM-thin, ZFS, Ceph RBD, qcow2 trên Directory, LVM dày...) và đưa ra khuyến nghị kèm cách theo dõi để không bị đầy bộ nhớ - rủi ro lớn nhất của thin provisioning.
Nếu trước đó bạn có tiếp xúc với vSphere sẽ thấy quen thuộc: khái niệm gần như tương đương Thin/Thick (Lazy/Eager Zeroed) của VMDK, nhưng cách hiện thực của Proxmox tùy thuộc vào từng loại storage bên dưới.
Mục tiêu của bài này:
· Định nghĩa chính xác thin và thick provisioning.
· Biết kiểu cấp phát khả dụng theo từng loại storage Proxmox.
· Hiểu overcommit, discard/TRIM và rủi ro hết dung lượng.
· Có khuyến nghị chọn kiểu cấp phát và cách giám sát an toàn.

2. Nội dung chính​

2.1 Định nghĩa​

1787462153142.png


Ví dụ: tạo đĩa 100 GB cho một VM mới cài HĐH chiếm khoảng 10 GB. Với thin, storage chỉ mất khoảng 10 GB. Nhưng với thick, storage mất trọn 100 GB ngay lập tức.

2.2 Ưu và nhược điểm​

1787462171043.png

2.3 Kiểu cấp phát theo từng loại storage Proxmox​

Điểm quan trọng: không phải storage nào cũng có thể tự do chọn kiểu cấp phát.
.
1787462189290.png

2.4 Discard/TRIM - mấu chốt để thin thực sự mỏng​

Thin chỉ tiết kiệm khi dung lượng được trả lại lúc guest xóa dữ liệu. Nếu không, đĩa thin chỉ phình ra mà không bao giờ co vào. Cơ chế trả lại đó là discard/TRIM:
· Bật cờ "Discard" trên đĩa của VM để lệnh xóa của guest được chuyển xuống storage và giải phóng block thật.
· Với đĩa dùng bộ điều khiển VirtIO SCSI, bật thêm "SSD emulation" giúp guest coi đĩa như SSD và tự chạy TRIM.
· Trong guest Linux: fstrim -av (hoặc bật fstrim.timer). Trong Windows: Optimize Drives sẽ gửi TRIM.
· Với ZFS/LVM-thin, sau khi guest TRIM, dung lượng thực dùng ở pool sẽ giảm tương ứng.
# Trong guest Linux: giải phóng block đã xóa
fstrim -av

# Trên host: theo dõi mức dùng thực của thin pool (LVM-thin)
lvs -a -o+data_percent,metadata_percent

# Trên host: mức dùng thực của ZFS
zfs list -o name,used,refer,logicalused,compressratio

TRIM trong guest và theo dõi dung lượng thực ở host.

2.5 Overcommit và rủi ro hết dung lượng​

Thin cho phép overcommit: tổng dung lượng đĩa ảo khai báo có thể vượt dung lượng vật lý, đặt cược rủi ro rằng các VM không đầy cùng lúc. Đây cũng là con dao hai lưỡi.

Rủi ro nghiêm trọng nhất

Nếu thin pool (LVM-thin/ZFS) đầy 100% trong khi các VM vẫn muốn ghi, hậu quả có thể là VM bị treo I/O, filesystem trong guest lỗi, thậm chí hỏng dữ liệu. Với LVM-thin, pool đầy metadata cũng gây sự cố tương tự. Đây là lý do phải giám sát và đặt ngưỡng cảnh báo.
· Đặt cảnh báo khi thin pool/ZFS vượt ngưỡng (ví dụ 80%).
· Không overcommit quá tay trên storage không có cơ chế cảnh báo tốt.
· Chừa dung lượng cho snapshot, replication và ghi dữ liệu đột biến.
· Ưu tiên thick cho các workload nhạy cảm mà việc hết chỗ không xảy ra.

2.6 Khuyến nghị chọn kiểu cấp phát​


1787462210078.png

Nguyên tắc ngắn gọn

Mặc định của Proxmox trên LVM-thin/ZFS/Ceph đã là thin, nhưng luôn phải đi kèm ba thứ: bật Discard, giám sát dung lượng thực và đặt ngưỡng cảnh báo . Chỉ chọn thick khi cần chiếm toàn bộ dung lượng cấp phát hoặc cần hiệu năng ghi ổn định tuyệt đối

3. Kết luận​

Thin và thick là hai kiểu cấu hình sẽ đánh đổi giữa tiết kiệm, linh hoạt (thin) và an toàn, ổn định (thick). Trên Proxmox, kiểu cấp phát gắn chặt với loại storage: LVM-thin/ZFS/Ceph mặc định là thin, LVM là thick, còn Directory tùy vào qcow2 hoặc raw.
 
Back
Top