故障安全 RAM 驅動器解決方案
我正在尋找一種生產解決方案來創建將與 HDD 安全同步的 RAM 驅動器。
我有一個 I/O 負載很重的自定義軟體(這是某種專有的面向文件的數據庫),我需要顯著加快它的速度。我無法修改或擺脫軟體本身,因此必須進行水平或垂直縮放。該軟體不支持盒子的水平偵察,所以我先看垂直縮放。
主要想法很簡單——我們購買大量 RAM (96GB) 並將整個東西放在 RAM 驅動器上。但它需要是故障安全的,在伺服器重新啟動時失去任何數據不是一種選擇。因此,我正在尋找能夠在 RAM 驅動器和 HDD 之間保持透明同步的解決方案。
像通過 bash 腳本複製文件這樣的骯髒解決方案不是一種選擇,需要更可靠的解決方案。
理論上,正如我所見,此處描述的某種分佈式 FS可以以一種奇怪的方式使用 - 同步同一台機器上的兩個分區。但我懷疑這是否會在實踐中起作用,並且從未嘗試過。
那麼,對於具有與 HDD 透明同步的 RAM 驅動器的現成解決方案有什麼想法嗎?
數據更新:
- 我需要在 RAM 中保存的估計數據量約為 50GB。
- 伺服器是專用的 HP DL320、8 個 CPU、16GB RAM(最高 96GB)。
- I/O 配置文件類似於數據庫應用程序 - 大量隨機訪問讀取,較少寫入。
我詢問了您可用的硬體,因為可以獲得低延遲和高 IOPS 的設備來克服磁碟的限制。
但是,您沒有提供您的工作數據集大小的估計值。這有很大的不同。目前我們沒有足夠的資訊。應用程序的 I/O 配置文件是什麼?偏寫?偏讀?目前的儲存設置是什麼?
一個通用的建議是使用一組 SSD 驅動器。另一種方法是使用像FusioIO驅動器這樣的 PCIe 加速器。
甚至可以考慮非同步模式下的DRBD ……
一個更深奧的解決方案是使用具有一定程度分層的共享儲存,可以將經常使用的數據保存在 RAM 或 SSD 上。ZFS 文件系統及其對ZIL寫入加速和L2ARC讀取記憶體的使用就是一個很好的例子。
更深奧的解決方案是基於軟體的記憶體方法,例如最終持久性 RAM 磁碟(EPRD)。這會在 FUSE 文件系統中創建一個磁碟支持的 RAM 磁碟,並且可以成為加速應用程序 I/O 的不錯選擇。這可能是你想要的…
從配置文件:
You can however also create a ramdisk that will have it's changes flushed to disk every N seconds and instead of keeping everything in ram it only allocated 512M for caching. ./eprd_setup -f /data/saverimg -s 10G -m 3 -c -p512M In this example the data is flushed to disk every 3 seconds.
編輯:
如果這些是HP ProLiant DL320系統,我假設它們是 G6 型號。您是否安裝了 Smart Array P410 控制器和電池備份或快閃記憶體備份記憶體?如果沒有,這是您在進行 RAM 磁碟設置之前應該採取的第一步。它有所作為!