如果有人問你一台 PC 服務器是否可以達到 99.99% 的高可用,該如何回答呢? 或許沒有一台機器能"確保"達到這樣的可用率,當然在某個時間段或許不會出問題,但這個肯定是看運氣,而高可用基本上是沒辦法通過一台來達到目標的,我們更多的時候是設計方案確保在出問題的時候盡快接管故障機器,當然這要付出更大的成本。
對於 Oracle 的高可用方案可以參考 Maximum Availability Architecture (MAA) 白皮書,不過 Oracle 並不推崇操作系統級別的解決方案。MySQL 的指導策略倒是更為靈活一些,DRBD (Distributed Replicated Block Device) 就是個可以考慮的選擇。以前關注過這東西,但是據我了解,好像國內實現的案例不多,不知道是不是處於對網卡同步速度的限制考慮。現在這個有了新的轉機,在 8.3 版本上已經能夠支持 InfiniBand 。而原來通過網卡同步數據塊的方式畢竟受網卡延時和帶寬的限制,InfiniBand 的支持的實現相信能贏得一部分企業用戶的信賴。
Linux Kernel Summit 2009 上這次有對 DRBD 的介紹(注意對數據一致性的介紹),這意味著能正式進入 Kernel 麼?
相對專有的集群管理工具,也有開源的集群管理工具 Pacemaker (支持 Heartbeat 與 OpenAIS 標准)可供配套使用。Pacemaker 能夠較為靈活的實現主備、N+1 、N-N 等多種模式。感人感覺會比較有生命力。
好的開源解決方案就是設計活動木板房,廉價靈活環保,當然,牢固肯定是第一目標。