在12月初,我應AWS之邀,二度參加他們的年度用戶大會re:Invent,在上次參加這場活動之後,有個議題一直讓我念念不忘,想追蹤後續發展,那就是他們提出的裸機系統架構Nitro,當時他們與VMware合作發展的VMware on AWS,正是執行在這樣的環境當中,這又更讓人感到好奇,因為按理來說,AWS本身已經是虛擬化基礎架構,如果再疊加一層VMware虛擬化平臺,上層虛擬機器的效能折損程度將會更嚴重,但經過AWS在大會上對這項技術架構的簡要解說,在場觀眾也了解其可行性是存在的。

幸運的是,這項技術的成熟度已經達到一定的目標,陸續導入近年來新推出的執行個體(instance),甚至能讓AWS開始經營足以應付高效能運算(HPC)需求的雲端服務,因此,AWS在本次用戶大會上,也特別為此闢出多個場次來講述這個架構,並且更詳細介紹當中的重要元件。

根據AWS的說明,目前的Nitro分為三大部分:Nitro Cards、Nitro Security Chip、Nitro Hypervisor,分別提供I/O與系統控制器、基於硬體信任根的安全防護,以及管理記憶體與處理器資源的輕量化虛擬平臺,其中的Nitro Cards,會根據VPC網路、EBS儲存服務、執行個體的儲存裝置、系統控制器,提供不同的介面卡。

有了這項架構,AWS可以同時提供基於不同處理器架構的裸機服務,現今不只支援英特爾、AMD等常用的x86架構,也在去年擴及 Arm架構。而在網路的部份,Nitro也讓新的執行個體能夠搭配100Gb網路,先前在核心層使用的底層網路架構,是Elastic Network Adapter(ENA)、ENA Network Driver,以及TCP/IP堆疊,現在則改為Elastic Fabric Adapter(EFA)、EFA Kernel Driver、Libfabric,根據他們的測試,EFA能讓1千顆運算核心以內的HPC應用,得到線性的效能擴展規模(若無EFA,若用到400顆核心以上,就無法線性擴展效能)

當雲端服務業者都開始透過這種方式,來強化自身IT基礎架構平臺的效能與延展性,在目前企業IT產品當中,其實,這種透過硬體卸載(offload)處理負擔的設計,並不罕見,但差別在於所針對的面向大多是本機設備的特定應用工作負載,而不像AWS考量的是整體服務規模。舉例來說,一般處理器內建的指令集或特殊技術,平時就在幫個人電腦和伺服器卸載常見的應用負載,例如,英特爾的VT-x系列、AES-NI、DL-Boost,AMD的AMD-V、SEV、SME;網路卡的部份,英特爾有所謂的I/OAT,Mellanox有ASAP、GPUDirect RDMA。

除此之外,在儲存、網路、資安等領域當中,我們也都可以看到許多應用會搭配專屬的硬體介面卡或晶片,來幫忙處理特定負載。我們在9月刊登的「儲存月報第38期:企業儲存的硬體加速時代來臨」當中,技術主筆張明德就特別針對儲存系統的部份來介紹,由於近期相關的硬體加速搭配機制越來越常見,我們後續也將追蹤報導其他產品對於這類技術的應用方式。

不論小至單臺系統,或大至整個雲端服務,對於各種技術創新的展現,我們往往是被軟體所創造的無限可能所感動,但別忘了要做到效能的穩定與流暢,並不能只靠硬體或軟體等單方面的最佳化,有時候甚至是需要從整體來考量,甚至不惜「重造車輪」,當然這些工程的進行,也必須考量現實的利益來進行。舉例來說,同樣是面對虛擬化應用的議題,AWS和VMware所面臨的業務挑戰並不相同,如果VMware要追求極致的輕量化虛擬技術,對他們而言,可能無法帶來更多客戶,這取決於市場上是否有這麼多用戶提出這些需求;但對於AWS而言,發展出這樣的技術,能讓他們推出更多樣的裸機服務,提供更多樣的執行個體服務選擇,也能打破公有雲多人共用環境效能不如企業內部建置伺服器的迷思。

作者簡介


Advertisement

更多 iThome相關內容