Skip to content

Chương 29: Persistent Disk & Hyperdisk — Block Storage

Tại sao chương này quan trọng

Block storage là nền tảng của mọi stateful workload trên GCP — từ database, message queue, đến boot disk của mỗi VM. Lỗi phổ biến nhất không phải là "chọn sai disk type" mà là hiểu sai mô hình hiệu năng: tại sao disk 100 GiB lại chậm hơn disk 500 GiB cùng loại, tại sao VM 4 vCPU bị throttle dù disk còn headroom, hay tại sao Hyperdisk Extreme không attach được vào máy N2 thông thường.

Persistent Disk và Hyperdisk không phải hai phiên bản của cùng một sản phẩm — chúng đại diện cho hai triết lý thiết kế khác nhau về cách map storage capacity sang storage performance. Hiểu được sự khác biệt này là điều kiện tiên quyết để sizing đúng và tránh các performance bottleneck ẩn trong production.


Điều kiện tiên quyết

  • Compute Engine fundamentals (VM types, machine families)
  • Kiến thức cơ bản về I/O: IOPS, throughput, latency
  • Chương 11 (GKE Storage) nếu dùng trong GKE context

Cấu trúc chương

chapter-29-persistent-disk-hyperdisk/
├── index.md                                    ← trang này
├── 01.persistent-disk-architecture-types.md   ← Kiến trúc nội tại & các loại PD
├── 02.performance-model-and-limits.md         ← Mô hình hiệu năng, công thức, giới hạn VM
├── 03.hyperdisk-provisioned-performance.md    ← Hyperdisk & provisioned performance model
├── 04.multi-writer-disks.md                   ← Multi-writer mode & giới hạn
├── 05.snapshots-and-backup.md                 ← Snapshot internals & cross-region copies
├── 06.regional-pd-high-availability.md        ← Regional PD replication & failover
└── 07.encryption-cmek.md                      ← Encryption: Google-managed & CMEK

Các chủ đề trong chương

1. Kiến Trúc Nội Tại & Các Loại Persistent Disk

Persistent Disk là network block device, không phải locally-attached storage. Mọi I/O đều đi qua mạng đến Colossus (hệ thống file phân tán của Google). Hiểu mô hình này giải thích tại sao write latency của PD cao hơn Local SSD, tại sao performance scale theo dung lượng, và tại sao một số workload không nên dùng PD.

Bốn loại PD và vị trí của chúng trong spectrum hiệu năng:

  • pd-standard: HDD-backed, throughput-optimized cho sequential I/O, IOPS thấp
  • pd-balanced: SSD-backed, cân bằng cost/performance, baseline IOPS guaranteed
  • pd-ssd: SSD-backed, IOPS cao hơn balanced, dành cho latency-sensitive workload
  • pd-extreme: SSD-backed, IOPS cao nhất trong dòng PD, provisioned IOPS riêng biệt

2. Mô Hình Hiệu Năng & Giới Hạn VM

Đây là kiến thức thường bị hiểu sai nhất. Hiệu năng của Persistent Disk được xác định bởi hai ceiling độc lập: per-disk limit (tính theo GB) và per-VM limit (tính theo số vCPU và machine type). Application thực tế bị giới hạn bởi ceiling nào nhỏ hơn.

Công thức tính IOPS thực tế, cách scale disk để đạt mục tiêu hiệu năng, và các VM-level cap phổ biến mà engineers hay bỏ qua khi sizing.


3. Hyperdisk & Provisioned Performance Model

Hyperdisk là bước chuyển dịch triết lý: tách hiệu năng khỏi dung lượng. Thay vì "mua thêm GB để có thêm IOPS", bạn provision IOPS và throughput độc lập với capacity. Đây là mô hình đúng cho database và AI/ML workload nơi storage capacity nhỏ nhưng I/O demand cao.

Năm loại Hyperdisk (Balanced, Extreme, ML, Throughput, Balanced HA), cơ chế provisioning, torn write protection, và storage pools.


4. Multi-Writer Disks & Giới Hạn Concurrent Access

Multi-writer mode cho phép attach một disk vào nhiều VM đồng thời — nhưng chỉ với Hyperdisk Balanced và Hyperdisk Extreme. Persistent Disk không còn hỗ trợ multi-writer. File system thông thường (ext4, xfs) không dùng được vì không có cache coherence giữa các VM — phải dùng clustered file system hoặc clustering software có I/O fencing.


5. Snapshot Internals & Cross-Region Backup

Snapshot của Persistent Disk không phải copy-on-write thuần túy. Snapshot đầu tiên là full copy, các snapshot sau là incremental — nhưng "incremental" ở đây có nghĩa là changed block tracking ở tầng block storage, không phải filesystem. Cơ chế này có implications quan trọng cho restore time, snapshot chaining, và deletion behavior.


6. Regional PD & High Availability

Regional Persistent Disk duy trì hai replicas đồng bộ ở hai zone khác nhau trong cùng region. Write chỉ được acknowledge khi cả hai replicas xác nhận — đây là synchronous replication thực sự, không phải async với eventual consistency. Điều này mang lại RPO gần bằng 0 nhưng có performance overhead và constraints về machine type.


7. Encryption: Google-Managed & CMEK

Toàn bộ data trên Persistent Disk và Hyperdisk được mã hóa at-rest theo mặc định bằng Google-managed keys. CMEK (Customer-Managed Encryption Keys) cho phép tổ chức kiểm soát key lifecycle — nhưng CMEK không thể được áp dụng cho disk hiện có, chỉ khi tạo mới. Và một khi đã dùng CMEK, không thể revert về Google-managed.


Mental model tổng thể

┌─────────────────────────────────────────────────────────────────────────┐
│                    GCP Block Storage Spectrum                           │
│                                                                         │
│  Persistent Disk                        Hyperdisk                       │
│  ─────────────                          ─────────                       │
│  Performance = f(capacity)              Performance ⊥ capacity          │
│                                                                         │
│  pd-standard  pd-balanced  pd-ssd  pd-extreme    HD-Balanced  HD-Extreme│
│  ─────────    ──────────   ──────  ──────────    ──────────   ─────────-│
│  HDD-backed   SSD-backed   SSD     SSD           SSD          SSD       │
│  0.75 IOPS/GB 6 IOPS/GB   30/GB   provision     provision    provision  │
│  sequential   balanced     OLTP    DB workload   general      high IOPS  │
│                                                                         │
│  HD-Throughput    HD-ML               HD-Balanced HA                    │
│  ─────────────    ──────              ─────────────────                 │
│  analytics        ML inference        synchronous cross-zone replication │
│  2,400 MiB/s      2,500 readers       RPO≈0                             │
└─────────────────────────────────────────────────────────────────────────┘

Quy tắc lựa chọn cốt lõi:

  • Nếu cần tách IOPS/throughput khỏi capacity → dùng Hyperdisk
  • Nếu cần multi-writer → chỉ Hyperdisk Balanced hoặc Extreme
  • Nếu cần zonal HA → Regional PD hoặc Hyperdisk Balanced HA
  • Nếu cần read-only cho hàng nghìn reader (ML inference) → Hyperdisk ML

Tài liệu tham khảo chính thức