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地址為
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31473948/viewspace-2153938/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux下訪問Window分驅(NTFS)以及Mount快閃記憶體Linux記憶體
- Redis遠端訪問Redis
- vnc遠端訪問,推薦四款免費又好用的vnc遠端訪問軟體VNC
- TeamViewer遠端訪問View
- 記憶體訪問全過程記憶體
- linux遠端訪問問題薦Linux
- rabbitmq 新增遠端訪問功能MQ
- 遠端訪問及控制——ssh
- Linux SSH遠端訪問Linux
- PostgreSQL 9.6 配置遠端訪問SQL
- SSH遠端訪問及控制
- VB也能訪問記憶體 (轉)記憶體
- 一個SMMU記憶體訪問異常的問題記憶體
- 訪問jboss上EJB遠端介面問題
- 遠端資料庫的訪問 (轉)資料庫
- mysql如何允許遠端訪問MySql
- jupyter notebook 遠端訪問
- mysql賬戶新增遠端訪問MySql
- NAS如何實現遠端訪問
- 遠端訪問jupyter notebook
- django:runserver實現遠端訪問DjangoServer
- 遠端登錄檔訪問 (轉)
- Docker 如何開啟遠端訪問Docker
- 模擬ip訪問(附模擬手機訪問)遠端地址
- 遠端客戶端 訪問 ASM 例項客戶端ASM
- 關於java記憶體訪問重排序的思考Java記憶體排序
- 設定mstsc使遠端計算機可以訪問本地磁碟計算機
- 遠端訪問技術指什麼
- 遠端訪問技術是什麼
- postgresql遠端不能訪問 - PostgreSQL9.4.5SQL
- Keep小表到記憶體,提高訪問速度記憶體
- Linux 常見問題 - 拒絕遠端訪問Linux
- NAS儲存外網遠端訪問的方式
- Mysql資料庫的遠端訪問設定MySql資料庫
- 路由和遠端訪問伺服器的分析路由伺服器
- 繼承應該是擁有且可訪問繼承
- 訪問本地的公網ip
- mysql5.7.22-log 修改遠端訪問MySql