本文正在参加“最佳上云实践”评选,来给我们投票吧:https://yq.aliyun.com/activity/158(编号18)
上云方案调研
针对以上需求,我们共设计了三种方案来从不同层面满足,分别是:本地文件服务器、自建文件服务器和阿里云文件存储服务。
1. 本地文件服务器方案
该方案需要在本地IDC中部署计算节点、网络交换机和存储节点,维护独立的硬件设备和文件服务的集群。本地文件服务器方案的架构图如下。
计算节点是由普通X86服务器或者运行在X86服务器上的虚拟机构成,可以自己配置计算节点的规模和客户端类型。存储节点支持广泛的连接协议,足够支持Windows客户端、Linux/Unix客户端和Mac客户端。
网络交换机通常是10GB/40GB的规格,用两台相同的交换机达到冗余部署,保证可用性。
存储节点是由专业存储厂商生产的产品,提供文件服务的能力。例如EMC的Isilon, Netapp的FAS系列产品等。存储节点可以是双控存储服务器,也可以是具有分布式集群的存储服务集群,集群内部使用InfiniBand网络或者10GB网络传输数据。存储节点可以提供高性能的文件存储服务,且支持多种文件协议。
2. 自建文件服务器方案
申请公有云的ECS和云盘,在此之上单件单机版或者具有一定HA能力的文件存储服务。自管理云解决方案的架构图如下。
自建文件服务器方案使用提供文件系统接口和对文件的共享访问权限的第三方软件利用阿里云ECS和云盘搭建的文件服务器。
这种解决方案的管理软件通常在阿里云ECS实例上运行,再利用阿里云块存储的云盘作为底层存储组件。
由于需要提供HA的能力,需要两份相同的资源,两个ECS实例分别作为提供文件存储服务的服务器,两块数据盘分别挂载到两个ECS实例提供数据存储能力。
除此之外,该方案还需要维护复杂的HA的能力和稳定性,保证任何一个文件服务器不是单点故障。即:当其中Primary文件服务器出现网络不同或者宕机等故障的时候,Backup文件服务器要立即响应上层的服务请求,同时保证数据一致性。
3. 阿里云文件存储服务方案
依据阿里云的公有云资源,提供高可用、高可靠、稳定和安全的文件存储服务,并提供集成的解决方案支持和售后技术支持服务。阿里云文件存储功能块图如下。
阿里云文件存储是基于阿里云飞天平台的分布式共享文件系统。具有高可靠、高可用、多共享、单一命名空间、具备无限容量与性能横向扩展、能提供标准的POSIX文件访问协议,不需要对现有应用做任何修改即可使用。
在NAS server发生failover的时候,NAS服务会秒级自动切换到其他NAS server上。
最终选型
下图是这三种方案的特点和优势对比:
针对以上三种解决方案,最终我们选择了第3种,使用阿里云文件存储,因为:
阿里云文件存储服务是基于飞天系统的分布式文件系统,具有高可用、高可靠、线性的横向扩展能力;
阿里云文件存储针对小文件系统的共享访问做过深度优化,能够存储亿级别的海量小文件,提供多达500个客户端的共享访问能力,综合QPS可以达到万级别。
悦跑圈的云端架构
下面是悦跑圈的业务架构图: