Mysql

複製文件系統和 EC2 MySQL

  • January 30, 2011

我目前正在研究將我們的基礎設施遷移到亞馬遜的 EC2 上執行,並試圖找出設置 MySQL 服務的最佳方法。我傾向於執行我們自己的 MySQL 實例,而不是使用 Amazon 的 RDS,但我仍在考慮實例本身的性能和成本的最佳方法。

為了擁有持久性數據,MySQL 數據需要位於 EBS 卷上(具有某種形式的條帶 RAID,例如 RAID0 或 RAID10)以提高持久性。但是,EBS IO 受限於網路介面(千兆,所以理論上最大為 128 MB/s),而臨時卷則沒有這個問題。

我確實看到了在一個實例上執行兩個 MySQL 伺服器的建議,其中一個主伺服器在臨時磁碟上執行(我們也將 RAID)和一個從屬儲存對 EBS 卷的更改,但這有一些額外的成本和復雜性(兩台伺服器)。

我想像的是使用某種形式的複製文件系統,這樣我就可以擁有

  • 在臨時卷的 RAID0 之上的文件系統,以最大限度地提高性能
  • 上述所有更改立即復製到由多個 EBS 卷支持的另一個 RAID1 卷,以確保不會失去數據

這樣做的好處是

  • 數據庫伺服器的最佳 IO 性能;IO 沒有網路延遲
  • 減少 EBS 卷上的 IO(因為所有讀取 IO 都將在臨時卷上完成),因此降低了成本
  • 良好的數據安全性,因為它支持冗餘 EBS 卷

但是,我還沒有看到一個合適的系統將所有更改從一個卷複製到另一個卷。是否有文件系統或任何其他方法可以做到這一點?分佈式文件系統,例如 GlusterFS、DRBD 等似乎專注於在伺服器之間複製磁碟,可以將它們設置為在這裡做我感興趣的事情嗎?

我也沒有看到任何關於其他人採用這種方法的資訊。我在這裡是否有需要解決問題的解決方案(即性能是否足夠好,所以整個想法是多餘的)?計劃有什麼漏洞嗎?

在沒有更好的答案的情況下,看起來我們可以使用 RAID1通過在臨時驅動器的 RAID0 和 EBS 驅動器的頂部創建一個 RAID1 陣列來解決這個問題;讀取主要發生在臨時 RAID0 性能應該不錯,而我們仍然有寫入持久儲存和臨時儲存。

引用自:https://serverfault.com/questions/227915