簡介
本文為閱讀 AOS Storage | The Nutanix Cloud Bible 文章中,針對 Data Structure 章節的重點整理,詳細資訊請參考 AOS Storage | The Nutanix Cloud Bible 文章。在開始之前,可以先看一下 Data Layout in Nutanix AOS 影片了解 AOS Storage 整體運作概念:
How AOS Storage works
相信認識 Nutanix AOS 一定程度的朋友,肯定知道基本的運作概念,便是每台 Nutanix Node 節點主機,會將底層的儲存裝置交給 CVM 掌管,整合儲存資源的 Nutanix Cluster,搭配多台 CVM/AOS 進行儲存資源的調度和使用。
AOS Data Structure
Nutanix AOS Storage 運作元件中 High-Level 組成如下:
- Storage Pool: Group of physical devices,每台 Nutanix Node 包含 PCIe SSD, SSD, and HDD 儲存裝置,多台 Nutanix Node 組成 Nutanix Cluster,整合所有儲存裝置的儲存資源便是 Storage Pool,並且隨著 Scale-Out 擴充 Nutanix Node 時,Storage Pool 儲存資源也隨之提升。
- Container: Group of VMs/files,由 Storage Pool 切出來的邏輯分段便是 Container,這個 Storage Container 中包含 VMs 虛擬主機或 vDisk 虛擬磁碟。
- vDisk: VM hard disks,由 vBlocks 切出來的邏輯元件,在 AOS 中只要超過 512KB 大小的檔案便是 vDisk,然後透過 Block Map 機制對應至底層的 vBlocks。原則上,在 AOS/Stargate 中的 vDisk 沒有限制大小,從 AOS 4.6 版本開始,vDisk size 支援至 64bit,這表示 vDisk 虛擬磁碟最大支援至 2^63-1 or 9E18(9 Exabytes)。
圖、High-level Filesystem Breakdown
Nutanix AOS Storage 運作元件中 Low-Level 組成如下:
- vBlock: 1 MB chunk of vDisk address space,多個 vBlock 組成 vDisk,每個 vBlock 就是大小為 1 MB 的資料區塊。舉例來說,一個 100MB 的 vDisk,等於 1MB vBlock x 100,其中 vBlock 0 對應 0-1MB,而 vBlock 1 對應 1-2MB,而 vBlocks map 對應至 Extents,然後再對應至 Extent Group。
- Extent: Logically contiguous data,為 1 MB 的邏輯連續資料,由 n 個連續 Blocks 組成,取決於 Guest OS 的檔案系統資料區塊大小而定,考慮資料大小的顆粒度和效率,所以會在 Slice 層級進行資料的 Written/Read/Modified 作業。
- Extent Group: Physically contiguous stored data,為 1 MB 或 4 MB 的實體連續資料,會以檔案的型式儲存在 CVM 掌管的儲存裝置中,並且 Extent 會以動態分佈的方式在 Extent Group 中,以達到跨 Node 和 Data Striping 的目的以提升儲存效能。值得注意的是,從 AOS 4.0 版本後,採用 1 MB 或 4 MB 取決於是否啟用 Dedeplication 功能。
圖、Low-level Filesystem Breakdown
圖、Graphical Filesystem Breakdown
在下列影片中,有說明 Extent 和 Extent Group 的部份,可以幫助更了解這二個底層元件: