存储虚拟化 (Storage Virtualization) 最通俗的理解就是对存储硬件资源进行抽象化表现. 按虚拟化对象划分, 虚拟化存储实现方式主要有三种.
基于主机的虚拟存储
基于主机的虚拟存储依赖于代理或管理软件, 它们安装在一个或多个主机上, 实现存储虚拟化的控制和管理. 由于控制软件是运行在主机上, 这就会占用主机的处理时间.
因此, 这种方法的可扩充性较差, 实际运行的性能不是很好. 基于主机的方法也有可能影响到系统的稳定性和安全性, 因为有可能导致不经意间越权访问到受保护的数据.
这种方法要求在主机上安装适当的控制软件, 因此一个主机的故障可能影响整个 SAN 系统中数据的完整性. 软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销, 所以这种方法的灵活性也比较差.
但是, 因为不需要任何附加硬件, 基于主机的虚拟化方法最容易实现, 其设备成本最低. 使用这种方法的供应商趋向于成为存储管理领域的软件厂商, 而且目前已经有成熟的软件产品.
这些软件可以提供便于使用的图形接口, 方便地用于 SAN 的管理和虚拟化, 在主机和小型 SAN 结构中有着良好的负载平衡机制. 从这个意义上看, 基于主机的存储虚拟化是一种性价比不错的方法.
基于存储设备的虚拟化
基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块. 如果没有第三方的虚拟软件, 基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案.
对于包含多厂商存储设备的 SAN 存储系统, 这种方法的运行效果并不是很好. 依赖于存储供应商的功能模块将会在系统中排斥 JBODS(Just a Bunch of Disks, 简单的硬盘组)和简单存储设备的使用, 因为这些设备并没有提供存储虚拟化的功能.
当然, 利用这种方法意味着最终将锁定某一家单独的存储供应商.
基于存储的虚拟化方法也有一些优势: 在存储系统中这种方法较容易实现, 容易和某个特定存储供应商的设备相协调, 所以更容易管理, 同时它对用户或管理人员都是透明的. 但是, 我们必须注意到, 因为缺乏足够的软件进行支持, 这就使得解决方案更难以客户化 (customization) 和监控.
基于网络的虚拟存储
1) 基于互联设备的虚拟化
基于互联设备的方法如果是对称的, 那么控制信息和数据走在同一条通道上; 如果是不对称的, 控制信息和数据走在不同的路径上. 在对称的方式下, 互联设备可能成为瓶颈, 但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾. 同时, 多重设备管理环境中, 当一个设备发生故障时, 也比较容易支持服务器实现故障接替. 但是, 这将产生多个 SAN 孤岛, 因为一个设备仅控制与它所连接的存储系统. 非对称式虚拟存储比对称式更具有可扩展性, 因为数据和控制信息的路径是分离的.
基于互联设备的虚拟化方法能够在专用服务器上运行, 使用标准操作系统, 例如 Windows,SunSolaris,Linux 或供应商提供的操作系统. 这种方法运行在标准操作系统中, 具有基于主机方法的诸多优势 -- 易使用, 设备便宜. 许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能, 能够获得比标准操作系统更好的性能和更完善的功能, 但需要更高的硬件成本.
但是, 基于设备的方法也继承了基于主机虚拟化方法的一些缺陷, 因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器, 任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据. 同时, 在异构操作系统间的互操作性仍然是一个问题.
2) 基于路由器的虚拟化
基于路由器的方法是在路由器固件上实现存储虚拟化功能. 供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力. 在此方法中, 路由器被放置于每个主机到存储网络的数据通道中, 用来截取网络中任何一个从主机到存储系统的命令.
由于路由器潜在地为每一台主机服务, 大多数控制模块存在于路由器的固件中, 相对于基于主机和大多数基于互联设备的方法, 这种方法的性能更好, 效果更佳. 由于不依赖于在每个主机上运行的代理服务器, 这种方法比基于主机或基于设备的方法具有更好的安全性.
当连接主机到存储网络的路由器出现故障时, 仍然可能导致主机上的数据不能被访问. 但是只有联结于故障路由器的主机才会受到影响, 其他主机仍然可以通过其他路由器访问存储系统.
路由器的冗余可以支持动态多路径, 这也为上述故障问题提供了一个解决方法. 由于路由器经常作为协议转换的桥梁, 基于路由器的方法也可以在异构操作系统和多供应商存储环境之间提供互操作性.
来源: http://virtual.51cto.com/art/201806/577345.htm