Win2k秘密武器之遠端儲存診斷(轉)

amyz發表於2007-08-11
Win2k秘密武器之遠端儲存診斷(轉)[@more@]

  遠端儲存及其用途

  在網路廣為普及的今天,遠端儲存早已不是專家或高手才能使用的專利了。廣義地說,電子郵件、網路硬碟、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 = dir0 est1.tst, Size = 1000000 RecallTime = 01/01/1601 00:00:00, File USN = 589408

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-946974/,如需轉載,請註明出處,否則將追究法律責任。

相關文章