Win2000远程储存诊断

远程储存及其用途

在网络广为普及的今天 , 远程储存早已不是专家或高手才能使用的专利了 。广义地说 , 电子邮件、网络硬盘、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

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

卷标识IDDeletedAmount

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 = dir0test1.tst, Size = 1000000 RecallTime = 01/01/1601 00:00:00, File USN = 589408
关于作业项目信息的含义:
上面介绍过使用特定参数可以显示全部的系统作业名称 , 命令形式是:rsdiag /j jobname
所显示的信息有如下的格式 , 具体含义是:

项目简略名称作用描述Name

作业名称RunID

正在运行的作业的ID号IsActive

逻辑标志 , 正在运行的作业为true , 否则为falseIsUsers

用户建立的作业为OK , 自动建立的作业为falseDone

作业已经完成为OK , 否则为falseDoneOK

如果作业已经完成且无错误条件为OK , 否则为falseMaxSess

该数值总是1

作业项目显示的一个例子 , 这实际是执行rsdiag /j命令之后显示的结果:请注意 , 后两项的名称太长 , 对应的值只好下移一行 。
Name RunIdIsActiveIsUsersDoneDoneOkMaxSess
Manage00000002 False False Ok Ok0000001
RemoteStorageJob_H_ QuickUnmanage
00000001False OkOk Ok0000001
RemoteStorageJob_G_ CopyFiles
00000001False OkOk Ok0000001
一个作业是运行在一个或多个资源上的 , 对每个活动资源来说 , 执行一个作业需要一个或多个阶段 , 每阶段又可以执行多个动作 , 尽管多个阶段和多个动作可能被赋予一个有代表性的名称 。例如:作业管理程序将扫描所有被管理的作业设备和转移之前的有效文件 。当作业管理程序利用命令来执行转储时 , 对每一个资源都显示所发现的、相应的两个阶段和两个动作.第一个阶段是扫描的阶段 , 接着的动作也调用扫描 。然后的阶段是数据传送阶段 , 同时取得数据传送之前的信息 。
执行rsdiag /j jobname 命令 , 可以得到每个作业中包含的设备资源、阶段和动作信息 。详情见下表:

项目简略名称作用描述Name

作业名称Identifier

这个作业唯一的标识号Hsm Identifier

远程储存服务器标识号Run Identifier

运行的作业标识号MaxSess

这个数值总是1Is User Defined

用户建立的作业为OK , 自动建立的作业为falseIs Active

逻辑标志 , 正在运行的作业为true , 否则为falseDid Finish

作业已经完成为OK , 否则为falseDid Finish Ok

如果作业已经完成且无错误条件为OK , 否则为false

下面是关于一个设备资源描述的项目解释:

项目简略名称作用描述Resource Name

运行作业时设备资源的名称 作业的当前态 , 有效的状态是:State

活动已经取消正在取消完成失败空闲已中止正在中止恢复跳过开始Starting Path

作业启动的路径Current Path

当前作业执行的路径Start Time

启动时间Stop Time

停止时间Sub-Run Id

子作业的运行标识

下面是一个阶段中每个状态的描述信息:

项目简略名称作用描述Phase Name

运行作业时阶段的名称 , 可用的有:
All – 包含阶段中所有可用的项目
Scan – 扫描阶段
File Update - RSFSA 更新文件
Data Transfer – 数据库引擎正在传送文件作业的当前态 , 有效的状态是:State

活动已经取消正在取消完成失败空闲已中止正在中止恢复跳过开始Media State

以下是在执行作业时媒体可能的状态: 空闲当前不可用装配就绪传送中传送完毕、结束Priority

作业的优先权Start Time

作业开始时间Stop Time

作业停止时间Elapsed Time

从作业开始到停止持续的时间Items

项目号Size

这个阶段的中所有动作完成的字节数Skipped Items

这个阶段需要跳过的项目号Skipped Size

这个阶段跳过的项目的总量

每个阶段中各个动作描述项目的信息:

项目简略名称作用描述Action Name

该阶段动作名称Items

动作项目号Size

本动作完成的数据总量Skipped Items

需要跳过的项目号Skipped Size

该工作中需要跳过的数据总量
资源显示的命令示例:
rsdiag可以用来显示资源状态的情况 , 但用途不同 , 使用的切换开关不同:
命令rsdiag/m , 显示服务器所管理的卷;命令rsdiag /v显示所有的资源;命令rsdiag /vdriveletter 显示详细的资源 。
对普通信息 , 例如设备的逻辑名称和自由空间的描述 , 包括一个或的多个规则和自动截取信息 , 规则由包含文件的相关信息组成 。一个规则包含一些标准和这个动作内包含的文件描述信息 。
这个表中列出的是对设备资源描述的项目:

项目简略名称作用描述Logical name

设备资源的逻辑名称【Win2000远程储存诊断】Identifier

这个设备资源的唯一的标识号Serial Number

卷序列号File System Name

文件系统类型名称Name (Label)

驱动器卷标(例如D:盘用diskd)User Friendly name

驱动器字母标签(例如常用C、D代表某个磁盘)Sticky name

windows2000中使用的名称Path

该资源当前的路径映射UNC Path

该资源的UNC路径Alternate Path

资源的预备的路径Old Path

资源的原始路径Db Path

关于资源(数据)移动之前的数据库列表路径Is Managed

逻辑值:如果资源是可被管理的为TRUE,否则为FALSEIs Active

逻辑值:如果资源是活动的为TRUE,否则为FALSEIs Available

逻辑值:如果资源是可用的为TRUE,否则为FALSEManaging Hsm

管理资源的服务器的唯一的标识Desired Free

希望得到的自由空间的百分率Actual Free

实际可得到的自由空间的百分率Total

这个设备资源的总容量Free

总容量中可用的自由空间的字节数Premigrated

移动之前的数据总量Truncated

移动之后的数据总量Manageable Size

可管理文件的最小"尺寸"


每个规则包含的描述项目:

项目简略名称作用描述Rule Path

规则所适用的路径Name

规则名称 , 这是标准的文件名称统配符Search Name

规则序列号Is Include

逻辑值:如果管理中包含文件适用的规则为TRUE , 否则为FALSEIs User Defined

逻辑值:如果是用户自定义规则为TRUE , 否则为FALSEIs In SubDirs

逻辑值:如果在规则的路径中 , 包含指定路径的子目录为TRUE , 否则为FALSECriterium Name

标准名称Is Ignored

逻辑值:忽略该项为TRUE,否则FALSEIs Negated

逻辑值:否定该项为TRUE,否则FALSE

描述"自动截取"功能所用的项目:

项目简略名称作用描述Keep Recall Time

未使用Run Interval

自动截取作业之间间隔的毫秒数
如何用命令行得到储存媒体状态信息输出的举例:
如果想得到媒体状态输出的信息 , 可以使用:rsdiag /s
对媒体状态进行描述的信息如下表:
项目简略名称作用描述Description

所给出的描述远程储存介质的名称Name

所给出的描述可移动或可抽取的储存介质的名称Media ID

远程储存介质的标识号RSM ID

可移动或可抽取介质的标识号Media Type

媒体类型列表Last update

媒体执行"写"操作的最后时间Last error

返回错误信息的最后时间Recall Only

逻辑值:仅当被调用为TRUE,处于读写状态FALSECapacity

媒体占据的总字节数Free Bytes

总的自由空间的字节数Next Data Set

下一个写入数据的设置Recreate

媒体是否重建的逻辑标志
这是一个显示结果:每个值都与表中的项目对应 。
Showing:
Description : RS-V-SCOOBY-1
Name : RS-V-SCOOBY-1
Media ID : {43e00ce7-8a56-11d2-9681-00a0c905f098}
RSM ID : {0878a2e0-8a56-11d2-9681-00a0c905f098}
Media type : 4
Last update : 12/03/1998 16:21:53
Last error : Ok
Recall only : FALSE
Capacity : 20113227776
Free Bytes : 19654164480
Next Data Set : 87
Recreate : FALSE
由于操作系统的各个功能实际是由许多部件构成的 , 作为远程储存系统也是构件之一 , 它有自己的版本信息 , 如果想知道该构件的版本信息 , 也可以使用命令行来得到:rsdiag /I

下表是管事版本信息描述的项目:

项目简略名称作用描述Title

构件标题Registry Name

构件标题在注册表中的名称Identifier

这个设备资源唯一的标识DB Version

构件使用的数据库版本Build Version

远程储存系统编译号NT Version

(适用的)windows版本NT Build

windows编译号DB Path

部件(所用)文件集合的路径
这是关于版本信息输出的一个实际结果:
RsTest
 Build : 391
FSA
 RegistryName : Remote_Storage_File_System_Agent
 Identifier : {349763e3-8a50-11d2-9681-00a0c905f098}
 Db Version : 1
 Build Version : 386
 NT Version : 5.00
 NT Build : 1934
 DbPath : D:WINNTsystem32RemoteStorageRsFsa.col


HSM
 RegistryName : Remote_Storage_Engine
 Identifier : {51a17b12-8a50-11d2-9681-00a0c905f098}
 Db Version : 2
 Build Version : 386
 NT Version : 5.00
 NT Build : 1934
 DbPath : D:WINNTsystem32RemoteStorageRsEng.col


RMS
 RegistryName : Remote_Storage_Subsystem
 Identifier : {3f577494-8a50-11d2-9681-00a0c905f098}
 Db Version : 2
 Build Version : 386
 NT Version : 5.00
 NT Build : 1934
 DbPath : D:WINNTsystem32RemoteStorageRSSub.col

结语:

整个远程文件储存实用工具包含的项目较多 , 但基本上都是属于查询性质的 , 利用某个命令得出某部分的状态信息.并给出非常详细的描述.很适用于在规模较大的团体内部网络上使用 。