大家好。我是新爷。
上周我阐述了一下,到底什么是存储,我们这周给大家去讲为什么需要存储系统?
最简单的答案是:存取数据。硬盘不行么?硬盘当然可以,但发展到现在的存储,其实和硬盘有着密不可分的关系。今天听我给大家念叨念叨,存储的发展史跟硬盘有啥关系?
其实早在磁盘诞生没多久,人们存储数据就会有以下的疑问?
1.数据真的是连续写在磁盘上的么?
其实磁盘是个连续的线性“地址空间”,比如你买了一个8TB的硬盘,那么你认为它是一个线性的地址空间,你想从第0字节一直存数据存到底8T-1字节,但磁盘是个块设备,操作单位不是字节,是块,每块512字节/4K字节,我们用这个盘的第0块LBA0到最后一块LBAn来存数据。
但我们是否想过,当我们的数据以文件形式存在时,每个文件都能连续的写在磁盘上么?
想象一下,如果文件是连续的、顺序的写在盘上,那么将来删除文件就会在连续线性地址空间上留下“空洞”,那么一段时间后磁盘的空间里到处都是“空洞”,你可能发现你可能找不到任何一个合适大小的“洞“来存放你的新文件数据了。
还有,假设每个文件的内容看起来都是连续的,但在磁盘上真是连续的么?
答案很显然是否定的。
其实文件是散布在磁盘线形空间中的各个位置上的,这样才可能充分利用磁盘的空间存放数据。
因此一个系统软件要来解决“地址空间”映射问题。这个系统软件让物理上不连续的文件内容在逻辑上让用户看起来是连续的,用户访问数据的时候可以根据任意一个文件相对的偏移迅速找到这部分数据在磁盘上的物理位置。
2、如何在磁盘上找到存储的文件?
由于文件越来越多,每个文件都散落磁盘在不同的位置上,那么如何找到我想要的文件呢?得有个组织结构,比如目录,子目录,文件名,路径组织索引,根据路径我们就能够找到想访问的文件,这就是“名字空间”。
为了解决“名字空间”和“地址空间”的问题,所以诞生了“文件系统”。
文件系统在磁盘上组织“地址空间”和“名字空间”有相当多的技巧,这直接决定了文件系统的可靠性和性能,因此一般文件系统实现的都非常复杂。
这下我们就知道了,拿到个硬盘没法直接用,还得做个格式化,这个格式化其实是帮你做了个文件系统。
所以文件系统是操作系统中的最重要的组成部分,也是最复杂的部分之一。也是存储系统的基础和核心。
其实最初的文件系统都是本地文件系统,也就控制是电脑上单个硬盘的。
但随着数据越来越大,用户的数据越来越多,就又发现了新的问题
1.单个硬盘放不下了,是不是承载数据的一个文件系统可以跨磁盘操作?
2.随着数据也越来越重要,如果单个磁盘损坏能不能不影响数据?
所以存储系统进化了,进化出了基于RAID的存储系统,也就是多盘存储系统。
但其实还是在本地计算机上用多块磁盘组织一个高可靠的线性连续的地址空间,在这个空间上再构建文件的名字空间和文件级别逻辑连续的地址空间。
那是不是就已经可以解决很多问题了。但自古合久必分,存储系统越来越复杂,复杂算法导致计算量越来越大,当然容量要求也越来越大。
计算机本身的算力因为存储消耗与日俱增,内置的硬盘已经无法满足容量需求了。于是,催生了外部存储。什么是外部存储?
其实就是计算设备和存储设备分离,计算主机通过“网络”链接一个外设,这个外设就是外部存储系统。
计算主机通过特定的协议跟外设里面的存储进行通信,进而存取数据。外部存储其实本身也是一个完整的“计算机”,但这个计算机专门负责处理数据存取,负责数据的高可靠和高可用,以及地址空间和名字空间。
外部存储的核心依旧是“文件系统”,是软件。
截止到外部存储系统开始,商人们就看到了上级,就开始制作商业化的外部存储产品了。比如那时候就会有块存储产品(对外是个大盘);有文件存储产品(对外是个文件夹)。
随着计算机技术的不断发展和数据量的持续增加,无论外部存储设备多高端,能力有多强,单个外部存储都有可能无法满足用户数据容量和性能的要求了,这又产生了新问题
1.虽然花钱是可以买存储,买空间,就跟当初产生“多盘存储系统一样”,多套单独的存储系统,但管理和使用都挺麻烦,可不可以同时操作多个外部存储?
2.这些外部存储能够能不能从逻辑上合并成一个“大存储”,也就是说用户操作多套存储设备就跟操作一套系统一样,容量是多套存储之和,性能是多套存储系统的叠加?
那伴随着这些问题,就诞生了“分布式存储”,而文件系统再次进化出了“分布式文件系统”。
截止到这里,其实我们不难发现,存储系统的进化更多是系统软件层面的进化。
存储系统跟存储介质(硬盘,闪存盘)有关系,但主要的核心并不是介质。
最后总结一下,为什么要有存储系统呢?
因为存储系统提供了基本的“地址空间”和“名字空间”,这样才能让我们存取数据。
这也就是存储不仅仅是硬盘,其实真的价值在存储的系统软件上。
也就是为啥存储系统的价格远高于一堆硬盘的价格,真的是硬件特殊么?不见得,硬件基本上都是Intel X86架构,基本上都是通用硬件。
但那些存储系统的控制器硬件和硬盘有成本,但是成本远不及存储系统的价格。
欢迎关注我的公众号:新爷话数据。与我一起来讨论数据的那些事~