一种分布式文件存储系统的探索与应用

时间:2022-08-23 04:38:19

一种分布式文件存储系统的探索与应用

[摘 要]为了提升私有云环境下文件存储系统的可用性,降低拥有成本,通过对比分析提出了基于开源软件MooseFS(MFS)设计的分布式文件存储系统的解决方案。在独立二层网络内,部署六台普通配置的X86机架式服务器,把服务器本地小容量硬盘聚合成一个存储容量为1.7TB的网络硬盘。通过实例验证,该方案能提供优于传统集中式存储的读写性能。通过创新的部署实践,进一步提升了系统的容错能力和易用性。加之利旧企业存量服务器大幅降低了建设运维成本,证明了这一选型能够满足云环境下对文件存储系统高可用、低成本的需求。

[关键词]MooseFS;分布式存储;云计算;文件存储;虚拟化

[DOI]10.13939/ki.zgsc.2017.12.036

当前,企业数据中心仍主要采用以FC-SAN为代表的集中式存储设备。但随着云技术的快速落地,特别是在企业私有云建设中,集中式存储阵列的疲态明显。

(1)性能提升代价大。处理性能的提升与容量的增长非线性关系。

(2)扩容成本高。专用存储设备换代快,且绑定硬件厂商,只能进行存储的scale-up,扩容费用高。

(3)维护成本高。专用存储运维需要设备制造商专门的服务,年维保费用往往很高,设备生命周期总体拥有成本高。

(4)单点故障。本文将探索一种类似Google分布式文件系统GFS[1]的分布式存储系统,通过横向分析对比同类技术后择优选型,然后在特定场景部署实例,验证其替代传统集中式文件存储的可行性,解决上述问题。

1 分布式文件存储概述及对比

“分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务。”[2]

2 MFS分布式文件存储概述

2.1 MFS功能架构

MFS整体架构有四种角色[3]:Managing servers(master servers)、Data servers(chunk servers)、Metadata backup server(s)(metalogger server)、Client。

2.2 MFS读写原理

3 安装部署MFS实例

3.1 集群规划及拓扑

在独立二层网络内,部署六台普通配置的X86机架式服务器,服务器本地硬盘在100~400GB。所有服务器通过一台低端二层以太网交换机单链路互联,组合成一个总容量1.7TB的逻辑存储。提供网络文件系统服务,如图1所示。

3.2 MFS集群安装

有芍职沧胺绞娇晒┭瘢汗俜饺砑库安装、源码编译安装。本文采用软件库安装方式。集群软硬件配置如表2所示。

安装步骤:

(1)添加yum key:curl "http:///RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS

(2)下载软件库配置文件:

curl "http:///MooseFS-3-el6.repo" > /etc/yum.repos.d/MooseFS.repo

(3)分别在不同节点安装所需软件包:

yum install moosefs-master moosefs-cgi moosefs-chunkserver moosefs-client moosefs-cgiserv

(4)启动服务:

service moosefs-*** start

3.3 集群配置使用

(1)修改Chunkserver节点的mfshdd.cfg文件。加入本地文件系统目录作为集群的一个独立的存储空间,如:/data_volumn1、/data_volumn2……MFS会把所有Chunkserver的本地文件目录整合起来,提供统一的存储空间对外服务,容量是所有目录的总和。

(2)在Master添加对外服务的存储路径。即设置共享目录。修改mfsexports.cf:

* /accesspath rw,alldirs,admin,maproot=0:0,/accesspath为MFS系统中实际存在的数据目录。

(3)客户端。MFS提供原生Linux客户端。由于MFS需要工作在用户级的文件系统上,所以需要安装FUSE模块。通过Linux的系统软件库安装即可,yum-y install fuse fuse-libs。然后,加载fuse模块,modprobe fuse。至此,可以挂载MFS存储了,mfsmount /mnt/clientmountpoint/-H 10.10.2.201-S /accesspath。

MFS不提供Windows客户端,不支持Windows环境,以成为其扩大影响力的一大短板。通过深入探索测试,通过Total Commander及mfs4tcdbg两个第三方软件组合的形式,成功实现在Windows里通过Total Commander管理界面直接访问MFS存储。使用方式类似FTP。图3 MFS集群读数据原理

4 实例验证

4.1 目标验证

(1)读写性能好。数据多副本使读性能比单台服务器提升显著,且随数据节点增加基本实现线性提升。如图5所示。

在相同环境下测试,传统集中式存储读速度一般在100MB/S左右。可见,MFS分布式存储只需要低端千兆以太网络就可以达到比集中式光纤网络存储更高的速度,且写速度基本与之持平,方案的性价比明显。

(2)扩容成本低。MFS各组件的大部分版本可组合使用。原理上可以用较低版本的集群组件匹配较老旧的服务器。因此,可以使用任何品牌、任何年代的标准X86机架服务器加上标准以太网二层交换机就可以方便地进行集群在线横向扩展。

(3)维护成本大幅降低。当前主流集中存储运维价格不低于500/T/年,组网至少需要两台FC-SAN交换机,还需专门的存储运维人员。本文实例所用6台服务器都均已使用超过6年,硬件成本忽略不计。低端二层交换机1台,价值约1000元。软件均为开源版本,无费用。系统配置确定后,运行基本无须人工干预,后续运维费用的产生仅来源于在网硬件的损耗。

(4)多节点冗余容错架构。进行多种暴力破坏测试,通过Metalogger的元数据副本及集群配置信息副本恢复集群后,数据始终不丢失,架构始终保持完整,预期RTO为15分钟。同时,通过回收站、快照功能还可以保存数据最近的多个版本,避免人为误操作导致的数据丢失。

4.2 创新实践及后续工作

在MFS标准部署模式基础上提出探索性的部署方式。

(1)一个MFS集群中部署多个Metalogger元数据日志服务器,通过Linux Bash脚本实现元数据的自动备份及自动向集群内其他多个服务器的拷贝,确保了集群最重要信息的安全。

(2)Metalogger备份服务与数据服务Chunkserver、客户端Client、时间同步服务NTP等混合部署于一台服务器,提升了服务器资源利用率及集群总存储容量。

(3)合理配置服务器本地硬盘。由于集群能管理到各服务器本地单个硬盘,建议添加到集群存储池的硬盘无须做本地RAID,把每块物理硬盘作成单独的存储卷直接加入集群。一来可避免RAID后硬盘可用容量的损失及RAID卡性能(如:更换硬盘后重做RAID效率等)、故障问题;二来能够更直观高效地进行所有硬盘的负载管理及维护。同时更好发挥所有硬盘同时独立读写的高性能。但集群包含大量硬盘,手工逐个硬盘去维护维护工作量很大且效率低。需要编写Linux Bash脚本实现各主机所有硬P的自动格式化,自动挂载文件目录,大大简化了运维工作,避免手工误操作,提升集群管理效率和可用性。因此,建议所有数据存储服务器配置容量大、数量多的硬盘,至少3TB×10块SATA硬盘。再辅以SSD加速设备,实现较高性价比。

同时我们也看到一些有待改进的问题。比如,集群自带管理门户使用方便,但无鉴权,后续将通过Tomcat、IIS等中间件部署管理程序,增加鉴权页面,用户输入正确的验证信息才能跳转到管理系统页面,实现鉴权功能。

5 结 论

通过横向对比及实例验证,选择一个具有比较优势的分布式文件存储系统;现有MFS、GFS等有中心节点[5]设计的分布式文件存储的问题在于,尽管管理节点主备部署实现了元数据保护,但集群配置文件无保护,容错机制不够完善。本文通过实例验证了“1个管理服务器+N个元数据日志服务器”的部署模式,使元数据更安全。同时借助脚本技术实现集群配置数据的自动备份和在多个节点服务器上的保存。增强了集群故障恢复能力和效率;实现Windows环境里对MFS存储数据的直接访问,解决了主流分布式文件存储都不支持Windows客户端的问题。

通过分布式文件存储系统的部署,实现了笔者单位当前云环境下文件存储系统可用性的提升及拥有成本的大幅降低,将逐步在文件存储的应用上推广使用。

参考文献:

[1]杨传辉.大规模分布式存储系统原理解析与架构实战[M].北京:机械工业出版社,2013.

[2]杨传辉.大规模分布式存储系统原理解析与架构实战[M].北京:机械工业出版社,2013.

[3]Core Technology Development & Support Team.MooseFS 2.0 Users Manual[EB/OL].https:///Content/Downloads.

[4]Core Technology Development & Support Team.MooseFS 3.0 Users Manual[EB/OL].https:///Content/Downloads.

[5]叶毓睿.软件定义存储原理、实践与生态[M].北京:机械工业出版社,2016:211.

[作者简介]陈正举(1982―),男,汉族,北京人,硕士研究生,工程师。研究方向:基础应用系统及云计算ICT基础设施架构。

上一篇:公益微电影的正能量传播研究 下一篇:房地产本身是不会投资保值的