虚拟化内存早在2002年就被认为是值得关注的技术之一。时至今天,它更是成为HDS、HP、IBM、SUN、VERITAS等存储软硬件厂商的研究重点之一。从小到数据块、文件系统,大到磁带库、各种服务器和阵列控制器,都有虚拟化存储的影子。同时,存储虚拟化并不像几十年刚出现一般是还只是一个概念。今天,它代表的是一种实实在在的领先技术,甚至被人们看作是继SAN(存储区域网络)之后的又一次技术新浪潮。
虚拟化存储顾名思义就是把多个存储介质/模块(如内存、硬盘、SDD)通过一定的手段集中在一个存储池(Storage Pool)中得到统一管理。从服务器和工作站的角度,看到的不是多个硬盘,而是一个统一的分区或者卷,就如同一块超大容量的硬盘。这种可以对多种存储介质、存储设备实现统一管理,为使用者提供大容量、高数据传输性能的存储系统就被称为虚拟存储。
虚拟化存储原理图
早期的虚拟内存技术可以使应用程序认为其自身拥有连续可用的地址空间。而实际上,应用程序的代码和数据可能是被分隔成多个碎片页或段,甚至被交换到磁盘、闪存等外部存储器上,即使物理内存不足,应用程序也能顺利执行。现在所有的x86 CPU都包含了一个称为内存管理的模块MMU(Memory Management Unit)和TLB(Translation Lookaside Buffer),通过MMU和TLB来优化虚拟内存的性能。
为了实现内存的虚拟化,虚拟机需要增加一个新的内存虚拟化层。也就是说,必须虚拟MMU来支持客户操作系统。客户操作系统继续控制虚拟地址到客户内存物理地址的映射,但是客户操作系统不能直接访问实际的物理内存。VMM负责建立客户机虚拟内存到物理内存的映射,通过影子页表来加速执行的效率,从而避免了每次访问进行的两次翻译过程。当客户操作系统更改了虚拟内存到物理内存的映射表,VMM也会更新影子页表来启动直接查询。在支持虚拟化内存硬件辅助技术的处理器的支持下,查询的效率获得了显著的提升,从而使得虚拟化内存的运作更高效。
虚拟化的网络存储架构为企业带来更高效、更低成本的存储新模式
现在,在内存虚拟化的基础上,虚拟化存储技术已经扩展到整个存储领域,包括服务器端、存储子系统端以及网络设备端的虚拟存储。虚拟存储可以提供了一个大容量存储系统集中管理的手段,由网络中的一个环节(比如服务器)进行统一管理,避免了由于存储设备扩充所带来的管理方面的麻烦。例如,在一般的存储系统中,当要增加新的存储设备时,整个系统(包括网络中的诸多用户设备)都需要重新进行繁琐的配置,才可以使这个“新成员”加入到存储系统之中。而使用虚拟存储技术,增加新的存储设备时,只需要网络管理员对存储系统进行较为简单的系统配置更改,客户端无需任何操作,感觉上只是存储系统的容量增大了。
而对于视频网络系统来说,虚拟存储的价值在于它对访问带宽的提升。存储系统是由多个存储模块组成,虚拟存储系统可以很好地进行负载平衡,把每一次数据访问所需的带宽合理地分配到各个存储模块上,这样系统的整体访问带宽就增大了。例如,一个存储系统中有4个存储模块,每一个存储模块的访问带宽为50Mbps,则这个存储系统的总访问带宽就可以接近各存储模块带宽之和,即200Mbps。而虚拟存储技术也能为存储资源的管理提供更好的灵活性,可以将不同类型的存储设备集中管理使用,保障了用户以往购买的存储设备的投资。
除此之外,虚拟存储技术可以通过管理软件,为网络系统提供一些其它有用功能,如无需服务器的远程镜像、数据快照(Snapshot)等。因此,虚拟存储被广泛地应用于:数据镜像、同步以及恢复等领域,通过对整个系统存储的整合获取更大的价值。