系統管理:BRDB的應用
檔案系統時,資料還將會被髮送到網路中另一臺主機上.以相同的形式記錄在一個檔案系統中.
本地(主節點)與遠端主機(備節點)的資料可以保證實時同步.當本地系統出現故障時,遠端主機上還會
保留有一份相同的資料,可以繼續使用.
[@more@]在高可用(HA)中使用DRBD功能,可以代替使用一個共享盤陣.因為資料同時存在於本地主機和遠端主機上,
切換時,遠端主機只要使用它上面的那份備份資料,就可以繼續進行服務了.
DRBD的工作原理如下圖:
+--------+
| 檔案系統 |
+--------+
|
V
+----------+
| 塊裝置層 |
| (/dev/drbd1) |
+----------+
| |
| |
V V
+----------+ +-----------+
| 本地硬碟 | | 遠端主機硬碟 |
| (/dev/hdb1) | | (/dev/hdb1) |
+----------+ +-----------+
從官方網站下載原始碼包:
www.drbd.org
我們在Turbolinux10.5上使用drbd-8.0.4版.分別在兩臺主機上安裝DRBD:
# tar jxf drbd-8.0.4.tar.gz # cd drbd-8.0.4 # make # make install
make install執行之後:
drbd.ko被安裝到/lib/modules/$KernelVersion/kernel/drivers/block下.
drbd相關工具(drbdadm,drbdsetup)被安裝到/sbin下.
並會在/etc/init.d/下建立drbd啟動指令碼.
你需要為本地主機和遠端主機,指定一個DRBD使用的硬碟分割槽.這兩個分割槽的大小必須相同.
我們指定兩臺主機的/dev/hdb1分割槽作為DRBD的使用的分割槽.這兩個分割槽大小都為300MB.
DRBD執行時,會讀取一個配置檔案/etc/drbd.conf.這個檔案裡描述了DRBD裝置與硬碟分割槽的對映關係,
和DRBD的一些配置引數.
下面是一個drbd.conf檔案的簡單示例:
Turbolinux 10.5作業系統,主機名為g105-1,IP地址為 10.0.1.2,DRBD分割槽為/dev/hdb1.
Turbolinux 10.5作業系統,主機名為g105-2,IP地址為 10.0.2.2,DRBD分割槽為/dev/hdb1.
# 是否參加DRBD使用者統計.預設是yes global { usage-count yes; } # 設定主備節點同步時的網路速率最大值,單位是位元組. common { syncer { rate 1M; } } # 一個DRBD裝置(即:/dev/drbdX),叫做一個"資源".裡面包含一個DRBD裝置的主備節點的 # 相關資訊. # resource r0 { # 使用協議C.表示收到遠端主機的寫入確認後,則認為寫入完成. protocol C; net { # 設定主備機之間通訊使用的資訊演算法. cram-hmac-alg sha1; shared-secret "FooFunFactory"; } # 每個主機的說明以"on"開頭,後面是主機名.在後面的{}中為這個主機的配置. on g105-1 { # /dev/drbd1使用的磁碟分割槽是/dev/hdb1 device /dev/drbd1; disk /dev/hdb1; # 設定DRBD的監聽埠,用於與另一臺主機通訊 address 10.0.1.2:7898; meta-disk internal; } on g105-2 { device /dev/drbd1; disk /dev/hdb1; address 10.0.2.2:7898; meta-disk internal; } }
然後將這個drbd.conf檔案分別複製到兩臺主機的/etc目錄下.
在啟動DRBD之前,你需要分別在兩臺主機的hdb1分割槽上,建立供DRBD記錄資訊的資料塊.分別在
兩臺主機上執行:
[root@g105-1 /]# drbdadm create-md r0 [root@g105-2 /]# drbdadm create-md r0
“r0”是我們在drbd.conf裡定義的資源名稱.
現在我們可以啟動DRBD了,分別在兩臺主機上執行:
[root@g105-1 /]# /etc/init.d/drbd start [root@g105-2 /]# /etc/init.d/drbd start
現在可以檢視DRBD的狀態,然後在g105-1主機上執行:
[root@g105-1 /]# cat /proc/drbd
version: 8.0.4 (api:86/proto:86)
SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:22:30
1: cs:Connected st:Secondary/Secondary ds:Inconsistent/Inconsistent C r---
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0
act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
”/proc/drbd”中顯示了drbd當前的狀態.第一行的st表示兩臺主機的狀態,都是”備機”狀態.
ds是磁碟狀態,都是”不一致”狀態.
這是由於,DRBD無法判斷哪一方為主機,以哪一方的磁碟資料作為標準資料.所以,我們需要初始化
一個主機.在g105-1上執行:
[root@g105-1 /]# drbdsetup /dev/drbd1 primary -o
現在再看一個g105-1上的DRBD狀態:
[root@g105-1 /]# cat /proc/drbd
version: 8.0.4 (api:86/proto:86)
SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:22:30
1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
ns:42688 nr:0 dw:0 dr:42688 al:0 bm:2 lo:4 pe:0 ua:4 ap:0
[==>.................] sync'ed: 14.7% (262464/305152)K
finish: 0:02:58 speed: 1,440 (1,292) K/sec
resync: used:1/31 hits:2669 misses:3 starving:0 dirty:0 changed:3
act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
主備機狀態分別是”主/備”,主機磁碟狀態是”實時”,備機狀態是”不一致”.
在第3行,可以看到資料正在同步中,即主機正在將磁碟上的資料,傳遞到備機上.現在的進度是14.7%.
現在看一下g105-2上面的DRBD狀態.
[root@g105-2 /]# cat /proc/drbd
version: 8.0.4 (api:86/proto:86)
SVN Revision: 2947 build by root@g105-2, 2007-07-28 07:13:14
1: cs:SyncTarget st:Secondary/Primary ds:Inconsistent/UpToDate C r---
ns:0 nr:56608 dw:56608 dr:0 al:0 bm:3 lo:0 pe:0 ua:0 ap:0
[===>................] sync'ed: 20.0% (248544/305152)K
finish: 0:02:57 speed: 1,368 (1,284) K/sec
resync: used:0/31 hits:3534 misses:4 starving:0 dirty:0 changed:4
act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
稍等一會,在資料同步完後,再檢視一下g105-1的DRBD狀態:
[root@g105-1 /]# cat /proc/drbd
version: 8.0.4 (api:86/proto:86)
SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:22:30
1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---
ns:305152 nr:0 dw:0 dr:305152 al:0 bm:19 lo:0 pe:0 ua:0 ap:0
resync: used:0/31 hits:19053 misses:19 starving:0 dirty:0 changed:19
act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
磁碟狀態都是”實時”,表示資料同步完成了.
你現在可以把主機上的DRBD裝置掛載到一個目錄上進行使用.備機的DRBD裝置無法被掛載,因為它是
用來接收主機資料的,由DRBD負責操作.
在g105-1上執行:
[root@g105-1 /]# mount /dev/drbd1 /mnt/drbd1 [root@g105-1 /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda3 9.3G 6.5G 2.4G 73% / /dev/hda1 99M 9.3M 85M 10% /boot none 249M 0 249M 0% /dev/shm /dev/drbd1 289M 11M 264M 4% /mnt/drbd1
現在,我們在drbd1目錄裡建立一個200M的檔案:
[root@g105-1 /]# dd if=/dev/zero of=/mnt/drbd1/tempfile1.tmp bs=104857600 count=2
操作完成後,在g105-2(備機)上執行:
我們先停止DRBD
[root@g105-2 /]# /etc/init.d/drbd stop
現在,我們可以將hdb1進行掛載
[root@g105-2 /]# mount /dev/hdb1 /mnt/drbd1 [root@g105-2 /]# ls /mnt/drbd1 -hl total 201M drwx------ 2 root root 12K Jul 28 23:44 lost+found -rw-r--r-- 1 root root 200M Jul 29 00:20 tempfile1.tmp [root@g105-2 /]# umount /mnt/drbd1
可以看到,在主機g105-1上產生的檔案tmpfile1.tmp,也完整的儲存在備機g105-2的DRBD分割槽上.
這就是DRBD的網路RAID-1功能. 在主機上的任何操作,都會被同步到備機的相應磁碟分割槽上,達到資料備份的效果.
有時,你需要將DRBD的主備機互換一下.可以執行下面的操作:
在主機上,先要解除安裝掉DRBD裝置.
[root@g105-1 /]# umount /mnt/drbd1
將主機降級為”備機”.
[root@g105-1 /]# drbdadm secondary r0 [root@g105-1 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-1, 2007-07-28 07:13:14 1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r--- ns:0 nr:5 dw:5 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
現在,兩臺主機都是”備機”.
在備機g105-2上,將它升級為”主機”.
[root@g105-2 /]# drbdadm primary r0 [root@g105-2 /]# cat /proc/drbd version: 8.0.4 (api:86/proto:86) SVN Revision: 2947 build by root@g105-2, 2007-07-28 07:13:14 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r--- ns:0 nr:5 dw:5 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
現在,g105-2成為了”主機”.你可以把它的/dev/drbd1進行掛載和使用了.同樣,資料會被同步到
g105-1上面.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10130206/viewspace-1048041/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資訊系統應用管理隨想
- 客戶管理系統SAAS應用行業軟體系統進銷存CRM管理系統行業
- 專案直播:任務管理系統應用
- Oracle PGA自動管理在OLAP系統中的應用Oracle
- Linux作業系統程式管理的分析與應用Linux作業系統
- Vue 專案應用 —— 後臺管理系統模板Vue
- 應用ERP再造企業管理系統(轉)
- 製造業怎麼用好倉庫管理系統?倉庫管理系統在製造業中的應用例項
- PDM系統在技術狀態管理中的應用研究
- 文件安全管理系統在軍工單位的應用案例
- ERP系統實施和應用的風險管理(一)(轉)
- ERP系統實施和應用的風險管理(二)(轉)
- ERP系統實施和應用的風險管理(三)(轉)
- 如何設計應用系統的資料許可權管理
- CRM系統應用於客戶管理哪個好?
- Android應用開發-學生資訊管理系統Android
- 裝置管理系統AI大模型應用RAG案例AI大模型
- 資訊系統的輔助應用系統
- 中介必用的房屋管理系統
- 動環監控系統在資料中心能耗管理的應用
- 如何選擇應用於外貿的crm客戶管理系統
- CRM管理系統的應用場景——四大作用解析
- 條碼倉庫管理系統在食品行業中的應用行業
- 企業員工業務桌面系統的開發應用與管理
- 基於應用程度的系統應用優化優化
- 數商雲:如何實現SRM供應商管理系統的應用價值?
- 蘋果系統用於系統監控和管理的命令蘋果
- 人力資源管理系統中如何應用報表分析
- 集裝箱RFID物流運輸管理系統應用
- 快捷入口 管理Win7系統應用跳轉列表Win7
- Win7系統資源管理器應用技巧Win7
- 專案管理知識在銀行系統應用(轉)專案管理
- SRM供應商管理系統
- 啟用遠端系統上的應用
- 物流供應鏈管理是什麼?供應鏈物流管理系統邏輯結構應用
- 供應商系統在採購平臺管理的三大業務應用場景
- 杭州ERP生產管理系統開發的應用與優勢
- 【服裝行業】服裝ERP管理系統的應用優勢行業