随着医院电子病历系统(EMR)和放射科信息系统 (RIS)在医疗信息化中发挥越来越重要的地位,临床对 这两套系统的依赖性也与日俱增。这两套系统的信息 实际上存储在郇服务器内,保证ftp服务器的7*27小 时可用性与数据的完整性成为医院信息化工作的重要 课题。 传统的解决方式是使用服务器集群加共享存贮介 质的方式实现,这种实现方式需要外置存储设备用来 给集群提供共享磁盘,由于外置磁盘柜的价格较为昂 贵,造成这种方式成本较高,且单个外置磁盘本身也存 在单点故障风险。 本文介绍一种基于DRBD(DistributedReplicated BlockDevice)的Linux双机集群方式,使用DRBD在两 台运行heartbeat的服务器上通过专用网络建立起操 作系统级的软件RAID1。Heartbeat负责管理服务器资 源及主备切换,DRBD负责在服务器内置磁盘之间同 步数据。· 1系统设计 本系统使用两台运行vsftpd的Linux服务器 (CentOS5.6),机器名分别为:ftp201和ftp202进行系 统设计。ftp201和ftp201用ethO连接客户网络,用ethl 直连用作数据同步,两台服务器虚拟地址192.16.3.1 对外提供ftp服务,两台服务器使用相同的磁盘分配策 略,单独分配一块分区(/dev/sda3)通过ethl进行数据 同步,heartbeat在eth0上单播在ethl上广播心跳,如 图l所示: ![]() 2数据同步软件DRBD DRBD是一个用软件实现的、无共享的、服务器之 间镜像块设备内容的存储复制解决方案。DBRD的核 心功能通过Linux的内核实现,最接近系统的IO栈。 在DRBD中,资源是特指某复制的存储设备的所有方 面,包括资源名称、DRBD设备(/dev/drbdm,这里m是 设备最小号,最大号可到147)、磁盘配置(使本地数据 可以为DRBD所用)、网络配置(与对方通信),每个资 源有个角色,“主”和“备”。主角色的DRBD设备可以 不受限制的读和写,比如创建和映射文件系统、对于块 设备的raw或直接IO访问,备角色的DRBD设备接受 来自对方的所有修改,但是不能被应用程序读写,甚至 只读也不行。DRBD在LinuxIO栈中的位置如图2所 示,应用程序对DRBD设备(/dev/drbdm)的写分为两个 流:一个直接对本地磁盘操作;另外一个通过网络传送 到对端DRBD设备后写入备机磁盘。 ![]() 3高可用性集群软件heartbeat 高可用集群是指一组通过硬件和软件连接起来的 独立计算机,它们在用户面前表现为一个单一系统,在 这样的一组计算机系统内部的一个或者多个节点停止 工作,服务会从故障节点切换到正常工作的节点上运 行,不会引起服务中断。Heartbeat项目是Linux—HA工 程的一个组成部分,它实现了一个高可用集群系统, heartbeat模块实现了集群节点间通信、集群资源管理 等功能。 按照图l的机构图配置两台服务器的心跳方式及 地址,集群资源,保证备服务器通过heartbeat检测到 主服务器发生故障时能正确进行资源的接管,包括IP 地址接管、DRBD磁盘接管、服务程序接管。 4测试 启动ftp2Ol与ftp202,两台机器的drbd服务在启 动过程中会互相等待,启动完毕后按照配置文件的要 求ftp201成为主服务器,ftpO2O成为备服务器。 4.1拔出主机网线 ftp2O]heartbeat提示ping失败,ftp201释放资源 成为备机;ftp2O2heartbeat显示其接管资源成为主机; 两机drbd显示ftp202成为第一资源,ftp2ol成为备用 资源;两机数据同步正常,ftp201在恢复后保持备机状 态;测试过程中服务器中断服务30秒。 4.2切断主机电源 ftp201heartbeat提示主机失效,并接管资源成为 新主机;drbd显示ftp2O2成为第一资源,没有备用资 源;ftp201关闭期间更新的数据,在恢复后自动从 ftp202同步;测试过程中服务器中断服务30秒。 4.3拔出心跳线 ftp2O~drbd显示其为第_二.资源,没有备用资源, ftp2O2drbd显示其为备用资源,没有第一资源;同步失 效期更新的数据在恢复后,ftp2Ol自动从ftp2O2同步; 测试过程中服务器正常提供服务。 4.4拔出主机网线与心跳线 |