怎样衡量一个存储系统的好坏呢?以下指标是专业人员常用的指标。
持久性(Durability)
在存储行业的从业人士看来,数据是有生命的,用户将数据托付给我们,我们就要对用户数据的生命负责。存储业务不赚钱可以不做,但只要做存储就要对数据持久性负责。
这就像航空公司必须将飞行安全置于最高优先级一样。哪怕是飞机晚点、空姐服务不好,也千万不能飞机掉下来。航空公司哪怕已经严重亏损,只要航班还在飞,该做的飞机养护就必须做,该配两个机长就一个都不能少,发现任何影响飞行安全的故障宁愿赔款也不能飞。总之,飞行安全是最高优先级。
同样,存储产品、技术、服务的最高优先级就是数据持久性,要对用户数据的生命负责。
“对用户数据的生命负责”这句话不能只停留在口头上,要落实在行动上。一个存储系统,第一重要的就是要设计一套数据持久性保障性机制,使得存储用户的数据随时处于可靠的保障之中,这样才能保证数据不丢,而不是听天由命。换句话说,凡是没有设计数据持久性保障机制的存储系统,都是还没入门的非专业系统。
数据持久性一般用达到多少个9表示,用如下公式计算:
Durability=100%-AFR
其中AFR(Annual Failure Rates)是年故障率,AFR=1%时,数据持久性为99%,也就是2个9;AFR=0.1%时,数据持久性为99.9%,也就是3个9。每多1个9,持久性增加10倍。
一般桌面级存储系统可以达到2个9的持久性,企业级存储(RAID5/RAID6)可以达到4到7个9的持久性,分布式存储(例如Ceph/HDFS)可以达到11个9的持久性,WAN存储(例如YTFS)可以达到15个9以上的数据持久性。最近大热的IPFS由于缺乏数据持久性保障机制,数据持久性还停留在听天由命的阶段,热数据持久性很高,冷数据持久性等同于桌面级存储,总体大约在2到3个9的样子。
安全性(Security)
数据安全性的意思是数据不被人偷,即未经授权的人员拿不到数据,或者即使拿到也只能得到数据密文,无法破译出数据明文。
对中心化存储系统来说,安全性并不是必备特性,因为存储系统完全处于其所有者的管控之中,并且可以通过网络安全措施(如防火墙)和系统安全措施(如OS安全)来防止被外人偷。尽管网络安全措施和系统安全措施不如数据安全措施可靠,但也能满足大多数应用场景的需求,所以存储系统一般不考虑数据安全机制的设计,最多增加一个数据加密接口。
对于WAN存储系统来说,情况就完全不一样了。不仅数据在公网上传输随时可能会被截获,而且存储节点极为分散,很多都是非常轻量级的边缘节点,不可能对每个存储节点采取高强度的网络安全和系统安全措施。这时最好的方法就是像比特币一样干脆放弃网络安全和系统安全措施,完全依靠基于密码学的数据安全措施。
存储系统如果没有内生的安全性保障机制,依靠外在的安全产品,是很难做好安全性的。最好是在系统原生就设计了完备的数据安全体系,可以实现全程加密、无缝加密、零知识加密,并自带完备的密钥管理系统,可以全程管控所存储数据的全生命周期。
包括传统分布式存储在内的中心化存储大都没有任何数据安全机制,少数系统有非常不完备的数据安全机制,例如只有简单的加密,没有密钥管理系统。在WAN存储系统中,YTFS有内生的、完备的数据安全体系,但IPFS也没有数据安全体系。