远程储存及其用途
在网络广为普及的今天,远程储存早已不是专家或高手才能使用的专利了。广义地说,电子邮件、网络硬盘、WEB页面、程序文件的下载和上传都是远程储存的典型例子。但由于工作性质和环境的不同,特别是管理方式不同,故本文所介绍的远程储存不是广义性的.它具有以下特定含义:
win2000系列的操作系统可以支持远程储存,本质是一种将远端的可利用磁盘空间扩充为本地磁盘空间的方法。具体说,用户总是将那些频繁访问的数据或文件放在本地计算机的一个卷或某个特定位置,目的是尽量减少数据文件的存取时间。在实现远程储存时,必须有操作系统的支持,以求得最高的工作效率。当然,这不是严格的技术性的论述,只是比较直观的表达。为了叙述上的方便,我们将操作系统中负责远程储存功能的部分,取一个专用的名称叫做:Remote Storage。
Remote Storage可以将那些符合条件的数据文件自动地拷贝到本地计算机的储存介质上并建立相应的卷来进行管理。然后,Remote Storage就时刻监视本地计算机(所建立卷)的可用的磁盘空间。如果本地的可用磁盘空间降低至运行所需要的下限,Remote Storage将会自动将卷中的文件移动到远端的磁盘上一些,腾出一些空间以满足本地计算机运行的需要。相反,如果本地计算机要访问的数据在远端,Remote Storage也负责将这些数据由远端传送到本地。上述的这一切,都被纳入操作系统的管理范围。
可以看出,实际应用中,这种双向的传送会消耗很多本地计算机的系统资源,降低本地计算机运行速度。为了减少这种消耗,网络的远端,有专门配套的服务器,专门负责储存系统的管理。这种服务器支持多种储存介质,例如:硬盘、磁带机等等,数据量很大而对速度要求不高的存取一般就使用磁带机,这样可以降低存储成本,如果要求速度较高,当然要使用硬盘设备。还可以对两种速度不同的介质划分级别,根据文件数据接受访问的级别或频率,先将磁带机上的数据暂时储存在硬盘上以利于提高速度;也可将硬盘上那些不急用的数据储存到磁带上以扩充硬盘的可用空间。不论采用哪一种,外界访问都可以先被服务器接受,然后由服务器查找到对应的内容。这很像我们在VCD上点播歌曲的情形。
广义的远程储存,不同功能都需要相应的服务程序,例如我们建立的个人主页,要用FTP上传后才能使用、收发电子邮件必须用Outlook之类的邮件程序等等。而Remote Storage则是win 2000系统中已经存在的功能,无须再用别的管理程序。
远程储存诊断程序(Rsdiag.exe)
对于建立在win2000系统的远程储存功能,也有一个基于命令行的诊断工具Rsdiag.exe。用这个工具,可以进行诊断查询,也有诸如取消某个作业之类的执行功能。其完整的语法如下:
rsdiag [/c jobname] [/d filetype fullpath&filename] [/e errorcode] [/i] [/j [jobname]] [/m] [/r [/f]] [/s] [/t] [/v [driveletter]] [/x queuedrecall] [/w fullpath&filename]
rsdiag是命令名称,这无须多说。其后面跟随很多参数,实现功能不同,所用的参数不同。参数以及含义分别介绍如下,这也是我们需主要掌握的部分:
/c jobname
用/C来取消指定的作业,jobname 是要取消的作业的名称。至于如何得到作业的名称,请参考下面相应的介绍。
/d filetype fullpath&filename
作用:将数据库诊断信息转换到一个文本文件中,远程储存服务器在管理数据文件的时候,采用了数据库技术。
filetype :指定输出到文本格式中的源文件的种类,必须是下面的某一个:
e 数据库引擎
f 文件系统代理数据库
a 文件系统代理集合
n 引擎集合
s 子系统集合
fullpath&filename :必须是文本文件的完整路径名称和完整的文件名称。
/e errorcode
显示错误代码, errorcode 可以采用十进制或十六进制的代码表示一个错误信息。
/i
显示文件的版本信息。
/j [jobname]
如果没有指定作业,则显示所有的作业信息,包括作业的名称。利用这一点,在想取消某个作业而不知道这个作业是否正在进行时,可以用这个参数进行查看。如果在参数之后指定作业名称,则显示这个作业的所有信息。[jobname]是作业名称。
/m
显示符合处理条件的卷。
/r [/f]
将远程服务器检索队列之内的位于当前检索队列内的信息显示出来,显示的信息有:列出每一个检索到的文件名称和逻辑顺序。如果用[/f]选项,还可以显示包含文件状态在内的检索结果的扩展信息,以及初始检索的值和文件在储存介质上的偏移量信息。
/s
显示关于储存介质的物理信息。
/t
再装入的(供检索的)轨迹文件,因为对所有的存取服务过程来说,都必须读取轨迹文件中的注册设置信息。
/v [driveletter]
这是一个外部参数,显示卷信息。
如果使用附加的参数 driveletter, 可以显示指定卷的扩展信息。
/x queuedrecall
在远程储存服务器的检索队列中,取消指定的检索作业,用/r开关,可以列出检索。
/w fullpath&filename
显示指定文件所在的储存介质的名称,这里指的是物理介质名称,必须在参数中提供文件的完整路径和详细的文件名称。
关于诊断中显示的管理数据库输出信息的含义
远程储存管理利用了数据库技术,这些信息被保存到一个文本文件中,这个文本文件相当于一个储存情况的快照。要显示这些信息,可以使用命令:rsdiag /d数据库输出含义如下:
Engine database(数据库引擎)数据库引擎包含三个表.分别是:
1.Segment Table(分段表):这个表中的信息是数据文件在次一级储存介质上的位置标志符,设分段表的目的是映射BAG表示符和数据片断在次级储存介质的详细位置。
2. Media Table(媒体介质表):这个表用来映射外部媒体介质的名称的标识符号,这个表需要用外部的媒体介质名称与个内部的标识关联,并用这些来管理媒体子系统。
3.BAG Information Table(BAG信息表):包含每一个BAG的全局信息
分段表
各个信息项目的含义如下:项目简略名称
项目完整名称
作用描述
BagId
BAG ID
BAG的ID标识号,具有唯一性
StartLoc
BAG Segment Start Location
描述BAG段起始位置
SegLen
Bag Segment Length
BAG段的长度
LocType
Location Type
位置类型,用来表示文件数据在介质上的位置或在别处找到这些数据的索引信息
PrimPos
Primary Location Position Specifier
表示指定的主储存位置,对于介质储存,指定的是储存位置。对于逻辑定向,这是BAG标识号。
SecPos
Secondary Location Position Specifier
表示指定的次一级的储存位置。对于介质储存,指定的是储存位置。对于逻辑定向,这是BAG标识号。
IDB SeqNum
数据库序列号。数据库最初附加的序号。
表中是各个字段的意义,下面给出一个实际的分段表各项的具体数值:
BagId = {b010419f-fb1b-11d1-a1ba-00a0c9190447}, StartLoc = 3072, SegLen = 52224, LocType = 0, PrimPos = {b0104199-fb1b-11d1-a1ba-00a0c9190447}, SecPos = 0 (IDB SeqNum = 1)
这里面的每一项都与上表中介绍的相对应。
媒体信息表
各个信息项目的含义如下:
项目简略名称
项目完整名称
作用描述
Id<āTD>
Media ID
储存媒体的ID标识,具有唯一性
NtmsId
储存媒体的标识的句柄,是一个可移动储存媒体的管理标识号。
StoragePoolId
Storage Pool ID
储存池标识的ID号,具有唯一性
IDB SeqNum
数据库序列号。数据库最初附加的序号。
下面是媒体信息表实际内容的一个例子:
id = {b0104199-fb1b-11d1-a1ba-00a0c9190447}ntmsId = {da96022d-fb19-11d1-a1ba-00a0c9190447}StoragePoolId = {e5390a42-fb19-11d1-a1ba-00a0c9190447}(IDB SeqNum = 1)
BAG信息表
各个信息项目的含义如下:
项目简略名称
项目完整名称
作用描述
Type
记录的类型
BagId
BAG ID
供图形式用户界面使用的ID号
BirthDate
BAG Birthdate
BAG创建时的数据与时间
Len
Original BAG Length
BAG建立时候的实际长度
Type
BAG Type
普通情况下不用
VolId
Volume ID
卷标识ID
DeletedAmount
Deleted BAG amount
删除总量
RemoteDataSet
Remote Data Set Number
远程数据设置序号
IDB SeqNum
数据库序列号。数据库最初附加的序号。
下面是BAG信息表实际内容的一个例子:
Type = 2 BagId = {b010419f-fb1b-11d1-a1ba-00a0c9190447}, BirthDate = 06/03/1998 20:42:20, Len = 47051200, Type = 0, VolId = {9db6f302-fb1b-11d1-a1ba-00a0c9190447}, DeletedAmount = 0, RemoteDataSet = 1 (IDB SeqNum = 1)
文件代理系统所使用的数据库表:
这个表是文件转移之前的状态列表。
项目简略名称
作用描述
AccessTime
最后访问文件的时间
BagID
ID,包含这个文件移动的数据标识
BagOffset
文件位置偏移量
FileId
用于标识文件的ID号
Waiting for Close
一般不使用
Offset
一般不使用
Path
文件路径,这个信息可能是被压缩的形式
Size
转移之前的数据总量
RecallTime
最后尝试调用的时间
File USN
该文件的更新次序号
下面是文件代理数据库表的一个例子:
AccessTime = 03/30/1998 20:52:46 BagId = {b01043e7-fb1b-11d1-a1ba-00a0c9190447}, BagOffset = 56320, FileId = 1000000 Waiting for close = FALSE, Offset = 0, Path = dir0est1.tst, Size = 1000000 RecallTime = 01/01/1601 00:00:00, File USN = 589408