虚拟存储技术

虚拟存储技术

随着围绕数字化、网络化开展的各种多媒体处理业务的不断增加,存储系统网络平台已经成为一个核心平台,同时各种应用对平台的要求也越来越高,不光是在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。

为达到这些要求,一种新兴的技术正越来越受到大家的关注,即虚拟存储技术。

其实虚拟化技术并不是一件很新的技术,它的发展,应该说是随着计算机技术的发展而发展起来的,最早是始于70年代。由于当时的存储容量,特别是内存容量成本非常高、容量也很小,对于大型应用程序或多程序应用就受到了很大的限制。为了克服这样的限制,人们就采用了虚拟存储的技术,最典型的应用就是虚拟内存技术。随着计算机技术以及相关信息处理技术的不断发展,人们对存储的需求越来越大。这样的需求刺激了各种新技术的出现,比如磁盘性能越来越好、容量越来越大。但是在大量的大中型信息处理系统中,单个磁盘是不能满足需要,这样的情况下存储虚拟化技术就发展起来了。在这个发展过程中也由几个阶段和几种应用。首先是磁盘条带集

(RAID,可带容错)技术,将多个物理磁盘通过一定的逻辑关系集合起来,成为一个大容量的虚拟磁盘。而随着数据量不断增加和对数据可用性要求的不断提高,又一种新的存储技术应运而生,那就是存储区域网络(SAN)技术。SAN的广域化则旨在将存储设备实现成为一种公用设施,任何人员、任何主机都可以随时随地获取各自想要的数据。目前讨论比较多的包括iSCSI、FC Over IP 等技术,由于一些相关的标准还没有最终确定,但是存储设备公用化、存储网络广域化是一个不可逆转的潮流。

一、虚拟存储的概念

所谓虚拟存储,就是把内存与外存有机的结合起来使用,从而得到一个容量很大的“内存”,这就称之为虚拟存储。

二、虚拟存储的分类

目前虚拟存储的发展尚无统一标准,从虚拟化存储的拓扑结构来讲主要有两种方式:即对称式与非对称式。对称式虚拟存储技术是指虚拟存储控制设备与存储软件系统、交换设备集成为一个整体,内嵌在网络数据传输路径中;非对称式虚拟存储技术是指虚拟存储控制设备独立于数据传输路径之外。从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。具体如下:

1.对称式虚拟存储

图1对称式虚拟存储解决方案的示意图

在图1所示的对称式虚拟存储结构图中,存储控制设备 High Speed Traffic Directors(HSTD)与存储池子系统Storage Pool集成在一起,组成SAN Appliance。可以看到在该方案中存储控制设备HSTD在主机与存储池数据交换的过程中起到核心作用。该方案的虚拟存储过程是这样的:由HSTD内嵌的存储管理系统将存储池中的物理硬盘虚拟为逻辑存储单元(LUN),并进行端口映射(指定某一个LUN能被哪些端口所见),主机端将各可见的存储单元映射为操作系统可识别的盘符。当主机向SAN

Appliance写入数据时,用户只需要将数据写入位置指定为自己映射的盘符(LUN),数据经过HSTD的高速并行端口,先写入高速缓存,HSTD中的存储管理系统自动完成目标位置由LUN到物理硬盘的转换,在此过程中用户见到的只是虚拟逻辑单元,而不关心每个LUN的具体物理组织结构。该方案具有以下主要特点:

(1)采用大容量高速缓存,显著提高数据传输速度。

缓存是存储系统中广泛采用的位于主机与存储设备之间的I/O路径上的中间介质。当主机从存储设备中读取数据时,会把与当前数据存储位置相连的数据读到缓存中,并把多次调用的数据保留在缓存中;当主机读数据时,在很大几率上能够从缓存中找到所需要的数据。直接从缓存上读出。而从缓存读取数据时的速度只受到电信号传播速度的影响(等于光速),因此大大高于从硬盘读数据时盘片机械转动的速度。当主机向存储设备写入数据时,先把数据写入缓存中,待主机端写入动作停止,再从缓存中将数据写入硬盘,同样高于直接写入硬盘的速度

(2)多端口并行技术,消除了I/O瓶颈。

传统的FC存储设备中控制端口与逻辑盘之间是固定关系,访问一块硬盘只能通过控制它的控制器端口。在对称式虚拟存储设备中,SAN Appliance的存储端口与LUN的关系是虚拟的,也就是说多台主机可以通过多个存储端口(最多8个)并发访问同一个LUN;在光纤通道100MB/带宽的大前提下,并行工作的端口数量越多,数据带宽就越高。

(3)逻辑存储单元提供了高速的磁盘访问速度。

在视频应用环境中,应用程序读写数据时以固定大小的数据块为单位(从512byte到1MB之间)。而存储系统为了保证应用程序的带宽需求,往往设计为传输512byte以上的数据块大小时才能达到其最佳I/O性能。在传统SAN结构中,当容量需求增大时,唯一的解决办法是多块磁盘(物理或逻辑的)绑定为带区集,实现大容量LUN。在对称式虚拟存储系统中,为主机提供真正的超大容量、高性能LUN,而不是用带区集方式实现的性能较差的逻辑卷。与带区集相比,Power LUN具有很多优势,如大块的I/O block会真正被存储系统所接受,有效提高数据传输速度;并且由于没有带区集的处理过程,主机CPU可以解除很大负担,提高了主机的性能。

(4)成对的HSTD系统的容错性能。

在对称式虚拟存储系统中,HSTD是数据I/O的必经之地,存储池是数据存放地。由于存储池中的数据具有容错机制保障安全,因此用户自然会想

到HSTD是否有容错保护。象许多大型存储系统一样,在成熟的对称式虚拟存储系统中,HSTD是成对配制的,每对HSTD之间是通过SAN Appliance内嵌的网络管理服务实现缓存数据一致和相互通信的。

(5)在SAN Appliance之上可方便的连接交换设备,实现超大规模Fabric结构的SAN。

因为系统保持了标准的SAN结构,为系统的扩展和互连提供了技术保障,所以在SAN Appliance之上可方便的连接交换设备,实现超大规模Fabric结构的SAN。

2.非对称式虚拟存储系统

图2非对称式虚拟存储系统示意图

在图2所示的非对称式虚拟存储系统结构图中,网络中的每一台主机和虚拟存储管理设备均连接到磁盘阵列,其中主机的数据路径通过FC交换设备到达磁盘阵列;虚拟存储设备对网络上连接的磁盘阵列进行虚拟化操作,将各存储阵列中的LUN虚拟为逻辑带区集(Strip),并对网络上的每一台主机指定对每一个Strip的访问权限(可写、可读、禁止访问)。当主机要访问某个Strip时,首先要访问虚拟存储设备,读取Strip信息和访问权限,然后再通过交换设备访问实际的Strip中的数据。在此过程中,主机只会识别到逻辑的Strip,而不会直接识别到物理硬盘。这种方案具有如下特点:

(1)将不同物理硬盘阵列中的容量进行逻辑组合,实现虚拟的带区集,将多个阵列控制器端口绑定,在一定程度上提高了系统的可用带宽。

(2)在交换机端口数量足够的情况下,可在一个网络内安装两台虚拟存储设备,实现Strip信息和访问权限的冗余。

但是该方案存在如下一些不足:

(1)该方案本质上是带区集——磁盘阵列结构,一旦带区集中的某个磁盘阵列控制器损坏,或者这个阵列到交换机路径上的铜缆、GBIC损坏,都会导致一个虚拟的LUN离线,而带区集本身是没有容错能力的,一个LUN的损坏就意味着整个Strip里面数据的丢失。

(2)由于该方案的带宽提高是通过阵列端口绑定来实现的,而普通光纤通道阵列控制器的有效带宽仅在40MB/S左右,因此要达到几百兆的带宽就意味着要调用十几台阵列,这样就会占用几十个交换机端口,在只有一两台交换机的中小型网络中,这是不可实现的。

(3)由于各种品牌、型号的磁盘阵列其性能不完全相同,如果出于虚拟化的目的将不同品牌、型号的阵列进行绑定,会带来一个问题:即数据写入或读出时各并发数据流的速度不同,这就意味着原来的数据包顺序在传输完毕后被打乱,系统需要占用时间和资源去重新进行数据包排序整理,这会严重影响系统性能。

3.数据块虚拟与虚拟文件系统

以上从拓扑结构角度分析了对称式与非对称式虚拟存储方案的异同,实际从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。

数据块虚拟存储方案着重解决数据传输过程中的冲突和延时问题。在多交换机组成的大型Fabric结构的SAN中,由于多台主机通过多个交换机端口访问存储设备,延时和数据块冲突问题非常严重。数据块虚拟存储方案利用虚拟的多端口并行技术,为多台客户机提供了极高的带宽,最大限度上减少了延时与冲突的发生,在实际应用中,数据块虚拟存储方案以对称式拓扑结构为表现形式。

虚拟文件系统存储方案着重解决大规模网络中文件共享的安全机制问题。通过对不同的站点指定不同的访问权限,保证网络文件的安全。在实际应用中,虚拟文件系统存储方案以非对称式拓扑结构为表现形式。

三、虚拟存储技术的实现方式

目前实现虚拟存储主要分为如下几种:

1.在服务器端的虚拟存储

服务器厂商会在服务器端实施虚拟存储。同样,软件厂商也会在服务器平台上实施虚拟存储。这些虚拟存储的实施都是通过服务器端将镜像映射到外围存储设备上,除了分配数据外,对外围存储设备没有任何控制。服务器端一般是通过逻辑卷管理来实现虚拟存储技术。逻辑卷管理为从物理存储映射到逻辑上的卷提供了一个虚拟层。服务器只需要处理逻辑卷,而不用管理存储设备的物理参数。

用这种构建虚拟存储系统,服务器端是一性能瓶颈,因此在多媒体处理领域几乎很少采用。

2.在存储子系统端的虚拟存储

另一种实施虚拟的地方是存储设备本身。这种虚拟存储一般是存储厂商实施的,但是很可能使用厂商独家的存储产品。为避免这种不兼容性,厂商也许会和服务器、软件或网络厂商进行合作。当虚拟存储实施在设备端时,逻辑(虚拟)环境和物理设备同在一个控制范围中,这样做的益处在于:虚拟磁盘高度有效地使用磁盘容量,虚拟磁带高度有效地使用磁带介质。

在存储子系统端的虚拟存储设备主要通过大规模的RAID子系统和多个I/O通道连接到服务器上,智能控制器提供LUN访问控制、缓存和其他如数据复制等的管理功能。这种方式的优点在于存储设备管理员对设备有完全的控制权,而且通过与服务器系统分开,可以将存储的管理与多种服务器操作系统隔离,并且可以很容易地调整硬件参数。

3.网络设备端实施虚拟存储

网络厂商会在网络设备端实施虚拟存储,通过网络将逻辑镜像映射到外围存储设备,除了分配数据外,对外围存储设备没有任何控制。在网络端实施虚拟存储具有其合理性,因为它的实施既不是在服务器端,也不是在存储

设备端,而是介于两个环境之间,可能是最“开放”的虚拟实施环境,最有可能支持任何的服务器、操作系统、应用和存储设备。从技术上讲,在网络端实施虚拟存储的结构形式有以下两种:即对称式与非对称式虚拟存储。

从目前的虚拟存储技术和产品的实际情况来看,基于主机和基于存储的方法对于初期的采用者来说魅力最大,因为他们不需要任何附加硬件,但对于异构存储系统和操作系统而言,系统的运行效果并不是很好。基于互联设备的方法处于两者之间,它回避了一些安全性问题,存储虚拟化的功能较强,能减轻单一主机的负载,同时可获得很好的可扩充性。

不管采用何种虚拟存储技术,其目的都使为了提供一个高性能、安全、稳定、可靠、可扩展的存储网络平台,满足节目制作网络系统的苛刻要求。根据综合的性能价格比来说,一般情况下,在基于主机和基于存储设备的虚拟存储技术能够保证系统的数据处理能力要求时,优先考虑,因为这两种虚拟存储技术构架方便、管理简单、维护容易、产品相对成熟、性能价格比高。在单纯的基于存储设备的虚拟存储技术无法保证存储系统性能要求的情况下,我们可以考虑采用基于互连设备的虚拟存储技术。

四、虚拟存储的特点

虚拟存储具有如下特点:

(1)虚拟存储提供了一个大容量存储系统集中管理的手段,由网络中的一个环节(如服务器)进行统一管理,避免了由于存储设备扩充所带来的管理方面的麻烦。例如,使用一般存储系统,当增加新的存储设备时,整个系统(包括网络中的诸多用户设备)都需要重新进行繁琐的配置工作,才可以使这个“新成员”加入到存储系统之中。而使用虚拟存储技术,增加新的存储设备时,只需要网络管理员对存储系统进行较为简单的系统配置更改,客户端无需任何操作,感觉上只是存储系统的容量增大了。

(2)虚拟存储对于视频网络系统最有价值的特点是:可以大大提高存储系统整体访问带宽。存储系统是由多个存储模块组成,而虚拟存储系统可以很好地进行负载平衡,把每一次数据访问所需的带宽合理地分配到各个存储模块上,这样系统的整体访问带宽就增大了。例如,一个存储系统中有4个存储模块,每一个存储模块的访问带宽为50MBps,则这个存储系统的总访问带宽就可以接近各存储模块带宽之和,即200MBps。

(3)虚拟存储技术为存储资源管理提供了更好的灵活性,可以将不同类型的存储设备集中管理使用,保障了用户以往购买的存储设备的投资。

(4)虚拟存储技术可以通过管理软件,为网络系统提供一些其它有用功能,如无需服务器的远程镜像、数据快照(Snapshot)等。

五、虚拟存储的应用 由于虚拟存储具有上述特点,虚拟存储技术正逐步成为共享存储管理的主流技术,其应用具体如下:

1.数据镜像

数据镜像就是通过双向同步或单向同步模式在不同的存储设备间建立数据复本。一个合理的解决方案应该能在不依靠设备生产商及操作系统支持的情况下,提供在同一存储阵列及不同存储阵列间制作镜像的方法。

2.数据复制

通过IP地址实现的远距离数据迁移(通常为异步传输)对于不同规模的企业来说,都是一种极为重要的数据灾难恢复工具。好的解决方案不应当依赖特殊的网络设备支持,同时,也不应当依赖主机,以节省企业的管理费用。

3.磁带备份增强设备

过去的几年,在磁带备份技术上鲜有新发展。尽管如此,一个网络存储设备平台亦应能在磁带和磁盘间搭建桥路,以高速、平稳、安全地完成备份工作。

4.实时复本

出于测试、拓展及汇总或一些别的原因,企业经常需要制作数据复本。

5.实时数据恢复

利用磁带来还原数据是数据恢复工作的主要手段,但常常难以成功。数据管理工作其中一个重要的发展新方向是将近期内的备份数据(可以是数星期前的历史数据)转移到磁盘介质,而非磁带介质。用磁盘恢复数据就象闪电般迅速(所有文件能在60秒内恢复),并远比用磁带恢复数据安全可靠。同时,整卷(Volume)数据都能被恢复。

6.应用整合

存储管理发展的又一新方向是,将服务贴近应用。没有一个信息技术领域的管理人员会单纯出于对存储设备的兴趣而去购买它。存储设备是用来服务于应用的,比如数据库,通讯系统等等。通过将存储设备和关键的企业应用行为相整合,能够获取更大的价值,同时,大大减少操作过程中遇到的难题。

7.虚拟存储在数字视频网络中的应用

现在我着重介绍虚拟存储在数字视频网络中的应用。

数字视频网络对广播电视行业来说已经不是一个陌生的概念了,由于它在广播电视技术数字化进程中起到了重要的作用,国内各级电视台对其给予极大的关注,并且开始构造和应用这类系统,在数字视频网的概念中完全打破了以往一台录像机、一个编辑系统、一套播出系统的传统结构,而代之以上载工作站、编辑制作工作站、播出工作站及节目存储工作站的流程,便于操作和管理。节目上载、节目编辑、节目播出在不同功能的工作站上完成,可成倍提高工作效率。同时,由于采用非线性编辑系统,除了采集时的压缩损失外。信号在制作、播出过程中不再有任何损失,节目的技术质量将大大提高。

在现有的视频网络系统中,虽然电脑的主频、网络的传输速率以及交换设备的性能,已经可以满足绝大多数应用的要求,但其中存储设备的访问带宽问题成为了系统的一个主要性能瓶颈。视频编辑、制作具有数据量存储大、码流高、实时性强、安全性重要等特点。这就要求应用于视频领域的存储技术和产品必须具有足够的带宽并且稳定性要好。

在单机应用时,为了保证一台编辑站点有足够的数据带宽,SCSI技术、本地独立磁盘冗余阵例RAID(Redundant Array of Independent Disks)技术(包括软件和硬件)被广泛应用,它通过把若干个SCSI硬盘加上控制器组成一个大容量,快速响应,高可靠性的存储子系统,从用户看可作为一个逻辑盘或者虚拟盘,从而大大提高了数据传输率和存储容量,同时利用纠错技术提高了存储的可靠性,并可满足带宽要求。

随着节目制作需求的发展,要求2—3台站点共享编辑数据。这时可利用SCSI网络技术实现这一要求。几台编辑站点均配置高性能的SCSI适配器,连接至共享的SCSI磁盘阵列,既可以实现几个站点共享数据,又可以保证每一台单机的工作带宽。

光纤通道技术的成熟应用对视频网络的发展具有里程碑的意义,从此主机与共享存储设备之间的连接距离限制从几米、十几米,扩展到几百米、几千米,再配合光纤通道交换设备,网络规模得到几倍、十几倍的扩充。这时候的FC(Fibre Channel光纤通道)磁盘阵列——RAID容错技术、相对SCSI的高带宽、大容量,成为视频网络中的核心存储设备。

随着电视台规模的发展,全台级大规模视频网络的应用被提出。在这种需求下,就必须将更先进的存储技术与产品引入视频领域。存储区域网(SAN)的发展目前正处于全速上升期,各种概念层出不穷。其中具有划时代意义的是虚拟存储概念的提出。相对于传统的交换机加RAID阵列,主机通过硬件层直接访问阵列中的硬盘的SAN结构,虚拟存储的定位是将数据存储功能从实际的、物理的数据存取过程中抽象出来,使普通用户在访问数据时不必关心具体的存储设备的配置参数、物理位置及容量,从而简化用户和系统管理人员的工作难度。

在设计一个视频网络系统的时候,对存储系统的选用,主要考虑如下几个因素:(1)总体带宽性能;(2)可管理性;(3)安全性;(4)可扩展性;(5)系统成本。

当然,这些因素之间有时是相互制约的,特别是系统成本与性能和安全性的关系。如何在这些因素之间寻求合理的、实用的、经济的配合,是一个需要解决的课题。虚拟存储技术的出现,为我们在构建视频网络系统时提供了一个切实可行的高性能价格比的解决方案。

从拓扑结构来讲,对称式的方案具有更高的带宽性能,更好的安全特性,因此比较适合大规模视频网络应用。非对称式方案由于采用了虚拟文件原理,因此更适合普通局域网(如办公网)的应用。

六、虚拟存储的实现机制

当进程运行时,先将一部分程序装入内存,另一部分暂时留在外存,当要执行的指令不在内存时,由系统自动完成将它们从外存调入内存工作。

七、使用虚拟存储额度目的

提高内存利用率

什么是虚拟内存,如何扩大虚拟内存?

1、虚拟内存的作用 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。下面,就让我们一起来看看如何对虚拟内存进行设置吧。

2、虚拟内存的设置 对于虚拟内存主要设置两点,即内存大小和分页位置,内存大小就是设置虚拟内存最小为多少和最大为多少;而分页位置则是设置虚拟内存应使用那个分区中的硬盘空间。对于内存大小的设置,如何得到最小值和最大值呢?你可以通过下面的方法获得:选择“开始→程序→附件→系统工具→系统监视器”(如果系统工具中没有,可以通过“添加/删除程序”中的Windows安装程序进行安装)打开系统监视器,然后选择“编辑→添加项目”,在“类型”项中选择“内存管理程序”,在右侧的列表选择“交换文件大小”。这样随着你的操作,会显示出交换文件值的波动情况,你可以把经常要使用到的程序打开,然后对它们进行使用,这时查看一下系统监视器中的表现值,由于用户每次使用电脑时的情况都不尽相同,因此,最好能够通过较长时间对交换文件进行监视来找出最符合您的交换文件的数值,这样才能保证系统性能稳定以及保持在最佳的状态。 找出最合适的范围值后,在设置虚拟内存时,用鼠标右键点击“我的电脑”,选择“属性”,弹出系统属性窗口,选择“性能”标签,点击下面“虚拟内存”按钮,弹出虚拟内存设置窗口,点击“用户自己指定虚拟内存设置”单选按钮,“硬盘”选较大剩余空间的分区,然后在“最小值”和“最大值”文本框中输入合适的范围值。如果您感觉使用系统监视器来获得最大和最小值有些麻烦的话,这里完全可以选择“让Windows管理虚拟内存设置”。 3、调整分页位置 Windows 9x的虚拟内存分页位置,其实就是保存在C盘根目录下的一个虚拟内存文件(也称为交换文件)Win386.swp,它的存放位置可以是任何一个分区,如果系统盘C容量有限,我们可以把Win386.swp调到别的分区中,方法是在记事本中打开System.ini

(C:\\Windows下)文件,在[386Enh]小节中,将“PagingDrive=C:WindowsWin 386.swp”,改为其他分区的路径,如将交换文件放在D:中,则改为

“PagingDrive=D:Win386.swp”,如没有上述语句可以直接键入即可。 而对于使用Windows 2000和Windows XP的,可以选择“控制面板→系统→高级→性能”中的“设置→高级→更改”,打开虚拟内存设置窗口,在驱动器[卷标]中默

认选择的是系统所在的分区,如果想更改到其他分区中,首先要把原先的分区设置为无分页文件,然后再选择其他分区。

如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分不在一个连续的、无碎片文

如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分不在一个连续的、无碎片文件的空间上,可以更好的发挥作用。

虚拟内存使用技巧

对于虚拟内存如何设置的问题,微软已经给我们提供了官方的解决办法,对于一般情况下,我们推荐采用如下的设置方法:

(1)在Windows系统所在分区设置页面文件,文件的大小由你对系统的设置决定。具体设置方法如下:打开"我的电脑"的"属性"设置窗口,切换到"高级"选项卡,在"启动和故障恢复"窗口的"写入调试信息"栏,如果你采用的是"无",则将页面文件大小设置为2MB左右,如果采用"核心内存存储"和"完全内存存储",则将页面文件值设置得大一些,跟物理内存差不多就可以了。

小提示:对于系统分区是否设置页面文件,这里有一个矛盾:如果设置,则系统有可能会频繁读取这部分页面文件,从而加大系统盘所在磁道的负荷,但如果不设置,当系统出现蓝屏死机(特别是STOP错误)的时候,无法创建转储文件 (Memory.dmp),从而无法进行程序调试和错误报告了。所以折中的办法是在系统盘设置较小的页面文件,只要够用就行了。

(2)单独建立一个空白分区,在该分区设置虚拟内存,其最小值设置为物理内存的1.5倍,最大值设置为物理内存的3倍,该分区专门用来存储页面文件,不要再存放其它任何文件。之所以单独划分一个分区用来设置虚拟内存,主要是基于两点考虑:其一,由于该分区上没有其它文件,这样分区不会产生磁盘碎片,这样能保证页面文件的数据读写不受磁盘碎片的干扰;其二,按照Windows对内存的管理技术,Windows会优先使用不经常访问的分区上的

页面文件,这样也减少了读取系统盘里的页面文件的机会,减轻了系统盘的压力。

(3)其它硬盘分区不设置任何页面文件。当然,如果你有多个硬盘,则可以为每个硬盘都创建一个页面文件。当信息分布在多个页面文件上时,硬盘控制器可以同时在多个硬盘上执行读取和写入操作。这样系统性能将得到提高。

提示:

允许设置的虚拟内存最小值为2MB,最大值不能超过当前硬盘的剩余空间值,同时也不能超过32位操作系统的内存寻址范围——4GB。

虚拟存储的原理

虚拟存储的管理方式

虚拟存储(virtual memory)技术的概念是:把 很大的程序分成许多较小的块,全部存储在辅存中。运行时,把要用到的程序块先调入主存,并且把马上就要用到的程序块从主存再调入高速缓存。这样,一边运行 程序,一边进行所需程序块的调进调出。只要及时供应上所需处理的程序与数据,程序就能顺利而高速地运行下去。因此,对于应用程序员来说就好像有一个比实际 主存大得多的,可以放得下整个程序的虚拟主存空间。当辅存中的程序块调入主存时,必须使程序在主存中定位。为了使应用程序员对其程序不同修改就可以在虚拟 存储器上运行,即应用程序员不用考虑如何把程序地址映象和变换成实际主存的物理地址,这种程序的定位应由系统自动完成,从而使虚存技术对于应用程序员来说 是透明的。这种定位技术是把程序分成若干较小的段或页,用相应的映象表来指明该程序的某段或某页是否已经装入主存。若已装入主存,则应同时指明它在主存的 起始位置;若尚未装入主存,则去辅存中调用相应的段或页,并建立起程序空间和实存空间的地址映象关系。由于采用的存储映象算法不同,就形成不同的存储管理方式,常用的有段式管理、页式管理以及段页式管理。

段式管理(segmentation)把一个程序分成若干个段(segment)进行存储,每个段都是一个逻辑实体(logical entity),程序员需要知道并使用它。它的产生是与程序的模块化直接有关的。段式管理是通过段表进行的,它包括段号或段名、段起点、装入位、 段的长度等。此外还需要主存占用区域表、主存可用区域表。为了进行段式管理,每道程序在系统中都有一个段(映象)表来存放该道程序各段装入主存的状况信 息。段表中的每一项(对应表中的每一行)描述该道程序一个段的基本状况,由若干个字段提供。段名字段用于存放段的名称,段名一般是有其逻辑意义的,也可以 转换成用段号指明。由于段号从0开始顺序编号,正好与段表中的行号对应,如2段必是段表中的第3行,这样,段表中就可不设段号(名)字段。装入位字段用来指示该段是否已经调入主存,“1”表示已装入,“0”表示未装入。在程序的执行过程中,各段的装入位随该段是否活跃而动态变化。当装入位为“1”时,地址字段用于表示该段装入主存中起始(绝对)地址,当装入位为“0” 时,则无效(有时机器用它表示该段在辅存中的起始地址)。段长字段指明该段的大小,一般以字数或字节数为单位,取决于所用的编址方式。段长字段是用来判断 所访问的地址是否越出段界的界限保护检查用的。访问方式字段用来标记该段允许的访问方式,如只读、可写、只能执行等,以提供段的访问方式保护。除此之外, 段表中还可以根据需要设置其它的字段。段表本身也是一个段,一般常驻在主存中,也可以存在辅存中,需要时再调入主存。假设系统在主存中最多可同时有N道程序,可设N个 段表基址寄存器。对应于每道程序,由基号(程序号)指明使用哪个段表基址寄存器。段表基址寄存器中的段表基址字段指向该道程序的段表在主存中的起始地址。 段

表长度字段指明该道程序所用段表的行数,即程序的段数。由系统赋给某道程序(用户、进程)一个基号,并在调入调出过程中对有关段表基址寄存器和段表的内 容进行记录和修改,所以这些都不用用户程序员来管。某道活跃的程序在执行过程中产生的指令或操作数地址只要与基号组合成系统的程序地址,即可通过查表自动 转换成主存的物理地址。下图示意性地表示了这一地址变换的过程。分段方法能使大程序分模块编制,从而可以多个程序员并行编程,缩短编程时间,在执行或编译 过程中对不断变化的可变长段也便于处理。各个段的修改、增添并不影响其它各段的编制,各用户以段的连接形成的程序空间可以与主存的实际容量无关。分段还便 于几道程序共用已在主存内的程序和数据,如编译程序、各种子程序、各种数据和装入程序等。不必在主存中重复存储,只需把它们按段存储,并在几道程序的段表 中有公用段的名称及同样的基址值即可。由于各段是按其逻辑特点组合的,容易以段为单位实现存储保护。例如,可以安排成常数段只能读不能写;操作数段只能读或写,不能作为指令执行;子程序段只能执行,不能修改;有的过程段只能执行,不能读也不能写,如此等等。一旦违反规定就中断,这对发现程序设计错误和非法使用是很有用的。段式管理的虚拟存储器由于各个段的长度完全取决于段自身,当然不会恰好如下图那样是1K的 整数倍,段在主存中的起点也会是随意的,这就给高效地调入段分配主存区域带来困难。为了进行段式管理,除了系统需要为每道程序分别设置段映象表外,还得由 操作系统为整个主存系统建立一个实主存管理表,它包括占用区域表和可用区域表两部分。占用区域表的每一项(行)用来指明主存中哪些区域已被占用,被哪道程 序的哪个段占用以及该段在主存的起点和长度。此外,还可以设置诸如该段是否进入主存后被改写过的字段,以便该段由主存中释放时,决定是否还要将其写回到辅 存中原先的位置来减少辅助操作。可用区域表的每一项(行)则指明每一个未被占用的基地址和区域大小。当一个段从辅存装入主存时,操作系统就在占用区域表中 增加一项,并修改可用区域表。而当一个段从主存中退出时,就将其在占用区域表的项(行)移入可用区域表中,并进行有关它是否可与其它可用区归并的处理,修 改可用区域表。当某道程序全部执行结束或者是被优先级更高的程序所取代时,也应将该道程序的全部段的项从占用区域表移入可用区域表并作相应的处理

通常,多用户虚存空间要比主存储器的实存空间大得多。那么,在页式和段页式虚拟存储器中,虚存页面数就比实存页面数多得多。从页表中看,装入位为"1"(表示相应的页面不在主存储器中)的页面存储字所占的比例很小。

有一种压缩页表的方法。页表只为已经装入到主存储器中的那些页面建立虚页号与实页号之间的对应关系。页表的每一个存储字中主要包括多用户虚页号、 主存实页号、修改位和其它标志(如访问方式)等,不再需要装入位,并且采用相联方式访问。因此,把这种目录表称为相联目录表,简称目录表。 采用目录表法的虚拟存储器,其地址变换过程如图3.26所示。为了把多用户虚页号变换成主存实页号,要把多用户虚地址中的多用户虚页号(U与P拼 接起来)与相联存储器中的多用户虚页号字段逐个进行比较。如果有相等的,表示要访问的这个页面已经装入到主存储器中了。这时,读出该单元中的其它字段,其 中,实页号字段中存放的就是与多用户虚页号相对应的主存实页号。只要把这个实页号p与多用户虚地址中的页内偏移D直接拼接起来就成了要访问的主存实地址。 如果没有相等的,则表示要访问的那个页面还没有装入到主存储器中,这时,发出页面失效请求,从磁盘存储器中把要访问的那一个页面调入主存储器。

由于目录表是采用高速度小容量存储器实现的,与页表放在主存储器中的方法相比,查表的速度要快得多。

随着主存储器容量的增加,目录表的容量也必须增加。因此,目录表法的可扩展性比较差。当主存储器的容量增加到一定数量后,目录表的造价就会很高,查表的速度也会降低。

图3.26 目录表法的地址变换过程

虚拟存储的三种方法

数据是企业最大的财富,任何一家公司都不可掉以轻心。数据一旦丢失,企业失去的不仅是眼前的财富,更可能是未来的发展机会,因此许多企业纷纷引入先进的网络存储技术,希望存储资源像我们日常生活中的水和电一样,成为企业信息系统中的“公用设施”。

光纤通道的引入为分布式存储系统的应用扫清了道路,使得异构主机能够在分布式存储系统中实现共享。“存储公用设施模型”要求存储系统的管理处于集中控制之下,同时允许分布于不同地理位置的主机能够访问集中管理的数据,用户不必考虑存储设备的布局方式、采用何种存储系统以及资源如何配置。同时,用户也会有一种强烈的安全感,确信未经授权的数据访问将会遭到严禁。

要使“存储公用设施”从理论走向实用,存储系统必须满足下列要求: ● 支持从异构主机到异构存储系统的透明访问。即服务器可以运行异构操作系统,例如Sun Solaris、HP-UX、Windows或Linux等等。存储设备可以来自不同的供应商,无论是EMC、康柏、Sun还是戴尔公司的存储设备,都可以顺利地接入系统。

● 支持24×7小时的数据可用性。

● 高性能的数据访问。

● 数据安全性——只允许有访问权的用户进行访问相应的数据。

● 平滑的存储容量扩展——存储网络上添加存储设备的过程对用户透明,而且任何服务器都不需停机。

● 支持数据保护和恢复。

● 透明的数据迁移——由于系统故障或者存储系统重新配置所进行的数据迁移不改变用户访问数据的方式。

● 存储系统在线重新配置——当用户请求新的存储需求或要求访问权限调整时,不会中断其他用户的数据访问。存储虚拟化是支持存储公用设施模型的关键技术,是安全可靠的动态存储池,可以适应和包容丰富多样、迅速发展的存储设备,具备为异构服务器和客户机提供服务的能力。因此,虚拟存储系统必须具备下列功能:

● 存储协议的自由转换,例如从SCSI到光纤通道协议或者从SSA到光纤通道协议,能够支持异构存储和服务器环境。

● 支持高可用性和高性能SAN存储配置,例如指定主从镜像和空闲驱动器、产生合成式驱动器、联结多个存储子系统构成单一驱动器、实现集中管理以及灵活的存储容量扩充。

● 具有可视性和可管理性,能够在更新和恢复等突发事件发生时及时通知管理员。

● 通过TCP/IP网络实现n路镜像、快照和异步远程拷贝等数据复制操作。 ● 存储设备的故障或任何在主机和存储子系统路径上的设备(例如路由器、主机适配器或交换机等)故障能够触发自动故障接替。

● 可以实现定时自动备份和恢复。

● 可以实现数据高速缓存。

● 可以控制主机访问不同的存储设备分区。

自从存储虚拟化成为热点技术以来,许多供应商开始采用不同的系统结构实现存储虚拟功能,但其完整性和容量水平有所差异。

从系统的观点看,有三种主要的存储虚拟化方法:

● 基于主机的虚拟存储;

● 基于存储设备的虚拟存储;

● 基于网络的虚拟存储。

方法1:基于主机的虚拟存储

基于主机的虚拟存储依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意

间越权访问到受保护的数据。这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。

但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。

方法2:基于存储设备的虚拟化基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just a Bunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。

基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customzing)和监控。

方法3:基于网络的虚拟存储基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:

1.基于互联设备的虚拟化

基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上;如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,因为一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是分离的。基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、Sun Solaris、Linux或供应商提供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势——易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要更高的硬件成本。但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的互操作性仍然是一个问题。

2. 基于交换机的虚拟化

按照基于交换机的方法,存储虚拟化的功能模块嵌入于交换机的固件中或者

放在附属于交换机的单独的服务器上。由于并不要求在每一台主机上都运行存储虚拟化功能软件,基于交换机的存储虚拟化系统以软件方式提供管理功能模块,这种方法不存在基于设备或基于主机环境中可能需遇到的安全性问题。同时,在异构环境中也能提供更多的互操作性。但是,交换机仍然是一个瓶颈,也可能成为故障的敏感点。当然,如果不在意较高的附加费用,可以引入备用交换机,用于数据通道上的故障接替。

3. 基于路由器的虚拟化

基于路由器的方法是在路由器固件上实现存储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于路由器潜在地为每一台主机服务,大多数控制模块存在于路由器的固件中,相对于基于主机和大多数基于互联设备的方法,这种方法的性能更好、效果更佳。由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障问题提供了一个解决方法。由于路由器经常作为协议转换的桥梁,基于路由器的方法也可以在异构操作系统和多供应商存储环境之间提供互操作性。

谁能胜出?

每一种方法都由其优缺点。基于主机和基于存储的方法对于初期的采用者来说魅力最大,因为他们不需要任何附加硬件,但对于异构存储系统和操作系统而言,系统的运行效果并不是很好。对于那些要求最大限度进行互操作的企业来说,基于交换机或基于路由器的方法可能更为恰当。对那些要求更高可扩充性的用户来说,基于路由器的方法是最优选择。基于互联设备的方法处于两者之间,它回避了一些安全性问题,存储虚拟化的功能较强,能减轻单一主机的负载,同时可获得很好的可扩充性。不同供应商的存储虚拟化实现方法不同,一些偏重于复制,一些擅长备份,而另外一些在恢复和访问控制方面性能更为优越。存储管理软件供应商趋向于提供最完善的管理套餐。但是,多平台的支持和最佳的性能特性并不容易达到最优。在数据复制方面已经发展出多种镜像方法。许多存储供应商提供三层镜像结构,Veritas公司甚至能够提供四层镜像结构。镜像在一些方面受到推崇,全面镜像能在另一个驱动器上产生完全相同的副本。这个附加的副本有时也称为快照,只存储以前版本的数据。有时,在不同地理位置上存在的副本驱动器,通过IP相连能产生远程或异步副本。在存储网络中,存储访问控制经常在分区(Zoning)式的主机和存储系统中进行。只有属于同一个分区的主机能够访问这个分区的存储设备。主机和存储设备经常是多分区的一员。分区制的理念与虚拟专用存储网络相似。分区有多种方法。随着共享存储的粒度和管理难易程度不同,分区方法的差异很大。基于端口的分区经常在交换机中实现,交换机内部的访问必须在指定的端口之间进行。这种分区的特色是分区之间不能重叠。当指定的端口分区成员发生变动时,分区需要重新配置。这种方式有着明显的缺陷,因为大多数情况下,即使交换机端口发生调整,也不允许改变分区成员的一致性。子系统分区或卷映射经常由内部磁盘子系统的控制器来实现,它允许整个或部分

驱动器成为其数据出口,使得单一存储子系统看起来好像是多驱动器和多主机。基于逻辑单元设备号掩码(LUN masking)之上的分区在主机I/O控制器、主机软件或路由器上得以实现。LUN 掩码像一个过滤器,只允许主机访问特定的存储资源,它也允许一个存储子系统中单一驱动器能够属于不同的分区,从而产生设备层面的分区。存储虚拟化功能的复杂性很容易在许多供应商中产生一种“人人都能做虚拟化”的错觉,其实是各商家采取了不同的标准来定义“虚拟化”。供应商之间技术的整合和合作随时都可能发生。因此要求数据中心经理们具备良好的技术知识,以便清楚地了解自己需要的是什么。

在评估虚拟化解决方案时,您应该思考以下问题:

1. 能够支持异构操作系统和不同的存储供应商吗?

2. 适合于成百上千TB的数据存储吗?

3. 便于管理吗?

4. 能提供方便的分区管理吗?

5. 能支持灵活的容量扩充吗?

6. 安全可靠吗?

事实上,在当今几乎没有哪一家供应商能对上述所有问题真正自豪地说“是”。

虚拟存储技术

随着围绕数字化、网络化开展的各种多媒体处理业务的不断增加,存储系统网络平台已经成为一个核心平台,同时各种应用对平台的要求也越来越高,不光是在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。

为达到这些要求,一种新兴的技术正越来越受到大家的关注,即虚拟存储技术。

其实虚拟化技术并不是一件很新的技术,它的发展,应该说是随着计算机技术的发展而发展起来的,最早是始于70年代。由于当时的存储容量,特别是内存容量成本非常高、容量也很小,对于大型应用程序或多程序应用就受到了很大的限制。为了克服这样的限制,人们就采用了虚拟存储的技术,最典型的应用就是虚拟内存技术。随着计算机技术以及相关信息处理技术的不断发展,人们对存储的需求越来越大。这样的需求刺激了各种新技术的出现,比如磁盘性能越来越好、容量越来越大。但是在大量的大中型信息处理系统中,单个磁盘是不能满足需要,这样的情况下存储虚拟化技术就发展起来了。在这个发展过程中也由几个阶段和几种应用。首先是磁盘条带集

(RAID,可带容错)技术,将多个物理磁盘通过一定的逻辑关系集合起来,成为一个大容量的虚拟磁盘。而随着数据量不断增加和对数据可用性要求的不断提高,又一种新的存储技术应运而生,那就是存储区域网络(SAN)技术。SAN的广域化则旨在将存储设备实现成为一种公用设施,任何人员、任何主机都可以随时随地获取各自想要的数据。目前讨论比较多的包括iSCSI、FC Over IP 等技术,由于一些相关的标准还没有最终确定,但是存储设备公用化、存储网络广域化是一个不可逆转的潮流。

一、虚拟存储的概念

所谓虚拟存储,就是把内存与外存有机的结合起来使用,从而得到一个容量很大的“内存”,这就称之为虚拟存储。

二、虚拟存储的分类

目前虚拟存储的发展尚无统一标准,从虚拟化存储的拓扑结构来讲主要有两种方式:即对称式与非对称式。对称式虚拟存储技术是指虚拟存储控制设备与存储软件系统、交换设备集成为一个整体,内嵌在网络数据传输路径中;非对称式虚拟存储技术是指虚拟存储控制设备独立于数据传输路径之外。从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。具体如下:

1.对称式虚拟存储

图1对称式虚拟存储解决方案的示意图

在图1所示的对称式虚拟存储结构图中,存储控制设备 High Speed Traffic Directors(HSTD)与存储池子系统Storage Pool集成在一起,组成SAN Appliance。可以看到在该方案中存储控制设备HSTD在主机与存储池数据交换的过程中起到核心作用。该方案的虚拟存储过程是这样的:由HSTD内嵌的存储管理系统将存储池中的物理硬盘虚拟为逻辑存储单元(LUN),并进行端口映射(指定某一个LUN能被哪些端口所见),主机端将各可见的存储单元映射为操作系统可识别的盘符。当主机向SAN

Appliance写入数据时,用户只需要将数据写入位置指定为自己映射的盘符(LUN),数据经过HSTD的高速并行端口,先写入高速缓存,HSTD中的存储管理系统自动完成目标位置由LUN到物理硬盘的转换,在此过程中用户见到的只是虚拟逻辑单元,而不关心每个LUN的具体物理组织结构。该方案具有以下主要特点:

(1)采用大容量高速缓存,显著提高数据传输速度。

缓存是存储系统中广泛采用的位于主机与存储设备之间的I/O路径上的中间介质。当主机从存储设备中读取数据时,会把与当前数据存储位置相连的数据读到缓存中,并把多次调用的数据保留在缓存中;当主机读数据时,在很大几率上能够从缓存中找到所需要的数据。直接从缓存上读出。而从缓存读取数据时的速度只受到电信号传播速度的影响(等于光速),因此大大高于从硬盘读数据时盘片机械转动的速度。当主机向存储设备写入数据时,先把数据写入缓存中,待主机端写入动作停止,再从缓存中将数据写入硬盘,同样高于直接写入硬盘的速度

(2)多端口并行技术,消除了I/O瓶颈。

传统的FC存储设备中控制端口与逻辑盘之间是固定关系,访问一块硬盘只能通过控制它的控制器端口。在对称式虚拟存储设备中,SAN Appliance的存储端口与LUN的关系是虚拟的,也就是说多台主机可以通过多个存储端口(最多8个)并发访问同一个LUN;在光纤通道100MB/带宽的大前提下,并行工作的端口数量越多,数据带宽就越高。

(3)逻辑存储单元提供了高速的磁盘访问速度。

在视频应用环境中,应用程序读写数据时以固定大小的数据块为单位(从512byte到1MB之间)。而存储系统为了保证应用程序的带宽需求,往往设计为传输512byte以上的数据块大小时才能达到其最佳I/O性能。在传统SAN结构中,当容量需求增大时,唯一的解决办法是多块磁盘(物理或逻辑的)绑定为带区集,实现大容量LUN。在对称式虚拟存储系统中,为主机提供真正的超大容量、高性能LUN,而不是用带区集方式实现的性能较差的逻辑卷。与带区集相比,Power LUN具有很多优势,如大块的I/O block会真正被存储系统所接受,有效提高数据传输速度;并且由于没有带区集的处理过程,主机CPU可以解除很大负担,提高了主机的性能。

(4)成对的HSTD系统的容错性能。

在对称式虚拟存储系统中,HSTD是数据I/O的必经之地,存储池是数据存放地。由于存储池中的数据具有容错机制保障安全,因此用户自然会想

到HSTD是否有容错保护。象许多大型存储系统一样,在成熟的对称式虚拟存储系统中,HSTD是成对配制的,每对HSTD之间是通过SAN Appliance内嵌的网络管理服务实现缓存数据一致和相互通信的。

(5)在SAN Appliance之上可方便的连接交换设备,实现超大规模Fabric结构的SAN。

因为系统保持了标准的SAN结构,为系统的扩展和互连提供了技术保障,所以在SAN Appliance之上可方便的连接交换设备,实现超大规模Fabric结构的SAN。

2.非对称式虚拟存储系统

图2非对称式虚拟存储系统示意图

在图2所示的非对称式虚拟存储系统结构图中,网络中的每一台主机和虚拟存储管理设备均连接到磁盘阵列,其中主机的数据路径通过FC交换设备到达磁盘阵列;虚拟存储设备对网络上连接的磁盘阵列进行虚拟化操作,将各存储阵列中的LUN虚拟为逻辑带区集(Strip),并对网络上的每一台主机指定对每一个Strip的访问权限(可写、可读、禁止访问)。当主机要访问某个Strip时,首先要访问虚拟存储设备,读取Strip信息和访问权限,然后再通过交换设备访问实际的Strip中的数据。在此过程中,主机只会识别到逻辑的Strip,而不会直接识别到物理硬盘。这种方案具有如下特点:

(1)将不同物理硬盘阵列中的容量进行逻辑组合,实现虚拟的带区集,将多个阵列控制器端口绑定,在一定程度上提高了系统的可用带宽。

(2)在交换机端口数量足够的情况下,可在一个网络内安装两台虚拟存储设备,实现Strip信息和访问权限的冗余。

但是该方案存在如下一些不足:

(1)该方案本质上是带区集——磁盘阵列结构,一旦带区集中的某个磁盘阵列控制器损坏,或者这个阵列到交换机路径上的铜缆、GBIC损坏,都会导致一个虚拟的LUN离线,而带区集本身是没有容错能力的,一个LUN的损坏就意味着整个Strip里面数据的丢失。

(2)由于该方案的带宽提高是通过阵列端口绑定来实现的,而普通光纤通道阵列控制器的有效带宽仅在40MB/S左右,因此要达到几百兆的带宽就意味着要调用十几台阵列,这样就会占用几十个交换机端口,在只有一两台交换机的中小型网络中,这是不可实现的。

(3)由于各种品牌、型号的磁盘阵列其性能不完全相同,如果出于虚拟化的目的将不同品牌、型号的阵列进行绑定,会带来一个问题:即数据写入或读出时各并发数据流的速度不同,这就意味着原来的数据包顺序在传输完毕后被打乱,系统需要占用时间和资源去重新进行数据包排序整理,这会严重影响系统性能。

3.数据块虚拟与虚拟文件系统

以上从拓扑结构角度分析了对称式与非对称式虚拟存储方案的异同,实际从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。

数据块虚拟存储方案着重解决数据传输过程中的冲突和延时问题。在多交换机组成的大型Fabric结构的SAN中,由于多台主机通过多个交换机端口访问存储设备,延时和数据块冲突问题非常严重。数据块虚拟存储方案利用虚拟的多端口并行技术,为多台客户机提供了极高的带宽,最大限度上减少了延时与冲突的发生,在实际应用中,数据块虚拟存储方案以对称式拓扑结构为表现形式。

虚拟文件系统存储方案着重解决大规模网络中文件共享的安全机制问题。通过对不同的站点指定不同的访问权限,保证网络文件的安全。在实际应用中,虚拟文件系统存储方案以非对称式拓扑结构为表现形式。

三、虚拟存储技术的实现方式

目前实现虚拟存储主要分为如下几种:

1.在服务器端的虚拟存储

服务器厂商会在服务器端实施虚拟存储。同样,软件厂商也会在服务器平台上实施虚拟存储。这些虚拟存储的实施都是通过服务器端将镜像映射到外围存储设备上,除了分配数据外,对外围存储设备没有任何控制。服务器端一般是通过逻辑卷管理来实现虚拟存储技术。逻辑卷管理为从物理存储映射到逻辑上的卷提供了一个虚拟层。服务器只需要处理逻辑卷,而不用管理存储设备的物理参数。

用这种构建虚拟存储系统,服务器端是一性能瓶颈,因此在多媒体处理领域几乎很少采用。

2.在存储子系统端的虚拟存储

另一种实施虚拟的地方是存储设备本身。这种虚拟存储一般是存储厂商实施的,但是很可能使用厂商独家的存储产品。为避免这种不兼容性,厂商也许会和服务器、软件或网络厂商进行合作。当虚拟存储实施在设备端时,逻辑(虚拟)环境和物理设备同在一个控制范围中,这样做的益处在于:虚拟磁盘高度有效地使用磁盘容量,虚拟磁带高度有效地使用磁带介质。

在存储子系统端的虚拟存储设备主要通过大规模的RAID子系统和多个I/O通道连接到服务器上,智能控制器提供LUN访问控制、缓存和其他如数据复制等的管理功能。这种方式的优点在于存储设备管理员对设备有完全的控制权,而且通过与服务器系统分开,可以将存储的管理与多种服务器操作系统隔离,并且可以很容易地调整硬件参数。

3.网络设备端实施虚拟存储

网络厂商会在网络设备端实施虚拟存储,通过网络将逻辑镜像映射到外围存储设备,除了分配数据外,对外围存储设备没有任何控制。在网络端实施虚拟存储具有其合理性,因为它的实施既不是在服务器端,也不是在存储

设备端,而是介于两个环境之间,可能是最“开放”的虚拟实施环境,最有可能支持任何的服务器、操作系统、应用和存储设备。从技术上讲,在网络端实施虚拟存储的结构形式有以下两种:即对称式与非对称式虚拟存储。

从目前的虚拟存储技术和产品的实际情况来看,基于主机和基于存储的方法对于初期的采用者来说魅力最大,因为他们不需要任何附加硬件,但对于异构存储系统和操作系统而言,系统的运行效果并不是很好。基于互联设备的方法处于两者之间,它回避了一些安全性问题,存储虚拟化的功能较强,能减轻单一主机的负载,同时可获得很好的可扩充性。

不管采用何种虚拟存储技术,其目的都使为了提供一个高性能、安全、稳定、可靠、可扩展的存储网络平台,满足节目制作网络系统的苛刻要求。根据综合的性能价格比来说,一般情况下,在基于主机和基于存储设备的虚拟存储技术能够保证系统的数据处理能力要求时,优先考虑,因为这两种虚拟存储技术构架方便、管理简单、维护容易、产品相对成熟、性能价格比高。在单纯的基于存储设备的虚拟存储技术无法保证存储系统性能要求的情况下,我们可以考虑采用基于互连设备的虚拟存储技术。

四、虚拟存储的特点

虚拟存储具有如下特点:

(1)虚拟存储提供了一个大容量存储系统集中管理的手段,由网络中的一个环节(如服务器)进行统一管理,避免了由于存储设备扩充所带来的管理方面的麻烦。例如,使用一般存储系统,当增加新的存储设备时,整个系统(包括网络中的诸多用户设备)都需要重新进行繁琐的配置工作,才可以使这个“新成员”加入到存储系统之中。而使用虚拟存储技术,增加新的存储设备时,只需要网络管理员对存储系统进行较为简单的系统配置更改,客户端无需任何操作,感觉上只是存储系统的容量增大了。

(2)虚拟存储对于视频网络系统最有价值的特点是:可以大大提高存储系统整体访问带宽。存储系统是由多个存储模块组成,而虚拟存储系统可以很好地进行负载平衡,把每一次数据访问所需的带宽合理地分配到各个存储模块上,这样系统的整体访问带宽就增大了。例如,一个存储系统中有4个存储模块,每一个存储模块的访问带宽为50MBps,则这个存储系统的总访问带宽就可以接近各存储模块带宽之和,即200MBps。

(3)虚拟存储技术为存储资源管理提供了更好的灵活性,可以将不同类型的存储设备集中管理使用,保障了用户以往购买的存储设备的投资。

(4)虚拟存储技术可以通过管理软件,为网络系统提供一些其它有用功能,如无需服务器的远程镜像、数据快照(Snapshot)等。

五、虚拟存储的应用 由于虚拟存储具有上述特点,虚拟存储技术正逐步成为共享存储管理的主流技术,其应用具体如下:

1.数据镜像

数据镜像就是通过双向同步或单向同步模式在不同的存储设备间建立数据复本。一个合理的解决方案应该能在不依靠设备生产商及操作系统支持的情况下,提供在同一存储阵列及不同存储阵列间制作镜像的方法。

2.数据复制

通过IP地址实现的远距离数据迁移(通常为异步传输)对于不同规模的企业来说,都是一种极为重要的数据灾难恢复工具。好的解决方案不应当依赖特殊的网络设备支持,同时,也不应当依赖主机,以节省企业的管理费用。

3.磁带备份增强设备

过去的几年,在磁带备份技术上鲜有新发展。尽管如此,一个网络存储设备平台亦应能在磁带和磁盘间搭建桥路,以高速、平稳、安全地完成备份工作。

4.实时复本

出于测试、拓展及汇总或一些别的原因,企业经常需要制作数据复本。

5.实时数据恢复

利用磁带来还原数据是数据恢复工作的主要手段,但常常难以成功。数据管理工作其中一个重要的发展新方向是将近期内的备份数据(可以是数星期前的历史数据)转移到磁盘介质,而非磁带介质。用磁盘恢复数据就象闪电般迅速(所有文件能在60秒内恢复),并远比用磁带恢复数据安全可靠。同时,整卷(Volume)数据都能被恢复。

6.应用整合

存储管理发展的又一新方向是,将服务贴近应用。没有一个信息技术领域的管理人员会单纯出于对存储设备的兴趣而去购买它。存储设备是用来服务于应用的,比如数据库,通讯系统等等。通过将存储设备和关键的企业应用行为相整合,能够获取更大的价值,同时,大大减少操作过程中遇到的难题。

7.虚拟存储在数字视频网络中的应用

现在我着重介绍虚拟存储在数字视频网络中的应用。

数字视频网络对广播电视行业来说已经不是一个陌生的概念了,由于它在广播电视技术数字化进程中起到了重要的作用,国内各级电视台对其给予极大的关注,并且开始构造和应用这类系统,在数字视频网的概念中完全打破了以往一台录像机、一个编辑系统、一套播出系统的传统结构,而代之以上载工作站、编辑制作工作站、播出工作站及节目存储工作站的流程,便于操作和管理。节目上载、节目编辑、节目播出在不同功能的工作站上完成,可成倍提高工作效率。同时,由于采用非线性编辑系统,除了采集时的压缩损失外。信号在制作、播出过程中不再有任何损失,节目的技术质量将大大提高。

在现有的视频网络系统中,虽然电脑的主频、网络的传输速率以及交换设备的性能,已经可以满足绝大多数应用的要求,但其中存储设备的访问带宽问题成为了系统的一个主要性能瓶颈。视频编辑、制作具有数据量存储大、码流高、实时性强、安全性重要等特点。这就要求应用于视频领域的存储技术和产品必须具有足够的带宽并且稳定性要好。

在单机应用时,为了保证一台编辑站点有足够的数据带宽,SCSI技术、本地独立磁盘冗余阵例RAID(Redundant Array of Independent Disks)技术(包括软件和硬件)被广泛应用,它通过把若干个SCSI硬盘加上控制器组成一个大容量,快速响应,高可靠性的存储子系统,从用户看可作为一个逻辑盘或者虚拟盘,从而大大提高了数据传输率和存储容量,同时利用纠错技术提高了存储的可靠性,并可满足带宽要求。

随着节目制作需求的发展,要求2—3台站点共享编辑数据。这时可利用SCSI网络技术实现这一要求。几台编辑站点均配置高性能的SCSI适配器,连接至共享的SCSI磁盘阵列,既可以实现几个站点共享数据,又可以保证每一台单机的工作带宽。

光纤通道技术的成熟应用对视频网络的发展具有里程碑的意义,从此主机与共享存储设备之间的连接距离限制从几米、十几米,扩展到几百米、几千米,再配合光纤通道交换设备,网络规模得到几倍、十几倍的扩充。这时候的FC(Fibre Channel光纤通道)磁盘阵列——RAID容错技术、相对SCSI的高带宽、大容量,成为视频网络中的核心存储设备。

随着电视台规模的发展,全台级大规模视频网络的应用被提出。在这种需求下,就必须将更先进的存储技术与产品引入视频领域。存储区域网(SAN)的发展目前正处于全速上升期,各种概念层出不穷。其中具有划时代意义的是虚拟存储概念的提出。相对于传统的交换机加RAID阵列,主机通过硬件层直接访问阵列中的硬盘的SAN结构,虚拟存储的定位是将数据存储功能从实际的、物理的数据存取过程中抽象出来,使普通用户在访问数据时不必关心具体的存储设备的配置参数、物理位置及容量,从而简化用户和系统管理人员的工作难度。

在设计一个视频网络系统的时候,对存储系统的选用,主要考虑如下几个因素:(1)总体带宽性能;(2)可管理性;(3)安全性;(4)可扩展性;(5)系统成本。

当然,这些因素之间有时是相互制约的,特别是系统成本与性能和安全性的关系。如何在这些因素之间寻求合理的、实用的、经济的配合,是一个需要解决的课题。虚拟存储技术的出现,为我们在构建视频网络系统时提供了一个切实可行的高性能价格比的解决方案。

从拓扑结构来讲,对称式的方案具有更高的带宽性能,更好的安全特性,因此比较适合大规模视频网络应用。非对称式方案由于采用了虚拟文件原理,因此更适合普通局域网(如办公网)的应用。

六、虚拟存储的实现机制

当进程运行时,先将一部分程序装入内存,另一部分暂时留在外存,当要执行的指令不在内存时,由系统自动完成将它们从外存调入内存工作。

七、使用虚拟存储额度目的

提高内存利用率

什么是虚拟内存,如何扩大虚拟内存?

1、虚拟内存的作用 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。下面,就让我们一起来看看如何对虚拟内存进行设置吧。

2、虚拟内存的设置 对于虚拟内存主要设置两点,即内存大小和分页位置,内存大小就是设置虚拟内存最小为多少和最大为多少;而分页位置则是设置虚拟内存应使用那个分区中的硬盘空间。对于内存大小的设置,如何得到最小值和最大值呢?你可以通过下面的方法获得:选择“开始→程序→附件→系统工具→系统监视器”(如果系统工具中没有,可以通过“添加/删除程序”中的Windows安装程序进行安装)打开系统监视器,然后选择“编辑→添加项目”,在“类型”项中选择“内存管理程序”,在右侧的列表选择“交换文件大小”。这样随着你的操作,会显示出交换文件值的波动情况,你可以把经常要使用到的程序打开,然后对它们进行使用,这时查看一下系统监视器中的表现值,由于用户每次使用电脑时的情况都不尽相同,因此,最好能够通过较长时间对交换文件进行监视来找出最符合您的交换文件的数值,这样才能保证系统性能稳定以及保持在最佳的状态。 找出最合适的范围值后,在设置虚拟内存时,用鼠标右键点击“我的电脑”,选择“属性”,弹出系统属性窗口,选择“性能”标签,点击下面“虚拟内存”按钮,弹出虚拟内存设置窗口,点击“用户自己指定虚拟内存设置”单选按钮,“硬盘”选较大剩余空间的分区,然后在“最小值”和“最大值”文本框中输入合适的范围值。如果您感觉使用系统监视器来获得最大和最小值有些麻烦的话,这里完全可以选择“让Windows管理虚拟内存设置”。 3、调整分页位置 Windows 9x的虚拟内存分页位置,其实就是保存在C盘根目录下的一个虚拟内存文件(也称为交换文件)Win386.swp,它的存放位置可以是任何一个分区,如果系统盘C容量有限,我们可以把Win386.swp调到别的分区中,方法是在记事本中打开System.ini

(C:\\Windows下)文件,在[386Enh]小节中,将“PagingDrive=C:WindowsWin 386.swp”,改为其他分区的路径,如将交换文件放在D:中,则改为

“PagingDrive=D:Win386.swp”,如没有上述语句可以直接键入即可。 而对于使用Windows 2000和Windows XP的,可以选择“控制面板→系统→高级→性能”中的“设置→高级→更改”,打开虚拟内存设置窗口,在驱动器[卷标]中默

认选择的是系统所在的分区,如果想更改到其他分区中,首先要把原先的分区设置为无分页文件,然后再选择其他分区。

如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分不在一个连续的、无碎片文

如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分不在一个连续的、无碎片文件的空间上,可以更好的发挥作用。

虚拟内存使用技巧

对于虚拟内存如何设置的问题,微软已经给我们提供了官方的解决办法,对于一般情况下,我们推荐采用如下的设置方法:

(1)在Windows系统所在分区设置页面文件,文件的大小由你对系统的设置决定。具体设置方法如下:打开"我的电脑"的"属性"设置窗口,切换到"高级"选项卡,在"启动和故障恢复"窗口的"写入调试信息"栏,如果你采用的是"无",则将页面文件大小设置为2MB左右,如果采用"核心内存存储"和"完全内存存储",则将页面文件值设置得大一些,跟物理内存差不多就可以了。

小提示:对于系统分区是否设置页面文件,这里有一个矛盾:如果设置,则系统有可能会频繁读取这部分页面文件,从而加大系统盘所在磁道的负荷,但如果不设置,当系统出现蓝屏死机(特别是STOP错误)的时候,无法创建转储文件 (Memory.dmp),从而无法进行程序调试和错误报告了。所以折中的办法是在系统盘设置较小的页面文件,只要够用就行了。

(2)单独建立一个空白分区,在该分区设置虚拟内存,其最小值设置为物理内存的1.5倍,最大值设置为物理内存的3倍,该分区专门用来存储页面文件,不要再存放其它任何文件。之所以单独划分一个分区用来设置虚拟内存,主要是基于两点考虑:其一,由于该分区上没有其它文件,这样分区不会产生磁盘碎片,这样能保证页面文件的数据读写不受磁盘碎片的干扰;其二,按照Windows对内存的管理技术,Windows会优先使用不经常访问的分区上的

页面文件,这样也减少了读取系统盘里的页面文件的机会,减轻了系统盘的压力。

(3)其它硬盘分区不设置任何页面文件。当然,如果你有多个硬盘,则可以为每个硬盘都创建一个页面文件。当信息分布在多个页面文件上时,硬盘控制器可以同时在多个硬盘上执行读取和写入操作。这样系统性能将得到提高。

提示:

允许设置的虚拟内存最小值为2MB,最大值不能超过当前硬盘的剩余空间值,同时也不能超过32位操作系统的内存寻址范围——4GB。

虚拟存储的原理

虚拟存储的管理方式

虚拟存储(virtual memory)技术的概念是:把 很大的程序分成许多较小的块,全部存储在辅存中。运行时,把要用到的程序块先调入主存,并且把马上就要用到的程序块从主存再调入高速缓存。这样,一边运行 程序,一边进行所需程序块的调进调出。只要及时供应上所需处理的程序与数据,程序就能顺利而高速地运行下去。因此,对于应用程序员来说就好像有一个比实际 主存大得多的,可以放得下整个程序的虚拟主存空间。当辅存中的程序块调入主存时,必须使程序在主存中定位。为了使应用程序员对其程序不同修改就可以在虚拟 存储器上运行,即应用程序员不用考虑如何把程序地址映象和变换成实际主存的物理地址,这种程序的定位应由系统自动完成,从而使虚存技术对于应用程序员来说 是透明的。这种定位技术是把程序分成若干较小的段或页,用相应的映象表来指明该程序的某段或某页是否已经装入主存。若已装入主存,则应同时指明它在主存的 起始位置;若尚未装入主存,则去辅存中调用相应的段或页,并建立起程序空间和实存空间的地址映象关系。由于采用的存储映象算法不同,就形成不同的存储管理方式,常用的有段式管理、页式管理以及段页式管理。

段式管理(segmentation)把一个程序分成若干个段(segment)进行存储,每个段都是一个逻辑实体(logical entity),程序员需要知道并使用它。它的产生是与程序的模块化直接有关的。段式管理是通过段表进行的,它包括段号或段名、段起点、装入位、 段的长度等。此外还需要主存占用区域表、主存可用区域表。为了进行段式管理,每道程序在系统中都有一个段(映象)表来存放该道程序各段装入主存的状况信 息。段表中的每一项(对应表中的每一行)描述该道程序一个段的基本状况,由若干个字段提供。段名字段用于存放段的名称,段名一般是有其逻辑意义的,也可以 转换成用段号指明。由于段号从0开始顺序编号,正好与段表中的行号对应,如2段必是段表中的第3行,这样,段表中就可不设段号(名)字段。装入位字段用来指示该段是否已经调入主存,“1”表示已装入,“0”表示未装入。在程序的执行过程中,各段的装入位随该段是否活跃而动态变化。当装入位为“1”时,地址字段用于表示该段装入主存中起始(绝对)地址,当装入位为“0” 时,则无效(有时机器用它表示该段在辅存中的起始地址)。段长字段指明该段的大小,一般以字数或字节数为单位,取决于所用的编址方式。段长字段是用来判断 所访问的地址是否越出段界的界限保护检查用的。访问方式字段用来标记该段允许的访问方式,如只读、可写、只能执行等,以提供段的访问方式保护。除此之外, 段表中还可以根据需要设置其它的字段。段表本身也是一个段,一般常驻在主存中,也可以存在辅存中,需要时再调入主存。假设系统在主存中最多可同时有N道程序,可设N个 段表基址寄存器。对应于每道程序,由基号(程序号)指明使用哪个段表基址寄存器。段表基址寄存器中的段表基址字段指向该道程序的段表在主存中的起始地址。 段

表长度字段指明该道程序所用段表的行数,即程序的段数。由系统赋给某道程序(用户、进程)一个基号,并在调入调出过程中对有关段表基址寄存器和段表的内 容进行记录和修改,所以这些都不用用户程序员来管。某道活跃的程序在执行过程中产生的指令或操作数地址只要与基号组合成系统的程序地址,即可通过查表自动 转换成主存的物理地址。下图示意性地表示了这一地址变换的过程。分段方法能使大程序分模块编制,从而可以多个程序员并行编程,缩短编程时间,在执行或编译 过程中对不断变化的可变长段也便于处理。各个段的修改、增添并不影响其它各段的编制,各用户以段的连接形成的程序空间可以与主存的实际容量无关。分段还便 于几道程序共用已在主存内的程序和数据,如编译程序、各种子程序、各种数据和装入程序等。不必在主存中重复存储,只需把它们按段存储,并在几道程序的段表 中有公用段的名称及同样的基址值即可。由于各段是按其逻辑特点组合的,容易以段为单位实现存储保护。例如,可以安排成常数段只能读不能写;操作数段只能读或写,不能作为指令执行;子程序段只能执行,不能修改;有的过程段只能执行,不能读也不能写,如此等等。一旦违反规定就中断,这对发现程序设计错误和非法使用是很有用的。段式管理的虚拟存储器由于各个段的长度完全取决于段自身,当然不会恰好如下图那样是1K的 整数倍,段在主存中的起点也会是随意的,这就给高效地调入段分配主存区域带来困难。为了进行段式管理,除了系统需要为每道程序分别设置段映象表外,还得由 操作系统为整个主存系统建立一个实主存管理表,它包括占用区域表和可用区域表两部分。占用区域表的每一项(行)用来指明主存中哪些区域已被占用,被哪道程 序的哪个段占用以及该段在主存的起点和长度。此外,还可以设置诸如该段是否进入主存后被改写过的字段,以便该段由主存中释放时,决定是否还要将其写回到辅 存中原先的位置来减少辅助操作。可用区域表的每一项(行)则指明每一个未被占用的基地址和区域大小。当一个段从辅存装入主存时,操作系统就在占用区域表中 增加一项,并修改可用区域表。而当一个段从主存中退出时,就将其在占用区域表的项(行)移入可用区域表中,并进行有关它是否可与其它可用区归并的处理,修 改可用区域表。当某道程序全部执行结束或者是被优先级更高的程序所取代时,也应将该道程序的全部段的项从占用区域表移入可用区域表并作相应的处理

通常,多用户虚存空间要比主存储器的实存空间大得多。那么,在页式和段页式虚拟存储器中,虚存页面数就比实存页面数多得多。从页表中看,装入位为"1"(表示相应的页面不在主存储器中)的页面存储字所占的比例很小。

有一种压缩页表的方法。页表只为已经装入到主存储器中的那些页面建立虚页号与实页号之间的对应关系。页表的每一个存储字中主要包括多用户虚页号、 主存实页号、修改位和其它标志(如访问方式)等,不再需要装入位,并且采用相联方式访问。因此,把这种目录表称为相联目录表,简称目录表。 采用目录表法的虚拟存储器,其地址变换过程如图3.26所示。为了把多用户虚页号变换成主存实页号,要把多用户虚地址中的多用户虚页号(U与P拼 接起来)与相联存储器中的多用户虚页号字段逐个进行比较。如果有相等的,表示要访问的这个页面已经装入到主存储器中了。这时,读出该单元中的其它字段,其 中,实页号字段中存放的就是与多用户虚页号相对应的主存实页号。只要把这个实页号p与多用户虚地址中的页内偏移D直接拼接起来就成了要访问的主存实地址。 如果没有相等的,则表示要访问的那个页面还没有装入到主存储器中,这时,发出页面失效请求,从磁盘存储器中把要访问的那一个页面调入主存储器。

由于目录表是采用高速度小容量存储器实现的,与页表放在主存储器中的方法相比,查表的速度要快得多。

随着主存储器容量的增加,目录表的容量也必须增加。因此,目录表法的可扩展性比较差。当主存储器的容量增加到一定数量后,目录表的造价就会很高,查表的速度也会降低。

图3.26 目录表法的地址变换过程

虚拟存储的三种方法

数据是企业最大的财富,任何一家公司都不可掉以轻心。数据一旦丢失,企业失去的不仅是眼前的财富,更可能是未来的发展机会,因此许多企业纷纷引入先进的网络存储技术,希望存储资源像我们日常生活中的水和电一样,成为企业信息系统中的“公用设施”。

光纤通道的引入为分布式存储系统的应用扫清了道路,使得异构主机能够在分布式存储系统中实现共享。“存储公用设施模型”要求存储系统的管理处于集中控制之下,同时允许分布于不同地理位置的主机能够访问集中管理的数据,用户不必考虑存储设备的布局方式、采用何种存储系统以及资源如何配置。同时,用户也会有一种强烈的安全感,确信未经授权的数据访问将会遭到严禁。

要使“存储公用设施”从理论走向实用,存储系统必须满足下列要求: ● 支持从异构主机到异构存储系统的透明访问。即服务器可以运行异构操作系统,例如Sun Solaris、HP-UX、Windows或Linux等等。存储设备可以来自不同的供应商,无论是EMC、康柏、Sun还是戴尔公司的存储设备,都可以顺利地接入系统。

● 支持24×7小时的数据可用性。

● 高性能的数据访问。

● 数据安全性——只允许有访问权的用户进行访问相应的数据。

● 平滑的存储容量扩展——存储网络上添加存储设备的过程对用户透明,而且任何服务器都不需停机。

● 支持数据保护和恢复。

● 透明的数据迁移——由于系统故障或者存储系统重新配置所进行的数据迁移不改变用户访问数据的方式。

● 存储系统在线重新配置——当用户请求新的存储需求或要求访问权限调整时,不会中断其他用户的数据访问。存储虚拟化是支持存储公用设施模型的关键技术,是安全可靠的动态存储池,可以适应和包容丰富多样、迅速发展的存储设备,具备为异构服务器和客户机提供服务的能力。因此,虚拟存储系统必须具备下列功能:

● 存储协议的自由转换,例如从SCSI到光纤通道协议或者从SSA到光纤通道协议,能够支持异构存储和服务器环境。

● 支持高可用性和高性能SAN存储配置,例如指定主从镜像和空闲驱动器、产生合成式驱动器、联结多个存储子系统构成单一驱动器、实现集中管理以及灵活的存储容量扩充。

● 具有可视性和可管理性,能够在更新和恢复等突发事件发生时及时通知管理员。

● 通过TCP/IP网络实现n路镜像、快照和异步远程拷贝等数据复制操作。 ● 存储设备的故障或任何在主机和存储子系统路径上的设备(例如路由器、主机适配器或交换机等)故障能够触发自动故障接替。

● 可以实现定时自动备份和恢复。

● 可以实现数据高速缓存。

● 可以控制主机访问不同的存储设备分区。

自从存储虚拟化成为热点技术以来,许多供应商开始采用不同的系统结构实现存储虚拟功能,但其完整性和容量水平有所差异。

从系统的观点看,有三种主要的存储虚拟化方法:

● 基于主机的虚拟存储;

● 基于存储设备的虚拟存储;

● 基于网络的虚拟存储。

方法1:基于主机的虚拟存储

基于主机的虚拟存储依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意

间越权访问到受保护的数据。这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。

但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。

方法2:基于存储设备的虚拟化基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just a Bunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。

基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customzing)和监控。

方法3:基于网络的虚拟存储基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:

1.基于互联设备的虚拟化

基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上;如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,因为一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是分离的。基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、Sun Solaris、Linux或供应商提供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势——易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要更高的硬件成本。但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的互操作性仍然是一个问题。

2. 基于交换机的虚拟化

按照基于交换机的方法,存储虚拟化的功能模块嵌入于交换机的固件中或者

放在附属于交换机的单独的服务器上。由于并不要求在每一台主机上都运行存储虚拟化功能软件,基于交换机的存储虚拟化系统以软件方式提供管理功能模块,这种方法不存在基于设备或基于主机环境中可能需遇到的安全性问题。同时,在异构环境中也能提供更多的互操作性。但是,交换机仍然是一个瓶颈,也可能成为故障的敏感点。当然,如果不在意较高的附加费用,可以引入备用交换机,用于数据通道上的故障接替。

3. 基于路由器的虚拟化

基于路由器的方法是在路由器固件上实现存储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于路由器潜在地为每一台主机服务,大多数控制模块存在于路由器的固件中,相对于基于主机和大多数基于互联设备的方法,这种方法的性能更好、效果更佳。由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障问题提供了一个解决方法。由于路由器经常作为协议转换的桥梁,基于路由器的方法也可以在异构操作系统和多供应商存储环境之间提供互操作性。

谁能胜出?

每一种方法都由其优缺点。基于主机和基于存储的方法对于初期的采用者来说魅力最大,因为他们不需要任何附加硬件,但对于异构存储系统和操作系统而言,系统的运行效果并不是很好。对于那些要求最大限度进行互操作的企业来说,基于交换机或基于路由器的方法可能更为恰当。对那些要求更高可扩充性的用户来说,基于路由器的方法是最优选择。基于互联设备的方法处于两者之间,它回避了一些安全性问题,存储虚拟化的功能较强,能减轻单一主机的负载,同时可获得很好的可扩充性。不同供应商的存储虚拟化实现方法不同,一些偏重于复制,一些擅长备份,而另外一些在恢复和访问控制方面性能更为优越。存储管理软件供应商趋向于提供最完善的管理套餐。但是,多平台的支持和最佳的性能特性并不容易达到最优。在数据复制方面已经发展出多种镜像方法。许多存储供应商提供三层镜像结构,Veritas公司甚至能够提供四层镜像结构。镜像在一些方面受到推崇,全面镜像能在另一个驱动器上产生完全相同的副本。这个附加的副本有时也称为快照,只存储以前版本的数据。有时,在不同地理位置上存在的副本驱动器,通过IP相连能产生远程或异步副本。在存储网络中,存储访问控制经常在分区(Zoning)式的主机和存储系统中进行。只有属于同一个分区的主机能够访问这个分区的存储设备。主机和存储设备经常是多分区的一员。分区制的理念与虚拟专用存储网络相似。分区有多种方法。随着共享存储的粒度和管理难易程度不同,分区方法的差异很大。基于端口的分区经常在交换机中实现,交换机内部的访问必须在指定的端口之间进行。这种分区的特色是分区之间不能重叠。当指定的端口分区成员发生变动时,分区需要重新配置。这种方式有着明显的缺陷,因为大多数情况下,即使交换机端口发生调整,也不允许改变分区成员的一致性。子系统分区或卷映射经常由内部磁盘子系统的控制器来实现,它允许整个或部分

驱动器成为其数据出口,使得单一存储子系统看起来好像是多驱动器和多主机。基于逻辑单元设备号掩码(LUN masking)之上的分区在主机I/O控制器、主机软件或路由器上得以实现。LUN 掩码像一个过滤器,只允许主机访问特定的存储资源,它也允许一个存储子系统中单一驱动器能够属于不同的分区,从而产生设备层面的分区。存储虚拟化功能的复杂性很容易在许多供应商中产生一种“人人都能做虚拟化”的错觉,其实是各商家采取了不同的标准来定义“虚拟化”。供应商之间技术的整合和合作随时都可能发生。因此要求数据中心经理们具备良好的技术知识,以便清楚地了解自己需要的是什么。

在评估虚拟化解决方案时,您应该思考以下问题:

1. 能够支持异构操作系统和不同的存储供应商吗?

2. 适合于成百上千TB的数据存储吗?

3. 便于管理吗?

4. 能提供方便的分区管理吗?

5. 能支持灵活的容量扩充吗?

6. 安全可靠吗?

事实上,在当今几乎没有哪一家供应商能对上述所有问题真正自豪地说“是”。


相关内容

  • 存储虚拟化
  • 从广义上讲,虚拟化技术在存储与服务器解决方案中已经应用多年.存储虚拟化是一个抽象的技术,在存储的所有层面上几乎都可以应用,如文件系统.文件.块.主机.网络.存储设备等层次都可以进行虚拟化. 目前,存储虚拟化甚至被人们看作是继SAN之后的又一个新浪潮.未来的存储虚拟化将会为存储应用带来更加高级的存储功 ...

  • 浅谈存储虚拟化技术
  • 浅谈存储虚拟化技术 摘要:本文主要就虚拟存储化技术的概念.主要特点.相关技术.虚拟存储化的作用以及怎样认识虚拟存储化作了有关的描述与解析. 关键词:存储虚拟化 技术 计算机存储技术经历了从单个的磁盘.磁带.RAID到存储网络系统的发展历程,这一路走来似乎缓慢而艰辛,随着存储数据的不断增长,对存储空间 ...

  • VMware 虚拟机存储管理
  • VMware 虚拟机存储管理 1) 实现虚拟机共享存储 环境中对共享存储的访问是通过 实现的,这是一种专为虚拟机设计的高性能集群文件系统. VMware vStorage VMFS 是专为虚拟服务器环境而设计.构造和优化的,可让多个虚拟机对由集群式存储构成的整合池进行共享访问,从而提高资源利用率.V ...

  • 智慧校园数据中心方案建议书
  • 智慧校园数据中心 方案建议书 目录 1项目概述 . ............................................................................................................................ ...

  • 云平台虚拟化方案建议书
  • 目录 1. 虚拟化的需求 . ..................................................................................................................................... 2 ...

  • 云存储网盘技术的原理,它与传统硬盘存储有什么关联?
  • 云端存储技术相信绝大多数人都曾用过,众所周知的有百度网盘.360云盘.腾讯微云等都是云端存储技术,无论公有云还是私有云都是云存储技术的服务平台.那么我们究竟该如何理解目前云计算背景下的云存储概念,这个云存储概念与传统存储又有哪些区别与相似呢? 云存储网盘技术 很早以前就已经兴起网络云存储技术 早在8 ...

  • 私有云建设方案v1
  • 私有云建设解决方案 2016年4月 目录 1 2 项目概述 ........................................................................................................................ ...

  • 超融合一体化平台在余姚农商银行的应用实践
  • 超融合一体化平台在余姚农商银行的应用实践 余姚农村商业银行 黄建文 徐杰 摘要:余姚农商银行于2013年在业务网络环境下实践了服务器虚拟化及数据级同城容灾系统,全面为余姚农信核心业务系统提供了安全高效的支撑平台,提升了业务连续性.随着近期企业私有云领域超融合一体化平台技术的发展和成熟,在解决传统虚拟 ...

  • 云计算:概念,现状及关键技术
  • 2008年伞围高性能计算学术年会 云计算:概念,现状及关键技术 司品超董超群吴利 张超容 (江南计算技术研究所无锡214083) 摘要:随着多核处理器.虚拟化.分布式存储.宽带互联网.自动化管理等技术的发展,云计算的概念变得越来越流行.本文首先阐述了云计算的产生背景.相关概念和云计算的特点,然后对云 ...