基于开源软件构建高性能集群NAS系统

大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展。非结构化数据目前呈现更加快速的增长趋势,IDC研究报告分析指出,到2012年非结构化数据将占到数据存储总量的80%以上。集群NAS是一种横向扩展(Scale-out)存储架构,具有容量和性能线性扩展的优势,已经得到全球市场的认可。从EMC对ISILON、HP对IBRIX、DELL对Exanet等收购事件,以及IBM推出SONAS、NetApp发布Data ONTAP 8,都可以看出集群NAS已经成为主流存储技术之一。在国内,我们也看到UIT UFS、龙存LoongStore、九州初志CZSS、美地森YFS等集群NAS解决方案。集群NAS的未来潜在市场巨大,在高性能计算HPC、广电IPTV、视频监控、云存储等行业领域将逐步得到广泛应用。这些商业集群NAS系统固然很好,在性能、可用性、扩展性、易用性、管理性以及服务和支持方面都很不错的表现,但往往成本也很斐然,很多大企业都消受不起,更别提那些中小企业了。受益于近年来开源存储软件的蓬勃发展,我们完全可以使用普通的服务器、存储和网络设备,DIY出低成本的高性能、高扩展、高可用集群NAS系统,敢于商业集群NAS系统相媲美。本文将基于Glusterfs, NFS, Samba, CTDB, LVS等开源软件构建集群NAS系统。

系统总体架构

整个集群NAS主要由集群文件系统、高可用NAS集群、LVS负载集群三个逻辑部分组成,如图1所示。集群文件系统使用glusterfs,它具有全局统一命名空间、高性能、高可用、高扩展等特点,它最大特点是采用无元数据服务设计。集群NAS系统基于标准的NFS/CIFS/HTTP/FTP等协议来提供数据访问服务,这里采用NFS/Samba/Httpd/vsftpd开源软件来,多个物理节点通过CTDB构建成高可用NAS集群。集群负载均衡使用国人主导开创的LVS系统来实现,对外使用单一IP提供服务。综合采用Glusterfs, NFS, Samba, CTDB, LVS这些开源软件系统,我们可以构建出于毫不逊色于商业系统的集群NAS系统。图1所示的系统总体架构,逻辑上由三个独立物理集群构成,实际构建部署中这三个集群位于同一个物理集群上,以上这些开源部署在所有节点上。如此,即可有效提高每个节点的利用效率,更为重要的是能够大大节约成本。本文余下部分将详细解说如何基于开源软件构建一个具有三个节点的集群NAS系统。

基于开源软件构建高性能集群NAS系统

图1 集群NAS系统总体架构

集群文件系统
“集群”主要分为高性能集群HPC(High Performance Cluster)、高可用集群HAC(High Availablity Cluster)和负载均衡集群LBC(Load Balancing Cluster)。集群文件系统是指协同多个节点提供高性能、高可用或负载均衡的文件系统,它是分布式文件系统的一个子集,消除了单点故障和性能瓶问题。对于客户端来说集群是透明的,它看到是一个单一的全局命名空间,用户文件访问请求被分散到所有集群上进行处理。此外,可扩展性(包括Scale-Up和Scale-Out)、可靠性、易管理等也是集群文件系统追求的目标。在元数据管理方面,可以采用专用的服务器,也可以采用服务器集群,或者采用完全对等分布的无专用元数据服务器架构。目前典型的集群文件系统有SONAS, ISILON, IBRIX, NetAPP-GX, Lustre, PVFS2, GlusterFS, Google File System, LoongStore, CZSS等。集群文件系统是构建集群NAS的底层核心部分,在开源集群文件系统方面,Lustre, Glusterfs, Ceph, MooseFS等是主流,我们这里选择glusterfs进行构建集群NAS。

基于开源软件构建高性能集群NAS系统


图2 glusterfs系统架构

GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。Glusterfs的主要特征包括:高扩展性和高性能、高可用性、全局统一命名空间、弹性哈希算法、弹性卷管理、基于标准协议,技术实现特点包括:完全软件实现、完整的存储操作系统栈、用户空间实现、模块化堆栈式架构、原始数据格式存储、无元数据服务设计。关于glusterfs更多信息请参考"Glusterfs集群文件系统研究"一文 见

Glusterfs集群文件安装配置详细过程如下:
(1) 安装软件    
    从下载glusterfs软件,源码及安装包均可。下面以glusterfs-3.2.5.tar.gz源码进行安装,在所有brick server操作均相同。
   

cd /opt/   yum install flex bison   wget http://download.gluster.com/pub/gluster/glusterfs/LATEST/glusterfs-3.2.5.tar.gz   tar xvzf glusterfs-3.2.5.tar.gz   cd glusterfs-3.2.5   ./configure   make & make install   service glusterd start   chkconfig glusterd on  


(2) 系统配置
    在其中一个节点进行,假设为192.168.1.54,其他两个节点为192.168.1.55和192.168.1.56

gluster volume info (测试glusterd服务是否运行正常)   gluster peer probe 192.168.1.55 (将192.168.1.55加入集群)   gluster peer probe 192.168.1.56 (将192.168.1.56加入集群)   gluster peer status  


(3) 系统测试
    创建一个卷并进行mount测试,假设在192.168.1.54上进行

gluster volume  create testvol 192.168.1.54:/gluster/testvol 192.168.1.55:/gluster/testvol 192.168.1.56:/gluster/testvol   glsuter volume start testvol   mount -t glusterfs 192.168.1.54:/testvol /mnt/   mount (查看所的挂载的文件系统)   df -h (查看挂载文件系统的容量信息)  


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

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