基于FreeNAS和NextCloud的云盘系统设计与实现
陈雪华 孙赫 黄静 王俊
摘? 要:网络和信息化技术的发展催生了大容量存储和高速数据安全共享备份需求。结合日常工作需求,在局域网环境下利用简易硬件设备和开源软件,设计了一种基于FreeNAS和NextCloud的云盘系统,给出了详细的搭建和部署过程,并使用第三方IO测试工具对系统读写性能进行了测试。测试结果表明,设计的云盘系统能够满足一般日常办公数据共享使用,是一种业务化小型云存储解决方案。
关键词:FreeNAS;NextCloud;云盘;云存储
中图分类号:TP333 文献标志码:A? ? ? ? ?文章编号:2095-2945(2020)21-0008-04
Abstract: The development of network and information technology has given rise to the demand for large-capacity storage and high-speed data security sharing backup. According to the requirements of daily work, a cloud disk system based on FreeNAS and NextCloud is designed by using simple hardware equipment and open source software in LAN environment. The detailed construction and deployment process are given, and the third-party IO testing tools are used to test the reading and writing performance of the system. The test results show that the designed cloud disk system can meet the general daily office data sharing and use, and it is an operational small cloud storage solution.
Keywords: FreeNAS; NextCloud; cloud disk; cloud storage
随着网络和信息化技术的发展,在线网络数据和离线业务数据积累迅速增多,由此催生了大容量存储和高速数据共享的迫切需求。云盘是一种能够实现数据便捷存储、共享、备份的新型解决方案,具有存储容量大、功能丰富等特点,在现实中得到了广泛的应用。随着云计算技术的发展,大型互联网公司和运营商纷纷推出基于云存储的在线云盘应用,例如百度网盘、天翼云盘、苹果iCloud、Google Drive等。一方面,这些在线云盘能够面向个人和企业用户提供高效地存储服务,满足了部分用户需求;另一方面,依托公有云的各类存储服务却带来了一定的网络安全风险[1-3]。近年来,网盘和云存储相关的数据泄露事件频发,例如2010年苹果公司用户隐私数据泄露、2011年谷歌邮箱用户数据泄露,使得用户账户被重置、聊天纪录和邮件被删除。因此,对企业而言,涉及敏感和商业机密的数据更适合存储于私有网盘内。综上,本文作者结合工作需要,利用简易硬件设备设计实现了一种基于FreeNAS和NextCloud的云盘系统,能够有效满足大多数个人或小型公司的数据共享、同步和备份需求。
1 系统概述
1.1 FreeNAS
FreeNAS是一款开源免费的专门用于构建NAS存储服务器的专业操作系统。它基于FreeBSD开发,主要运行在x86-64架构的计算上,采用ZFS(Zettabyte File System)文件系统存储、管理和保护数据。ZFS系统提供了轻量级快照、压缩、重复数据删除等高级功能,可以快速的将数据增量备份到其他设备,带宽占用少,可有效帮助系统从故障中恢复。FreeNAS支持CIFS、AFP、NFS、iSCSI、SSH、rsync、WebDAV、FTP/TFTP等多种文件共享和传输协议,能够适用于企业文件共享、为虚拟化服务提供后端存储等应用场景。应用FreeNAS,办公电脑可通过网络映射等传统方式访问其文件系统,但FreeNAS存在缺少应用端Web界面、可视化数据管理不方便等不足[4]。
1.2 NextCloud
NextCloud是一套用于创建网络硬盘的客户端-服务器开放源代码软件,其功能与Dropbox相近。与Dropbox等专有服务相比,Nextcloud的开放架构让用户可以利用应用程序的方式在服务器上新增额外的功能,用户可以完全掌握和管理自己的数据。此外,NextCloud提供了易用的Web界面和客户端软件,方便用户直观的共享、下载和同步数据,同时还具有加密和工作流管理等功能[5]。
1.3 硬件设备
搭建云盘系统的硬件包括EMC CX-80磁盘阵列1组、曙光300光纤通道交换机1台、联想P710工作站(内存:16GB,CPU:3.4GHz)2台。
2 设计云盘系统总体架构
本文设计的基于FreeNAS和NextCloud的云盤系统总体架构如图1所示。设计系统的核心主要包括存储平台、云盘服务两部分。
2.1 存储平台
存储平台向下整合硬件存储资源,向上为云盘服务提供底层基础支撑。它由存储服务、扩展服务、系统监控组成。存储服务提供卷管理、文件系统等功能;扩展服务提供负载均衡、故障转移等功能;系统监控提供存储故障报警和检测功能。
2.2 云盘服务
云盘服务能够在存储平台之上,向用户应用层提供友好可视化的WEB操作界面、数据同步/备份/共享、全文搜索、视频会议、在线文档编辑等功能。
整个系统的网络拓扑如图2所示。工作站1的HBA卡和磁盘阵列均连接至光纤通道交换机,其万兆网卡接入办公业务系统交换机的万兆网口,通过网络为云盘应用提供存储服务。工作站2的万兆网卡接入办公业务系统交换机的万兆网口,为业务办公终端提供可视化云盘应用服务。
3 设计云盘系统部署实现
3.1 磁盘阵列设置
(1)在磁盘阵列中利用EMC Navisphere Manager软
件,进入磁盘阵列管理界面,如图3所示。(2)识别工作站1的光纤接入信息,并在管理界面注册该设备。(3)创建RAID组,选择磁盘数量,形成多个RAID组,为了充分发挥磁盘阵列性能,在RAID组创建过程中,平均分配至磁盘阵列的两个控制器中。(4)创建卷,并绑定上述RAID组。(5)创建Storage group,并将卷加入该RAID组。(6)在Storage group选择连接主机,将工作站1加入该RAID组。至此,磁盘阵列完成配置,并确保工作站1能够发现并使用存储空间。
3.2 存儲平台
首先安装FreeNAS 9.10操作系统,并设置局域网IP;之后,通过“卷管理器”创建卷,将发现的“可用磁盘”纳入该卷管理,并完成多路径配置;随后,创建用户并分配不同的权限;最后,根据需求开放FTP、NFA或SMB服务(图4a)。此时网络中的终端能够通过目录形式访问该存储空间,如图4b所示。
3.3 云盘服务
工作站2安装Centos7.2操作系统,通过NFS挂载FreeNAS共享的存储空间。在此基础上安装NextCloud(版本为12.0.3),完成后创建用户,并将NextCloud数据目录指向上述存储空间;最后,根据工作需要对NextCloud源码进行二次开发,完善业务应用。安装完成后的云盘系统界面如图5所示。
4 存储性能测试
通过网络中的一台服务器(内存:32GB,CPU:Xeon(R) E5-2630 v4 @ 2.20GHz),利用第三方IO测试工具FIO对搭建云盘系统的存储性能进行了测试,带宽测试结果如表1、图6所示。
通过测试,该云盘系统在单线程、双线程和四线程并发情况下,顺序读速率均超过170MB/s。受限于前端工作站性能,并发20线程后其聚合带宽呈缓慢下降趋势。由于业务办公多为文档、图片,持续大数据量并发应用较少,根据实际运行情况,可支撑200余用户数据共享使用。
5 结束语
给出了一种基于简易硬件设备和开源系统的云盘系统设计方案。首先阐述了系统总体架构和网络拓扑结构,然后结合FreeNAS和NextCloud等开源技术,详细给出了软硬件部署和系统搭建过程,并使用第三方IO测试工具FIO对不同线程读写性能进行了性能测试。测试结果表明,设计的云盘系统能够满足一般日常办公数据共享使用。
参考文献:
[1]Jansen W, Grance T. Guidelines on Security and Privacy in Public Cloud Computing[J].National Institute of Standards and Technology, 2011(3):149-151.
[2]Ertaul L, Singhal S, Saldamli G. Security in cloud computing[C]. Security and Management, 2010:36-42.
[3]Takabi H, Joshi J B, Ahn G J. Security and privacy challenges in cloud computing environments[J]. IEEE Security & Privacy, 2010,8(6):24-31.
[4]https://www.getnas.com/what-is-freenas/[EB/OL].2019-12-19.
[5]https://www.getnas.com/what-is-nextcloud/[EB/OL].2019-12-11.