ReFlex:讓遠端快閃記憶體訪問擁有本地訪問的效能
早在數年前,使用快閃記憶體的固態硬碟(SSD)很容易就能與價值10萬美元的儲存陣列的IOPS效能相當,而價格只是其一小部分。此外,SSD不需要儲存區域網路(SAN),因為每個伺服器都可以有自己的內部PCIe SSD,其延遲之低是SAN陣列難以企及的。
在那時,即使一個400GB的SSD成本達到幾千美元,企業還是很樂意使用的。但是,隨著企業和雲供應商採用低成本、無共享架構、橫向擴充套件基礎設施——谷歌檔案系統和Hadoop為其中的典型代表——伺服器SSD的不可用滯留效能和成本已經成為一個主要問題。
遠端訪問NVMe快閃記憶體可以實現靈活的伸縮性,以及資料中心內快閃記憶體容量和IOPS的高利用率。然而,現有的遠端快閃記憶體訪問系統,要麼引入了顯著的效能開銷,要麼無法隔離共享每個快閃記憶體裝置的多個遠端客戶端。為此,史丹佛大學的研究員Ana Klimovic、Heiner Litz研發了ReFlex,一種遠端快閃記憶體訪問軟體系統,它為遠端記憶體訪問提供了幾乎與本地快閃記憶體訪問相同的效能。ReFlex使用資料平面(dataplane)核心將網路和儲存處理緊密整合,以在低資源需求下實現低延遲和高吞吐量。具體地說,ReFlex可以在TCP/IP網路上為每個核心提供850K IOPS,延遲只在直接本地快閃記憶體訪問之上增加21μs。
ReFlex的效能表現主要來源於以下幾個關鍵因素:
·NIC和SSD的硬體虛擬化功能可以直接在硬體I/O佇列上執行,無需複製。
·與基於庫的I/O呼叫相比,資料平面核心極大地減少了I/O開銷。
·一種新的服務質量(QoS)排程器,可以讓多個租戶公平共享遠端裝置,同時最小化長尾延遲。
·I/O在可能的情況下被批處理。
·基於輪詢的執行消除了基於中斷的I/O的不確定性和開銷。
實測結果
ReFlex伺服器的空負載往返延遲只比直接的、使用者空間通過NVMe佇列訪問本地快閃記憶體的時間高21μs。使用ReFlex的兩核伺服器可以完全使一個100萬IOP SSD飽和,與本地訪問相比,此延遲可忽略。相比之下,使用libaio和libevent的Linux基線,只獲得75K IOPS /核心,由於計算強度更高,延遲也更高,需要多用10倍左右的CPU核,才能實現和ReFlex一樣的吞吐量。
此外,測試發現ReFlex可以支援數千個遠端租戶,這是一個重要因素,因為一個雲資料中心裡可能有10萬臺或更多伺服器。
未來儲存的可能
在過去的十多年裡,快閃記憶體一直是資料中心的“常客”,但是系統架構師們仍然在研究如何優化它在實際中的應用。當然,十年前ReFlex系統的目標使用者——擁有大規模橫向擴充套件架構的網際網路服務供應商,並不多見。
但是,一旦ReFlex——或者類似的工具——被內建到系統核心中,我們中的許多人,即使硬體規模不大,也能夠利用共享的SSD。想象一下這種效能提升,假設我們有一個8節點視訊渲染農場,裝備了兩個高效能的PCIe/NVMe SSD和一個10Gb的乙太網結構。
ReFlex型別的功能變得更加重要,因為新的、更高效能和更昂貴的非易失性儲存技術(如英特爾的3D XPoint)得到了更廣泛的應用。共享遠端ReFlex的經濟效益將比現在更大。
ReFlex是一個開源軟體,GitHub地址為https://github.com/stanford-mast/reflex
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31473948/viewspace-2153938/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TeamViewer遠端訪問View
- vnc遠端訪問,推薦四款免費又好用的vnc遠端訪問軟體VNC
- 記憶體訪問全過程記憶體
- jupyter notebook 遠端訪問
- Linux SSH遠端訪問Linux
- 一個SMMU記憶體訪問異常的問題記憶體
- SSH遠端訪問及控制
- 遠端訪問及控制——ssh
- rabbitmq 新增遠端訪問功能MQ
- 模擬ip訪問(附模擬手機訪問)遠端地址
- mysql賬戶新增遠端訪問MySql
- mysql如何允許遠端訪問MySql
- Docker 如何開啟遠端訪問Docker
- NAS如何實現遠端訪問
- 關於java記憶體訪問重排序的思考Java記憶體排序
- Linux 常見問題 - 拒絕遠端訪問Linux
- 01-0006 C++記憶體訪問越界 [問題整理]C++記憶體
- Confluence6匿名訪問遠端APIAPI
- mysql5.7.22-log 修改遠端訪問MySql
- MySQL 開啟 3306 埠遠端訪問MySql
- mariadb配置允許遠端訪問方式
- 遠端訪問技術是什麼
- 遠端訪問技術指什麼
- NAS儲存外網遠端訪問的方式
- 訪問本地的公網ip
- Linux 本地AMH 伺服器管理皮膚實現遠端訪問方法Linux伺服器
- 繼承應該是擁有且可訪問繼承
- FastNat外網訪問 Windows 3389 遠端桌面ASTWindows
- 開啟mysql遠端登入訪問功能MySql
- mysql8.0授權root遠端訪問MySql
- 外網訪問本地sqlserverSQLServer
- 本地Tomcat外網訪問Tomcat
- 物件的例項化、記憶體佈局以及訪問定位物件記憶體
- Spring Boot專案部署伺服器 本地正常 遠端無法訪問問題排錯Spring Boot伺服器
- 使用ngrok讓你的本地Web程式外網可訪問Web
- 序列SPI NOR快閃記憶體VS並行NOR快閃記憶體記憶體並行
- 輕鬆讓別人訪問到自己本地專案
- 121 TeamViewer 遠端支援、遠端訪問、線上協作和會議View