Hyperdisk — Block Storage Thế Hệ Mới
Vì sao Hyperdisk thay đổi bài toán block storage
Persistent Disk có một ràng buộc gây đau triền miên: hiệu năng gắn với dung lượng. Muốn nhiều IOPS thì phải mua disk lớn, dù không cần chỗ. Hyperdisk phá bỏ ràng buộc đó — nó tách rời ba đại lượng: dung lượng, IOPS, và throughput, cho phép provision từng cái độc lập (About Hyperdisk for GKE). Một database cần 200.000 IOPS nhưng chỉ 500GB dữ liệu giờ trả tiền cho đúng 500GB dung lượng và đúng 200.000 IOPS, thay vì over-provision dung lượng lên hàng chục TB chỉ để chạm trần IOPS.
Đây không chỉ là tối ưu chi phí — nó là một mô hình tinh thần khác. Với PD, câu hỏi là "đĩa bao nhiêu GB?" và hiệu năng là hệ quả. Với Hyperdisk, câu hỏi tách thành ba: "bao nhiêu dung lượng?", "bao nhiêu IOPS?", "bao nhiêu throughput?" — và bạn trả lời từng cái theo nhu cầu thật của workload. GCP đang đẩy mọi workload block storage thế hệ mới sang Hyperdisk; trên các machine series mới nhất (C3, C4, N4...), Hyperdisk là loại storage chính.
Năm loại Hyperdisk và profile hiệu năng
GKE hỗ trợ năm loại Hyperdisk, mỗi loại tối ưu một trục khác nhau (About Hyperdisk for GKE):
Loại (type) | Tối ưu cho | Hiệu năng đỉnh (mỗi volume) | Use case |
|---|---|---|---|
hyperdisk-balanced | Cân bằng IOPS + throughput | Tới ~160.000 IOPS, ~2.4 GBps | Phần lớn workload: enterprise app, database, web |
hyperdisk-extreme | IOPS cực cao | Tới ~350.000 IOPS | Database lớn IOPS-intensive |
hyperdisk-throughput | Throughput tuần tự, chi phí thấp | Tới ~3 GBps | Analytics, log processing, Kafka/HDFS |
hyperdisk-ml | Throughput đọc song song cực cao | Tới ~1.2 TBps tổng hợp, multi-attach | Nạp model weight cho AI/ML |
hyperdisk-balanced-ha | HA replication đồng bộ hai-zone | Như balanced, kèm HA | Database stateful cần survive zonal failure |
Các con số trên đối chiếu tài liệu Hyperdisk performance (Hyperdisk performance overview): Hyperdisk Balanced cho tới 160.000 IOPS và 2.400 MiB/s; Hyperdisk Extreme tới 350.000 IOPS từ một volume; Hyperdisk Throughput tới ~3 GBps cho IO ≥128KB. Hyperdisk Balanced còn có một mức baseline miễn phí: 3.000 IOPS và 140 MiB/s đầu tiên không tính phí hiệu năng (Hyperdisk performance overview).
hyperdisk-balanced-ha là kế nhiệm hiện đại của Regional PD: replication đồng bộ giữa hai zone trong region, dùng cùng pattern Stateful HA Operator (file 3) để force-attach khi zonal failure. Khi thiết kế HA stateful mới trên machine series hỗ trợ Hyperdisk, đây là lựa chọn ưu tiên hơn Regional PD.
Per-VM performance limit: trần ẩn quan trọng nhất
Đây là cái bẫy lớn nhất với Hyperdisk, và là điều người mới hay vấp: provision IOPS cao trên disk không đảm bảo đạt được IOPS đó. Lý do là per-VM performance limit — mỗi machine type có một trần tổng IOPS/throughput cho toàn bộ disk attach vào VM đó, độc lập với việc bạn provision bao nhiêu trên từng disk (Hyperdisk performance limits).
Nói cách khác, hiệu năng disk thực tế là min(IOPS provision trên disk, trần IOPS của machine type). Provision một hyperdisk-extreme 300.000 IOPS rồi attach vào một VM nhỏ có trần 50.000 IOPS thì chỉ đạt 50.000 — và trả tiền cho 300.000 provision vô ích. Quy luật thiết kế: chọn machine type của node pool phải khớp với hiệu năng Hyperdisk mong muốn. Hiệu năng block storage trên GKE là bài toán ba biến — loại disk, mức provision, và machine type — và bỏ qua biến thứ ba là sai lầm tốn kém phổ biến nhất.
Hệ quả lên thiết kế node pool: workload IOPS-cao cần node pool dùng machine type có trần Hyperdisk cao (thường dòng C3/C4/M3...). Đặt một database Hyperdisk Extreme trên node pool e2 nhỏ là vô nghĩa. Đây là lý do storage và node pool design (Chương 6) phải đi cùng nhau.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: hyperdisk-balanced-tuned
provisioner: pd.csi.storage.gke.io
parameters:
type: hyperdisk-balanced
provisioned-throughput-on-create: "1000Mi" # throughput riêng
provisioned-iops-on-create: "10000" # IOPS riêng
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: trueHyperdisk ML: multi-attach đọc song song cho AI/ML
hyperdisk-ml là loại đặc biệt nhất, sinh ra cho một bài toán cụ thể: nạp model weight và dataset đọc-nhiều lên hàng trăm/nghìn inference hoặc training node cùng lúc. Đặc tính then chốt: nó hỗ trợ multi-attach ở ReadOnlyMany — một volume duy nhất attach read-only vào rất nhiều instance đồng thời, cho throughput đọc song song tổng hợp cực cao (tới ~1.2 TBps) (About Hyperdisk ML).
Mô hình dùng điển hình: ghi model weight vào một Hyperdisk ML một lần (read-write từ một node), sau đó attach read-only lên toàn bộ fleet inference — mỗi node đọc song song với latency thấp, thay vì mỗi node tải lại từ GCS qua network. Đây là cách rút ngắn thời gian "cold start" của model lớn từ phút xuống giây ở quy mô fleet.
Một ràng buộc hiệu năng cần nhớ: khi volume attach vào hơn 20 instance ở ROX, throughput provision phải ≥ 100 MBps × số instance để duy trì hiệu năng đọc (About Hyperdisk for GKE). Nghĩa là scale fleet đọc song song đòi hỏi tăng throughput provision tương ứng — không phải "free lunch". So với Cloud Storage FUSE (file 7) cho cùng mục đích nạp model: Hyperdisk ML cho latency và throughput cao hơn nhiều cho dữ liệu đọc-lặp, đổi lại kém linh hoạt hơn (phải nạp dữ liệu lên disk trước, dung lượng giới hạn).
Hyperdisk Storage Pools: chia sẻ công suất, thin provisioning
Storage Pools giải một bài toán chi phí ở quy mô flotilla disk: khi có hàng trăm disk, mỗi disk over-provision một chút "phòng hờ" thì tổng lãng phí khổng lồ. Storage Pool gom dung lượng và hiệu năng vào một pool chia sẻ, các disk trong pool thin-provision từ pool đó thay vì mỗi disk chiếm riêng (About Hyperdisk for GKE).
Hai loại pool:
- Advanced Capacity: thin provisioning dung lượng — tổng dung lượng "khai báo" của các disk có thể vượt dung lượng vật lý của pool, vì không disk nào dùng hết cùng lúc. Tiết kiệm khi disk được over-provision nhưng dùng thực tế thấp.
- Advanced Performance: chia sẻ IOPS/throughput — các disk rút hiệu năng từ pool chung thay vì mỗi disk provision cứng, tận dụng việc các disk peak vào thời điểm khác nhau.
Lợi ích: thay vì provision cứng cho từng disk theo peak riêng (rồi cộng lại thành con số khổng lồ), bạn provision pool theo peak tổng hợp (luôn nhỏ hơn tổng các peak riêng). Đây là statistical multiplexing áp vào storage — cùng nguyên lý làm cloud rẻ hơn dedicated. Rủi ro phải quản: nếu nhiều disk peak cùng lúc vượt công suất pool, hiệu năng bị bóp; cần monitor utilization pool và đặt ngưỡng cảnh báo. Storage Pool hợp lý nhất cho flotilla disk có pattern dùng không tương quan; không hợp cho vài disk critical luôn cần đỉnh hiệu năng đảm bảo.
VolumeAttributesClass: đổi hiệu năng động không tạo lại disk
Một năng lực vận hành mạnh của Hyperdisk: thay đổi IOPS/throughput provision của một volume đang chạy mà không cần tạo lại disk hay di chuyển dữ liệu, qua đối tượng Kubernetes VolumeAttributesClass (beta). Workload có thể bắt đầu với hiệu năng thấp (rẻ), rồi bump lên khi tải tăng, rồi hạ lại khi tải giảm — tất cả online.
Đây là khác biệt vận hành lớn so với PD, nơi đổi hiệu năng thường gắn với đổi dung lượng. Kết hợp với monitoring, nó cho phép một dạng "autoscaling cho hiệu năng disk": tăng IOPS provision trước một sự kiện tải cao (ví dụ batch job hàng đêm), hạ xuống sau đó. Tuy nhiên việc đổi hiệu năng vẫn có độ trễ áp dụng và có thể bị giới hạn tần suất; không nên coi nó là loop phản ứng tức thì như HPA.
Real-world scenario: chọn Hyperdisk cho ba workload khác nhau
Database giao dịch (OLTP) latency-nhạy, IOPS cao, dung lượng vừa:
hyperdisk-extreme(hoặchyperdisk-balancednếu IOPS yêu cầu trong tầm), provision IOPS riêng đúng nhu cầu, đặt trên node pool machine type có trần per-VM đủ cao. Nếu cần HA:hyperdisk-balanced-ha+ Stateful HA Operator.Pipeline analytics đọc/ghi tuần tự khối lớn (Spark, Kafka):
hyperdisk-throughput— throughput cao, chi phí thấp, không cần IOPS random cao. Provision throughput, để IOPS ở mức tối thiểu.Inference fleet nạp model 10GB lên 500 node:
hyperdisk-mlROX, ghi weight một lần rồi attach read-only toàn fleet; provision throughput ≥ 100 MBps × số node để duy trì đọc song song. Tiết kiệm so với mỗi node tải model từ GCS.
Ba workload, ba loại Hyperdisk khác nhau — minh họa rằng "Hyperdisk" không phải một lựa chọn mà là một họ công cụ, chọn theo trục hiệu năng chi phối.
Hyperdisk vs Persistent Disk: khi nào chọn cái nào
| Tiêu chí | Persistent Disk | Hyperdisk |
|---|---|---|
| Hiệu năng vs dung lượng | Gắn chặt (scale theo GiB) | Tách rời (provision riêng) |
| IOPS đỉnh | Thấp hơn, cần over-provision dung lượng | Cao hơn nhiều, provision trực tiếp |
| Machine series | Hỗ trợ rộng (cả thế hệ cũ) | Chủ yếu thế hệ mới (C3, C4, N4, M3...) |
| Đổi hiệu năng động | Hạn chế | VolumeAttributesClass |
| Chia sẻ công suất | Không | Storage Pools |
| Multi-attach đọc song song | ROX cơ bản | Hyperdisk ML chuyên dụng |
Quy tắc thực dụng: trên node pool dùng machine series mới hỗ trợ Hyperdisk, mặc định chọn Hyperdisk Balanced thay cho pd-balanced — nó cho linh hoạt hơn với chi phí tương đương. Chỉ giữ PD khi node pool dùng machine series cũ không hỗ trợ Hyperdisk, hoặc khi dùng pd-standard (HDD) cho dữ liệu tuần tự rẻ tiền. Trên GKE 1.35.3+, StorageClass còn hỗ trợ type: dynamic để tự chọn Hyperdisk trên máy tương thích và fallback PD trên máy cũ (About Hyperdisk for GKE).
Common mistakes / anti-patterns
Provision IOPS cao mà machine type không đủ trần per-VM. Trả tiền cho IOPS không bao giờ đạt được. Hệ quả: chi phí lãng phí, hiệu năng vẫn thấp. Phòng tránh: khớp machine type node pool với hiệu năng Hyperdisk mục tiêu — luôn kiểm tra per-VM limit.
Dùng Hyperdisk ML như block storage thường. Nó tối ưu cho đọc song song read-only, không phải workload read-write thông thường. Phòng tránh: Hyperdisk ML cho fleet đọc model; Balanced/Extreme cho database.
Bật Storage Pool cho disk critical luôn cần đỉnh. Khi nhiều disk peak cùng lúc, pool bị bóp. Phòng tránh: Storage Pool cho flotilla pattern không tương quan; provision cứng cho disk critical.
Quên rằng
hyperdisk-balanced-hacần Stateful HA để failover. Có replication nhưng không tự động chuyển. Phòng tránh: cặp đôi HA storage + Stateful HA Operator như file 3.Mặc định PD trên node pool hỗ trợ Hyperdisk. Bỏ lỡ linh hoạt provision riêng. Phòng tránh: mặc định Hyperdisk Balanced trên machine series mới.
Official references
- About Hyperdisk for GKE — năm loại, StorageClass type, Storage Pools, ràng buộc multi-attach.
- Google Cloud Hyperdisk overview — mô hình tách dung lượng/IOPS/throughput.
- Hyperdisk performance overview — con số IOPS/throughput, baseline miễn phí.
- Hyperdisk performance limits — per-VM limit theo machine series.
- About Hyperdisk ML — multi-attach ROX, đọc song song.
- Scale storage performance với Hyperdisk trên GKE — cấu hình thực hành.