现在有大量的企业采用共享存储服务器NFS的方式,来对应用数据进行网络存储,但这存在性能瓶颈和单点故障的问题,于是分布式文件存储管理系统开始流行起来。其优点是不言而喻的,本文为大家推荐了开源的分布式文件系统MFS,与NFS相比它是一种多对多的关系,这样一来,性能大幅提升,同时可靠性也高了许多!相信对大家有所帮助。
大家都知道,目前MFS元数据服务器存在单点问题,因此我们可以通过DRBD提供磁盘及时同步,通过HeartBeat提供Failover,来达到高可用。
相信DRBD大家都有了解过,DRBD(Distributed Replicated Block Device)是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中. 本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用.在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了.
DRBD的工作原理如下图:
+----------+
| 文件系统 |
+----------+
|
V
+-------------+
| 块设备层 |
| (/dev/drbd1)|
+-------------+
| |
| |
V V
+------------+ +-------------+
| 本地硬盘 | | 远程主机硬盘|
| (/dev/sdb) | | (/dev/sdb) |
+------------+ +-------------+
至于MFS更多的知识可以差看相关资料!这里不再多说!这里只是说明下MFS文件系统的组成!
MFS文件系统的组成:
1、元数据服务器。在整个体系中负责管理管理文件系统,目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后MFS能支持多个master服务器,进一步提高系统的可靠性。
2、数据存储服务器chunkserver。真正存储用户数据的服务器,存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定,建议设置副本数为3)。 数据服务器可以是多个,并且数量越多,可使用的"磁盘空间"越小,可靠性也越高。
3、元数据日志服务器metalogger。 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作,在1.6版中新增加的功能。
4、客户端。使用MFS文件系统来存储和访问的主机称为MFS的客户端,成功挂载MFS文件系统以后,就可以像以前使用NFS一样共享这个虚拟性的存储了。
整个系统架构图如下:
通过这个图我们也可以看出整个架构的环境:
当前系统:CentOS5.8 x86_64
mfs-master(主机)
eth0:192.168.8.200(对外)
eth1:192.168.125.200(对内,HA专用)
DRBD镜像分区:/dev/sdb
mfs-bak(备机)
eth0:192.168.8.201(对外)/
192.168.125.201(对内,HA专用)
DRBD镜像分区:/dev/sdb
虚拟浮动VIP:192.168.8.210
前期准备工作:
1. 在主服务器的/etc/hosts文件中加入如下内容:
192.168.8.200 mfs-master ha01
192.168.125.200 ha01
192.168.125.201 ha02
192.168.8.201 mfs-bak ha02
2. 更新系统组件和依赖包
[root@mfs-master ~]# yum -y install gcc gcc-c++ bison patch unzip mlocate flex scanner generator automake autoconf kernel-headers kernel-devel
3.元数据服务器建立一块用于挂载drbd设备的硬盘(先不要格式化操作)