垂直/水平擴展磁碟大小 MySQL 或 MariaDB
我已經研究了一段時間,找不到合適的解決方案,所以想知道這裡是否有人可以幫忙。
我正在嘗試設置有助於進行分析的數據庫後端。我需要堅持使用 MySQL 或 MariaDB,因為這是我們目前在所有項目和查詢中使用的。
我的問題是我可以訪問一些虛擬機。它們中的大多數都相當不錯,但它們的範圍和容量都為 1-2TB。它們的磁碟大小無法增加,因為它們已被配置並用於其他目的。
由於它們很少使用並且長時間閒置,我試圖將其設置為數據庫的集群。
現在,我想知道的是,我如何使這些機器能夠擴展,以便我可以使用硬碟空間。
即我有伺服器 1 (1.5TB)、伺服器 2 (1.0TB)、伺服器 3 (1.8TB)、伺服器 4 (1.5TB)、伺服器 5 (1.2TB)。我想將它們全部分片/聚集在一起,以將所有空間加在一起,這樣我就可以總共利用 7TB。
原因是正在分析的數據通常大於 1 個伺服器可以容納的數據。我不擔心複製/一致性和系統停機(因為它不是業務關鍵,任何失去的數據都可以輕鬆恢復和重新導入)。雖然我很樂意在需要時使用主/從安排(以防出現問題)。
我研究了以下內容,但沒有找到任何可以回答我的問題的東西……
- 最大比例
- Percona XtraDB 集群
- 伙計們集群
我已經嘗試過上述軟體包,但我能找到的大多數資源往往只談論多主或主從系統。或水平縮放以獲得最大的讀/寫訪問。
我需要通過將多台機器添加在一起來實現垂直擴展的解決方案。主要用於總磁碟空間,對 CPU、RAM 等不太重要。
您正在尋找的通常稱為共享數據架構,其中多個數據庫節點訪問**分佈在節點上的同一組數據庫文件(數據庫),並且數據庫容量近似於所有節點的磁碟和 CPU 容量的總和(或多或少)。
您所指的 MySQL 集群解決方案實現了shared-nothing 架構,其中數據庫副本在節點之間複製,並且每個數據庫節點都使用自己的“副本”,因此您仍然受到磁碟和處理器容量的限制單個節點。
我認為 MySQL 不存在共享數據集群解決方案,因為實施它是一項艱鉅的任務——只需詢問 Oracle RAC 人員即可。
如果您的工作負載允許,您可以考慮使用集群文件系統,例如CephFS或GlusterFS,它將所有伺服器磁碟捲的總和作為單個文件系統呈現給單個數據庫節點。這至少可以滿足您的磁碟容量要求。
- 對於數據倉庫情況下的分析,我發現建構和維護“匯總表”非常有效——數據大小的十分之一,查詢速度提高了 10 倍。
- 您願意分享一些有關數據和分析的資訊嗎?我可能有更多的想法。
- 為了使磁碟空間可供 MySQL 使用——這是一種作業系統技術。然而,它可能要求沒有比其中一台機器更大的表,這會使 MySQL 有點脆弱,因為所有 5 台伺服器都必須啟動才能使 MySQL 啟動。
- clustrix 可能有一個解決方案。蜘蛛是另一種可能性。它包含在 MariaDB 中。