压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

DRBD磁盤鏡像技術詳細配置

  磁盤鏡像技術DRBD

  什么是DRBD

  DRBD是由內(nèi)核模塊和相關腳本構成,用以構建高可用性的集群。其實現(xiàn)方式是通過網(wǎng)絡來鏡像整個設備。它允許用戶在遠程機器上建立一個本地塊設備的實時鏡像。也可以把它看成一個網(wǎng)絡RAID1

  工作原理:

  DRBD負責接收數(shù)據(jù),把數(shù)據(jù)寫到本地磁盤,然后發(fā)送給另一個主機。另一個主機再將數(shù)據(jù)存到自己的磁盤中。目前,DRBD每次只允許對一個節(jié)點進行讀寫訪問,這對于通常的故障切換高可用性集群已經(jīng)夠了。

  DRBD協(xié)議:

  A:數(shù)據(jù)一旦寫入磁盤并發(fā)送到網(wǎng)絡中就認為完成了寫入操作

  B:收到接受確認就認為完成了寫入操作

  C:收到寫入確認就完成了寫入操作

  目前運用最多的就是C協(xié)議

  DRBD的三個進程:

  drbd0——worker:主進程

  drbd0——asender:primary上drbd0的數(shù)據(jù)發(fā)送進程

  drbd0——receiver;secondary上drbd0的數(shù)據(jù)接受進程

  配置DRBD前需要注意幾點:

  mount drbd設備以前必須把設備切換到primary狀態(tài)

  兩個節(jié)點中,同一時刻只能有一臺處于primary狀態(tài),另一臺處于secondary狀態(tài),處于secondary狀態(tài)的服務器上不能加載drbd設備。主備服務器同步的兩個分區(qū)大小最好相同,這樣不至于浪費磁盤空間,因為drbd鏡像相當于網(wǎng)絡raid1

  前提:

  1)本配置共有兩個測試節(jié)點,分別master-drbd和slave-drbd ,相的IP地址分別為192.168.32.200和192.168.32.202;

  2)master-drbd和slave-drbd兩個節(jié)點上各提供了一個大小相同的分區(qū)作為drbd設備;我們這里為在兩個節(jié)點上均為/dev/sdb1,大小為20GB;

  3)系統(tǒng)為centos6.5平臺;

  4)內(nèi)核:2.6.32-431.el6.x86_64

  1、準備工作

  兩個節(jié)點的主機名稱和對應的IP地址解析服務可以正常工作,且每個節(jié)點的主機名稱需要跟"uname -n“命令的結果保持一致;因此,需要保證兩個節(jié)點上的/etc/hosts文件均為下面的內(nèi)容:

  192.168.32.200 master-drbd

  192.168.32.202 slave-drbd

  2.下載軟件包

  wget http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz

  drbd共有兩部分組成:內(nèi)核模塊和用戶空間的管理工具。

  3.準備環(huán)境

  首先確認他的內(nèi)核版本

  [root@master-drbd drbd.d]# uname -r

  2.6.32-431.el6.x86_64

  然后掛載光盤

  mount /dev/sr0 /media/   #這里因為是虛擬機,所以他的系統(tǒng)盤就叫sr0

  cd /media/Packages/

  rpm -ivh flex-2.5.35-9.el6.x86_64 kernel-devel-2.6.32-431.el6.x86_64 kernel-headers-2.6.32-504.3.3.el6.x86_64

  4.安裝drbd

  tar zxvf drbd-8.4.1.tar.gz

  cd drbd-8.4.1

  ./configure –prefix=/usr/loca/drbd –with-km #–prefix是制定安裝路徑。–with-km是啟用內(nèi)核模塊

  make KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64/ #KDIR指的是自己的內(nèi)核路徑

  make install

  mkdir -p /usr/local/drbd/var/run/drbd  #這里必須創(chuàng)建這個目錄,不然啟動服務會報錯

  cp /usr/local/drbd/etc/rc.d/init.d/drbd  /etc/rc.d/init.d/

  chkconfig –add drbd

  chkconfig drbd on

  接下來安裝drbd模塊

  cd drbd

  make clean

  make KDIR=/usr/src/kernels/2.6.32-431.el6.x86_64/

  cp drbd.ko /lib/modules/2.6.32-431.el6.x86_64/kernel/lib/

  moprobe drbd #加載內(nèi)核模塊

  lsmod | grep drbd

  drbd                  303476  0

  libcrc32c               1246  1 drbd

  5.配置DRBD

  drbd的主配置文件為/usr/local/drbd/etc/drbd.conf;為了管理的便捷性,目前通常會將些配置文件分成多個部分,

  且都保存至/usr/local/drbd/etc/drbd.d目錄中,主配置文件中僅使用"include"指令將這些配置文件片斷整合起來。

  通常,/etc/drbd.d目錄中的配置文件為global_common.conf和所有以.res結尾的文件。其中global_common.conf中主要定義global段和common段,而每一個.res的文件用于定義一個資源。

  resource段則用于定義drbd資源,每個資源通常定義在一個單獨的位于/etc/drbd.d目錄中的以.res結尾的文件中。資源在定義時必須為其命名,名字可以由非空白的ASCII字符組成。每一個資源段的定義中至少要包含兩個host子段,以定義此資源關聯(lián)至的節(jié)點,其它參數(shù)均可以從common段或drbd的默認中進行繼承而無須定義。

  下面的操作在master-drbd上完成。

  1)配置global-common.conf

  global {

  usage-count no;#是否參加drbd的使用者統(tǒng)計,默認為yes

  # minor-count dialog-refresh disable-ip-verification

  }

  common {

  protocol C;#使用drbd的同步協(xié)議

  handlers {

  pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";

  pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";

  local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";

  }

  startup {

  #wfc-timeout 120;

  #degr-wfc-timeout 120;

  }

  disk {

  on-io-error detach;#配置I/O錯誤處理策略為分離

  rate 50M;#設置主備節(jié)點同步時的網(wǎng)絡速率

  }

  net {

  cram-hmac-alg "sha1";

  shared-secret "mydrbdlab";

  }

  }

  2)定義一個資源drbd.res,內(nèi)容如下:

  resource r0 {   #r0是定義資源的名字

  on master-drbd {   #on后面是主機名稱

  address 192.168.32.200:7801;#設置DRBD的監(jiān)聽端口,用于與另一臺主機通信。

  volume 0 {

  device /dev/drbd0; #drbd設備名稱

  disk /dev/sdb1;    #drbd使用的磁盤分區(qū)為sdb1

  meta-disk internal;

  }

  }

  on slave-drbd {

  address 192.168.32.202:7801;

  volume 0 {

  device /dev/drbd0;

  disk /dev/sdb1;

  meta-disk internal;

  }

  }

  }

  以上文件在兩個節(jié)點上必須相同,因此,可以基于ssh將剛才配置的文件全部同步至另外一個節(jié)點。

  6.在兩個節(jié)點上初始化已定義的資源并啟動服務:

  1)啟動服務,在master-drbd和slave-drbd上分別執(zhí)行:

  /etc/init.d/drbd start

  2)查看啟動狀態(tài):

  # cat /proc/drbd

  version: 8.3.8 (api:88/proto:86-94)

  GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16

  0: cs:Connected ro: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 ep:1 wo:b oos:505964

  也可以使用drbd-overview命令來查看:

  3)查看監(jiān)聽端口

  [root@master-drbd drbd.d]# netstat -lanput | grep 7801

  tcp        0      0 192.168.32.200:7801         192.168.32.202:34061        ESTABLISHED –

  tcp        0      0 192.168.32.200:59747        192.168.32.202:7801         ESTABLISHED –

  4)從上面的信息中可以看出此時兩個節(jié)點均處于Secondary狀態(tài)。于是,我們接下來需要將其中一個節(jié)點設置為Primary。在要設置為Primary的節(jié)點上執(zhí)行如下命令:

  #drbdsetup primary all

  注: 也可以在要設置為Primary的節(jié)點上使用如下命令來設置主節(jié)點:

  drbdadm — –overwrite-data-of-peer primary r0

  而后再次查看狀態(tài),可以發(fā)現(xiàn)數(shù)據(jù)同步過程已經(jīng)開始:

  # drbd-overview

  0:r0  SyncSource Primary/Secondary UpToDate/Inconsistent C r—-

  [============>…….] sync'ed: 66.2% (172140/505964)K delay_probe: 35

  等數(shù)據(jù)同步完成以后再次查看狀態(tài),可以發(fā)現(xiàn)節(jié)點已經(jīng)牌實時狀態(tài),且節(jié)點已經(jīng)有了主次:

  # drbd-overview

  0:r0  Connected Primary/Secondary UpToDate/UpToDate C r—-

  7.格式化文件系統(tǒng)

  mkfs.ext4 /dev/drbd0

  mkdir /data  #創(chuàng)建掛載目錄

  mount /dev/drbd0 /data#掛載文件系統(tǒng)

  df -h #查看掛載

  Filesystem                    Size  Used Avail Use% Mounted on

  /dev/mapper/VolGroup-lv_root   18G  1.7G   15G  10% /

  tmpfs                         495M     0  495M   0% /dev/shm

  /dev/sda1                     485M   34M  426M   8% /boot

  /dev/drbd0                     20G  182M   19G   1% /data

  注意:文件系統(tǒng)的掛載只能在Primary節(jié)點進行,因此,也只有在設置了主節(jié)點后才能對drbd設備進行格式化:

  8.寫入文件

  cd /data

  dd if=/dev/zero of=test bs=1M count=10 #創(chuàng)建一個10M的文件

  [root@slave-drbd data]# ll

  total 10256

  -rw-r–r– 1 root root 10485760 Jan 10 01:54 1.txt

  drwx—— 2 root root    16384 Jan 10 01:53 lost+found

  9、切換Primary和Secondary節(jié)點

  對主Primary/Secondary模型的drbd服務來講,在某個時刻只能有一個節(jié)點為Primary,因此,要切換兩個節(jié)點的角色,

  只能在先將原有的Primary節(jié)點設置為Secondary后,才能原來的Secondary節(jié)點設置為Primary:

  master-drbd:

  drbdadm secondary  all

  查看 狀態(tài)

  cat /proc/drbd

  version: 8.4.1 (api:1/proto:86-100)

  GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@localhost.localdomain, 2015-01-10 04:56:32

  0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–

  ns:21011460 nr:24 dw:473584 dr:20539309 al:137 bm:1280 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

  slave-drbd:

  drbdadm primary all

  [root@slave-drbd ~]# cat /proc/drbd

  version: 8.4.1 (api:1/proto:86-100)

  GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@puppet-client, 2015-01-23 20:48:04

  0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—–

  ns:24 nr:21011460 dw:21011484 dr:1021 al:3 bm:1280 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

  mkdir /data

  mount /dev/drbd0 /data

  使用下面的命令查看在此前在主節(jié)點上復制至此設備的文件是否存在:

  [root@slave-drbd data]# ll

  total 10256

  -rw-r–r– 1 root root 10485760 Jan 10 01:54 1.txt

  drwx—— 2 root root    16384 Jan 10 01:53 lost+found

  drbd 8.4中第一次設置某節(jié)點成為主節(jié)點的命令

  # drbdadm primary –force resource

  參考文獻:存儲高可用——DRBD單主模式的搭建 – 時間煮雨 – 51CTO技術博客

  http://watchman110.blog.51cto.com/9194028/1608052

  CentOS 6.4下DRBD 安裝配置_服務器應用_Linux公社-Linux系統(tǒng)門戶網(wǎng)站

  http://www.linuxidc.com/Linux/2013-09/90536.htm

  模擬腦裂:DRBD腦裂 – 大臉貓的日志 – 網(wǎng)易博客

  http://zhangmaojun023.blog.163.com/blog/static/10919584620128270550813/

  drbd注意事項參考:drbd注意事項_迷失de墻角_新浪博客

  http://blog.sina.com.cn/s/blog_75a07c3b0101k4cg.html

    文章來源:http://6437769.blog.51cto.com/6427769/1608575

上一篇:安卓防火墻 PS DroidWall

下一篇: Redhat KVM網(wǎng)絡配置