利用DRBD和OpenSSI构建高可用集群系统
- 格式:pdf
- 大小:268.43 KB
- 文档页数:5
通过Pacemaker+corosync+DRBD配置Mysql的高可用集群通过Pacemaker+corosync+DRBD配置Mysql的高可用集群平台环境和节点信息:hostname ip 环境s1 192.168.122.10 CentOS 6.3 Linux 2.6.32-279.el6.x86_64 s2 192.168.122.11 CentOS 6.3 Linux 2.6.32-279.el6.x86_64 vip 192.168.122.12=====系统配置(两个节点)=====vi /etc/hosts192.168.122.10 s1192.168.122.11 s2[root@s1 ~]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=s1[root@s2 ~]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=s2[root@s1 ~]# hostname s1[root@s2 ~]# hostname s2关闭iptables(两个节点)[root@s1 ~]# service iptables stop[root@s1 ~]# chkconfig iptables off关闭selinux[root@s1 ~]# setenforce 0[root@s2 ~]# setenforce 0[root@s1 ~]# vi /etc/sysconfig/selinuxSELINUX=permissivessh信任[root@s1 ~]# ssh-keygen[root@s1 ~]# ssh-copy-id -i .ssh/id_rsa.pub ************.122.11然后再反过来做同步时间[root@s1 ~]# yum install ntp[root@s1 ~]# chkconfig ntpd on[root@s1 ~]# ntpdate /doc/df15455318.html[root@s1 ~]# service ntpd start将新增的512M磁盘分区[root@s1 ~]# fdisk -cu /dev/sdbn/p/1/enter/enter/w[root@s2 ~]# fdisk -cu /dev/sdbn/p/1/enter/enter/w=====安装所需软件(两个节点)=====epel源[root@s1 ~]# rpm -ivh /doc/df15455318.html/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm[root@s2 ~]# rpm -ivh /doc/df15455318.html/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm安装pacemaker/corosync[root@s1 ~]# yum install pacemaker corosync -y[root@s2 ~]# yum install pacemaker corosync -y安装drbd[root@s1 ~]# rpm -ivh /doc/df15455318.html/elrepo-release-6-4.el6.elrepo.noarch.rpm[root@s1 ~]# rpm -ivh/doc/df15455318.html/linux/elrepo/el6/x86_64/RPMS/drbd84-utils-8.4.1-2.el6.elrepo.x86_64.rpm [root@s1 ~]# rpm -ivh /doc/df15455318.html/linux/elrepo/el6/x86_64/RPMS/kmod-drbd84-8.4.1-2.el6.elrepo.x86_64.rpm[root@s2 ~]# rpm -ivh /doc/df15455318.html/elrepo-release-6-4.el6.elrepo.noarch.rpm[root@s2 ~]# rpm -ivh /doc/df15455318.html/linux/elrepo/el6/x86_64/RPMS/drbd84-utils-8.4.1-2.el6.elrepo.x86_64.rpm [root@s2 ~]# rpm -ivh /doc/df15455318.html/linux/elrepo/el6/x86_64/RPMS/kmod-drbd84-8.4.1-2.el6.elrepo.x86_64.rpm[root@s1 ~]# rpm -qa | grep -e corosync -e pacemaker -e drbdcorosync-1.4.1-7.el6.x86_64pacemaker-libs-1.1.7-6.el6.x86_64pacemaker-cluster-libs-1.1.7-6.el6.x86_64pacemaker-1.1.7-6.el6.x86_64drbd84-utils-8.4.1-2.el6.elrepo.x86_64corosynclib-1.4.1-7.el6.x86_64pacemaker-cli-1.1.7-6.el6.x86_64kmod-drbd84-8.4.1-2.el6.elrepo.x86_64=====配置DRBD(仅在s1)=====[root@s1 ~]# lsmod | grep drbddrbd 306900 0libcrc32c 1246 1 drbd可以看到在安装完drbd后,drbd模块已经被内核加载了。
如何实现的双机热备如何实现的双机热备2009-01-05 12:19:58一.介绍作为服务器,需要提供一定的24X7的安全保证,这样可以防止关键节点的宕机引起系统的全面崩溃。
春笛公司在长期的邮件系统方案实施过程中,利用OpenSource开源软件,结合金笛邮件系统,成功地为多家单位实施了大容量邮件系统的高可靠双机热备方案。
基于linux的 HA软件可靠稳定,比使用商业版本的HA软件降低成本约9成左右。
在这里我们用 lvs 和 DRBD 实现了一个真实环境下的双机热容错集群。
这里的关键技术是如何实现ip代换, mon/heartbeat检测, 文件同步。
同样这一方法稍加改动就可以实现oracle热备份、ldap热备份等。
二.方案描述将真实服务地址绑定到一个虚拟网卡(eth0:1)上通过检测程序(heartbeat)来将主机或是备份主机的虚拟网卡(eth0:1)激活。
从而实现热备份。
使用网络硬盘RAID来同步文件。
检测程序通过内网进行监控。
金笛高可用邮件系统架构(双机系统)F2 工作模式a) 正常状态:正常工作状态b) 备份激活:node1失效,node2激活状态c) 主机就绪:node1故障排除,恢复状态d) 切换回正常模式:需要手动停止备份服务器的服务,系统会自动切换回正常模式三.软硬件需求两台双网卡主机完全安装 redhat6.2主机IP 10.0.0.126 备份主机IP 10.0.0.250实际服务即浮动IP 202.93.204.68邮件系统:金笛邮件系统Jindi-Mail2.0 ()HA软件:ftp:///pub/ha/piranha-docs-0.4.17-2.i386.rpmftp:///pub/ha/piranha-gui-0.4.17-2.i386.rpm ftp:///pub/ha/piranha-0.4.17-2.i386.rpmftp:///pub/ha/ipvsadm-1.11-4.i386.rpmplang.tuwien.ac.at/reisner/drbd/download/drbd-0.5.8.1.tar.gz安装软件:rpm –Uvh ipvsadm* piranha*两台主机都要装金笛邮件系统安装DRBD 安装Tar zvxf tar -zvxf drbd-0.5.8.1.tar.gzcd drbdmakemake install有如下相关文件/usr/sbin/drbdsetup/lib/modules/2.2.18pre11-va2.1/block/drbd.o/etc/ha.d/resource.d/etc/rc.d/init.d/drbd/sbin/insmod drbd进行测试应返回”Using /lib/modules/2.2.18pre11-va2.1/block/drbd.o” 四.设置编辑/etc/lvs.cf文件#Example of /etc/lvs.cf#还需要smtpd popd这两个启动脚本service = fos # 采用fos模式primary = 10.0.0.126 # 主ip地址(qmail)backup = 10.0.0.250 # 备份主机ip地址(Backup)backup_active = 1 # 激活备份heartbeat = 1 # 激活Heartbeatheartbeat_port = 1050 # Heartbeat端口keepalive = 2 # heartbeat间隔单位秒deadtime = 10 # 判定死机间隔rsh_command = ssh # 文件同步方案选ssh#failovermail服务failover pop {active = 1 # 激活监听服务address = 202.93.204.68 eth0:1 #port = 110 #pop 端口send = "n" #pop 连接特征串expect = "+OK" #pop 反馈特征串timeout = 10start_cmd = "/etc/rc.d/init.d/popd start" #pop 启动命令stop_cmd = "/etc/rc.d/init.d/popd stop" #pop关闭命令}failover smtp {active = 1 #激活监听服务address = 202.93.204.68 eth0:1 #port = 25 #smtp端口send = "n" #smtp 连接特征串expect ="220" #smtp 反馈特征串timeout = 10start_cmd = "/etc/rc.d/init.d/smtpd start" # smtp启动命令stop_cmd = "/etc/rc.d/init.d/smtpd stop" # smtp关闭命令}failover mirror {active = 1timeout = 10start_cmd = "/etc/ha.d/resource.d/datadisk start" # DRBD启动命令stop_cmd = "/etc/ha.d/resource.d/datadisk stop" # DRBD 关闭命令}同步LVS文件scp /etc/lvs.cf 10.0.0.112:/etc/lvs.cf编辑/etc/fstab加入(两台都要加)/dev/nb0 /var/qmail ext2 noauto 0 0 #FOS RAID如下/dev/sda1 /boot ext2 defaults 1 1/dev/sda2 / ext2 defaults 1 1/dev/nb0 /var/qmail ext2 noauto 0 0 #FOS RAID/dev/sda4 swap swap defaults 0 0/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0/dev/fd0 /mnt/floppy auto noauto,owner 0 0none /proc proc defaults 0 0none /dev/pts devpts gid=5,mode=620 0 0编辑/etc/drbd.confresource drbd0 {protocol=Bfsck-cmd=fsck.ext2 -p -yon thost1 {device=/dev/nb0disk=/dev/hda7address=10.0.0.126port=7789}on thost2 {device=/dev/nb0disk=/dev/hda7address=10.0.0.250port=7789}}检查两台主机drbd是否载入#/sbin/lsmodModule Size Used bydrbd 37792 0 (unused)3c59x 20880 1 (autoclean)如果drbd没有载入用如下命令载入/sbin/insmod /lib/modules/2.2.18pre11-va2.1/block/drbd.o在备份主机上挂接镜像盘/usr/sbin/drbdsetup /dev/nb0 disk /dev/sda2/usr/sbin/drbdsetup /dev/nb0 net 10.0.0.250 10.0.0.126 B在主机上挂接镜像盘/usr/sbin/drbdsetup /dev/nb0 disk /dev/sda2/usr/sbin/drbdsetup /dev/nb0 net 10.0.0.126 10.0.0.250 B/usr/sbin/drbdsetup /dev/nb0 primary两台主机安装文件卷/sbin/mkfs -b 4096 /dev/nb0mount /dev/nb0 /var/qmail启动启动主机的drbd/etc/rc.d/init.d/brdb start启动备份主机的drbd将金笛邮件系统安装到 /home/webmail启动主机的邮件系统 startup.sh启动主机的pulse/etc/rc.d/init.d/pulse start启动备份主机的drbd访问主机的smtp pop服务查看是否正常(这点很重要)然后才能启动备份主机的 pules以上顺序不能弄错测试连接qmail测试是否正常工作使用ifconfig 查看虚拟网卡是否工作停止主机的邮件系统服务shutdown.sh连接smtp pop 测试是否正常工作使用 ifconfig 查看备份主机的网卡是否工作正常的话应该将202.93.204.68绑定到这台主机上了然后在停止备份主机的qmail服务 202.93.204.68应该被绑回到主机上了。
DRBD项目实施之NFS高可用架构(NFS+Heartbeat+Drbd)本博文出自51CTO博客huangbo929博主,有任何问题请进入博主页面互动讨论!博文地址:/8355508/1587880由于目前线上的两台NFS服务器,一台为主,一台为备。
主到备的数据同步,靠rsync来做。
由于数据偏重于图片业务,并且还是千万级的碎图片。
在目前的业务框架下,NFS 服务是存在单点的,并且数据的同步也不能做完全实时性,从而导致不能确保一致性。
因此,出于对业务在线率和数据安全的保障,目前需要一套新的架构来解决 NFS 服务单点和数据实时同步的问题。
然后,就没有然后了。
下面是一个丑到爆的新方案架构图,已经在公司测试环境的部署,并且进行了不完全充分的测试。
架构拓扑:简单描述:两台 NFS 服务器,通过 em1 网卡与内网的其他业务服务器进行通信,em2网卡主要负责两台 NFS 服务器之间心跳通信,em3网卡主要负责drbd数据同步的传输。
前面的2台图片服务器通过 NFS 集群提供出来的一个VIP 192.168.0.219 来使用 NFS 集群服务。
一、项目基础设施及信息介绍1、设备信息1.现有的两台 NFS 存储服务器的硬件配置信息:2. CPU: Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz3. MEM: 16G4. Raid: RAID 15. Disk: SSD 200G x 26.网卡:集成的 4 个千兆网卡 Link is up at 1000 Mbps, full duplex7.前端两台静态图片服务器硬件配置信息:8.略2、网络1.浮动 VIP : 192.168.0.219 # 漂浮在M1和M2上,负责对外提供服务2.现有的两台 NFS 存储服务器的网络配置信息:3.主机名:M1.redhat.sx4. em1:192.168.0.210 内网5. em2:172.16.0.210 心跳线6. em3:172.16.100.210 DRBD千兆数据传输7.主机名:M2.redhat.sx8. em1:192.168.0.211 内网9. em2:172.16.0.211 心跳线10. em3:172.16.100.211 DRBD千兆数据传输3、系统环境1.内核版本:2.6.32-504.el6.x86_642.系统版本:CentOS 6.53.系统位数:x86_644.防火墙规则清空5.selinux关闭4、软件版本1.heartbeat-3.0.4-2.el6.x86_642.drbd-8.4.33.rpcbind-0.2.0-11.el6.x86_644.nfs-utils-1.2.3-54.el6.x86_64二、基础服务配置这里仅以 M1 服务的配置为例,M2 服务器配置与此相同。
如何搭建高可用性服务器集群在当今互联网时代,服务器集群已经成为许多企业和网站保证高可用性和性能的重要手段。
搭建高可用性服务器集群可以有效地提高系统的稳定性和可靠性,确保用户能够随时访问网站或应用程序。
本文将介绍如何搭建高可用性服务器集群,以帮助读者更好地理解和应用这一技术。
一、搭建高可用性服务器集群的意义搭建高可用性服务器集群的主要目的是提高系统的稳定性和可靠性,确保系统能够在面对各种故障和攻击时保持正常运行。
通过将多台服务器组成集群,可以实现负载均衡、故障转移和容灾备份,从而降低单点故障的风险,提高系统的可用性和性能。
二、搭建高可用性服务器集群的步骤1. 硬件准备:首先需要准备多台服务器,这些服务器可以是物理服务器或虚拟服务器,需要保证服务器的配置相对均衡,以实现负载均衡的效果。
此外,还需要网络设备如交换机、路由器等来连接服务器,确保服务器之间可以互相通信。
2. 网络配置:在搭建服务器集群之前,需要对网络进行合理的规划和配置。
可以采用专用的网络子网来连接服务器,确保服务器之间的通信稳定和安全。
同时,还需要配置防火墙和安全策略,保护服务器免受网络攻击。
3. 软件安装:选择合适的服务器集群软件,常用的有Nginx、Apache、Tomcat等,根据实际需求和系统环境进行安装和配置。
在安装软件时,需要注意版本的兼容性和稳定性,确保软件能够正常运行并实现负载均衡和故障转移。
4. 配置负载均衡:负载均衡是服务器集群的重要组成部分,可以通过软件或硬件来实现。
常用的负载均衡算法有轮询、加权轮询、最小连接数等,根据实际情况选择合适的算法进行配置,确保服务器能够均衡地分担请求负载。
5. 配置故障转移:故障转移是保证服务器集群高可用性的关键技术,可以通过心跳检测、自动切换等方式实现。
在配置故障转移时,需要考虑服务器的健康状态和故障恢复时间,确保系统能够在出现故障时快速切换到备用服务器,保证服务的连续性。
6. 容灾备份:除了故障转移,还需要进行容灾备份,即定期备份数据和配置文件,以防止数据丢失和系统崩溃。
软件开发知识:利用集群技术构建高可用性的系统随着互联网技术的不断发展,越来越多的企业和组织都在构建自己的高可用性系统,以保证业务的稳定性和数据的安全性。
其中的关键技术之一就是集群技术,通过多台服务器的联合工作,实现高可用性的系统构建。
本文将从以下四个方面深入阐述集群技术构建高可用性系统的要点和步骤。
首先,介绍集群技术的基本概念和原理。
其次,探讨如何利用集群实现系统的负载均衡和故障转移,同时介绍相关的软件和工具。
第三,详细解释如何选用适合的硬件设备和网络结构来搭建集群系统。
最后,对常见的集群系统故障进行分析,提出应对方法。
一、集群技术概述集群技术是一种将多台计算机联合起来构成一个高性能、高可用性、高扩展性的计算机系统的技术。
集群系统通常由多个相互独立的服务器节点组成,节点之间通过特定的网络通信协议进行数据的交换和共享。
在集群系统中,任何一个计算机节点都可以以工作节点的身份进入到整个集群体系中,从而实现任务的分配和执行。
而整个集群系统也可以通过编程、配置等方式实现负载均衡和故障转移,从而提高系统的可用性和稳定性。
二、集群技术实现高可用性系统的原理和步骤2.1负载均衡负载均衡是集群技术中最基本的概念之一。
在一个系统或服务中,用户的请求往往是随机分布的,不同请求的负载也会有所差异。
而通过负载均衡技术,可以将不同请求分配到不同计算机节点中进行处理,从而实现系统的负载均衡。
负载均衡可以分为硬件负载均衡和软件负载均衡两种类型。
硬件负载均衡一般采用专用网络交换机或路由器来实现,比如F5、NetScaler等;而软件负载均衡通常采用虚拟网络设备或软件来实现,比如Nginx、HAProxy等。
2.2故障转移故障转移指在集群系统中,如果某个节点出现了故障,如何及时将请求转发到其他节点,以保证系统的可用性和稳定性。
故障转移也可以分为硬件故障转移和软件故障转移两种类型。
硬件故障转移一般采用专用的硬件设备或热插拔设备来实现,比如磁盘阵列设备或高可用性存储系统。
构建Heartbeat+DRBD+NFS高可用文件共享存储DRBD的介绍:Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)工具:drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令,drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用drbdmeta:管理META数据结构,平时很少直接用。
在DRBD中,资源是特指某复制的存储设备的所有方面。
包括资源名称、DRBD设备(/dev/drbdm,这里m是设备最小号,最大号可到147)、磁盘配置(使本地数据可以为DRBD所用)、网络配置(与对方通信)每个资源有个角色,是Primary或Secondary,下面简称“主”和“备” 主角色的DRBD设备可以不受限制的读和写,比如创建和映射文件系统、对于块设备的raw或直接IO访问。
备角色的DRBD设备接受来自对方的所有修改,但是不能被应用程序读写,甚至只读也不行。
角色可以改变。
DRBD功能单主模式:典型的高可靠性集群方案。
复主模式:需要采用共享cluster文件系统,如GFS和OCFS2。
用于需要从2个节点并发访问数据的场合,需要特别配置。
复制模式:3种模式:协议A:异步复制协议。
本地写成功后立即返回,数据放在发送buffer 中,可能丢失。
协议B:内存同步(半同步)复制协议。
本地写成功并将数据发送到对方后立即返回,如果双机掉电,数据可能丢失。
协议C:同步复制协议。
本地和对方写成功确认后返回。
如果双机掉电或磁盘同时损坏,则数据可能丢失。
一般用协议C。
选择协议将影响流量,从而影响网络时延。
有效的同步:按线性而不是当初写的顺序同步块。
同步损坏时间内的不一致数据。
DRBD笔记:Linux平台下实现高可用方案DRBD实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中。
他是有内核模块和相关程序而组成,通过网络通信来同步镜像整个设备,有点类似于一个网络RAID 的功能。
也就是说当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台主机之上,并以完全相同的形式记录在一个文件系统中(实际上文件系统的创建也是由DRBD的同步来实现的)。
本地节点(主机)与远程节点(主机)的数据可以保证实时的同步,并保证IO的一致性。
所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的目的。
在高可用(HA)解决方案中使用DRBD的功能,可以代替使用一个共享盘阵存储设备。
因为数据同时存在于本地主机和远程主机上,在遇到需要切换的时候,远程主机只需要使用它上面的那份备份数据,就可以继续提供服务了。
底层设备支持DRBD需要构建在底层设备之上,然后构建出一个块设备出来。
对于用户来说,一个DRBD 设备,就像是一块物理的磁盘,可以在商脉内创建文件系统。
DRBD所支持的底层设备有以下这些类:1、一个磁盘,或者是磁盘的某一个分区;2、一个soft raid 设备;3、一个LVM的逻辑卷;4、一个EVMS(Enterprise Volume Management System,企业卷管理系统)的卷;5、其他任何的块设备。
配置简介1、全局配置项(global)基本上我们可以做的也就是配置usage-count是yes还是no了,usage-count参数其实只是为了让linbit公司收集目前drbd的使用情况。
当drbd在安装和升级的时候会通过http协议发送信息到linbit公司的服务器上面。
2、公共配置项(common)这里的common,指的是drbd所管理的多个资源之间的common。
配置项里面主要是配置drbd的所有resource可以设置为相同的参数项,比如protocol,syncer等等。
高可用群集让mysql服务器从此高枕无忧实验环境:redhat enterprise 5.4 内核版本号:2.6.18-164.el5注意的事项1:Yum 服务器的构建2:各个节点之间的时间的一致性(hwclock –s 或者搭建ntp服务器)3:被定义为群集的资源都不可以在本地主机上进行启动,他们要被crm来进行管理。
4:由于dbrd,corosync,pacemaker等各群集的服务都需要通过主机名来进行解析,所以我们的主机的名字一定要能够被正确的解析。
(hosts文件)5:本实验要用到的软件包。
//*************由于drbd内核模块代码只在linux内核2.6.3.33以后的版本中才有,所以我们要同时安装内核模块和管理工具*********//drbd83-8.3.8-1.el5.centos.i386.rpm drbd的管理包kmod-drbd83-8.3.8-1.el5.centos.i686.rpm drbd的内核模块//*************由于drbd内核模块代码只在linux内核2.6.3.33以后的版本中才有,所以我们要同时安装内核模块和管理工具*********//cluster-glue-1.0.6-1.6.el5.i386.rpm 为了在群集中增加对更多节点的支持cluster-glue-libs-1.0.6-1.6.el5.i386.rpmcorosync-1.2.7-1.1.el5.i386.rpm corosync的主配置文件corosynclib-1.2.7-1.1.el5.i386.rpm corosync的库文件heartbeat-3.0.3-2.3.el5.i386.rpm 我们的heartbeat在这里是做四层的资源代理用的heartbeat-libs-3.0.3-2.3.el5.i386.rpm heartbeat的库文件ldirectord-1.0.1-1.el5.i386.rpm 在高可用性群集中实验对后面realserver的探测libesmtp-1.0.4-5.el5.i386.rpmopenais-1.1.3-1.6.el5.i386.rpm做丰富pacemake的内容使用openaislib-1.1.3-1.6.el5.i386.rpm openais 的库文件pacemaker-1.1.5-1.1.el5.i386.rpm pacemake的主配置文档pacemaker-libs-1.1.5-1.1.el5.i386.rpm pacemaker的库文件pacemaker-cts-1.1.5-1.1.el5.i386.rpmperl-TimeDate-1.16-5.el5.noarch.rpmresource-agents-1.0.4-1.1.el5.i386.rpm 开启资源代理用的mysql-5.5.15-linux2.6-i686.tar.gz mysql的绿色软件说明:资源的下载地址/data/402802具体的实验步骤:一:修改群集中各节点的网络参数node1:[root@node1 ~]# vim /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=noHOSTNAME=[root@node1 ~]# vim /etc/hosts192.168.2.10 node1192.168.2.20 node2[root@node1 ~]#hostnamenode2:[root@node2 ~]# vim /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=noHOSTNAME=[root@node2 ~]# vim /etc/hosts192.168.2.10 node1192.168.2.20 node2[root@node2 ~]#hostname二:同步群集中各节点的时间node1:[root@node1~]# hwclock -snode2:[root@node2 ~]# hwclock -s三:在各个节点上面产生密钥实现无密码的通讯node1:[root@node1 ~]# ssh-key -t rsa 产生一个rsa的非对称加密的私钥对[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub node2 拷贝到node2节点node2:[root@node2 ~]# ssh-key -t rsa 产生一个rsa的非对称加密的私钥对[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub node2 拷贝到node1节点四:在各个节点上面配置好yum客户端node1:[root@node1 ~]# vim /etc/yum.repos.d/server.repo[rhel-server]name=Red Hat Enterprise Linux serverbaseurl=file:///mnt/cdrom/Serverenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release[rhel-vt]name=Red Hat Enterprise Linux vtbaseurl=file:///mnt/cdrom/VTenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release[rhel-cluster] 做群集需要用到的仓库name=Red Hat Enterprise Linux clusterbaseurl=file:///mnt/cdrom/Clusterenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release[rhel-clusterstorage] 做群集文件系统需要用到的仓库name=Red Hat Enterprise Linux clusterstoragebaseurl=file:///mnt/cdrom/ClusterStorageenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release node2:[root@node2 ~]# vim /etc/yum.repos.d/server.repo [rhel-server]name=Red Hat Enterprise Linux serverbaseurl=file:///mnt/cdrom/Serverenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release [rhel-vt]name=Red Hat Enterprise Linux vtbaseurl=file:///mnt/cdrom/VTenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release [rhel-cluster] 做群集需要用到的仓库name=Red Hat Enterprise Linux clusterbaseurl=file:///mnt/cdrom/Clusterenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release [rhel-clusterstorage] 做群集文件系统需要用到的仓库name=Red Hat Enterprise Linux clusterstorage baseurl=file:///mnt/cdrom/ClusterStorageenabled=1gpgcheck=1gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release五:将下载好的rpm包上传到linux上的各个节点node1:[root@node1 ~]# ll-rw-r--r-- 1 root root 221868 May 9 10:34 drbd83-8.3.8-1.el5.centos.i386.rpm -rw-r--r-- 1 root root 44377 May 9 10:34 ldirectord-1.0.1-1.el5.i386.rpm -rw-r--r-- 1 root root 271360 May 8 13:07cluster-glue-1.0.6-1.6.el5.i386.rpm 为了在群集中增加对更多节点的支持-rw-r--r-- 1 root root 133254 May 8 13:07cluster-glue-libs-1.0.6-1.6.el5.i386.rpm-rw-r--r-- 1 root root 170052 May 8 13:07corosync-1.2.7-1.1.el5.i386.rpm corosync的主配置文件-rw-r--r-- 1 root root 158502 May 8 13:07corosynclib-1.2.7-1.1.el5.i386.rpm corosync的库文件-rw-r--r-- 1 root root 165591 May 8 13:07heartbeat-3.0.3-2.3.el5.i386.rpm 我们的heartbeat在这里是做四层的资源代理用的-rw-r--r-- 1 root root 289600 May 8 13:07heartbeat-libs-3.0.3-2.3.el5.i386.rpm heartbeat的库文件-rw-r--r-- 1 root root 60458 May 813:07 libesmtp-1.0.4-5.el5.i386.rpm-rw-r--r-- 1 root root 126663 May 5 11:26 libmcrypt-2.5.7-5.el5.i386.rpm -rw-r--r-- 1 root root 207085 May 8 13:07openais-1.1.3-1.6.el5.i386.rpm 做丰富pacemake的内容使用-rw-r--r-- 1 root root 94614 May 8 13:07openaislib-1.1.3-1.6.el5.i386.rpm-rw-r--r-- 1 root root 796813 May 8 13:07pacemaker-1.1.5-1.1.el5.i386.rpm pacemake的主配置文档-rw-r--r-- 1 root root 207925 May 8 13:07pacemaker-cts-1.1.5-1.1.el5.i386.rpm-rw-r--r-- 1 root root 332026 May 8 13:07pacemaker-libs-1.1.5-1.1.el5.i386.rpm pacemaker的库文件-rw-r--r-- 1 root root 32818 May 8 13:07perl-TimeDate-1.16-5.el5.noarch.rpm-rw-r--r-- 1 root root 388632 May 8 13:07resource-agents-1.0.4-1.1.el5.i386.rpm-rw-r--r-- 1 root root 162247449 May 9 16:44mysql-5.5.15-linux2.6-i686.tar.gznode2:[root@node2 ~]# ll-rw-r--r-- 1 root root 221868 May 9 10:34 drbd83-8.3.8-1.el5.centos.i386.rpm -rw-r--r-- 1 root root 44377 May 9 10:34 ldirectord-1.0.1-1.el5.i386.rpm -rw-r--r-- 1 root root 271360 May 8 13:07cluster-glue-1.0.6-1.6.el5.i386.rpm 为了在群集中增加对更多节点的支持-rw-r--r-- 1 root root 133254 May 8 13:07cluster-glue-libs-1.0.6-1.6.el5.i386.rpm-rw-r--r-- 1 root root 170052 May 8 13:07corosync-1.2.7-1.1.el5.i386.rpm corosync的主配置文件-rw-r--r-- 1 root root 158502 May 8 13:07corosynclib-1.2.7-1.1.el5.i386.rpm corosync的库文件-rw-r--r-- 1 root root 165591 May 8 13:07heartbeat-3.0.3-2.3.el5.i386.rpm 我们的heartbeat在这里是做四层的资源代理用的-rw-r--r-- 1 root root 289600 May 8 13:07heartbeat-libs-3.0.3-2.3.el5.i386.rpm heartbeat的库文件-rw-r--r-- 1 root root 60458 May 813:07 libesmtp-1.0.4-5.el5.i386.rpm-rw-r--r-- 1 root root 126663 May 5 11:26 libmcrypt-2.5.7-5.el5.i386.rpm-rw-r--r-- 1 root root 207085 May 8 13:07openais-1.1.3-1.6.el5.i386.rpm 做丰富pacemake的内容使用-rw-r--r-- 1 root root 94614 May 8 13:07openaislib-1.1.3-1.6.el5.i386.rpm-rw-r--r-- 1 root root 796813 May 8 13:07pacemaker-1.1.5-1.1.el5.i386.rpm pacemake的主配置文档-rw-r--r-- 1 root root 207925 May 8 13:07pacemaker-cts-1.1.5-1.1.el5.i386.rpm-rw-r--r-- 1 root root 332026 May 8 13:07pacemaker-libs-1.1.5-1.1.el5.i386.rpm pacemaker的库文件-rw-r--r-- 1 root root 32818 May 8 13:07perl-TimeDate-1.16-5.el5.noarch.rpm-rw-r--r-- 1 root root 388632 May 8 13:07resource-agents-1.0.4-1.1.el5.i386.rpm-rw-r--r-- 1 root root 162247449 May 9 16:44mysql-5.5.15-linux2.6-i686.tar.gz六:在各节点上面安装所有的rpm包node1: [root@node1 ~]# yum localinstall *.rpm -y --nogpgchecknode2: [root@node2~]# yum localinstall *.rpm -y --nogpgcheck七:在各节点上增加一个大小类型都相关的drbd设备(sdb1)Node1:[root@node1 ~]# fdisk /dev/sdbCommand (m for help): nCommand actione extendedp primary partition (1-4)pPartition number (1-4): 1First cylinder (1-522, default 1):Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-522, default 522): +1000M Command (m for help): pDisk /dev/sdb: 4294 MB, 4294967296 bytes255 heads, 63 sectors/track, 522 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sdb1 1 123 987966 83 Linux[root@node1 ~]# partprobe /dev/sdb //重新加载内核模块[root@node1 ~]# cat /proc/partitionsmajor minor #blocks name8 0 20971520 sda8 1 104391 sda18 2 1052257 sda28 3 19808145 sda38 16 4194304 sdb8 17 987966 sdb1Node2:[root@node2 ~]# fdisk /dev/sdbCommand (m for help): nCommand actione extendedp primary partition (1-4)pPartition number (1-4): 1First cylinder (1-522, default 1):Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-522, default 522): +1000M Command (m for help): pDisk /dev/sdb: 4294 MB, 4294967296 bytes255 heads, 63 sectors/track, 522 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sdb1 1 123 987966 83 Linux[root@node2 ~]# partprobe /dev/sdb //重新加载内核模块[root@node2 ~]# cat /proc/partitionsmajor minor #blocks name8 0 20971520 sda8 1 104391 sda18 2 1052257 sda28 3 19808145 sda38 16 4194304 sdb8 17 987966 sdb1八:配置drbdnode1:1: 复制样例配置文件为即将使用的配置文件.[root@node1 ~]# cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc/2:将文件global_common.conf 备份一份[root@node1 ~]# cd /etc/drbd.d/[root@node1 drbd.d]# ll-rwxr-xr-x 1 root root 1418 Jun 4 2010 global_common.conf[root@node1 drbd.d]# cp global_common.conf global_common.conf.bak3:编辑global_common.conf[root@node1 drbd.d]# vim global_common.confglobal {usage-count no; 不开启统计}common {protocol C;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错误,节点要拆掉drbd设备 }net {cram-hmac-alg "sha1"; 使用sha1加密算法实现节点认证shared-secret "mydrbdlab"; 认证码,两个节点内容要相同}syncer {rate 100M; 定义同步数据时的速率}}4:定义mysql的资源[root@node1 drbd.d]# vim mysql.resresource mysql {on {device /dev/drbd0;disk /dev/sdb1;address 192.168.2.10:7789;meta-disk internal;}on {device /dev/drbd0;disk /dev/sdb1;address 192.168.2.20:7789;meta-disk internal;}}5:将以上的drbd.*文件都拷贝到node2上面[root@node1 drbd.d]# scp -r /etc/drbd.* node2:/etc/ 6:node1初始化定义的mysql的资源并启动相应的服务[root@node1 drbd.d]# drbdadm create-md mysql Writing meta data...initializing activity logNOT initialized bitmapNew drbd meta data block successfully created. [root@node1 drbd.d]# service drbd start7:node2初始化定义的mysql的资源并启动相应的服务[root@node2 drbd.d]# drbdadm create-md mysqlWriting meta data...initializing activity logNOT initialized bitmapNew drbd meta data block successfully created.[root@node2 drbd.d]# service drbd start8: 使用drbd-overview命令来查看启动状态[root@node1 drbd.d]# drbd-overview0:mysql Connected Secondary/Secondary Inconsistent/Inconsistent C r---- 从上面的信息中可以看出此时两个节点均处于Secondary状态。
请访问我的博客/KVM DRBD高可用方案drbd同步网络,心跳线iscsi网络生产网络KVM DRBD高可用方案示意图集群节点1集群节点2集群节点4集群节点3DRBDDRBD架构说明如下:1.采用2台存储服务器做drbd同步;2.将drbd同步磁盘作为iscsi资源共享给集群节点;3.集群节点可以挂载iscsi磁盘,划分vg,lv分配给虚拟机使用,并且可以实现迁移等功能;4.通过pacemaker管理实现drbd、iscsi、浮动ip的自动切换。
存储服务器网络连接说明:1.两台存储服务器加2-3块双口网卡,每块网卡拿出一个口做网络直连,然后几个端口之间做多网卡绑定。
这样做的目的是提高可靠性同时提高网络带宽。
2.另外做2个网口的多网卡绑定,和交换机配合,用于iscsi存储网络。
3.剩下的端口可以用于管理和生产网络使用。
存储服务器raid配置说明:存储服务器有多块磁盘,因为磁盘是很容易坏的部件,建议用2块磁盘做在线的热备。
另外剩余磁盘做一个大的raid10组,然后再划分2个逻辑磁盘,较小的磁盘安装操作系统,较大的用于raid同步。
Drbd存储服务器安装说明:安装操作系统centos 6.3 略多网卡绑定设置,请参考/1724/940971 Drbd软件和pacemaker安装,参考/278008/845357//278008/850752drbd配置文件参考:global {usage-count yes;}common {protocol C;disk {on-io-error detach;fencing resource-only;}net {cram-hmac-alg sha1;shared-secret "a6a0680c40bca2439dbe48343ddddcf4";}syncer {rate 300M;}handlers {fence-peer "/usr/lib/drbd/crm-fence-peer.sh";after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";pri-on-incon-degr "echo b > /proc/sysrq-trigger";}}resource iscsivg01 {device /dev/drbd1;disk /dev/sdb;meta-disk internal;net {max-buffers 8192;max-epoch-size 8192;sndbuf-size 2048k;unplug-watermark 127;}disk {disk-barrier no;disk-flushes no;resync-rate 150M;c-plan-ahead 200;c-max-rate 200M;c-min-rate 25M;c-fill-target 15M;}on drbd-01 {address 172.16.101.181:7898;}on drbd-02 {address 172.16.101.182:7898;}}注意:c-max-rate 200M;c-min-rate 25M;需要保持平衡,否则会造成同步速率不能上去。
利用DRBD和OpenSSI构建高可用集群系统*龚念袁由光(武汉数字工程研究所武汉430074)摘要为提高集群系统的可靠性和计算性能并降低成本,提出将单一系统映像的集群系统(S i ng l e Syste m I m age)和分布式复制块设备技术(DRBD)结合起来构建一种高可用集群(SSI-DRBD集群)。
这种利用单一系统映像和DRBD技术所构建的集群具有高性能、高可靠、实时性强、易管理和低成本等特点,可作为周期性、高强度和多元信息处理的平台。
关键词DR BD O penSSI LV S SSI root fa il ove r中图分类号TP3911引言集群是利用现有的工作站或高档微机资源,通过高速网络连接构成的并行系统,由于具有用户投资风险小、结构可扩展性好、用户可继承原有的软件资源、编程方便并且构造简单等特点,目前已成为并行处理发展的主流。
现在常用的集群大致分为科学集群、负载均衡集群和高可用性集群三种。
在军用指控系统中,必须采用高可用集群以满足作战要求。
在高可用集群中,为了保证数据的高可靠性,数据的保存大多依赖SAN,NAS等共享存储设备。
一旦采用SAN,NAS,就意味着整个集群成本的提高。
为了满足指控系统的要求并降低成本,本文提出一种利用DRBD技术和两台普通商用PC来构建高可靠的存储设备的方法,以满足我们对数据的高可靠性要求。
除了数据的高可靠性之外,集群的可管理性和易用性对于集群的管理员和用户来说也是一个非常重要的问题,利用分布式系统中的单一系统映像技术,使得管理员和用户像使用一台虚拟的大型计算机一样来管理整个集群,从而具有很好的可管理性和易用性。
2SSI系统设计单一系统影响SSI是由中间件层实现的,处于操作系统和用户层环境中间。
集群中间件负责为独立但互连的计算机对外提供统一的系统映像(单一系统映像)。
整个系统分为三部分,具体个部分的功能如下:第一层:前端机和备份机,运行LVS来进行调度,两者互为备份以提高系统的可用性,是整个系统的信息入口,负责接收客户端请求,并将这些请求按照一定的策略(8种调度算法)分配到集群内部的各处理节点。
第二层:集群内部处理节点的本地操作系统内核和本地进程。
集群内部处理节点的本地操作系统内核以及本地进程负责各个节点的系统自举,提供基本的OS底层调用以及基本的应用软件支持,逻辑上位于集群系统SSI的边界之外。
第三层:SSI(S i n gle Syste m I m age)层,集群系统中间件层,包括全局I PC,全局工作进程S I O S,逻辑上位于集群系统SSI的边界之内。
SSI实现在操作系统内核层,通过修改与I PC对象,进程信号相关的系统调用,集群内部节点相互协作,统一调度,透明的对用户层应用程序提供SSI服务。
3关键技术3.1单一系统映像(OpenSSI)OpenSS I的目标是建立一个可扩展、可用性高、可管理的集群环境。
其核心技术体如下:(一)全局进程I D号:运行在集群环境中的每个进程在整个集群范围内都有自己唯一的PI D。
特别是对于用户、管理人员或某个进程,集群中所有节点上的所有进程都可见、可访问的(/proc目录展示所有进程),就像运行在一台机器上,因此用户可以启动远程节点上的进程,甚至可以将某个节点上正在运行的进程迁移到其它节点上。
(二)文件系统的单一映像:整个集群只有一45第35卷(2007)第8期计算机与数字工程*收到本文时间:2006年10月20日作者简介:龚念,男,硕士研究生,研究方向:并行计算与系统结构。
袁由光,男,研究员,研究方向:计算机系统结构。
个根文件系统(root filesyste m ),该文件系统的目标是让所有节点上的进程看到相同的文件树(fil e sys -te m tree),并且根文件系统在集群范围内都是可见的。
其中/etc /fstab 文件用于记录所有节点上的文件系统,这样可以明确每个节点上有哪些文件系统,还可以记录文件系统在节点间的转移情况,除此之外,系统用/ect/m tab 文件来记录每个文件系统挂接的位置。
(三)全局进程间通讯对象:OpenSSI 集群上所有进程间通讯对象(I PC)在整个集群范围内部都是可共享、可命名的。
这意味着对于信号量、消息队列、共享内存等,它们都在一个名字空间(na m espace)中,并且所有节点都可以使用这些对象。
虽然SSI 集群支持远程设备访问,但每个节点仍然有自己的一组设备(通过dev fs 管理)、设备目录和自己的交换空间(s w ap space)。
(四)虚拟I P 技术:首先,每个节点有多个地址,其中一个地址是用于内核通讯(kerne l-to -kerne l co mm un i c ation)。
这个地址还可以用于MPI 或不同节点上应用程序之间的通讯。
其次,当某个节点发生故障或是从集群中离开时,集群将该节点机网卡的工作转移到其它节点的网卡上,这样集群就能对外提供不间断的服务。
3.2 分布式复制块设备分布式复制块设备技术(DRBD )是由内核模块和相关脚本构成,它可用于构建高可用性集群。
其实现方式是通过网络镜像整个设备,以达到提供高可靠数据服务的目的。
DRBD 和OpenSSI 的搭配使用能够为各种机构和组织提供一个经济有效的高可靠集群服务平台,并且增强应用程序、数据传输和网络服务的可靠性。
DRBD 的工作模式如下:每个设备(drbd 提供了不止一个设备)都有一个状态,可能是/主0状态或/辅助0状态。
在具有主状态设备的节点上,应用程序应能运行和访问设备/dev /nbX (dr bd 的低级别设备)。
每次写入都会发往本地低级别块设备和带有/辅助0状态设备的节点中。
辅助设备只能简单地把数据写入它的低级别块设备上。
读取数据通常在本地进行。
如果主要节点发生故障,利用心跳机制把辅助设备转换到主状态,并启动其上的应用程序。
如果你将它和无日志FS 一起使用,则需要运行文件系统检查程序(fsck)。
如果发生故障的节点恢复工作,它就会成为新的辅助节点,而且必须使自己的内容与主节点的内容保持同步。
当然,这些操作不会干扰到后台的服务。
目前大部分主流高可用性集群(如:惠普、康柏等等)使用的都是共享存储器,存储器连接集群多个节点(用共享的SCSI 总线或光纤通道就可以做到)。
DRB D 也可以作为一个共享设备,但它并不需要任何不常见的硬件。
它在I P 网络中运行,而且在价格上I P 网络比专用存储网络经济的多。
下面我们将利用OpenSSI 和DRBD 这两种技术来搭建一个高可用的SSI-DRBD 集群,并从系统的拓扑结构和配置与测试对整个集群系统作一个详细的介绍。
4 SSI-DRBD 集群拓扑结构与实验结果图1 SSI-DRBD 集群体系结构我们构建的SSI-DRBD 集群的拓扑结构如图1所示。
该集群由n 个计算节点组成,分别是ROOT 1,ROOT 2,NODE 3,NODE 4,,NODE n-1和NODE n 。
其中ROOT 1和ROOT 2是OpenSSI 的监控节点(M on ito r),也是根文件系统(Root F ilesyste m )的挂接点。
在图1中:n 个节点通过交换机连接构成集群,其中配备了DRBD 软件的ROOT 1和ROOT 2成为集群的根文件系统,同时也负责管理、控制整个集群。
它们当中一个作为主控节点(Pr-i m ary node ),另一个作为从控节点(Secondar y node),这两个节点同时可充当计算节点。
实际试验过程当中,我们利用七台普通商用PC 机按照如图一中的拓扑结构构建了一个SSI-DRBD 的集群系统,其中两台计算机作为客户机(CLI E NT )、两台计算机作为主控节点和从控节点,其他三台计算机作为集群的计算节点。
在正常情况下,只有主控节点对外提供集群服务,而从控节点处于热备状态(S tandby),主/从节点上分别配有两块网卡,其中一个作为集群内部联接,另一个对外提供集群服务。
两块对外提供集群服务的网卡应用集群虚拟I P 技术与外网连接,为46龚 念等:利用DRBD 和OpenSSI 构建高可用集群系统 第35卷用户提供单一的虚拟I P地址。
如果正在对外提供服务的主控结点宕机,那么从控节点将立刻接替它的工作,继续对外提供服务,从而提高了整个系统的可靠性和可用性。
4.1系统配置硬件需求:7台普通商用PC机(其中两台需配有双网卡并作为互备根节点)软件需求:DRBD软件、基于OpenSSI的内核源码包、OpenSSI软件和刻有etherboot可光盘引导的光盘(所有软件包拷贝到/usr/src目录下)(1)安装操作系统选取其中一台拥有双网卡的计算机作为节点1,安装RedhatH at Fedora Core2,安装过程中硬盘分区时请注意,/boot区和根目录区必需分开,并且在扩展分区中建立一个drbd的次级设备分区。
最后为两块网卡配置I P地址并修改host n a m e。
(2)安装OpenSS I解压缩OpenSSI软件,进入其目录执行安装命令,安装过程中有两点要注意:首先安装过程中选择的网卡是内联的网卡,用于连到N ode2,其次,一定要选择启用根文件系统失效转移(roo t fa ilover)的功能。
(3)安装DRBD解压缩drbd软件,进入其目录执行m ake in-stall命令安装。
最后创建initrd文件,并修改GRUB启动目录使其能够以新的L i n ux内核启动。
(4)配置节点2将另外一台拥有双网卡的计算机用e t h er boo t 启动,这台计算机作为节点1的备份节点,在N ode1上利用ssi-addnode命令添加第二个节点,注意在配置过程中选择roo t fa ilover。
在N ode2上对其硬盘进行分区使其与节点1的硬盘分区相一致,最后进入Node2的GRUB编辑器修改Node2从本地硬盘启动。
在配置完节点1和节点2后,在节点1上利用ssi-addnode命令集群添加其他三台计算机作为集群系统的计算节点,剩下的两台计算机负责从外网访问整个集群系统,最后启动整个集群系统(ROOT1和ROOT2都从本地磁盘启动)。
至此,整个集群系统配置完毕。
配置过程中需要注意的问题:(1)对于异构的集群系统,根文件系统节点ROOT1和ROOT2非常重要,请选择同为超线程和非超线程的机器,目前为止,DRBD对于超线程和非超线程的机器做DRB D还存在bug,配置将失败。
(2)特别注意在对ROOT1和ROOT2进行硬盘分区时,/boot分区和根目录分区必须划分为两个独立的分区,并且ROOT1和ROOT2的硬盘分区顺序要匹配,容量最好也相当,否则数据镜像将失败。