云存储服务的可用性云存储服务的可用性——从又拍网看云存储服务从又拍网看云存储服务
云”这个概念在今年非常的火热,2年前国内的云存储服务还只有又拍云存储一家,如今国内已不下十家,面对如此多
的云服务商,选择云服务的标准成了大家比较关注的问题。我们很荣幸在InfoQ与大家交流一些心得。
我们在六年的云服务经验基础上沉淀了三个词:安全稳定、快速、易用。
一、安全稳定
云服务的安全隐患大致会出现在两个方面:第一是服务的持续可用;第二是数据的丢失和泄漏。
今年很多云服务平台屡屡爆出服务宕机或丢失数据的问题,这让大家对国内云服务更加的不放心, 其实云计算并不应
该存在这类严重问题,云计算的主要使命之一恰恰是解决稳定和安全隐患问题。如SAE类PaaS云计算平台是保障我们
网站应用的正常服务,高度容错且可扩展,而又拍云存储则属IaaS类云计算平台,存储数据的稳定和安全保障是云存
储最主要的工作。
先说持续可用性的保证问题。无单点是一个云服务的基础,而目前很多云服务是单点的,所以致使故障频发。一个真
正的云计算平台至少应该保证有两个互相热备的数据中心,三分以上分布不同机柜和机房的数据,在机房引入的线路
上也应该保证至少电信、联通有两根以上的线路。只有这样才能保证不论是机房断电、硬盘故障、还是断线,都能保
持持续的访问。另外就是对于服务器集群的部署上要实现负载的均衡,可采用服务器HA互备,lvs进行4层负载,7层
nginx进行一致性hash及冷热文件调度,一旦有服务器出现硬件故障,前端调度会自动识别并剥离出集群,确保不影响
用户每一次的实际访问。
为充分发挥Nginx的7层代理的优势,我们在此基础上加入了较多的业务模块,如:一致性HASH模块,根据业务需求
通过请求信息进行计算,把请求统一分发到后端缓存服务器,避免使用普通负载均衡方式而导致缓存命中率降低,可
大大提高缓存集群的业务处理能力;缓存调度模块,基于LRU和MRU算法对全局的所有访问URL进行热度分类,从客户
端发起的请求到达Nginx就能快速确定该请求是否属于热门缓存,而直接到SSD磁盘获取资源;统计模块,在Nginx内部
对所有访问URL进行统计并汇总,定期向后端业务系统发送统计报告,使得我们可以对客户提供实时的流量统计查询
服务,这也是服务计费的标准;
再说数据的安全和泄漏问题。安全性的解决主要是通过多样的备份机制,像云存储主要依托在不同服务器上实现动态
的实时三备份,也就是说会自动搜寻用户的数据是否存在3份,如没有自动选取服务器生成,这种机制可以完全的保证
数据的安全。数据泄漏是使用第三方云计算的最大忧虑,因为云计算的API开放性,决定了云计算服务在安全性上的隐
患更加大。目前通用的解决办法是采用128位AES加密码保护,以及权限控制,但是其实目前还没有绝对的办法可以杜
绝数据部署在云上的泄漏问题。云存储目前主要是托管用户的公开数据,及网站上本身提供给用户访问的数据。
二、快速