內存一直是一種承諾提供高速的硬件。 有一些缺點:它很昂貴,容量有限,並且不持久(為了維護數據,內存需要打開電源,這進一步成為問題,因為內存需要定期刷新)。 大約三年前,英特爾和美光宣布了 3DXPoint 技術,這將是邁向持久內存的第一步。 雖然這項技術幾乎沒有內存那麼快,但它比閃存快得多,而且更具成本效益。 看到持久內存的潛力,推出了 MemVerge 以實現這一潛力。
內存一直是一種承諾提供高速的硬件。 有一些缺點:它很昂貴,容量有限,並且不持久(為了維護數據,內存需要打開電源,這進一步成為問題,因為內存需要定期刷新)。 大約三年前,英特爾和美光宣布了 3DXPoint 技術,這將是邁向持久內存的第一步。 雖然這項技術幾乎沒有內存那麼快,但它比閃存快得多,而且更具成本效益。 看到持久內存的潛力,推出了 MemVerge 以實現這一潛力。
我們看到的第一個 3D XPoint 設備更針對存儲。 隨著時間的推移,英特爾利用 3D XPoint 持久內存 (PMem) 來創建更快的 SSD。 後來英特爾宣布了一個持久內存模塊,它位於 DIMM 插槽中,作為 DRAM 的擴展。 過去我們看到的是滿足快速需求的內存和滿足大需求的存儲,而 PMem 開始模糊了界限。 MemVerge 正試圖通過實現具有大容量和持久性的 DRAM 性能來融合兩全其美。
MemVerge 一直在調查持久內存的前景,並開發了軟件來讓 PMem 發揮其潛力,而不是將其用作緩存、速度層或內存擴展器。 該公司使用所謂的大內存計算將純 DRAM 環境轉變為成本更低、更重要的是,利用 DRAM 和 PMem 的更高密度內存環境。 它通過將兩者虛擬化為軟件定義的內存池來實現這一點,該內存池還提供軟件定義的服務。 除此之外,該軟件還提供了一個抽象層,允許數據中心中的所有應用程序受益於新型內存、內存互連、處理器和內存分配器,以應對現代和新興的應用程序和工作負載。
早在去年 XNUMX 月,MemVerge 就發布了其 Memory Machine 的普遍可用性. 該軟件有兩種版本:標準版,虛擬化字節可尋址 DRAM 和 PMem 內存,加速應用程序並降低成本,但不支持持久性; 和 AdvancedVersion,它是啟用持久性的所有內容,以及基於 ZeroIO 內存快照的企業級內存服務。
ZeroIO 內存中快照,顧名思義,允許使用零 IO 存儲 DRAM 和 PMem 的快照。 這使得通常易失性和低可用性的 DRAM 成為高可用性層。 ZeroIO 快照還允許所謂的時間旅行,允許回滾到以前的快照。 有一個自動保存功能,可以在發生崩潰時將應用程序回滾到之前的快照。 快照允許在不使用更多內存資源的情況下生成精簡克隆。 並且快照可以遷移到其他服務器並用於創建新的應用程序實例。
MemVerge 內存機器管理
MemVerge Memory Machine 有一個相當漂亮的 GUI。 全局儀表板顯示了我們在存儲中期望的元素,在這種情況下,DRAM 和 PMem 是受監控的主要元素,並且可以在此處輕鬆查看使用情況。 頂部是主機、應用程序實例、快照和警報的選項卡。
單擊左側的主頁按鈕會顯示系統的基本信息(IP 地址、操作系統、內核版本、CPU)以及深入了解內存和 PMem 的使用情況和性能。
用戶可以通過調出內存報告來進一步深入了解內存,以查看每小時的使用情況。 這也突出了類型,PMem 與 DRAM。
用戶可以查看 Memory Machine 的 RESTful API 並對其進行配置。
快照是 Memory Machine 的重要組成部分,但我們將在性能部分進行介紹。
型號
在我們的實驗室中,我們在具有以下規格的 Supermicro SYS-2029U-TN24R4T 上使用 MemVerge Memory Machine:
硬件型號 | 超微 SYS-2029U-TN24R4T |
中央處理器 | 2 個 Intel(R) Platinum(R) 8270 CPU @ 2.70GHz,26 核 |
DRAM | DDR4 192GB |
記憶體 | 12x128GB |
操作系統固態硬盤 | 1TB 固態硬盤 |
OS | CentOS 8.2.2004的 |
核心 | 4.18.0-193.19.1.el8_2.x86_64 |
MemVerge 內存機器性能
我們的常規測試電池在這裡沒有意義,因為 MemVerge Memory Machine 針對需要在內存中運行的工作負載和應用程序。 我們的基準測試通常被視為正常的高壓力工作負載,這些工作負載將在 IT 運營的現實生活中出現。 相反,在這裡我們將研究一些不同的測試,我們將專門研究諸如 DRAM 與 PMem 與 DRAM + PMem 之類的東西,以及每種測試的結果。 對於這次審查,我們將使用 KDB Performance 進行批量插入和讀取測試,以及使用 ZeroIO 快照的 Redis 快速恢復和使用 ZeroIO 快照的 Redis 克隆。
KDB 性能測試
Kx 的 kdb+ 是一個時間序列內存數據庫。 它以速度和效率著稱,因此在金融服務行業非常受歡迎。 kdb 的一大限制是 DRAM 容量的限制。 MemVerge Memory Machine 非常適合這裡,因此 kdb 可以充分利用 PMem 來擴展內存空間,其性能與 DRAM 相似。 對於批量插入測試,我們查看了單個插入、10、100、1000、10000、15000、20000 和 25000 個插入,並以每秒數百萬次批量插入進行測量。
通過 KDB 批量插入,我們看到了一些有趣的結果。 在一次插入時,所有三個都有相似的結果。 在較小的批量中,我們認為 DRAM 表現最好。 隨著批處理大小超過 10,000,我們看到 Memory Machine 領先於 DRAM,而 PMem 落後於每個批處理。
接下來,我們通過讀取測試查看了 kdb+。 這裡的測試設置有點不同。 讀取測試始終相同,但這次我們只查看 DRAM,僅查看 PMem,然後查看具有 20GB 或 40GB DRAM 緩存的 PMem。 DRAM 只能達到 4.2GB/s,PMem 只能達到 2.9GB/s,具有 20GB 的 DRAM 緩存,Memory Machine 能夠達到幾乎相同的 DRAM,只有 3.9GB/s,具有 40GB 的緩存我們看到了 4.8GB/s 的最高性能。 更有趣的是,後兩個仍然允許大量 DRAM 用於其他任務。
Redis 快照測試
Redis 是一種開源內存數據存儲,用作數據庫、緩存和消息代理。 它非常流行且功能強大,因此它是對 MemVerge Memory Machine 進行基準測試的理想程序。 當 Redis 運行在 MemVerge Memory Machine 上時,DRAM 和 PMem 被分配給 Redis。 然後 MemVerge ZeroIO 快照保存應用程序的內存頁,沒有存儲 IO 操作。 當 Redis 崩潰時,所有快照到 PMem 的數據都是持久的。 崩潰恢復涉及簡單地指向 PMem 中的現有數據,而無需從存儲中提取和移動數據。
在本節中,我們將測試用於快速恢復的 MemVerge ZeroIO 快照。
首先,我們將了解使用 ZeroIO 快照的 Redis 快速恢復。 與性能基準不同,我們將在這裡展示功能和易用性。 安裝 Redis 並運行數據庫後,我們登錄 Memory Machine 並查看諸如使用了多少 PMem 之類的信息。
在應用程序選項卡下,我們可以看到 Redis 服務器正在運行。
當它運行時,我們拍攝一些快照。 顯然,如果不拍攝快照,則無法從快照中恢復。
安全無妨,仔細檢查以確保我們拍攝了一些快照。
在我們知道我們擁有它們之後,我們觸發了 Redis 數據庫故障。 我們選擇一個快照並恢復,稍作停頓後,我們再次啟動並運行。
使用 ZeroIO 快照的 Redis 克隆
在這裡,我們採取幾個與上述相同的步驟。 拍攝快照後,我們可以將其恢復為具有新命名空間和新 IP 地址的克隆。 我們從另一台主機連接到克隆,可以看到它佔用了大約相同的內存。
對於那些喜歡的人,上述所有操作都可以通過 CLI 提示完成。
結論
MemVerge Memory Machine 是旨在將內存的性能與 PMem 的持久性相結合的 SDS。 PMem 通常用作緩存以加速存儲。 雖然這在許多存儲實例中是一個福音,但內存應用程序需要內存性能,而不是緩存。 MemVerge 將 DRAM 和 PMem 虛擬化為具有軟件定義服務的軟件定義內存池。 Memory Machine 使用 zeroIO 內存快照將 DRAM 轉變為高可用性層。 ZeroIO 允許在不佔用內存資源的情況下創建精簡克隆。
當我們進入新類別時,我們將不得不採用新的性能測試和基準。 使用我們的常規基準測試內存 SDS 不會有用,因為這不是它的目的。 相反,我們利用 KDB Performance 進行批量插入和讀取測試,以及使用 ZeroIO 快照的 Redis 快速恢復和使用 ZeroIO 快照的 Redis 克隆。 測試是在 Supermicro SYS-2029U-TN24R4T 服務器上執行的,儘管它應該可以在支持英特爾傲騰 PMem 模塊的經過驗證的服務器上運行。
對於 KDM bulk,我們通過 Memory Machine 測試了多個批處理大小,著眼於 DRAM、PMem 以及兩者的組合。 由於批次從小開始,因此看到 DRAM 具有最佳性能也就不足為奇了。 真正有趣的是,隨著測試對資源的消耗越來越大,MemVerge 的表現越來越好。 通過閱讀 KDM,我們看到了類似的趨勢。 DRAM 表現非常好,不足為奇。 PMem 沒問題,但在 DRAM 之下。 帶有 Memory Machine 的 DRAM 只有 20GB 的緩存,與單獨的 DRAM 的 3.9GB/s 相比,它的性能為 4.2GB/s。 為 MemVerge 提供 40GB 的 DRAM 用於緩存,整體性能最佳,達到 4.8GB/s,同時仍為其他任務留出大量 DRAM。
性能測試的第二部分是Redis Quick Recovery with ZeroIO Snapshot 和Redis Clone with ZeroIO Snapshot。 這裡更多的是功能與可量化的性能。 本質上,我們快速拍攝快照,觸發故障,然後能夠快速啟動並再次運行。
英特爾的 PMem 是一項非常有趣的技術,但由於輕鬆採用和正確利用模塊的方式有限,採用速度有些慢。 借助 MemVerge,組織可以利用 PMem 必須提供的功能,在專門為該技術構建的解決方案中。 對於那些應用程序可以從 PMem 提供的大容量和彈性內存佔用中受益的人來說,MemVerge 絕對值得評估。
參與 StorageReview
電子通訊 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | Facebook | RSS訂閱