兩臺Linux完美實現雙機熱備
一直想做基於linux的雙機熱備,一直沒有時間和機會。一直以為只要做雙機熱備的實驗就必須兩臺機器外接一個儲存。甚至一個月以前在學習keepalived的時候還在琢磨keepalvied去掉哪些條件可以實現雙機熱備。直到一個月以前設計儲存方案的時候部門老大給了一個國外的連結介紹drbd+nfs實現nfs的熱備方案的時候,我的眼前一亮,這不就是我一直想做的不依靠儲存實現熱備的解決方案嗎?
先來糾正一下自己的錯誤認識吧,沒接觸keepalived和heartbeat的時候,道聽途說的認為keepalived出現以後就沒有必要再用heartbeat了。在仔細學習了這兩個傳奇人物以後發現:keepalived是專門為高可用的叢集而誕生的,而heartbeat生是雙機熱備的人死是雙機熱備的死人。
好了,說說本文實現的原理吧。大體來說就是heartbeat+drbd。heartbeat自是不用說,用它來實現資源的統一排程;而drbd就是本文的重頭戲。這一個什麼東東呢?官方的東東我們就不說了。用我們們自己的話說,就是實現兩臺機器的兩塊硬碟的實時完整複製(drbd即磁碟映象)。它的出現,解決了兩臺機器做雙機時的資料一致性問題。
ok,廢話半天,說一下本文的實現環境:
os:ubuntu9.04
ip1:192.168.1.11 drbd1
ip2:192.168.1.12 drbd2
disk:/dev/sdb1(一個8G的分割槽)
通過drbd,掛在每臺機器上的sdb1這塊分割槽將成為我們們“儲存”。let's go !
++++++現在開始兩臺機器配置一樣++++++
1.設定hosts
vi /etc/hosts
192.168.1.11 drbd1
192.168.1.12 drbd2
注意:比如在1.11這臺機器上。drbd1是你執行hostname命令看到的,而不是隨手一寫的喲:)
2.安裝並配置drbd
1).安裝drbd。
你可以去http://oss.linbit.com/drbd/下載最新的版本。本文為了方便直接從ubuntu的源進行安裝
apt-get install drbd8-utils
2).建立配置檔案
如果用apt-get或者yum的方式安裝的話,會預設建立配置檔案,而編譯安裝則不會。不管直接清空或改名,寫入以下內容。
vi /etc/drbd.conf common { syncer { rate 10M; } #速率 } resource r0 { protocol C; disk { on-io-error detach; } on drbd1 { #drbd1為第一臺機器的機器名 device /dev/drbd0; #建立的虛擬資源 disk /dev/sdb1; #實際的物理分割槽,一定要注意,是一個單獨的分割槽,而且是未經格式化的 address 192.168.1.11:7788; #第一臺機器的ip地址,及通訊埠 meta-disk internal; #型別,區域網 } on drbd2 { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.12:7788; meta-disk internal; } } |
3)建立資源
drbdadm create-md r0 #r0為剛才配置檔案裡的資源名
會提示三個疑問,如果你英文還可以的話,可以閱讀一下,不然的話,直接回車。在終點你會看到
success
:)
4)啟動drbd服務
/etc/init.d/drbd start
cat /proc/drbd
你應該可以看到
注意裡面我標註的"Secondary/Secondary"意思是說現在這塊盤是從盤,主盤不知道。
++++++現在開始只在drbd1上操作++++++
5)初始化網路硬碟
drbdsetup /dev/drbd0 primary -o
cat /proc/drbd
你會發現現在已經是“Primary/Secondary”了,而且已經開始同步硬碟狀態。
為了實時的檢視同步情況,你可以在drbd1上執行
watch -n1 cat /proc/drbd
同步還在進行
經過一段時間的等待,你會發現成功完成!
同步完成以後,在drbd2上檢視硬碟狀態
注意磁碟狀態是:“Secondary/Primary”
格式化網路磁碟
6)設定drbd開機啟動
在兩臺機器上都執行
chkconfig drbd on
7)手工測試drbd是不是正常工作
在drbd1上建立3個檔案
在drbd2上驗證結果
ok,我們現在已經確定drbd是正常工作的了。也相信在這麼細緻的介紹下,你已經熟悉了它是怎麼工作了。我們現在有了“網路儲存”了。下一步就是讓一個東東幫我們排程資源了。簡單的幾步配置有請heartbeat出場
3.配置heartbeat
1)安裝heartbeat
apt-get install heartbeat
2)配置heartbeat
vi /etc/heartbeat/ha.cf logfacility local0 keepalive 2 deadtime 10 auto_failback off bcast eth0 node drbd1 drbd2 vi /etc/heartbeat/haresources drbd1 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext3 vi authkeys auth 3 3 md5 abc chmod 600 authkeys |
3)相同的配置複製到drbd2
scp authkeys haresources ha.cf root@192.168.1.12:/etc/heartbeat/
4)確保服務都是正常執行的
/etc/init.d/drbd start
/etc/init.d/heartbeat start
5)切換測試
通過cat /proc/drbd檢視drbd的狀態或者mount檢視/mnt是不是已經掛載確定資源所在的機器。然後在那臺機器的/mnt新建立一些檔案並停掉那臺機器上的heartbeat。看另一臺機器上/mnt是不是被自動掛載了呢?裡面是不是有剛建立的檔案?good luck!
相關文章
- Keepalived雙機熱備實現高可用
- Unix 和 Linux 雙機熱備 概念Linux
- 什麼是雙機熱備?實現方式有哪些?
- Keepalived - Keepalived 實現 tomcat雙機熱備Tomcat
- 雙機熱備、雙機互備與雙機雙工的區別
- 雙機熱備、雙機互備與 雙機雙工的區別
- 怎樣實現MySQL資料庫雙機熱備份MySql資料庫
- oracle雙機熱備份Oracle
- SQLServer 2005 叢集的配置 實現雙機熱備SQLServer
- SQL Server雙機熱備之釋出、訂閱實現實時同步SQLServer
- oracle雙機熱備份方法Oracle
- HCIE Security 雙機熱備 備考筆記(幕布)筆記
- MySQL 主從複製,雙機熱備MySql
- ROSE 雙機熱備軟體簡介ROS
- MySQL雙機互備熱備自動切換KVMySql
- 恆訊科技推薦:Windows與Linux雙機熱備軟體WindowsLinux
- linux下兩臺機器之間實現SSH認證Linux
- 磁碟陣列,雙機熱備,負載均衡陣列負載
- 手工的雙機熱備資料庫配置資料庫
- 雙機熱備的監聽器OracleTNSListenerFslOracle
- Mysql 資料庫雙機熱備的配置MySql資料庫
- 防火牆的雙機熱備1:主備、負載方式防火牆負載
- 新雙機熱備軟體排名看這裡!
- Nginx+keepalived 雙機熱備(主主模式)Nginx模式
- Nginx+keepalived 雙機熱備(主從模式)Nginx模式
- 計算機網路之策略路由與雙機熱備計算機網路路由
- Linux負載均衡雙機實現文件Linux負載
- 企業實施伺服器雙機熱備方案存在重要意義伺服器
- 雙機熱備與資料備份的關係說明一二
- 伺服器雙機熱備軟體是什麼?伺服器
- 使用Keepalived實現Nginx的雙機主備高可用Nginx
- 藉助keepalived + nginx雙機熱備加固flume線路Nginx
- 雙機熱備和負載均衡有什麼區別負載
- 實現機選雙色球
- 使用Keepalived實現Nginx的自動重啟及雙主熱備高可用Nginx
- linux 兩臺機器新增信任,實現不用密碼訪問,互傳檔案Linux密碼
- SQL Server 2008 R2雙機熱備方案SQLServer
- 部分雙機熱備軟體詳細介紹-行雲管家