电脑技术学习

Win2000远程储存诊断

dn001

远程储存及其用途

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

卷标识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 = dir0test1.tst, Size = 1000000 RecallTime = 01/01/1601 00:00:00, File USN = 589408

关于作业项目信息的含义:
上面介绍过使用特定参数可以显示全部的系统作业名称,命令形式是:rsdiag /j jobname
所显示的信息有如下的格式,具体含义是:

项目简略名称 作用描述

Name

作业名称

RunID

正在运行的作业的ID号

IsActive

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

IsUsers

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

Done

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

DoneOK

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

MaxSess

该数值总是1


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

项目简略名称 作用描述

Name

作业名称

Identifier

这个作业唯一的标识号

Hsm Identifier

远程储存服务器标识号

Run Identifier

运行的作业标识号

MaxSess

这个数值总是1

Is User Defined

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

Is Active

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

Did Finish

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

Did 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 /v  driveletter 显示详细的资源。
对普通信息,例如设备的逻辑名称和自由空间的描述,包括一个或的多个规则和自动截取信息,规则由包含文件的相关信息组成。一个规则包含一些标准和这个动作内包含的文件描述信息。
这个表中列出的是对设备资源描述的项目:

项目简略名称 作用描述

Logical name

设备资源的逻辑名称

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,否则为FALSE

Is Active

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

Is Available

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

Managing Hsm

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

Desired Free

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

Actual Free

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

Total

这个设备资源的总容量

Free

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

Premigrated

移动之前的数据总量

Truncated

移动之后的数据总量

Manageable Size

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



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

项目简略名称 作用描述

Rule Path

规则所适用的路径

Name

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

Search Name

规则序列号

Is Include

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

Is User Defined

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

Is In SubDirs

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

Criterium Name

标准名称

Is Ignored

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

Is 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,处于读写状态FALSE

Capacity

媒体占据的总字节数

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

结语:

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




标签: