# Nutanix (AOS & AHV) :::success 文件產出單位:BQ53E0 製作人:林穎厚 ::: ## 一、架構說明 Nutanix 核心運作元件 A. AOS Storage 高效能分散式儲存 B. AHV Virtualization 虛擬化平台(vmware、HyperV都支援) C. Prism 統一主控台  AOS Storage 採用分散式儲存架構(簡稱DSF) **1.AOS Storage 架構**  資料結構如下: DSF與Hypervisor 間對應示意圖  1. Storage Pool Key Role:Group of physical devices 說明: 一個儲存池是一組物理儲存設備,包括節點內的PCID SSD、SSD、HDD。它可以橫跨多的Nutanix節點並且隨著叢集擴展,大部分的情境下建議只配置單一Storage Pool。 2. Container Key Role:Group of VMS/files 說明: 容器是Storage Pool 透過邏輯分割生成,內容包含一個群組的VM或者資料應用,在單獨的使用情境下容器都是一對一的情境配置使用(NFS/SMB);值得注意一部分選項設定取決於容器層級,如:RF(資料保護)。 3. vDisk Key Role:vDisk 說明: AOS 內包含.vmdks和VM 硬碟或者任何檔案大於等於512KB都是vDISK,vDISK 邏輯上由構成Block Map 的物件 vBlocks所組成。 AOS 的虛擬硬碟並沒有限制vDisk大小,從AOS 4.6版本開始 vDisk 由64 Bit組成,意味著vDisk最大的容量可達9EB。 vDisk結構示意圖:  A.vBlock Key Role:占用vDISK 1MB大小區塊 說明:vBlock 是組成vDisk 一塊1MB大小的虛擬位址空間,這些 vBlock 會對應到以檔案形式儲存在磁碟上的擴充區 (extent) 群組。 B.Extent Key Role:連續的邏輯數據資料 說明:一個Extent 是一塊 1MB 大小的邏輯連續數據,由 n 個連續區塊組成(具體大小取決於客戶機作業系統的區塊大小)。為了保證顆粒度和有效性,Extent上的讀寫修改是基於Slice為基礎進行動作,Slice上的資料會被讀入快取時依照讀取/快取的資料大小有所調整。 C.Extnet Group Key Role:連續的實體儲存數據資料 說明: Extent Group 是存放於實體硬碟上連續1MB或4MB大小的資料數據。它會以文件的形式由CVM管理並保存在硬碟上;另外Extents會動態的分散於Extent Groups上並提供數據條代化且橫跨多個節點/硬碟提供IO效能。 AOS 4.0 Extent Groups可分1MB or 4MB大小,這取決於資料去重功能。 不同結構分類和各文件系統間的對應關係:  Nutanix DSF 分散式儲存提供下列功能: **A. 資料分層(Data Tiering)** 透過多層儲存介質(NVMW SSD、SAS SSD、HDD),透過I/O操作頻率將資料分類為冷、熱數據提升儲存資料處理效率,處理過程完全自動化。快取層空間規劃通常建議為資料層資料量的10%。  I/O Components 1.Oplog Key Role: Persistent write buffer 說明:Oplog 類似文件系統日誌(journal),用來處理隨機i/O行為並在完成後寫入ExtentStore(永久性資料儲存),為了確保資料高可用性(RF)完成寫入操作前,Oplog 會同時被同步複製到另一個CVM的Oplog中,叢集中的CVM都會參與Oplog複製操作;為了確保IO效能Oplog存放於SSD區域(通稱Hot Data),對於有順序寫入IO則會被Bypass Oplog直接寫入ExtentStore。每個VDisk Oplog 限制是6GB(Aos 4.6),達上限時會觸發系統flush操作,將資料從Oplog移至永久儲存區域,此時會影響系統效能必須等待Flush完成。建議透過Nutanix Prism管理介面監控Oplog使用量,若有滿載狀況需調整工作負載或增加節點。 若資料位於Oplog且Oplog空間尚未被完全用盡,則所讀取需求則由Oplog完成直到Oplog被用盡後就會由Unified cache(Memmory)進行處理;若儲存空間啟用了去重刪除(Dedupe)功能,所有I/O將會透過雜湊方式進行指紋識別,完成指紋紀錄將由unified cahe進行去重動作。 官方對於Dedupe有相關建議連結如下: https://portal.nutanix.com/page/documents/solutions/details?targetId=TN-2028-Nutanix-Cloud-Clusters-on-AWS:deduplication.html https://next.nutanix.com/how-it-works-22/to-dedupe-or-not-to-dedupe-that-is-the-question-38920 2.Extent Store Key Role:Persistent data storage 說明:Extent Store是DSF中容量最大的儲存組件橫跨SSD和HDD,並且能擴展到其他節點設備上。通常有兩種資料被寫入Extnet Store(通稱Cold Data),一種是Oplog處理後的數據,另一種是繞過Oplog有順序(sequential)寫入的操作。Nutanix ILM(Information Lifecycle management)會基於IO型態決定數據保留的分層位置,並且在冷熱層之間移動數據。當寫入VDisk的IO超過1.5MB就視為有順序的寫入。 3.Autonomous Extent Store(AES) Key Role:Persistent data storage 說明:AES是AOS5.10 引入對於Extent Store 寫入/儲存資料的新方法。它整合了在地優先與全域Metadata實現Metadata在地化,提供持續的效能表現。從AOS5.20開始一些持續的隨機寫入工作將By PASS Oplog 直接寫入AES,除了那些突發性的隨機寫入(bursty radom)才會由Oplog處理。AES 從AOS6.1版本開始預設啟用於全快閃叢集,如果Hybird架構滿足需求也可以啟用AES。 AOS 5.10版本開始,Autonomous Extent Store(AES)再滿足條件下可處理持續的隨機工作負載。 條件如下: > 全快閃(All Flash)的節點配置下(All NVMe SSD, All SATA/SAS SSD, NVMe+SATA/SAS SSD),不會出現ILM的分層(Tier)在Extent Store上,只會存在一個快閃層。 > 在Intel Optane的案例中(Intel Optane+ NVMe/SATA SSD)最高效能介面將代表Tier0,其次將代表Tier1。 Intel Optane 已經在2024/5/29 EOIS。 >在Hybird 架構中,flash 代表Tier0 HDD 代表Tier1 >Oplog 永遠在Tier0不管是上面哪種架構(All Flash、Optane、Hybrid) >資料的移轉透過ILM 進行分層移轉。 3.Unified Cache Key Role:Dynamic read cache 說明: Unified Cache 位於CVM記憶體主要處理資料、metadata、去重等讀取緩存。當有資料讀取需求且該資料不存在快取中,資料會從Extent中讀取放置至Unified Cache中的Singal Touch Pool,透過LRU(least recently used)判斷資料讀取次越來越少的狀況下將被排除快取;如果該資料持續被讀取的狀況下,資料將被移到Multi Touch Pool直到快取達到峰值觸發LRU,快取峰值的計算公式如下((CVM Memory - 12 GB) * 0.45)。以32GB CVM快取大小(峰值)((32 - 12)*0.45) == 9GB  **B. 磁碟平衡(Disk Balancing)** 透過自動化將數據資料平均分佈到所有節點和磁碟上;當有新增節點或磁碟時,系統將自動數據遷移到新節點或硬碟上。 **C. 資料局部性(Data locality)** Nutanix 官方建議透過10GB進行節點間資料傳遞,所有I/O請求會轉送至虛擬機所在節點的CVM上進行處理,再藉由10GB網路進行資料複製到其他節點  <p class="text-center"> 上圖、一般資料處理流程 </p>  <p class="text-center"> 下圖、VMotion資料處理流程 </p> **D. 進階資料服務(Advancee data services)** 除了提供虛擬化運作支援以外,Nutanix 也提供相關文件服務: 1. Nutanix Files Storage 支援SMB、NFS檔案儲存。 2. Nutanix Volumes Block Stroage 可直接對Nutanix儲存磁碟區作區塊級存取。 3. Nutanix Object Storage 是一種軟體定義的物件儲存方案,可處理大資料量的非結構化資料。 ------- **2.AHV Virtualization 架構** AHV 是 Nutanix 自行開發的原生虛擬化平台 (Hypervisor),深度整合在其超融合基礎架構 (HCI) 解決方案中。它是基於開源的 KVM (Kernel-based Virtual Machine) 技術,並經過 Nutanix 的強化與優化,旨在提供高效能、易於管理且安全的虛擬化環境。AHV 通常與 Nutanix 的核心軟體 AOS (Acropolis Operating System) 緊密綁定。 其中AHV上運行一個特殊虛擬機CVM,每個叢集節點上都會運行一台CVM其功能與角色如下: **A.分散式儲存控制器(Distributed Storage Fabric - DSF)** 透過CVM將節點上的本地儲存(SSD、HDD)進行納管,並且與其他叢集上節點協同運作並集成分散式的儲存池,將空間提供給前端VM使用。 **B.I/O 處理與資料本地性 (Data Locality)** 節點上運行VM所發出的I/O請求,都會由本地CVM進行處理,以實現「資料本地性」,從而最小化網路延遲,提升 I/O 效能。如果需要讀取的資料不在本地,本地 CVM 會與擁有該資料副本的其他 CVM 溝通,將資料拉回。 **C.叢集管理與協調** CVM 之間除了會持續通訊,共同管理整個 Nutanix 叢集的狀態、設定、中繼資料 (Metadata) 和運作。它們也負責處理節點故障、磁碟故障、資料複寫、資料修復 (Self-healing)、重複資料刪除、壓縮、糾刪碼 (Erasure Coding) 等儲存相關的背景任務。 **D.提供儲存給虛擬平台** CVM會透過標準儲存協定將DSF儲存池掛載給前端Hypervisor使用(如 NFS for ESXi/AHV, SMB3 for Hyper-V, 或 iSCSI) **E.運行 Nutanix 核心服務** 綜合前面所述AOS 運行於CVM而CVM負責了許多核心軟體服務,Stargate (I/O 處理)、Zeus (叢集設定管理)、Medusa (中繼資料管理)、Prism (管理介面)。 **F.升級與維護** Nutanix相關升級(Rolling Upgrade)很大程度上也依賴CVM架構。原廠建議CVM標準規格 8Core 32GB。  <p class="text-center"> CVM Components </p> **CVM Components** 1. Zeus Key Role: Access interface for Zookeepr 任務: 分散式系統元素之一,負責所有節點儲存和更新叢集配置任務,為Zookeeper存取介面。 2. Medusa Key Role: Access interface for Cassandra 任務: 分散式系統元素之一,負責紀錄追蹤叢集中資料副本儲存位置,做為Cassandra 存取介面 <img style="display:block;margin:20px auto;padding:1px;border:1px #eee;width:50%;" src="https://hackmd.io/_uploads/rJ3pSEY61g.png" /> 3. Stargate Key Role: Data I/O manager 任務: 將儲分散式存提供給前端進行服務,負責處理所有資料I/O 與管理,Stargate 依賴Medusa對於metadata處理,另外依賴Zeus對於叢集配置資料處理。此服務在叢集中的每個節點運行提供在地化I/O。 4. Cassandra Key Role: Distributed metadata store 任務: 透過分散式環狀方式對所有叢集中metadata進行管理與運用,使用Paxos 演算法確保資料一致性。 5. Zookeeper Key Role: Cluster configuration manager 任務: 保存所有叢集配置資訊,從叢集中一個節點選出。 6. Curator Key Role: MapReduce cluster management and cleanup 任務: 負責分配整個叢集磁碟平衡、資料主動清理;每六小時進行一次全面掃描和每小時一次部分掃描,每個節點都有Curator,但會從所有節點中選出leader進行任務管理委派。 7. Prism Key Role: UI and API 任務: 負責提供管理員設定和監控Nutanix叢集狀態,每個節點都有Prism並透過選舉的方式選出leader。 8. Genesis Key Role: Cluster componenet & Service Manager 任務: Genesis 運行於每個節點並負責處理任何服務應用(啟動/停止)以及初始化設定,Genesis 獨立運行於叢集中,不需要叢集進行設定。Genesis唯一依賴Zookeeper必須啟動及運行。Genesis運行面會顯示The Cluster_init 和 Cluster_status。 9. Chronos Key Role: 作業與任務排程器 任務:負責接收Curator 在各節點產生的作業和任務。Chronos會在每個節點運作,並選出Chronos Leader與Curator Leader一同運作。 10. Cerebro Key Role:複寫/災難復原 管理員 任務:負責DSF(分散式儲存)的複製與災難還原。其中包括定快照調度,遠端站台複寫、遷移與災難移轉。Cerebro 運行於叢集每個節點並參與每個遠端叢集與站台複寫。 11. Pithos Key Role:vDisk 配置管理員 任務:負責vDisk資料配置。Pithos 運行於每個節點並且建立在Cassandra上。 ## 三、Prism 管理 Prism 主要由兩個物件構成: **Prism Centerl(PC)** 負責管理多个 Acropolis 叢集,提供單一的、集中的管理界面。Prism Central 可以是一个虚拟机,部署在 Acropolis 叢集内或叢集外部。 AOS6.0 開始隨著Nutanix 產品授權模式更新,PC變成是必須佈建服務。 1.集中式跨叢集管理平台 2.支援多個 Nutanix 叢集的統一監控和管理 3.高階分析與報告功能 4.自動化運維功能,如警示、容量規劃、升級管理 5.多租戶管理支援 6.整合多雲環境(如 AWS、Azure)管理能力 7.API 支援與擴展性強 **Prism Element(PE)** 本地叢集管理員,負責叢集管理和運行。每個叢集都會有內建的Prism Element。 功能: 1.Nutanix 超融合基礎架構(HCI)節點的本地管理工具 2.監控與管理單一 Nutanix 叢集(Cluster) 3.提供叢集健康狀態、資源使用率、存儲、計算、網路等監控 4.支援虛擬機(VM)管理與配置 5.快照、備份與還原功能 6.簡易的用戶界面,便於本地操作和維護 示意圖如下:  差異比較: | 項目 | Prism Element | Prism Central | | -------- | -------- | -------- | | 管理範圍 | 管理單一 Nutanix 叢集 | 集中管理多個 Nutanix 叢集及多雲環境 | | 部署位置 | 內建於每個 Nutanix 叢集,無需額外部署 |需獨立部署 Prism Central 服務,作為集中管理平台 | | 功能深度 | 提供基本的監控與管理功能,如資源監控、虛擬機管理與快照 | 提供進階分析、容量規劃、自動化警示、多租戶管理及多雲整合等豐富功能 | | 運維自動化 | 功能較基礎,缺乏自動化運維工具 | 支援自動化運維,包括警示通知、升級管理與容量規劃 | | 多租戶支援 | 不支援多租戶 | 支援多租戶環境,適合服務提供商或大型企業 | | 多雲整合 | 不支援公有雲或多雲整合 | 支援整合 AWS、Azure 等公有雲,方便混合雲管理 |
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up