本文作者Howard Marks是Networks Are Our Lives公司的首席科学家。这家公司总部位于新泽西州霍博肯,从事顾问工作。1987年以来,他一直专注于系统的分析和写作。
在本世纪刚开始的那几年,块存储还非常简单。在一个RAID(独立磁盘冗余阵列)集中,一个控制器加入一组磁盘驱动器,然后提供固定大小的RAID块作为LUN(逻辑单元号)的卷。控制器在将卷中的块映射到一个物理位置的时候所要做的就是计算从RAID集开头到卷开头和RAID条带。随着现代存储系统加入自动精简配置、自动分层和重复数据删除等功能,事情没那么简单了。
当你听到块存储厂商说"统一存储系统拥有所有的文件开销因为它们像文件那样存储iSCSI(互联网小型计算机系统接口)或光纤通道LUN"的时候,那么他们指的是如今的块存储阵列必须跟踪的文件系统元数据。
要运行任何新的RAID+功能,阵列控制器都需要一个元数据基础,看起来很像文件系统那样。以重复数据删除为例来说,阵列必须将数据分解成4K到1MB的块,解算出哪些块存储的是同样的数据,然后构建一个指针列表将LUN逻辑块地址映射到所储存的块。
自动分层要求更多的元数据,因为系统必须跟踪数据块的逻辑块地址,而这些数据块分处在不同的存储类型上的不同的RAID集中。除了要解算出哪些是必须升级到更快的存储层的热数据和哪些是必须降级的冷数据外,系统还必须收集访问频率元数据。
对于可怜的存储管理来说这意味着什么?首先,这解释了为什么磁盘阵列需要更强的处理器来提供更好的性能。如果你的厂商说你不能在旧系统上运行分层或压缩,那么他可能不是在夸大其词,而是真的需要更强的处理器。
其次,它还意味着那些相比那些需要抽象层来进行自动精简配置的传统设计来说,更有优势的设计是使用块进行数据保护并在一些驱动器上映射5个数据块和1个校验块而不是像Compellent、3PAR(某种程度上还有惠普的EVA)那样向RAID集分配驱动器
不过,最大的影响是:在广泛条带化、重复数据删除化、自动精简配置化和自动分层化的阵列上,没有像顺序I/O这样的东西。你的数据不是在RAID集内驱动器的同一个磁轨上。高速缓存、闪存和智能软件使得系统可以像顺序I/O那样提供数据,但是旧的工具,比如Windows卷的碎片整理,不再有效。
现在已经到了21世纪,我们需要随时关注趋势变化。"过去我们做事的方式"在将来不一定还有效。