IT人都应该了解的存储知识

存储作为一个非常普遍、非常重要的IT领域,因为其复杂性,可能把很多人拒之门外。所以让非存储领域的IT人都能懂存储是一种需求。本文大致按照历史的脉络来介绍存储系统的发展,希望对大家有帮助。

从一个硬盘说起

从大家接触的第一台台式机或者笔记本电脑开始,就在自己的硬盘上存储信息了,一个硬盘就是我们最早接触的“存储系统”。但是只是硬盘不够靠谱,因为我们知道硬盘损坏也是常有的事。即便现在的硬盘技术也是能够在应对某个局部区域损坏的情况下做出修复,但是无法恢复的故障还是是有发生。怎么在单个硬盘可能存在故障的情况下,仍然保证数据完整呢?

RAID技术诞生了

为了解决在一个盘故障下的数据保护问题,RAID技术诞生。从1987年刚开始出现到现在RAID技术已经发展了30多年,刚开始的RAID1相当于多写一份,可以允许其中一块盘故障,RAID5利用校验机制降低了RAID1的数据存储成本问题,等等。从RAID的技术发展上我们就可以看出用户对存储系统的几个需求:持久性高、可用性高、性能高、成本低等。但是RAID技术只能解决单机的数据保护,如果一台机器坏了,那这台机器的RAID组可能也会丢失,或者只是一段时间无法访问,但这也足够使我们烦恼。这里我们看到,存储系统地设计初衷,不仅仅面临数据保护问题,而且面临随时需要的数据的读写访问问题。

单机内冗余机制

单机继续演化,从以前的单处理器,单内存条,单网卡,单磁盘阵列,单电源等,到所有组件都有一到多份冗余,即使单个组件,单边访问链路损坏,也不会有数据丢失和数据无法访问的问题。这就是集中式的传统存储系统。从某种程度上说,我们可能满足了所有的存储需求,或者说是满足了某个时代大家对存储系统的需求,毕竟集中式传统存储也已经发展了几十年时间。但是后来互联网、物联网发展起来,数据量呈现爆发式增长,传统集中式存储虽然以其高可靠性、高性能著称,但是其应对超大数据量如何快速扩缩成了问题,而且超大数据量带来的存储成本问题变得非常重要。另外一点,再可靠的单机式存储,在面对机柜、交换机、甚至机房的故障时,也是无能为力的。

分布式存储

快速扩缩容问题、成本问题、更大的故障容忍需求,促使分布式存储出现,并得到快速发展。分布式存储相比传统存储,消除了厂商锁定,更多地依赖于软件,其硬件只是使用通用服务器。正是因为其不用依赖专用硬件,也没有中心节点,其扩容缩容能力很强。按需扩缩容满足了业务需求,也是降低了存储使用成本,以往的硬件lisences成本也省掉了。分布式集群中都是体积较小的通用服务器,可以很容易进行跨机柜、跨交换机、甚至跨机房组建集群,以实现很高的故障容忍能力。当然在满足更多需求的同事,分布式存储也引入了更多需要解决的问题。跨节点的冗余机制和成本问题、节点之间数据量和读写负载均衡问题、扩缩容对线上负载的影响问题,这些都是需要在分布式存储软件上需要解决的。