分类: 服务器与存储
2008-07-30 05:26:08
虚拟磁带柜(Virtual Tape Library,简称VTL)是近年来兴起的众多磁盘备份(Backup to Disk)解决方案中,最受瞩目的一项,虽然VTL问世的时间不过两年多,在国外却是相当热门的产品,从市场面来看,主要的储存设备供货商都开始开发VTL产品线,包括外接式磁盘储存系统的几大知名厂商Infortrend等以及多家磁带储存设备大厂。
相较于国外的炙手可热,VTL在国内的知名度并不高,对大多数企业IT人员来说,VTL仍是陌生的名词,真正了解这项技术以及所能带来效益的人并不多。事实上已经有不少厂商在国内市场推出VTL,也有用户导入VTL的成功案例,我们将在这期的企业采购特辑中一一介绍。
VTL的三种类型
目前市场上的虚拟磁带柜依照架构不同,大概可以分为三种类型:磁盘阵列型(Disk Array Based)、应用服务器型(VTL Appliance)、备份软件型(Backup Software)。
磁盘阵列型
顾名思义,它是以磁盘阵列为基础发展的虚拟磁带柜,透过内建于磁盘阵列控制器(RAID Controller)内的虚拟软件,将储存空间仿真成磁带柜具备的所有特征。这类型的虚拟磁带柜用户以大型企业为主,采用光纤信道主机接口,支持FC SAN储域网络环境,储存容量通常在数十TB以上,有的甚至可达上百TB。
应用服务器型
透过安装在PC服务器上的虚拟磁带软件,将服务器内的硬盘,或是可被服务器控制的外接磁盘阵列,做为存放备份数据的虚拟磁带空间。由于软件架构在标准的x86平台和Linux操作系统上,成本相对较便宜,而且储存装置的限制较低,只要服务器支持,可以采用任何SCSI或光纤信道接口的磁盘阵列,与备份服务器端可以藉由SCSI、iSCSI或光纤信道等传输接口相连,部署应用上较有弹性。这类型产品相当多,国外有Maxxan SVT 100、Diligent VTF Open,国内也有精业、耐特普罗等系统整合厂商推出软硬件合一的虚拟磁带柜。
备份软件型
直接将虚拟磁带功能整合至备份软件内,目前仅有Bakbone NetVault支持这项功能。由于纯粹是依靠软件来达成仿真磁带的目的,运用上相当具有弹性,不但没有最大容量限制,可仿真的磁带柜数量、磁带数量与每卷磁带容量也都是无限的,只要储存空间足够,亦不限定需采用何种厂牌的储存系统,不过这类方案的限制是无法和其它厂牌备份软件搭配使用。
从技术上来看,或许有人会质疑VTL存在的必要性,理由是纯粹要提升备份/还原速度的话,硬盘对硬盘(Disk to Disk,简称D2D)的备份就可以作得到,虚拟化的意义是什么?事实上VTL的好处不光只是在效能,更重要的是在成本与管理两个层面。
VTL基本知识介绍和技术发展趋势
为能在主机的操作系统底层以磁盘空间仿真出可被视为实体的虚拟设备,多数的VTL产品都是透过仿真实体磁带设备响应系统指令的方式,来使系统认为响应的是一台实体磁带设备。
以储存设备常见的SCSI接口来说,由于系统是与驱动接口或API沟通,而不直接面对SCSI装置,因此只要仿真程序能在与系统沟通时「骗」过驱动接口,就能将某一类型的SCSI装置仿真成另一类型的SCSI装置,如把硬盘仿真成光盘等。
以仿真SCSI指令响应的方式来虚拟SCSI装置
SCSI装置与主机沟通的方式则是透过所谓的SCSI指令(SCSI Commands)来进行。如当某SCSI装置接上系统,并安装好驱动程序后,应用程序或操作系统就可透过ASPI驱动程序或功能相似的API送出「INQUIRY」指令,要求该SCSI装置传回本身的信息。透过SCSI装置响应讯息中装置型态码(Peripheral device type)字段的数值,系统即可得知该装置的类型。所以只要VTL软件能模仿实体磁带装置响应系统的SCSI指令格式,将磁带响应的装置型态码送回给系统(如在ASPI中磁带设备的装置型态16位代码是01h),就能使系统将VTL视为实体的磁带装置。
不过这只是单就系统辨识SCSI装置的部分,由于不同的SCSI装置间的SCSI指令有所差异,如磁带机有倒带(REWIND),光驱有拨放音乐(PLAY AUDIO)指令等,因此当以硬盘仿真这些装置时,光是骗过驱动接口是不够的,仿真程序本身也必须能够提供相应于被仿真装置的完整指令,才能确保虚拟出来的装置能够正常动作。
由于SCSI指令都是以指令描述块(CDB,Command descriptor block)的格式来表示,因此仿真软件的关键就在于收到主机送来的CDB后,是否能正确的提供与所欲仿真装置相同的CDB响应。
理论上只要VTL响应CDB的方式与真的磁带机一样,则在应用程序看来,VTL就等同于像是一台真的磁带机般在执行动作。
由于SCSI的使用环境限制大、扩充性也较小,因此实际上的VTL解决方案都是透过光纤信道(FC)或iSCSI来实现。我们以iSCSI架构的VTL为例来作一说明:
iSCSI是将SCSI指令封装在TCP/IP的封包中,可允许IP主机透过TCP来存取储存设备,在IP网络中实现SCSI指令的传输与操作,因而在iSCSI的指令封包(PDU)中也封装有SCSI的指令描述块CDB,因此基于iSCSI的VTL仿真程序也就可以依照前面所述的方式,仿真实体磁带装置响应CDB的方式,来使iSCSI主机判断VTL为依真正的磁带设备,VTL仿真程序会依照所仿真的磁带类型、规格,以映像(mapping)方式对应磁盘与磁带的存取区块(block),当iSCSI主机要求读取磁带上特定区块的数据时,VTL软件就能透过映像把磁盘上相应的区块取出,送回给主机。
SCSI指令支持完整与否是虚拟装置的关键
比较麻烦的是在SCSI规范中除标准指令外,格式中还保留有让供货商自行定义的部分字段,不同厂商的设备都会有各厂商自行定义的指令,因此VTL软件必须保存有各式磁带设备的完整SCSI指令与参数,针对不同厂商的磁带设备准备不同的SCSI指令,才能确保在仿真不同的磁带设备时,能正确的运作。
以仿真SCSI指令响应的方式来虚拟SCSI装置
SCSI装置与主机沟通的方式则是透过所谓的SCSI指令(SCSI Commands)来进行。如当某SCSI装置接上系统,并安装好驱动程序后,应用程序或操作系统就可透过ASPI驱动程序或功能相似的API送出「INQUIRY」指令,要求该SCSI装置传回本身的信息。透过SCSI装置响应讯息中装置型态码(Peripheral device type)字段的数值,系统即可得知该装置的类型。所以只要VTL软件能模仿实体磁带装置响应系统的SCSI指令格式,将磁带响应的装置型态码送回给系统(如在ASPI中磁带设备的装置型态16位代码是01h),就能使系统将VTL视为实体的磁带装置。