构建高可用MFS分布式文件存储架构(2)

一.元数据服务器上的安装与配置

1.drbd的安装与配置

1.)DRBD安装(这里选择yum来安装,也可以下载源码编译安装)

[root@mfs-master ~]# yum -y install kmod-drbd83 drbd83

[root@mfs-master ~]# modprobe drbd

[root@mfs-master ~]# lsmod |grep -i drbd

drbd                  300440  2

如果没有提示,则系统找不到相应的模块执行下面的命令找到drbd.ko:

[root@mfs-master ~]# modprobe -l | grep -i drbd

/lib/modules/2.6.18-308.4.1.el5/extra/drbd83/drbd.ko

 

2.)DRBD配置

修改配置文件:

[root@mfs-master ~]# mv /etc/drbd.conf /etc/drbd.conf.bak

[root@mfs-master ~]# cat /etc/drbd.conf

 

global { usage-count yes; } common { syncer { rate 50M; } } resource r0 {  protocol C;   net {         cram-hmac-alg sha1;         shared-secret "secret string"    }    onmfs-master {         device    /dev/drbd1;         disk      /dev/sdb;         address   192.168.8.200:7898;         meta-disk  internal;         }    on mfs-bak {         device    /dev/drbd1;         disk      /dev/sdb;         address   192.168.8.201:7898;         meta-disk  internal;         } 

3.)创建一个ro 资源

[root@mfs-master ~]# drbdadm create-md r0

 

4.)启动DRBD

[root@mfs-master ~]# /etc/init.d/drbd start 

或 

[root@mfs-master ~]# service drbd start

[root@mfs-master ~]# cat /proc/drbd

1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

ns:2007644 nr:0 dw:0 dr:2007644 al:0 bm:123 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

 

对输出的含义解释如下:

ro表示角色信息,第一次启动drbd时,两个drbd节点默认都处于Secondary状态,

ds是磁盘状态信息,“Inconsistent/Inconsisten”,即为“不一致/不一致”状态, 表示两个节点的磁盘数据处于不一致状态。

Ns表示网络发送的数据包信息。

Dw是磁盘写信息

Dr是磁盘读信息

 

PS:以上步骤主备一样!!!!!!!!!!

+++++++++++++++++++++++++++++++++++++++++++++++++++

 

在mfs-master服务器上操作:

5.)设置主备节点

由于默认没有主次节点之分,因而需要设置两个主机的主次节点,选择需要设置为主节点的主机,然后执行如下命令:

[root@mfs-master ~]# drbdsetup /dev/drbd1 primary -o

或者

[root@mfs-master ~]# drbdadm -- --overwrite-data-of-peer primary all

接下来再执行如下命令

[root@mfs-master ~]# drbdadm primary r0

要是有多个资源的话可以执行以下命令:

[root@mfs-master ~]# drbdadm primary all

执行此命令后,开始同步两台机器对应磁盘的数据!

[root@mfs-master ~]# cat /proc/drbd

1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----

ns:576224 nr:0 dw:0 dr:581760 al:0 bm:34 lo:84 pe:369 ua:256 ap:0 ep:1 wo:b oos:1443196

[====>...............] sync'ed: 28.4% (1443196/2007644)K delay_probe: 69

finish: 0:03:56 speed: 6,024 (5,876) K/sec

从输出可知:“ro状态现在变为“Primary/Secondary”,“ds”状态也变为“UpToDate/Inconsistent”,也就是“实时/不一致”状态,现在数据正在主备两个主机的磁盘间进行同步,且同步进度为28.4%,同步速度每秒5.8M左右。

只有出现了Primary/Secondary表示主从机器已经识别到对方了,drbd启动正常。

 

等待片刻,再次查看同步状态,输出如下:

[root@mfs-master ~]#cat /proc/drbd

1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

ns:2007644 nr:0 dw:0 dr:2007644 al:0 bm:123 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

 

我们再到备份服务器上查看下:

[root@ mfs-bak ~]#cat /proc/drbd

1: cs:WFConnection ro:Secondary/Primary ds:UpToDate/UpToDate C r----

    ns:0 nr:4 dw:4 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

可以看到同步完成了,并且“ds“状态也变为“UpToDate/UpToDate”了。即为“实时/实时”状态了。

 

6.)格式化并挂载文件系统

mount操作只能在主节点进行

[root@mfs-master ~]# mkfs.ext3 /dev/drbd1 

[root@mfs-master ~]# mount /dev/drbd1 /usr/local/mfs

[root@mfs-master ~]# mount

/dev/sda2 on / type ext3 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

/dev/sda5 on /data type ext3 (rw)

/dev/sda1 on /boot type ext3 (rw)

tmpfs on /dev/shm type tmpfs (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/drbd1 on /data type ext3 (rw)

 

PS:这里最好挂载到mfs的安装目录(后面主备服务器的MFS安装目录与这里的挂载目录相同!)

 

7.)正常切换

在主节点卸载磁盘分区,然后执行

[root@mfs-master ~]# drbdadm secondary all

如果不执行这个命令,直接在备用节点执行切换到主节点的命令,会报错:

2: State change failed: (-1) Multiple primaries not allowed by config

Command 'drbdsetup 2 primary' terminated with exit code 11

接着,在备用节点执行

[root@mfs-bak ~]# drbdadm primary all

最后在备用节点挂载磁盘分区即可:

[root@mfs-bak ~]# mount /dev/drbd1  /mnt/mfs

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/fb3614ca9886bf8022b4343f8c0dfe07.html