遠程儲存及其用途
在網絡廣為普及的今天,遠程儲存早已不是專家或高手才能使用的專利了。廣義地說,電子郵件、網絡硬盤、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
BAGID
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 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 命令,可以得到每個作業中包含的設備資源、階段和動作信息。詳情見下表:
width=104>
Identifier
項目簡略名稱 作用描述Name
作業名稱 這個作業唯一的標識號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
Z 作業開始時間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 class=MsoNormal>Is Active
邏輯值:如果資源是活動的為TRUE,否則為FALSE
Is Available
邏輯值:如果資源是可用的為TRUE,否則為FALSEManaging Hsm
管理資源的服務器的唯一的標識Desired Free
希望得到的自由空間的百分率Actual Free
實際可得到的自由空間的百分率Total
這個設備資源的總容量Free