日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

drbd安装和数据同步

發布時間:2023/12/31 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 drbd安装和数据同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一。軟件安裝

drbd原理:drbd是一個塊同步工具 運行于系統內核 在系統文件寫入磁盤前 drbd驅動攔截到數據塊操作 將數據塊通過網絡發送給其他機器進行同步

1》heartbeat安裝 參考http://blog.csdn.net/liaomin416100569/article/details/76087448

2》drbd安裝過程:

drbd官網 http://www.drbd.org/

drbd下載 https://www.linbit.com/en/drbd-community/drbd-download/

》》模擬環境 為: (centos6.9)

drbd-utils-8.9.9.tar.gz (drbd的管理配置軟件) wgethttp://www.linbit.com/downloads/drbd/utils/drbd-utils-8.9.9.tar.gz

drbd-8.4.6.tar.gz (drbd的內核驅動) wgethttp://www.linbit.com/downloads/drbd/8.4/drbd-8.4.6.tar.gz

》》 編譯安裝 drbd-utils

安裝 drbd-utils
yum -y install gcc flex libxslt kernel-devel
安裝完成kernel-devel 進入 /usr/src/kernels目錄下 看是否存在一個內核編號的目錄  
./configure --with-heartbeat -prefix=/usr/local/drbd
make KDIR=/usr/src/kernels/2.6.32-696.6.3.el6.x86_64   這里表示編譯時 帶上內核源碼的目錄
make install

》》編譯安裝drbd

安裝drbd
yum -y install perl
make KDIR=/usr/src/kernels/2.6.32-696.6.3.el6.x86_64
[root@bogon drbd-8.4.6]# make install
make -C drbd install
make[1]: Entering directory `/root/drbd/drbd-8.4.6/drbd'
install -d //lib/modules/2.6.32-696.6.3.el6.x86_64/updates
install -m 644 drbd.ko //lib/modules/2.6.32-696.6.3.el6.x86_64/updates
[ -e /System.map ] && 
           /sbin/depmod -F /System.map -e ./drbd.ko 2>&1 >/dev/null || true
make[1]: Leaving directory `/root/drbd/drbd-8.4.6/drbd'

通過uname -r 可以看出 系統的內核編號為 2.6.32-696.el6.x86_64  編譯的系統編號是2.6.32-696.6.3.el6.x86_64所以
加載內核模塊 肯定是2.6.32-696.el6.x86_64下 而不是 2.6.32-696.6.3.el6.x86_64 所需要拷貝驅動文件ko到目錄2.6.32-696.el6.x86_64下
install -d //lib/modules/2.6.32-696.6.3.el6.x86_64/updates 知道 drbd.ko安裝在該目錄下 拷貝到
cp /lib/modules/2.6.32-696.6.3.el6.x86_64/updates/drbd.ko  /lib/modules/2.6.32-696.el6.x86_64/kernel/lib
使用命令depmod 重新加載該目錄下的驅動文件
嘗試手工加載 
[root@bogon lib]# insmod drbd.ko
insmod: error inserting 'drbd.ko': -1 Unknown symbol in module
查看下 依賴 內核驅動是否存在
[root@bogon lib]# modinfo  ./drbd.ko | grep depend
depends:        libcrc32c
[root@bogon lib]# modprobe libcrc32c
[root@bogon lib]# insmod drbd.ko
[root@bogon lib]# modprobe drbd
開機自啟動 /etc/rc.local最后一行添加 modprobe drbd 重啟reboot
重啟后  檢查內核drbd是否成功 lsmod | grep drbd

3》drbd同步配置:

演示環境

主機 192.168.58.142 新磁盤 /dev/sdb 分區為 /dev/sdb1和/dev/sdb2 主機名 ha

從機 192.168.58.143 新磁盤 /dev/sdb 分區為 /dev/sdb1和/dev/sdb2 主機名ha1

主機配置:

配置主機名 hostname 主機名 添加host文件

vi /etc/hosts

192.168.58.142 ha
192.168.58.143 ha1

修改/usr/local/drbd/etc/drbd.d/ 下的配置文件

文件global_common.conf

global {
        usage-count no;  #表示是否上傳drbd使用的用戶信息到drbd官網 no表示不上傳
}

common {
        net {
#協議A:異步復制協議。本地寫成功后立即返回,數據放在發送BUFFER中,可能丟失。
#協議B:內存同步(半同步)復制協議。本地寫成功并將數據發送到對方后立即返回,如果雙機掉電,數據可能丟失(mysql5.5以上支持)。
#協議C:同步復制協議。本地和對方服務器磁盤都寫成功確認后返回成功。如果單機掉電后單機磁盤損壞,數據都不會丟失。
#工作中一般用協議C。選擇協議將影響流量,從而影響網絡延時。
                protocol C;  #表示使用協議 同步協議
           
        }
}

添加文件 r0.res 內容為

resource r0 {
  on ha {             # on 后表示主機名
    device    /dev/drbd1;   #表示drbd使用的邏輯設備名  不需要用戶自己創建
    disk      /dev/sdb1;    #表示需要同步的物理設備分區 這里不用先格式化
    address   192.168.58.142:7789; #表示當前機器ip和監聽的端口
    meta-disk internal;     #用于同步的一些元數據 
  }
  on ha1 {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   192.168.58.143:7789;
    meta-disk internal;
  }
}

主(ha)備(ha1) 分別配置主機名和配置資源文件 同時執行命令(執行之前關閉防火墻 service iptables stop & iptables --flush)

1 創建資源設備(主備執行)
drbdadm create-md r0
2 啟動資源(主備執行)
drbdadm up r0 報錯
  /usr/local/drbd/var/run/drbd: No such file or directory/usr/local/drbd/var/run/drbd: No such file or directory
3 創建該不存在的目錄(主備執行)
 mkdir -p /usr/local/drbd/var/run/drbd
 drbdadm up r0 (主備執行)
  成功Command 'drbdmeta 1 v08 /dev/sdb1 internal apply-al' terminated with exit code 20
4 查看 drbd啟動的狀態cat /proc/drbd 
5 在主機上設置為主機另一臺就是從機(主機執行)
   drbdadm primary --force r0
  互相查看狀態 cat /proc/drbd 
6 主機上格式化邏輯設備 (主機執行)
   mkfs.ext4 /dev/drbd1
   mkdir /r0
   mount /dev/drbd1 /r0

此時 在/r0上創建一個文件 a.txt 無法之間在 從機的/dev/sdb1上查看到 因為同步狀態不允許查看文件 可以先停掉同步

drbdadm down r0

mount /dev/sdb1 /r0

ls /r0 就可以正常看到

這里/proc/drbd文件的內容解釋 一般結果為:

[root@ha drbd.d]# more /proc/drbd
version: 8.4.6 (api:1/proto:86-101)
GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by root@bogon, 2017-08-01 12:48:25

 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:2410760 nr:0 dw:104304 dr:2413653 al:3 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

cs(connection state)表示連接狀態 Connected表示連接成功Unconnected表示未連接 其他關于連接狀態參考(http://docs.linbit.com/docs/users-guide-8.4/#s-connection-states)
ro(role)表示角色 / 前面的部分表示當前主機的角色 后面部分表示其他機器的狀態 Primary表示主機 Secondary表示從機 其他角色參考(http://docs.linbit.com/docs/users-guide-8.4/#s-roles)

ds(Disk states)磁盤狀態Diskless沒有指定物理設備Failed 連接失敗 可以通過命令drbdadm dstate r0 查看狀態 /前面表示當前機器狀態

/后面部分表示其他機器磁盤狀態

C r 表示io表示 r表示 running運行 s表示suspended 狀態

性能指標參數

dw (disk write)
磁盤寫入多少kb到網絡
dr (disk read)
從網絡中讀取多少kb數據到磁盤
al (activity log)
 meta data.中更新的日志數量
bm (bit map)
meta data.中更新位圖數量
lo (local count)
 DRBD.打開本地io的請求次數
pe (pending)
發給另外一臺機器的請求io的次數
ua (unacknowledged)
接受到網絡數據請求(未回應也就是接收到但是還未寫入)的個數 
ap (application pending)
網絡中接收到的數據塊(未回應也就是接收到但是還未寫入)的的個數
ep (epochs)
Number of epoch objects. Usually 1. Might increase under I/O load when using either the barrier or the none write ordering method.
wo (write order)
Currently used write ordering method: b(barrier), f(flush), d(drain) or n(none).
oos (out of sync)
Amount of storage currently out of sync; in Kibibytes.

總結

以上是生活随笔為你收集整理的drbd安装和数据同步的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。