note:网上有很多关于软件定义存储的负面消息。有人说,在存储发展的历史中,存储早就不仅仅是硬件了,软件在存储中有一个核心的地位;还有人觉得应该做软件隐藏的存储,因为软件这个事让存储的管理变得很难,这些软件包括:重复数据删除,自动精简配置等;也有些人说,我们并不需要更多的软件,我们需要看到的是更少的软件;也有人说,存储本来就是软件定义的,所有的存储都需要软件;尤其是当存储成为分享资源时(大数据和数据中心的存储),往往会被复杂而神秘的软件包围。很多人说,每次更新系统时,就会增加越来越多的存储软件,从快照到复制再到自动精简配置等。
而当我怀着不太乐观的情绪,看了IOFlow论文[1]的摘要的时候,特别惊喜。对于上面所有的对于软件定义存储的疑惑都通通打消了。
Overview
在现在的数据中心中,应用程序到存储设备的I/O路径都特别长,其中包括很多的层次或者说是stages,具体是怎样的可以点击这里,而且这些层次之间的接口还是不透明的(就像隧道),这使得要enforce一个end-to-end的policy (比如对于不同的tenant,需要不同的存储带宽,比如热数据和冷数据,比如存储服务的不同等级的客户)很难(相对于软件定义网络的控制逻辑而言,因为网络包的头部很好处理)。相对于SDN的OpenFlow,这里设计了IOFlow,在hypervisor阶段和storage server阶段进行实施。
break:对疑问的解释是,IOFlow不是单纯的增加软件,而是用软件去管理不透明的软件和硬件,从而实现管理和监控,看到的软件当然也就更少了(只有控制器的程序,还可以方便的监控)。而且更新系统的时候,这些存储软件根本就不需要更新啦,逻辑都在控制器上。