亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql DBA 高級運維學習之路-MySQL高可用工具drbd實戰

發布時間:2020-09-18 05:08:22 來源:網絡 閱讀:3668 作者:海風掠過 欄目:MySQL數據庫

1.DRBD介紹

Distributed Replicated Block Device (DRBD)是基于塊設備在不同的高可用服務器對之間同步和鏡像數據的軟件,通過它可以實現在網絡中的兩臺服務器之間基于塊設備級別的實時或異步鏡像或同步復制,類似于rsync+inotify這樣的系統架構項目軟件。只不過drbd是基于文件系統底層的,即block層級的同步;而rsync+inotify是在文件系統之上的實際物理文件同步。所以dbrd效率更高。
塊設備可以是磁盤分區,LVM邏輯卷,或整塊磁盤。

2.DRBD的工作原理

DRBD是linux的內核的存儲層中的一個分布式存儲系統,可以使用DRBD在兩臺Linux服務器之間共享塊設備、文件系統和數據。類似于一個網絡RAID-1的功能,在基于DBRD的高可用(HA)的兩臺服務器主機上,當我們將數據寫入到本地磁盤系統時,數據還會被實時的發送到網絡中的另一臺主機上并以相同的形式記錄在另一個磁盤系統中,使得本地(主節點)與遠程主機(備節點)的數據保持實時數據同步。這時,如果本地系統(主節點)出現故障,那么遠程主機(備節點)上還會保留有一份和主節點相同的數據備份可以繼續使用,不但數據不會丟失,還會提升訪問數據的用戶的體驗。更多詳細請查看dbrd官方網站http://www.dbrd.org/

drbd 工作原理圖如下圖所示:

Mysql DBA 高級運維學習之路-MySQL高可用工具drbd實戰

3.DRBD的復制模式

協議A:

異步復制協議。一旦本地磁盤寫入已經完成,數據包已在發送隊列中,則寫被認為是完成的。在一個節點發生故障時,可能發生數據丟失,因為被寫入到遠程節點上的數據可能仍在發送隊列。盡管在故障轉移節點上的數據是一致的,但沒有及時更新。

協議B:

內存同步(半同步)復制協議。一旦本地磁盤寫入已完成且復制數據包達到了對等節點則認為寫在主節點上被認為是完成的。數據丟失可能發生在參加的兩個節點同時故障的情況下,因為在傳輸中的數據可能不會被提交到磁盤。

協議C:

同步復制協議。只有在本地和遠程節點的磁盤已經確認了寫操作完成,寫才被認為完成。沒有任何數據丟失,所以這是一個集群節點的流行模式,但IO吞吐量依賴于網絡帶寬。

一般使用協議C,但選擇C協議將影響流量,從而影響網絡時延。為了數據可靠性,我們在生產環境使用時須慎重選項使用哪一種協議。

4.DBRD的企業應用場景

生產場景中drbd常用于基于高可用服務器之間的數據同步解決方案。

例如:heartbeat+drbd+nfs/mfs/gfs、heartbeat+drbd+mysql/oracle等。實際上drbd可以配合任意需要數據同步的所有服務的應用場景。

5.常見的數據同步工具

(1)rsync(sersync,inotify,lsyncd)

(2)scp

(3)nc

(4)nfs(網絡文件系統)

(5)union雙機同步

(6)csync2多機同步

(7)軟件的自身同步機制(mysql,oracle,mongdb,ttserver,redis..)文件放到數據庫,同步到從庫,再把文件拿出來。

(8)Drbd

6.部署Drbd服務需求描述

6.1 業務需求描述

業務需求可以結合前面配置的heartbeat來搭建dbrd服務,hearbeat的安裝和部署我前面的文章已經寫了。主服務器為heartrbeat-1-114,從服務器為heartbeat-1-115。

6.2 DRBD部署結構圖

Mysql DBA 高級運維學習之路-MySQL高可用工具drbd實戰

Mysql DBA 高級運維學習之路-MySQL高可用工具drbd實戰

(1)Drbd服務通過直連線或以太網實時互相數據同步。

(2)兩臺存儲服務器互相備份,正常情況下兩端各提供一個主分區供NFS使用。

(3)存儲服務器之間,存儲服務和交換機之間都是雙千兆網卡綁定。

(4)應用服務器通過NFS訪問存儲。

7.DRBD軟件安裝實驗準備

7.1 操作系統:

CentOS-6.8-x86_64

7.2 DRBD服務主機資源準備

主服務器A:

主機名:heartbeat-1-114

eth0網卡地址:192.168.136.114(管理IP)

eth2網卡地址:10.0.10.4/255.255.255.0 (心跳IP)

從服務器B:

主機名:heartbeat-1-115

eth0網卡地址:192.168.136.115(管理IP)

eth2網卡地址:10.0.10.5/255.255.255.0(心跳IP)

虛擬VIP:

虛擬VIP在主服務器heartbeat-1-114上,VIP:192.168.136.116

需要修改主機名,關閉防火墻和selinux這些準備工作和heartbeat一樣,我前面的安裝heartbeat的文章有講,這里就不講了。就用安裝heartbeat的那兩臺機器,主服務器heartbeat-1-114、從服務器heartbeat-1-115。

7.3 創建可用分區

Drbd是基于分區的,沒有可用的分區肯定不行。我們先把heartbeat-1-114和heartbeat-1-1115兩個虛擬機關機,然后在主節點heartbeat-1-114上添加一塊1G的硬盤,在從節點heartbeat-1-115上添加一塊2G的硬盤。添加硬盤就不演示了,然后啟動兩臺機器。

7.4 對/dev/sdb進行分區

(1)對主節點/dev/sdb進行分區

[root@heartbeat-1-114 html]# fdisk -l|grep "/dev/sdb"
Disk /dev/sdb: 1073 MB, 1073741824 bytes
[root@heartbeat-1-114 html]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
 switch off the mode (command 'c') and change display units to
 sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bb201

   Device Boot  Start End  Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +768M

Command (m for help): N
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (100-130, default 100): 
Using default value 100
Last cylinder, +cylinders or +size{K,M,G} (100-130, default 130): 
Using default value 130

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bb201

   Device Boot  Start End  Blocks   Id  System
/dev/sdb1   1  99  795186   83  Linux
/dev/sdb2 100 130  249007+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@heartbeat-1-114 html]# partprobe   
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sdb (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
Error: Invalid partition table - recursive partition on /dev/sr0.
[root@heartbeat-1-114 html]# fdisk -l|grep "/dev/sdb"
Disk /dev/sdb: 1073 MB, 1073741824 bytes
/dev/sdb1   1  99  795186   83  Linux
/dev/sdb2 100 130  249007+  83  Linux

(2)對備節點/dev/sdb進行分區

[root@heartbeat-1-115 etc]# fdisk -l|grep "/dev/sdb"
Disk /dev/sdb: 2147 MB, 2147483648 bytes
[root@heartbeat-1-115 etc]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
 switch off the mode (command 'c') and change display units to
 sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003d93c

   Device Boot  Start End  Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +1536M

Command (m for help): n  
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (198-261, default 198): 
Using default value 198
Last cylinder, +cylinders or +size{K,M,G} (198-261, default 261): 
Using default value 261

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@heartbeat-1-115 etc]# partprobe
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sdb (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
Error: Invalid partition table - recursive partition on /dev/sr0.
[root@heartbeat-1-115 etc]# fdisk -l|grep "/dev/sdb"
Disk /dev/sdb: 2147 MB, 2147483648 bytes
/dev/sdb1   1 197 1582371   83  Linux
/dev/sdb2 198 261  514080   83  Linux

因此,我們需要做的就是對/dev/sdb進行分區,需要分區的具體內容見下圖:

Mysql DBA 高級運維學習之路-MySQL高可用工具drbd實戰

提示:

1.這里的meta data分區一定不能格式化建立文件系統。

2.分好的分區現在不能直接掛在(mount)。

3.生產環境DRBD meta data分區一般可設為1-2G。這里的/dev/sdb2分區的預期大小1G應該是主節點和備節點的sdb2分區大小之和(305M+611M=916M),本次演示的大小是1G。

8.安裝DRBD軟件

DRDB軟件可以編譯安裝也可以下載包含的源yum安裝,本次事件采用編譯安裝的方式。

8.1 編譯安裝DRDB軟件(注意下面步驟兩臺機器都要操作)

(1)下載drbd軟件(兩臺機器都要操作)

可以在官網上下載http://oss.linbit.com/drbd/,然后用rz命令傳到服務器

(2)安裝gcc和gcc-c++

[root@heartbeat-1-114 tools]# yum install gcc gcc-c++ -y

(3)編譯drbd

[root@heartbeat-1-114 tools]# pwd
/home/linzhongniao/tools
[root@heartbeat-1-114 tools]# export LC_ALL=C
[root@heartbeat-1-114 tools]# ls
drbd-8.4.4.tar.gz 
[root@heartbeat-1-114 tools]# tar –xf drbd-8.4.4.tar.gz
[root@heartbeat-1-114 tools]# cd drbd-8.4.4
[root@heartbeat-1-114 drbd-8.4.4]# ./configure --prefix=/usr/local/drbd8.4.4 --with-km --with-heartbeat --sysconfdir=/etc/

出現下面問題yum安裝dpkg、dpkg-dev、dpkg-devel再編譯

checking for udevinfo... false
configure: WARNING: No dpkg-buildpackage found, building Debian packages is disabled.
出現下面問題yum安裝flex,重新編譯
configure: error: Cannot build utils without flex, either install flex or pass the --without-utils option.

為了防止編譯發生錯誤,最好提前安裝上,下面是我在編譯的時候需要安裝的包。

yum install dpkg dpkg-dev dpkg-devel gcc gcc-c++ git rpm-build kernel-devel kernel-headers flex -y

(4)加載內核

1.先查找內核源碼

[root@heartbeat-1-114 drbd-8.4.4]# ls -ld /usr/src/kernels/$(uname -r)/
ls: 無法訪問/usr/src/kernels/2.6.32-642.el6.x86_64/: 沒有那個文件或目錄

沒有內核源碼文件路徑yum安裝kernel-devel kernel-headers在查看就有了

[root@heartbeat-1-114 drbd-8.4.4]# ls -ld /usr/src/kernels/$(uname -r)/
drwxr-xr-x 22 root root 4096 3月   5 05:55 /usr/src/kernels/2.6.32-696.20.1.el6.x86_64/

如果uname –r命令顯示的系統內核和在/usr/src/kernels/下查找的系統內核不一樣怎么辦呢,很簡單升級系統內核,重啟系統后再查看內核就一樣了。

[root@heartbeat-1-114 drbd-8.4.4]# ls -ld /usr/src/kernels/2.6.32-696.20.1.el6.x86_64/
drwxr-xr-x 22 root root 4096 Mar  6 19:24 /usr/src/kernels/2.6.32-696.20.1.el6.x86_64/
[root@heartbeat-1-114 drbd-8.4.4]# uname -r
 2.6.32-642.el6.x86_64
[root@heartbeat-1-114 drbd-8.4.4]# yum -y install kernel
[root@heartbeat-1-114 ~]# uname -r
 2.6.32-696.20.1.el6.x86_64

2.加載系統內核

[root@heartbeat-1-114 drbd-8.4.4]# make KDIR=/usr/src/kernels/$(uname -r)/
[root@heartbeat-1-114 drbd-8.4.4]# echo $?
0

(5)安裝drbd

[root@heartbeat-1-114 drbd-8.4.4]# make install

echo $?為零安裝成功

9.圖片數據/data各配置參數

比較重要的是下面標黃的部分,我們還用部署heartbeat的那個環境,heartbeat的環境部署前面文章有,這里就不再演示了。

Mysql DBA 高級運維學習之路-MySQL高可用工具drbd實戰

10.配置DRBD參數 (兩臺機器都要操作)

10.1 加載DRBD模塊到內核

這個DRBD模塊在重啟電腦之后就會失效不會自動加載到系統內核中,我們可以放在/etc/rc.local里生效,讓它開機生效。生產中是不需要放在/etc/rc.local里面的,不讓自動啟動,自動啟動會導致一些不必要的問題。用lsmod |grep drbd查看有這個內容了就說明內核加載完成。

[root@heartbeat-1-114 drbd-8.4.4]# lsmod|grep drbd
[root@heartbeat-1-114 drbd-8.4.4]# mo
modinfo  modutil  mountmount.nfsmountpoint   mount.tmpfs  
modprobe more mount.cifs   mount.nfs4   mountstats  
[root@heartbeat-1-114 drbd-8.4.4]# modprobe drbd
[root@heartbeat-1-114 drbd-8.4.4]# lsmod|grep drbd
drbd  327370  0 
libcrc32c   1246  1 drbd
[root@heartbeat-1-114 drbd-8.4.4]# echo 'modprobe drbd' >>/etc/rc.local
[root@heartbeat-1-114 drbd-8.4.4]# tail -1 /etc/rc.local
modprobe drbd

10.2 編譯DRBD的配置文件drbd.conf

(1)配置DRBD的配置文件

DRBD的配置文件在我們編譯的時候指定的那個路徑/etc/下。

[root@heartbeat-1-114 etc]# pwd
/etc
[root@heartbeat-1-114 etc]# cp drbd.conf{,.bak} 
[root@heartbeat-1-114 etc]# rm -f drbd.conf
[root@heartbeat-1-114 etc]# cat drbd.conf
global {
usage-count no;
}
common {
syncer {
# wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
rate 1000M;
verify-alg crc32c;
}
}
resource data {
protocol C;

disk {
on-io-error detach;
}
on heartbeat-1-114 {
device/dev/drbd0;
disk  /dev/sdb1;
address   10.0.10.4:7788;
meta-disk /dev/sdb2[0];
}
on heartbeat-1-115 {
device/dev/drbd0;
disk  /dev/sdb1;
address   10.0.10.5:7788;
meta-disk /dev/sdb2[0];
}
} 

(2)配置文件參數說明

global {
    usage-count no;
}

前三行是你全局配置,一般網站都會同步開源網站的安裝量,usage-count的值等于no,就是不允許官方統計。

common {
    syncer {
        # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
        rate 1000M;
        verify-alg crc32c;
    }
}

Common段里面設置了同步的速度比如1000M,crc32c是一個算法

resource data {
        protocol C;

    disk {
        on-io-error    detach;
    }
    on heartbeat-1-114 {
        device      /dev/drbd0;
        disk      /dev/sdb1;
        address      10.0.10.4:7788;
        meta-disk /dev/sdb2[0];        
    }
    on heartbeat-1-115 {
        device      /dev/drbd0;
        disk      /dev/sdb1;
        address      10.0.10.5:7788;
        meta-disk /dev/sdb2[0];        
    }
}

上面resource段是drbd的資源,protocol C是一個實時同步數據的協議,用A或B都是異步同步或半同步,這樣會導致數據的丟失,除非業務需求數據不總要并發要求高的情況下。disk表示一個磁盤出現io錯誤怎么處理。resource后面的data是drbd的資源啟動drbd的時候會用到,注意這里resource可以有多個資源,比如說再想增加一個資源,我們可以把resource這段復制一個就好了,需要修改的有resource后面的資源名稱以及disk、meta-disk和同步的地址的端口號,例如7788。這里on heartbeat-1-114的on后面跟的是機器名,注意這里的機器名必須是uname –n返回的結果,device表示drbd的設備,disk表示對應本機/dev/sdb的第一個分區,address這里的地址是一個同步的地址,meta-disk是meta設備的數據分區對應本機/dev/sdb的第二個分區,0是meta 設備的一個格式。

11.啟用 DRBD資源 (兩臺機器都要操作)

兩臺機器都要操作以heartbeat-1-114為例

11.1 初始化DRBD的metadata(Create device metadata)

初始化資源,注意我們初始的資源就是drbd.conf里resource后面的data。

[root@heartbeat-1-114 etc]# drbdadm create-md data
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.

11.2 啟動DRBD服務

啟動drbd服務的命令:drbdadm up data

停止drbd服務的命令:drbdadm down data

drbdadm up 后跟的是resource設置的資源data,也可以指定所有資源drbdadm up all。準備節點都要啟動以主節點為例:

[root@heartbeat-1-114 etc]# drbdadm up data
/usr/local/drbd8.4.4/var/run/drbd: No such file or directory
/usr/local/drbd8.4.4/var/run/drbd: No such file or directory

我們看有錯誤提示/usr/local/drbd8.4.4/var/run/drbd: No such file or directory

這個目錄找不到centos6版本以上需要有這個目錄,好我們就創建一個這個目錄再啟動drbd。

[root@heartbeat-1-114 ~]# mkdir -p /usr/local/drbd8.4.4/var/run/drbd
[root@heartbeat-1-114 etc]# drbdadm create-md data
Device '0' is configured!
Command 'drbdmeta 0 v08 /dev/sdb2 0 create-md' terminated with exit code 2

11.3 可以通過/proc/drbd查看drbd的狀態

[root@heartbeat-1-114 etc]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@heartbeat-1-114, 2018-11-10 23:08:21
 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:f oos:749984

這里顯示ro:Secondary/Secondary ds:Inconsistent/Inconsistent是正確的都是從,處于無主(primary)的狀態。

11.4 指定數據同步的主節點

指定數據同步的主節點的命令:drbdadm -- --overwrite-data-of-peer primary data

將主節點變為從節點的命令(前提服務器已經是主節點的情況下):/usr/share/heartbeat/hb_standby

說明:

1.如果為空硬盤。可以隨意執行操作不需要考慮數據。

2.如果兩邊數據不一樣(要特別注意同步數據的方向,否則可能丟失數據)如果對端磁盤有數據要提前備份,否則會把對端數據覆蓋掉。

注意:在主服務器上操作我們的主服務器是heartbeat-1-114,同步DRBD數據到對端SERVER使數據保持一致

(1)指定主節點同步數據

[root@heartbeat-1-114 etc]# drbdadm -- --overwrite-data-of-peer primary data

查看主節點同步的信息

[root@heartbeat-1-114 etc]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@heartbeat-1-114, 2018-11-10 23:08:21
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:40960 nr:0 dw:0 dr:41631 al:0 bm:2 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:709024
[>...................] sync'ed:  6.0% (709024/749984)K
finish: 0:00:17 speed: 40,960 (40,960) K/sec
[root@heartbeat-1-114 etc]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@heartbeat-1-114, 2018-11-10 23:08:21
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:164556 nr:0 dw:0 dr:168607 al:0 bm:10 lo:0 pe:1 ua:4 ap:0 ep:1 wo:f oos:586144
[===>................] sync'ed: 22.3% (586144/749984)K
finish: 0:00:14 speed: 40,960 (40,960) K/sec
[root@heartbeat-1-114 etc]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@heartbeat-1-114, 2018-11-10 23:08:21
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:230100 nr:0 dw:0 dr:234143 al:0 bm:14 lo:0 pe:1 ua:4 ap:0 ep:1 wo:f oos:520608
[=====>..............] sync'ed: 31.0% (520608/749984)K
finish: 0:00:11 speed: 45,872 (45,872) K/sec

(2)從節點同步的信息

[root@heartbeat-1-115 etc]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@heartbeat-1-115, 2018-11-10 23:08:42
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns:0 nr:749983 dw:749983 dr:0 al:0 bm:46 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

(3)參數說明

以主節點為例

cs:Connected:Connected是連接的狀態,用zabbix做監控主要看Connected。
ro:Primary/Secondary: Primary是主,Secondary是從;也就是說本地是主對端是從。
ds:UpToDate/UpToDate:UpToDate是兩邊都更新完成。
ns(network send):網絡發送。
nr(network receive):網絡收到。備節點的這個點應該和主節點的ns的值是一樣的。
dw(disk write):硬盤寫入。把網絡數據寫到硬盤。如果備節點的dw、nr和主節點的ns的值一樣說明數據時完全同步的

12.可能出現的問題及解決方法

cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----

cs:WFConnection ro:Secondary/Unknown ds:UpToDate/DUnknown 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:f oos:8444

解決方法:

1.檢查兩臺物理網絡連接或者IP及主機路由是否正確。

2.停止iptables防火墻。

3.還可能是發生列腦導致的結果。

出現上面問題可用下面操作解決:

(1)在從節點slave上操作:

drbdadm secondary data
drbdadm disconnect data
drbdadm -- --discard-my-data connect data ---> 丟棄本端數據進行連接

(2)在主節點上操作:

通過查看cat/proc/drbd狀態,如果不是WFConnection狀態,則需要用下面命令手動重新連接資源

drbdadm connect data

然后再啟動備節點的drbd資源

13.掛載測試數據庫同步及查看備節點同步狀態

(1)創建DRBD文件系統

格式化主節點的drbd0,備節點不需要格式化。

[root@heartbeat-1-114 etc]# mkfs.ext4 -b 4096 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
46944 inodes, 187495 blocks
9374 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=192937984
6 block groups
32768 blocks per group, 32768 fragments per group
7824 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

(2)掛載設備

[root@heartbeat-1-114 etc]# mount /dev/drbd0 /data

提示:如果在從節點格式化會報錯,需要用drbdadm -- --overwrite-data-of-peer primary data命令指定主節點的,從節點不能用這個命令不需要格式化drb0.

[root@heartbeat-1-115 ~]# mkfs.ext4 -b 4096 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: 錯誤的介質類型 while trying to determine filesystem size

(3)測試備節點數據同步情況

先在主節點的data文件系統中插入數據,我們插入個20個文件

[root@heartbeat-1-114 data]# touch `seq 10`
[root@heartbeat-1-114 data]# ls
1  10  2  3  4  5  6  7  8  9  lost+found

查看備節點的數據同步情況,需要先掛載DRBD存儲設備,我們看數據已經同步過來了。

[root@heartbeat-1-115 etc]# mount /dev/sdb1 /mnt
mount: you must specify the filesystem type
[root@heartbeat-1-115 etc]# drbdadm down data  為什么啟動從節點的drbd資源的情況下掛載sdb1會報錯,這時把從節點的drbd資源停掉就可以掛載了查看數據是否同步了;在實踐中從節點只啟動drbd資源就可以了不必掛載文件系統,如果想查看文件是否同步把從節點drbd資源停止在掛載查看就好了
[root@heartbeat-1-115 etc]# mount /dev/sdb1 /mnt
[root@heartbeat-1-115 etc]# ll /mnt/
total 16
 -rw-r--r-- 1 root root 0 Nov 11 15:26 1
 -rw-r--r-- 1 root root 0 Nov 11 15:26 10
 -rw-r--r-- 1 root root 0 Nov 11 15:26 2
 -rw-r--r-- 1 root root 0 Nov 11 15:26 3
 -rw-r--r-- 1 root root 0 Nov 11 15:26 4
 -rw-r--r-- 1 root root 0 Nov 11 15:26 5
 -rw-r--r-- 1 root root 0 Nov 11 15:26 6
 -rw-r--r-- 1 root root 0 Nov 11 15:26 7
 -rw-r--r-- 1 root root 0 Nov 11 15:26 8
 -rw-r--r-- 1 root root 0 Nov 11 15:26 9
drwx------ 2 root root 16384 Nov 11 15:20 lost+found

出現上面同步的數據表示drbd完成了,完成了下面我們再啟動備節點的drbd服務

[root@heartbeat-1-115 ~]# umount /mnt/
[root@heartbeat-1-115 ~]# drbdadm up data
[root@heartbeat-1-115 ~]# cat /proc/drbd 
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@heartbeat-1-129, 2018-03-05 07:38:05
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns:0 nr:56 dw:56 dr:0 al:0 bm:2 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赤峰市| 闻喜县| 井研县| 开平市| 新田县| 高青县| 玉环县| 宣武区| 武汉市| 莎车县| 富阳市| 富源县| 辽阳市| 鄄城县| 湾仔区| 砀山县| 丰原市| 高淳县| 新安县| 化州市| 罗田县| 茶陵县| 洪江市| 东安县| 盘山县| 喀喇| 桂林市| 梁山县| 黎川县| 三明市| 利津县| 鸡泽县| 贵港市| 鸡东县| 抚宁县| 英吉沙县| 望城县| 昔阳县| 类乌齐县| 洛宁县| 镇巴县|