紅帽企業存儲管理之DRBD應用詳解node
軟件包下載地址:http://down.51cto.com/data/402474centos
DRBD基礎知識詳解(概念和安裝)api
DRBD在企業網絡中的應用服務器
一.案例應用背景網絡
在方案中,經過DRBD保證了服務器數據的完整性和一致性。DRBD相似於一個網絡RAID-1功能。當你將數據寫入本地文件系統時,數據還將會被髮送到網絡中另外一臺主機上,以相同的形式記錄在一個另文件系統中。主節點與備節點的數據能夠保證明時相互同步。當本地主服務器出現故障時,備份服務器上還會保留有一份相同的數據,能夠繼續使用。併發
二.案例應用簡化拓撲圖ssh
軟件包下載地址:http://down.51cto.com/data/402474ide
三.案例應用具體實現步驟:oop
1. 基本配置網站
1.1 node1基本配置&新建磁盤
1.1.1查看系統信息,同步時間
[root@node1 ~]# uname -rv
2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009
[root@node1 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
[root@node1 ~]# hwclock -s
[root@node1 ~]# date
Wed Feb 8 13:55:50 CST 2012
1.1.2查看主機名稱,修改查看ip地址
[root@node1 ~]# hostname
node1.junjie.com
[root@node1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node1.junjie.com
[root@node1 ~]#setup
[root@node1 ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
[root@node1 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:AE:83:D1
inet addr:192.168.101.211 Bcast:192.168.101.255 Mask:255.255.255.0
1.1.3配置/etc/hosts文件(就不用dns了)
[root@node1 ~]# echo "192.168.101.211 node1.junjie.com node1" >>/etc/hosts
[root@node1 ~]# echo "192.168.101.212 node2.junjie.com node2" >>/etc/hosts
1.1.4構建一個新的磁盤空間有利於實現DRBD技術
[root@node1 ~]# fdisk -l
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1318 10482412+ 83 Linux
/dev/sda3 1319 1579 2096482+ 82 Linux swap / Solaris
[root@node1 ~]# fdisk /dev/sda
p/n/p//+1000M/p/w
[root@node1 ~]# fdisk -l
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1318 10482412+ 83 Linux
/dev/sda3 1319 1579 2096482+ 82 Linux swap / Solaris
/dev/sda4 1580 1702 987997+ 83 Linux
[root@node1 ~]# partprobe /dev/sda
[root@node1 ~]# cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 104391 sda1
8 2 10482412 sda2
8 3 2096482 sda3
8 4 987997 sda4
1.2 node2基本配置&新建磁盤
1.2.1查看系統信息,同步時間
2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009
[root@node2 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
1.2.2查看主機名稱,修改查看ip地址
[root@node2 ~]# cat /etc/sysconfig/network
[root@node2 ~]# service network restart
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
[root@node2 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:D1:D4:32
inet addr:192.168.101.212 Bcast:192.168.101.255 Mask:255.255.255.0
1.2.3配置/etc/hosts文件(就不用dns了)
[root@node2 ~]# echo "192.168.101.211 node1.junjie.com node1" >>/etc/hosts
[root@node2 ~]# echo "192.168.101.212 node2.junjie.com node2" >>/etc/hosts
1.2.4構建一個新的磁盤空間有利於實現DRBD技術
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1318 10482412+ 83 Linux
/dev/sda3 1319 1579 2096482+ 82 Linux swap / Solaris
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1318 10482412+ 83 Linux
/dev/sda3 1319 1579 2096482+ 82 Linux swap / Solaris
/dev/sda4 1580 1702 987997+ 83 Linux
[root@node2 ~]# cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 104391 sda1
8 2 10482412 sda2
8 3 2096482 sda3
8 4 987997 sda4
1.3 在node1和node2上配置ssh密鑰信息,
1.3.1 在node1上配置ssh密鑰信息
[root@node1 ~]# ssh-keygen -t rsa
[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2.junjie.com
1.3.2 在node2上配置ssh密鑰信息
[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2.junjie.com
2、DRBD安裝配置
2.1、安裝DRBD 套件
[root@node1 ~]# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm
[root@node1 ~]# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
[root@node2 ~]# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm
[root@node2 ~]# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
[root@node1 ~]# modprobe drbd
[root@node1 ~]# lsmod | grep drbd
[root@node1 ~]#
[root@node2 ~]# modprobe drbd
[root@node2 ~]# lsmod | grep drbd
[root@node2 ~]#
2.3、修改配置文件
drbd.conf配置文件DRBD運行時,會讀取一個配置文件/etc/drbd.conf.這個文件裏描述了DRBD設備與硬盤分區的映射關係
[root@node1 ~]# cd /etc/drbd.d/
[root@node1 drbd.d]# ll
total 4
-rwxr-xr-x 1 root root 1418 Jun 4 2010 global_common.conf
[root@node1 drbd.d]# cp global_common.conf global_common.conf.bak
2.3.2 複製配置到node2上:
[root@node1 drbd.d]# scp /etc/drbd.conf node2:/etc/
drbd.conf 100% 133 0.1KB/s 00:00
[root@node1 drbd.d]# scp /etc/drbd.d/* node2:/etc/drbd.d/
global_common.conf 100% 427 0.4KB/s 00:00
global_common.conf.bak 100% 1418 1.4KB/s 00:00
nfs.res 100% 330 0.3KB/s 00:00
[root@node1 drbd.d]#
2.4、 檢測配置文件
// 檢測配置文件
[root@node1 drbd.d]# drbdadm adjust nfs
0: Failure: (119) No valid meta-data signature found.
==> Use 'drbdadm create-md res' to initialize meta-data area. <==
Command 'drbdsetup 0 disk /dev/sda4 /dev/sda4 internal --set-defaults --create-device --fencing=resource-only --on-io-error=detach' terminated with exit code 10
[root@node1 drbd.d]# drbdadm adjust nfs
drbdsetup 0 show:5: delay-probe-volume 0k => 0k out of range [4..1048576]k.
[root@node1 drbd.d]#
2.5、建立nfs 的資源
2.5.1 在node1上建立nfs 的資源
[root@node1 drbd.d]# drbdadm create-md nfs
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
[root@node1 drbd.d]# ll /dev/drbd0
brw-r----- 1 root disk 147, 0 Feb 8 14:27 /dev/drbd0
2.5.2 在node2上建立nfs 的資源
[root@node1 drbd.d]# ssh node2.junjie.com 'drbdadm create-md nfs'
NOT initialized bitmap
Writing meta data...
initializing activity log
New drbd meta data block successfully created.
[root@node1 drbd.d]# ssh node2.junjie.com 'ls -l /dev/drbd0'
brw-r----- 1 root disk 147, 0 Feb 8 14:19 /dev/drbd0
2.6 啓動DRBD服務
[root@node1 drbd.d]# service drbd start
Starting DRBD resources: drbdsetup 0 show:5: delay-probe-volume 0k => 0k out of range [4..1048576]k.
[root@node1 drbd.d]# ssh node2.junjie.com 'service drbd start'
Starting DRBD resources: drbdsetup 0 show:5: delay-probe-volume 0k => 0k out of range [4..1048576]k.
[root@node1 drbd.d]#
2.7 啓動DRBD服務,查看DRBD狀態
[root@node1 drbd.d]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16
m:res cs ro ds p mounted fstype
0:nfs Connected Secondary/Secondary Inconsistent/Inconsistent C
[root@node1 drbd.d]# ssh node2.junjie.com 'service drbd status'
drbd driver loaded OK; device status:
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16
m:res cs ro ds p mounted fstype
0:nfs Connected Secondary/Secondary Inconsistent/Inconsistent C
[root@node1 drbd.d]#
[root@node1 drbd.d]# drbd-overview
0:nfs Connected Secondary/Secondary Inconsistent/Inconsistent C r----
[root@node1 drbd.d]# ssh node2.junjie.com 'drbd-overview'
0:nfs Connected Secondary/Secondary Inconsistent/Inconsistent C r----
[root@node1 drbd.d]#
[root@node1 drbd.d]# chkconfig drbd on
[root@node1 drbd.d]# chkconfig --list drbd
drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@node1 drbd.d]# ssh node2.junjie.com 'chkconfig drbd on'
[root@node1 drbd.d]# ssh node2.junjie.com 'chkconfig --list drbd'
drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.8 在node1主節點上進行如下配置,並查看掛載信息。
[root@node1 drbd.d]# mkdir /mnt/nfs
[root@node1 drbd.d]# ssh node2.junjie.com 'mkdir /mnt/nfs'
[root@node1 drbd.d]# drbdsetup /dev/drbd0 primary -o
[root@node1 drbd.d]# mkfs.ext3 /dev/drbd0
[root@node1 drbd.d]# mount /dev/drbd0 /mnt/nfs/
[root@node1 drbd.d]# drbdadm role nfs
Primary/Secondary
[root@node1 drbd.d]# ssh node2.junjie.com 'drbdadm role nfs'
Secondary/Primary
[root@node1 drbd.d]# ll /mnt/nfs/
total 16
drwx------ 2 root root 16384 Feb 8 14:57 lost+found
[root@node1 drbd.d]# echo "20120508" >> /mnt/nfs/f1
[root@node1 drbd.d]# drbdadm secondary nfs
0: State change failed: (-12) Device is held open by someone
Command 'drbdsetup 0 secondary' terminated with exit code 11
[root@node1 drbd.d]# umount /mnt/nfs/
[root@node1 drbd.d]# drbdadm secondary nfs
[root@node1 drbd.d]# drbdadm role nfs
Secondary/Secondary
[root@node1 drbd.d]# ssh node2.junjie.com 'drbdadm role nfs'
Secondary/Secondary
[root@node1 drbd.d]# ssh node2.junjie.com 'drbdadm primary nfs'
[root@node1 drbd.d]# ssh node2.junjie.com 'drbdadm role nfs'
Primary/Secondary
[root@node1 drbd.d]# drbdadm role nfs
Secondary/Primary
[root@node1 drbd.d]# ssh node2.junjie.com 'mount /dev/drbd0 /mnt/nfs'
[root@node1 drbd.d]# ssh node2.junjie.com 'ls -l /mnt/nfs'
total 20
-rw-r--r-- 1 root root 9 Feb 8 15:32 f1
drwx------ 2 root root 16384 Feb 8 14:57 lost+found
[root@node1 drbd.d]# ssh node2.junjie.com 'cat /mnt/nfs/f1'
20120508
[root@node1 drbd.d]# ssh node2.junjie.com 'echo "--xj" >>/mnt/nfs/f1'
[root@node1 drbd.d]# ssh node2.junjie.com 'cat /mnt/nfs/f1'
20120508
--xj
[root@node1 drbd.d]# ssh node2.junjie.com 'touch /mnt/nfs/f2'
[root@node1 drbd.d]# ssh node2.junjie.com 'ls -l /mnt/nfs'
total 20
-rw-r--r-- 1 root root 14 Feb 8 15:34 f1
-rw-r--r-- 1 root root 0 Feb 8 15:34 f2
drwx------ 2 root root 16384 Feb 8 14:57 lost+found
[root@node1 drbd.d]#
[root@node1 drbd.d]# ssh node2.junjie.com 'umount /mnt/nfs'
[root@node1 drbd.d]# ssh node2.junjie.com 'drbdadm secondary nfs'
[root@node1 drbd.d]# ssh node2.junjie.com 'drbdadm role nfs'
Secondary/Secondary
[root@node1 drbd.d]# drbdadm primary nfs
[root@node1 drbd.d]# drbdadm role nfs
Primary/Secondary
[root@node1 drbd.d]# mount /dev/drbd0 /mnt/nfs/
[root@node1 drbd.d]# ll /mnt/nfs/
total 20
-rw-r--r-- 1 root root 14 Feb 8 15:34 f1
-rw-r--r-- 1 root root 0 Feb 8 15:34 f2
drwx------ 2 root root 16384 Feb 8 14:57 lost+found
[root@node1 drbd.d]# cat /mnt/nfs/f1
20120508
--xj
[root@node1 drbd.d]#
[root@node1 drbd.d]# drbd-overview
0:nfs Connected Primary/Secondary UpToDate/UpToDate C r---- /mnt/nfs ext3 950M 18M 885M 2%
[root@node1 drbd.d]# ssh node2.junjie.com 'drbd-overview'
0:nfs Connected Secondary/Primary UpToDate/UpToDate C r----
[root@node1 drbd.d]#
《完》
--xjzhujunjie
--2012/05/08