原创文章,转载请注明: 转载自 镜中影的技术博客
本文链接地址: 传统存储系统发展史调研
URL:http://blog.csdn.net/linkpark1904/article/details/49276709
每一个技术的进步势必伴随着市场需求的不断扩张,这里存储系统的技术演进和IT系统的需求息息相关,既有对于存储设备硬件本身的改善和演进,同样也有上层针对存储设备组织构建的存储系统的设计与实现。
要理解存储系统的演化史,一个比较重要的线索就是探索存储设备的演化史,关于存储硬件,常见的无非是硬盘(HDD),内存(RAM),固态硬盘(SSD),闪存(FLASH)等,硬盘和内存是相对出现比较早的存储介质。
第一个存储设备是IBM在1956生产的机械硬盘,具体如下图所示:
早期的硬盘很庞大,单位面积存储数据量很有限,但是随着技术的发展,存储密度逐渐增加,而存储的成本却逐年下降,如下图所示:
左边的表格反应了存储硬件的存储密度每年的增长趋势,这个趋势满足计算机领域一个很重要的定律—摩尔定律(单位面积上晶体管的数量没1.5年翻一倍)。相应的,右边的图表反应了单位存储容量的价格在逐年下降,这个和左边的图息息相关,制造工艺上的提高和制造成本的减少,直接导致右边图表所示的结果,相比而言,传统的存储介质(纸张)其单位存储容量不可能有太大的提升,在1996年,数字化存储比传统的纸张存储更高效,更便宜。
那么在早期,存储系统主要关注的点在于,如何降低存储设备的造价,如何增加单位面积上的存储量。随着存储技术的提升,慢慢的存储硬件的发展速度已经赶上了通信以及CPU的发展速度,如下图所示:
于是,存储关键技术有所转变,上层的存储管理系统所占整体存储系统的成本越来越大,如下图所示,在1984年,存储管理系统占的成本比重以及在2000年存储管理系统所占的成本比重。
当然,对于存储介质本身,经过这么多年的发展,除了传统的HDD外,新兴存储介质诸如SSD,RAM,NVM(非易性内存),在存储密度上逐年上升,单位存储价格也在逐年下降。并且在读写效率上,SSD随机读写效率要远高于HDD,RAM读写效率是这几种存储介质中最高的,但是RAM存在掉电丢数据的风险,在可靠性要求较高的系统中还是不能没有持久存储的设备。于是为了弥补RAM的缺陷,NVM出现了。新兴存储设备的出现,势必会影响上层存储系统的设计实现,下面再来看看传统的存储系统发展的趋势。
在1984年存储系统中上层管理系统(storage administration)所占成本比例为1/3,但是在2000年的时候,存储系统中的存储管理系统占比上升为2/3,于是,研究重点从单纯的提高存储密度,降低存储成本发展成为对存储系统本身(存储管理系统的设计与实现,更多的是软件层面)的研究。
早期的存储设备是直接被CPU所控制的,这种方式存在诸多的问题。在1964年,System/360* 首次引进了额外的存储控制单元(control unit),CPU通过I/O指令来对硬盘进行控制,同时,控制单元还提供缓存机制,缓解CPU,内存,磁盘速度不匹配问题。
随着数据规模的逐渐增加,人们对于存储的需求越来越大,单个磁盘的存储已经无法满足一些大数据场景的需求。在90年代早期,RAID(redundant array of independent disks 磁盘阵列)技术出现了,RAID是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。早期的RAID只是单纯的把两块磁盘利用起来,利用数据分条技术,提高整个磁盘的性能和吞吐量。这种方式不会对数据进行校验,对数据进行冗余备份,后来几乎所有的IT系统都需要进行容灾恢复,所以,对数据的备份显得尤为重要,这里RAID就提供RAID1级别,做基本的镜像备份,在不影响性能情况下最大限度地保证系统的可靠性和可修复性。
在80年代末期以及90年代早期,互联网技术得到了极大的发展,局域网技术使得局域网内传输数据的代价较低,在单机存储系统无法满足日益增长的数据存储需求后,网络存储成为了首选。在单机文件系统上衍生出了NFS(Network File System),NFS可以让不同的主机之间共享文件系统,这种网络数据共享协议,直接催生了网络存储系统的诞生(NAS Network-attached storage system),一些比较经典的协议包括NFS,CIFS(HyperText Transfer Protocol),HTTP(HyperText Transfer Protocol),FTP(File Transfer Protocol)。
当然NAS系统相对比较容易构建,这些网络协均处在应用层,只需要在相应的服务器上部署响应的应用就可以构建出一套NAS系统。具体NAS系统存储方案如下图所示:
NAS系统相对的还是基于应用层网络协议,没办法将存储系统单独分离出来(C/S结构)。这个时候出现了专用存储网络(SAN storage area network),SAN的一个优势在于,在工程上可以将存储系统和服务进行分离,形成一个存储池。具体如下图所示:
SAN和NAS的区别在于,SAN是存储网络,作为一个整体,对外提供存储服务,而NAS是存储系统,一般提供文件访问服务。SAN本身可以提供面向块设备也就是类似普通磁盘(SCIS)和面向文件(NAS)的存储产品,一个SAN和NAS的混合使用场景如下所示:
对比可以明显发现,在NAS系统中存在明确的C/S模型,NFS Server需要提供NFS server服务,同样,在NFS Client上需要提供NFS Client服务。SAN对外提供相对隔离的服务,不同的块之间是无法共享数据的,在有些应用场景下会造成很大的浪费。那么,为了解决这个问题,很容易想到的是,将每个单机维护的文件元数据信息提取出来,单独维护一个全局的元数据信息,这就催生了SAN文件系统,早期的SAN文件系统实现是IBM公司的Storage Tank技术,如下图所示:
客户机想要挂载IBM 的SAN文件系统需要在VFS层或者IFS层增加相应的代码。