Heartbeat+DRBD+NFS案例详解

Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。

数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)   

DBRD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。   

DBRD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈。

实验背景:

本实验部署DRBD + Heartbeat + NFS 环境,建立一个高可用(HA)的文件服务器集群。在方案中,通过DRBD保证了服务器数据的完整性和一致性。DRBD类似于一个网络RAID-1功能。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个另文件系统中。主节点与备节点的数据可以保证实时相互同步。当本地主服务器出现故障时,备份服务器上还会保留有一份相同的数据,可以继续使用。在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主服务器和备份服务器上。切换时,远程主机只要使用它上面的那份备份数据,就可以继续提供主服务器上相同的服务,并且client用户对主服务器的故障无感知。

实验拓扑:

Heartbeat+DRBD+NFS案例详解

实验步骤:

一、准备环境
1、系统环境
# uname –r            #内核版本
2.6.18-164.el5
# cat /etc/RedHat-release #查看系统信息
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
2、修改主机名称等
在节点1上进行修改
# hostname node1.a.com          #修改主机名称
# vim /etc/sysconfig/network        #修改文件
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node1.a.com     
之后退出再次登陆
# hostname                      #查看名称
node1.a.com
# vim /etc/hosts                  #修改hosts文件
127.0.0.1                localhost.localdomain localhost
::1            localhost6.localdomain6 localhost6
192.168.10.20 node1.a.com
192.168.10.30 node2.a.com
在节点2上进行修改
# hostname node2.a.com            #修改主机名称
# vim /etc/sysconfig/network          #修改文件
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node2.a.com
之后退出再次登陆
# vim /etc/hosts              #修改hosts文件
127.0.0.1                localhost.localdomain localhost
::1            localhost6.localdomain6 localhost6
192.168.10.20 node1.a.com
192.168.10.30 node2.a.com
3、同步时钟
要求两个节点上的始终必须要一致。
[root@node2 ~]# hwclock -s            #同步时钟
[root@node1 ~]# hwclock –s
4、新建分区
在节点1上新建分区
[root@node1 ~]# fdisk /dev/sda
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
  (e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n            #增加一个新分区
Command action
  e  extended
  p  primary partition (1-4)
e                                    #增加一个扩展分区
Selected partition 4
First cylinder (1799-3916, default 1799):
Using default value 1799
Last cylinder or +size or +sizeM or +sizeK (1799-3916, default 3916):
Using default value 3916
Command (m for help): p        #显示分区内容
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 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        1543    12289725  83 Linux
/dev/sda3            1544        1798    2048287+ 82 Linux swap / Solaris
/dev/sda4            1799        3916    17012835    5 Extended
Command (m for help): n
First cylinder (1799-3916, default 1799):
Using default value 1799
Last cylinder or +size or +sizeM or +sizeK (1799-3916, default 3916): +1g
Command (m for help): p
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 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        1543    12289725  83 Linux
/dev/sda3            1544        1798    2048287+ 82 Linux swap / Solaris
/dev/sda4            1799        3916    17012835    5 Extended
/dev/sda5            1799        1921      987966  83 Linux
Command (m for help): w          #保存以上操作
重新读取sda这块盘上的分区表
[root@node1 ~]# partprobe /dev/sda
[root@node1 ~]# cat /proc/partitions
major minor #blocks name
 
  8    0  31457280 sda
  8    1    104391 sda1
  8    2  12289725 sda2
  8    3    2048287 sda3
  8    4          0 sda4
  8    5    987966 sda5
在节点2上创建一个扩展分区和一个逻辑分区
[root@node2 ~]# fdisk /dev/sda
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
  (e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
  e  extended
  p  primary partition (1-4)
e
Selected partition 4
First cylinder (1354-2610, default 1354):
Using default value 1354
Last cylinder or +size or +sizeM or +sizeK (1354-2610, default 2610):
Using default value 2610
Command (m for help): n
First cylinder (1354-2610, default 1354):
Using default value 1354
Last cylinder or +size or +sizeM or +sizeK (1354-2610, default 2610): +1g  #两个节点的分区大小要一致
Command (m for help): p                      #显示分区
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        1288    10241437+ 83 Linux
/dev/sda3            1289        1353      522112+ 82 Linux swap / Solaris
/dev/sda4            1354        2610    10096852+  5 Extended
/dev/sda5            1354        1476      987966  83 Linux
Command (m for help): w            #保存以上操作
重新加载sda这块盘上的分区
[root@node2 ~]# partprobe /dev/sda

linux

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

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