遠端儲存 是 Windows 2000 伺服器家族內建的分層儲存管理 (HSM) 功能:自動將符合條件 (存取時間、檔案大小、類型) 的檔案從本地磁碟遷移至附屬儲存庫 (磁帶櫃、光碟庫、磁碟陣列),在本地保留重新分析點,透明支援使用者/應用程式存取。Rsdiag.exe 為命令列診斷工具,提供作業狀態查詢、資料庫匯出、檢索佇列檢視、儲體體物理資訊、作業取消等完整管理介面。
完整語法與 14 大參數對照表
rsdiag [/c JobName] [/d FileType FullPath] [/e ErrorCode] [/i] [/j [JobName]]
[/m] [/r [/f]] [/s] [/t] [/v [DriveLetter]] [/x QueuedRecall] [/w FullPath]
| 參數 | 功能 | 關鍵說明 |
| /c JobName | 取消指定作業 | 作業名稱來源請用 /j 查詢 |
| /d FileType FullPath | 匯出管理資料庫至文字檔 | FileType: e=引擎, f=檔案系統代理, a=代理集合, n=引擎集合, s=子系統集合 |
| /e ErrorCode | 顯示錯誤碼說明 | 支援十進位/十六進位 (0x...) |
| /i | 顯示工具版本資訊 | |
| /j [JobName] | 列出所有作業 / 指定作業完整資訊 | 無參數列出全部;有參數顯示單一作業階段/資源/動作細節 |
| /m | 顯示受管理磁碟區清單 | |
| /r [/f] | 顯示檢索佇列 | /f 顯示擴充資訊:檔案狀態、初始檢索值、儲體偏移量 |
| /s | 顯示儲體體物理資訊 | 媒體 ID、NTMS 控制碼、儲存池 ID、序號 |
| /t | 重新載入軌跡檔 (註冊設定) | 所有儲存作業必須讀取軌跡檔 |
| /v [DriveLetter] | 顯示磁碟區資訊 | 指定磁碟機代號顯示擴充資訊 (自由空間、規則、自動截斷設定) |
| /x QueuedRecall | 取消檢索佇列中指定檢索作業 | 先用 /r 列出佇列確認名稱 |
| /w FullPath | 顯示指定檔案所在儲體體物理名稱 | 需提供完整路徑與檔名 |
管理資料庫四大核心表結構完整釋義
執行 rsdiag /d e D:\dump_engine.txt 匯出引擎資料庫,包含三張表:
1. Segment Table (分段表) — 對應 BAG 與次級儲體位置映射
| 欄位 | 完整名稱 | 含義 |
| BagId | BAG ID | BAG 唯一識別碼 (GUID) |
| StartLoc | BAG Segment Start Location | 段起始位置 (位元組偏移) |
| SegLen | BAG Segment Length | 段長度 |
| LocType | Location Type | 0=媒體儲存, 1=邏輯導向 (指向另一 BAG) |
| PrimPos | Primary Location Position Specifier | 主儲存位置 (媒體位置或邏輯 BAG ID) |
| SecPos | Secondary Location Position Specifier | 次級儲存位置 (同上) |
| IDB SeqNum | Database Sequence Number | 資料庫附加序號 |
範例:BagId={b010419f-fb1b-11d1-a1ba-00a0c9190447}, StartLoc=3072, SegLen=52224, LocType=0, PrimPos={b0104199-fb1b-11d1-a1ba-00a0c9190447}, SecPos=0 (IDB SeqNum=1)
2. Media Table (媒體表) — 外部媒體名稱與內部標識映射
| 欄位 | 完整名稱 | 含義 |
| Id | Media ID | 媒體唯一 GUID |
| NtmsId | NTMS Media ID | 可移動儲存管理服務控制碼 |
| StoragePoolId | Storage Pool ID | 儲存池 GUID |
| IDB SeqNum | Database Sequence Number | 資料庫序號 |
3. BAG Information Table (BAG 資訊表) — 每個 BAG 全域屬性
| 欄位 | 完整名稱 | 含義 |
| Type | Record Type | 記錄類型 |
| BagId | BAG ID | GUI 顯示用 ID |
| BirthDate | BAG Birthdate | 建立日期時間 |
| Len | Original BAG Length | 建立時實際長度 |
| Type | BAG Type | 一般情況不使用 (保留) |
| VolId | Volume ID | 來源磁碟區 GUID |
| DeletedAmount | Deleted BAG Amount | 累計刪除量 |
| RemoteDataSet | Remote Data Set Number | 遠端資料集序號 |
| IDB SeqNum | Database Sequence Number | 資料庫序號 |
4. File System Agent Database (檔案系統代理資料庫) — 遷移前檔案狀態快照
| 欄位 | 含義 |
| AccessTime | 最後存取時間 |
| BagId | 包含此檔案的 BAG ID |
| BagOffset | 檔案在 BAG 內偏移量 |
| FileId | 檔案唯一識別碼 |
| Waiting for Close | 等待關閉旗標 (通常 FALSE) |
| Offset | 保留欄位 |
| Path | 檔案相對路徑 (可能壓縮) |
| Size | 遷移前檔案大小 |
| RecallTime | 最後嘗試喚回時間 |
| File USN | 檔案更新序號 (NTFS USN Journal) |
作業資訊完整欄位對照 (rsdiag /j)
| 欄位 | 含義 |
| Name | 作業名稱 (唯一識別) |
| RunId | 執行實例 ID |
| IsActive | True=執行中, False=已停止 |
| IsUsers | True=使用者建立, False=系統自動 |
| Done | True=已完成 |
| DoneOk | True=完成且無錯誤 |
| MaxSess | 固定為 1 |
資源描述完整欄位 (rsdiag /v /m)
| 欄位 | 含義 |
| Logical name | 邏輯名稱 (如 D:) |
| Identifier | 資源唯一 GUID |
| Serial Number | 磁碟區序號 |
| File System Name | 檔案系統 (NTFS/FAT32) |
| Name (Label) | 磁碟區標籤 |
| User Friendly name | 磁碟機代號 (C/D/E...) |
| Sticky name | Win2000 內部持久名稱 |
| Path | 當前路徑映射 |
| UNC Path | UNC 路徑 |
| Alternate Path | 備用路徑 |
| Old Path | 原始路徑 |
| Db Path | 遷移前資料庫路徑 |
| Is Managed | True=受 HSM 管理 |
| Is Active | True=作用中 |
| Is Available | True=可用 |
| Managing Hsm | 管理此資源的 HSM 伺服器 GUID |
| Desired Free | 期望可用空間百分比 |
| Actual Free | 實際可用空間百分比 |
| Total | 總容量 (位元組) |
| Free | 可用空間 (位元組) |
實戰操作流程範例
- 每日巡檢:
rsdiag /j > rsdiag_jobs_%date%.log → 檢查 IsActive/IsUsers/DoneOk 異常作業。
- 空間壓力排查:
rsdiag /v C: /v D: /v E: → 比對 Desired Free vs Actual Free,若 Actual < Desired 觸發遷移。
- 檔案喚回失敗:
rsdiag /r /f → 找出 State=Failed 的檢索項 → /x 取消 → 手動觸發重試。
- 媒體庫存盤點:
rsdiag /s > media_inventory_%date%.log → 對照 NTMS 媒體櫃實體標籤。
- 錯誤碼查詢:事件日誌記錄 RS 錯誤 0x8004230F →
rsdiag /e 0x8004230F 顯示「檢索逾時」。
總結
Rsdiag 以 14 個精準參數涵蓋 HSM 全生命週期診斷需求,資料庫四表結構揭示遷移底層邏輯。網管應建立「每日作業巡檢 → 週度空間趨勢 → 月度媒體盤點」三層監控體系,配合腳本自動化匯出與告警,將遠端儲存從「黑盒子」轉化為可視、可控、可預測的儲存服務。