虚拟化系列介绍(九)

        这因众多原因而姗姗来迟的虚拟化系列介绍主要介绍存储虚拟化,一般也需要分两篇:本次介绍存储和存储虚拟化,软件定义存储等空洞概念;下篇介绍一下Windows Server 2012在软件虚拟化方面很具有代表性功能和特色。

一、常见存储介绍

       对于企业存储设备而言,根据其实现方式主要划分为DAS、NAS和SAN三种,分别针对不同的应用环境,提供了不同解决方案。

DAS

       DAS(Direct Attach Storage,直接附加存储):是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。


NAS
       NAS(Network Attached Storage, 网络附加存储):是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。例如教育、政府、企业等数据存储应用。


SAN
       SAN(Storage Area Network,存储区域网络):是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速I/O 联结方式, 如 SCSI, ESCON 及 Fibre- Channels。一般而言,SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中,特点是代价高,性能好。例如电信、银行的大数据量关键应用。


       至于以上三种方式的优缺点,里面����嗦嗦说了这么多,但大家看着不一定清晰明了,所以看下面的对比图即可。

二、存储方面相关技术术语

 RAID (Redundant Array of Independent/InexpensiveDisks)

       独立磁盘冗余阵列,是一种将多块独立的硬盘(物理硬盘)按不同的组合方式形成一个硬盘组(逻辑硬盘),从而提供比单块硬盘更大的存储容量、更高的可靠性和更快的读写性能等。按照磁盘阵列的不同组合方式,可以将RAID分为不同级别,包括RAID0到RAID6等7个基本级别,以及RAID0+1和RAID10等扩展级别。不同RAID级别代表着不同的存储性能、数据安全性和存储成本等。下面我们将选择其中几种RAID介绍。
      RAID 0: 简单地说,RAID0主要通过将多块硬盘“串联”起来,从而形成一个更大容量的逻辑硬盘。RAID0通过“条带化(striping)”将数据分成不同的数据块,并依次将这些数据块写到不同的硬盘上。因为数据分布在不同的硬盘上,所以数据吞吐量得到大大提升。但是,很容易看出RAID0没有任何数据冗余,因此其可靠性不高。 

       RAID 1:如果说RAID 0是RAID中一种只注重存储容量而没有任何容错的极端形式,那么RAID1则是有充分容错而不关心存储利用率的另一种极端表现。RAID1通过“镜像(mirroring)”,将每一份数据都同时写到多块硬盘(一般是两块)上去,从而实现了数据的完全备份。因此,RAID1 支持“热替换”,在不断电的情况下对故障磁盘进行更换。一般情况下,RAID1 控制器在读取数据时支持负载平衡,允许数据从不同磁盘上同时读取,从而提高数据的读取速度;但是,RAID1在写数据的性能没有改善。


       RAID 3:与RAID 2类似,不同的是:1)以字节(byte)为单位进行“条带化”处理;2)以奇偶校验码取代海明码。RAID3的读写性能都还不错,而且存储利用率也相当高,可达到(n-1)/n。但是对于随即读写操作,奇偶盘会成为写操作的瓶颈。


       RAID 4:与RAID 3的分布结构类似,不同的是RAID 4以数据块(block)为单位进行奇偶校验码的计算。另外,与RAID2和RAID3不同的是,RAID4中各个磁盘是独立操作的,并不要求各个磁盘的磁头同步转动。因此,RAID4允许多个I/O请求并行处理。 

       RAID 5: RAID 3和RAID 4都存在同一个问题,就是奇偶校验码放在同一个硬盘上,容易造成写操作的瓶颈。RAID5与RAID4基本相同,但是其将奇偶校验码分开存放到不同的硬盘上去,从而减少了写奇偶校验码带来瓶颈的可能性。 


        RAID 0+1: 为了获取更好的I/O吞吐率或者可靠性,将不同的RAID标准级别混合产生的组合方式叫做嵌套式RAID,或者混合RAID。RAID0+1是先将硬盘分为若干组,每组以RAID0的方式组成“条带化”的硬盘阵列,然后将这些组RAID0的硬盘阵列以RAID1的方式组成一个大的硬盘阵列。 


       RAID 10: 类似于RAID 0+1, RAID 10则是先“镜像”(RAID 1)、后“条带化”(RAID0)。RAID0+1和RAID10性能上并无太大区别,但是RAID10在可靠性上要好于RAID0+1。这是因为在RAID10中,任何一块硬盘出现故障不会影响到整个磁盘阵列,即整个系统仍将以RAID10的方式运行;而RAID0+1中,一个硬盘出现故障则会导致其所在的RAID0子阵列全部无法正常工作,从而影响到整个RAID0+1磁盘阵列 �C 在只有两组RAID0子阵列的情况下,整个系统将完全降级为RAID0级别。 

JBOD (Just a Bunch Of Disks)
        JBOD是指在一个底板上安装的带有多个磁盘驱动器的存储设备,类似于RAID,但实质上又不同。因此中文多将其翻译为磁盘簇。JBOD通过SCSI电缆或其他连接方式,将多块磁盘串联起来,组成一个大的逻辑磁盘 。因此,相比起一堆松散的磁盘,JBOD更容易管理。典型的JBOD磁盘系统可以容纳8个或者16个硬盘。连接在这个JBOD上的服务器将所有这些磁盘识别成为一系列单独的磁盘。因此,一个16个硬盘合并的JBOD磁盘系统需要16个设备地址。在一些I/O技术,比如SCSI和光纤环路中,这会引发设备地址不足等问题。
       和RAID磁盘阵列不同,JBOD没有前段逻辑来管理磁盘上的数据分布,每个磁盘都是进行独立寻址。相比较于RAID磁盘阵列,JBOD缺乏数据安全保障和数据分布管理等功能,但是基于其低成本、大容量和易管理等特点,JBOD最近几年在业界还是得到了广泛的使用。 
SCSI (Small Computer System Interface)
       小型计算机系统接口,是一种智能的通用接口标准,定义了一系列用于连接计算机和各种外部设备的命令、协议以及接口规范等,常见用于硬盘和磁带等设备。

      SCSI有多种接口形式,早期主要是并行的SCSI接口(如SPI);在2008年,串行的SCSI接口SAS(Serial Attached SCSI)以其在数据吞吐率方面的潜力和优势取代了SPI。另外,还有SCSI和光纤信道结合产生的FCP协议(SCSI-over-FibreChannel Protocol)。而ISCSI则完全摒弃SCSI在接口上规范,将SCSI的命令和协议等其他部分移植到TCP/IP网络上来,通过普通的TCP/IP网络来传输SCSI的数据和命令等。

FC (Fibre Channel) & FCoE
      光纤信道,是一种用光纤作为媒质的光传输通道,是一种高速网络技术标准。 在初期,FC主要是为高速局域网设计的,现在多用于SAN等存储网络中。光纤信道具有长距离、高速率、低延迟和低错误率等特点。由于以太网的快速发展(千兆网和万兆网的出现和普及)以及存储网络、传输网络的不断融合,现在又出现了以太网光纤通道FCoE(FibreChannel over Ethernet)。FCoE将底层关于传输的协议层FC-0和FC-1完全用以太网协议取代,上面的几个协议层依然不变。FCoE的好处是不需要特殊的FC接口,从而减少了服务器上的网络接口数量,简化了管理配置和降低了功耗等。

三、存储虚拟化

      存储网络工业协会(SNIA:Storage Networking Industry Association)对存储虚拟化技术是这样定义的:通过将一个或多个目标(Target)服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。

      说到这里,可以补充一句:其实所有的存储都已被设备驱动,文件系统,管理工具等“虚拟化”了,因为我们无法识别和使用物理存储介质上的物理“0”和“1”(磁盘上的磁极方向,光盘的凹和凸等)。这里的存储虚拟化,主要是指在已有的传统存储解决方案基础上,应云计算的需求再用一种技术就是将底层存储设备进行抽象化统一管理,向服务器层屏蔽存储设备硬件的特殊性,而只保留其统一的逻辑特性,从而实现了存储系统集中、统一而又方便的管理,而这种技术可以说就是存储虚拟化。对比一个计算机系统来说,整个存储系统中的虚拟存储部分就像计算机系统中的操作系统,对下层管理着各种特殊而具体的设备,而对上层则提供相对统一的运行环境和资源使用方式。

      存储虚拟化是一种新兴的解决方案,它可以在存储系统与服务器之间添加新的软件或硬件层,使应用不再需要了解数据寄存于哪个服务器、分区或存储子系统。管理人员能够识别、提供和管理分散的存储,就像在一个单一、整合的资源中。而通过存储虚拟化,可用性也得到了提高。由于应用没有被局限在特定的储存资源,因此对中断的抵抗能力也迈进了一步。

       除此之外,存储虚拟化还能协助对存储容量的预期进行自动化,降低了人工作业的需求。存储资源可以在不影响绩效的前提下获得更新,大幅减少了当机时间。

四、软件定义存储

       软件定义存储 (Software Defined Storage,SDS)说白了就是存储虚拟化的一种实现方式,软件定义存储可以说就是软件管理并控制后端的硬件,通过API向用户提供接口。也是当今被热炒的一个概念,如VMware今年宣布将收购总部位于加州桑尼维尔的虚拟化存储公司Virsto就是证明。

       软件定义存储NetApp很多年前就在做,如ONTAP,它的主要功能就是耦合存储服务和存储硬件设备。特别是ONTAP和亚马逊的云服务结合之后,NetApp在所谓的软件定义存储上做的更为不错。

       存储虚拟化的基本概念与其他很多虚拟化相似。存储不再只服务于指定的服务器,或者指定的虚拟机;软件让存储资源池化,并使得集中管理存储资源成为可能。结果对于虚机来说,各种异质的存储组件对外呈现为单一的资源,省去了分别管理不同存储盘的麻烦。

五、存储虚拟化的实现

    存储的虚拟化可以在三个不同的层面上实现,包括了基于专用卷管理软件在主机服务器上实现,或者利用阵列控制器的固件(Firmware)在磁盘阵列上实现,再或者是利用专用的虚拟化引擎在存储网络上实现,可见对应着我上面所说的三种存储结构方式DAS,NAS和SAN。

       基于主机的存储虚拟化技术

       基于主机的存储虚拟化技术由主机操作系统下的逻辑卷管理软件在服务器上完成(安装客户端软件Agent),经过虚拟化的存储空间可以跨越多个异构的磁盘阵列。

这种类型的虚拟化通常由主机操作系统下的逻辑卷管理软件(logical volume manager)来实现。它们在Windows操作系统上也提供类似的卷管理器,Unix服务器上已经有多年的广泛应用。

       对于信息系统规模较大,所使用的主机类型和应用软件种类较多,而且对系统性能和稳定性要求比较高的企业或部门来说,不太适合使用基于主机的存储虚拟化技术。但我们最能接触和体验的是该类型的存储虚拟化技术,如Windows Server 2012,所以下一篇将以此为中心再展示一下存储虚拟化的魔力。

       基于存储设备的存储虚拟化技术

       当有多个主机服务器需要访问同一个磁盘阵列的时候,可以采用基于存储设备的存储虚拟化技术。此时虚拟化的工作是在存储设备的控制器上完成,通过在存储设备控制器中添加虚拟化功能,将一个存储设备(如磁盘阵列)上的存储容量划分为多个存储空间(LUN),供不同的主机系统访问。

       智能的存储设备控制器提供数据块级别的整合,同时还提供一些附加的功能,例如:LUN Masking、缓存、即时快照、数据复制等。对于数据量较小,存储设备单一,适合使用基于存储设备的存储虚拟化技术。

       基于存储网络的存储虚拟化技术

       基于存储网络的存储虚拟化技术通过在存储域网(SAN)中添加虚拟化引擎实现。虚拟化引擎是一个或多个独立的设备,对多个存储设备和数据进行管理,并向多台主机提供数据存储和访问的界面。

基于存储网络的虚拟化是近年存储行业的一个发展方向。与基于主机和存储设备的虚拟化不同,基于存储网络的虚拟化功能是在存储局域网络(SAN)内部完成的,基于存储和基于主机的两种虚拟化方法的优点都可以在存储网络虚拟化上同时体现,它支持数据中心级的存储管理以及异构的主机系统和存储系统。


        好了,昏天暗地、空洞乏味的名词术语介绍完毕,今天到此结束,忙工作去!

你可能感兴趣的:(虚拟化)