如何管理階層式檔案

本文提供的指引適用於對管理階層式檔案有相關問題的使用者。 如需雲端階層處理的概念性問題,請參閱 Azure 檔案儲存體 常見問題

如何檢查檔案是否已進行階層處理

每一小時會評估一次檔案是否需要依每組原則進行階層處理。 建立新的伺服器端點時,您會遇到兩種情況:

  1. 第一次新增新的伺服器端點時,檔案通常會存在於該伺服器位置。 您必須先上傳這些檔案,才能開始進行雲端階層處理。 磁碟區可用空間原則將不會開始其工作,直到所有檔案的初始上傳完成為止。 然而,選用的日期原則會以個別檔案為基礎,在檔案上傳之後立即開始運作。 一小時間隔亦適用於此情況。

  2. 當您新增伺服器端點時,您可以將空白伺服器位置連線至 Azure 檔案共用,其中包含您的資料。 如果您選擇在初始下載至伺服器期間下載命名空間和重新叫用內容,則在命名空間關閉之後,檔案會根據上次修改的時間戳重新叫用,直到達到磁碟區可用空間原則和選擇性日期原則限制為止。

有幾個方法可用來確認是否已將檔案分層到 Azure 檔案共用:

  • 檢查檔案的檔案屬性。 請在檔案上按一下滑鼠右鍵,移至 [詳細資料],然後向下捲動至 [屬性] 屬性。 分層的檔案具有下列屬性組:

    屬性代號 屬性 定義
    A 封存 指出該檔案應該由備份軟體進行備份。 不論檔案已分層還是完全儲存在磁碟上,一律會設定這個屬性。
    P 疏鬆檔案 指出該檔案是疏鬆檔案。 疏鬆檔案是 NTFS 所提供的特殊化檔案類型,可在磁碟資料流上的檔案大多空白時有效地加以使用。 Azure 檔案同步會使用疏鬆檔案,因為檔案已完全分層或已部分回收。 在完全分層的檔案中,檔案資料流會儲存於雲端。 在部分回收的檔案中,該部分的檔案已經在磁碟上。 當應用程式 (例如,多媒體播放程式或壓縮公用程式) 讀取部分檔案時,可能會發生這種情形。 如果檔案已完全回收到磁碟,Azure 檔案同步便會將它從疏鬆檔案轉換為一般檔案。 此屬性只能在 Windows Server 2016 和較舊版本上設定。
    存取資料時重新叫用 指出檔案的數據未完全存在於本機記憶體上。 讀取檔案時,會從伺服器端點所連線的 Azure 檔案共用至少擷取一些檔案內容。 此屬性只會在 Windows Server 2019 和更新版本上設定。
    L 重新分析點 指出該檔案有重新分析點。 重新分析點是可供檔案系統篩選器使用的特殊指標。 Azure 檔案同步會使用重新分析點來為 Azure 檔案同步的檔案系統篩選器 (StorageSync.sys) 定義儲存檔案的雲端位置。 這支援無縫存取。 使用者不需要知道正在使用 Azure 檔案同步,或是如何取得 Azure 檔案共用中檔案的存取權。 當檔案完全回收時,Azure 檔案同步就會從檔案中移除重新分析點。
    O 離線 表示部分或所有檔案的內容不會儲存在磁碟上。 當檔案完全回收時,Azure 檔案同步就會移除此屬性。

    檔案的 [屬性] 對話框,已選取 [詳細數據] 索引標籤

    注意

    您可以在檔案總管的資料表顯示中新增 [屬性] 欄位,就能看見資料夾中所有檔案的屬性。 若要這樣做,以滑鼠右鍵按一下現有資料行 (例如,大小),選取 [詳細],然後從下拉式清單中選取 [屬性]

    注意

    這些屬性也全都會顯示在部分重新叫用的檔案中。

  • 使用 fsutil 來檢查檔案的重新分析點。 如上述選項所述,已分層的檔案一律已設定重新分析點。 重新分析點可讓 Azure 檔案同步 檔案系統篩選驅動程式 (儲存體 Sync.sys) 從未儲存在本機伺服器上的 Azure 檔案共用擷取內容。

    若要檢查檔案是否有重新分析點,請在提升權限的命令提示字元或 PowerShell 視窗中,執行 fsutil 公用程式:

    fsutil reparsepoint query <your-file-name>
    

    如果檔案有重新分析點,您可以預期會看到重新分析標記值 : 0x8000001e。 這個十六進位值是 Azure 檔案同步所擁有的重新分析點值。輸出也會包含重新分析資料,此資料會顯現您的檔案在 Azure 檔案共用中的路徑。

    警告

    fsutil reparsepoint 公用程式命令也能刪除重新分析點。 除非 Azure 檔案同步 工程小組要求您,否則請勿執行此命令。 執行此命令可能導致資料遺失。

如何排除檔案或資料夾不進行階層處理

如果您想要將檔案或資料夾排除在階層中,並在 Windows Server 上保持本機,您可以在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync設定 GhostingExclusionList 登錄設定。 您可以依檔案名稱、副檔名或路徑排除檔案。

若要從雲端階層處理排除檔案或資料夾,請執行下列步驟:

  1. 開啟提高權限的命令提示字元。

  2. 執行下列其中一個命令來設定排除:

    若要從階層處理排除特定副檔名 (例如,.one、.lnk、.log),請執行下列命令:
    reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v GhostingExclusionList /t REG_SZ /d .one|.lnk|.log /f

    若要從階層處理排除特定檔案名稱 (例如,FileName.vhd),請執行下列命令:
    reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v GhostingExclusionList /t REG_SZ /d FileName.vhd /f

    若要從階層處理排除資料夾下的所有檔案(例如 D:\ShareRoot\Folder\SubFolder),請執行下列命令:reg ADD “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\儲存體 Sync” /v GhostingExclusionList /t REG_SZ /d D:\\ShareRoot\\Folder\\SubFolder /f

    若要從階層處理排除檔案名稱、副檔名和資料夾的組合 (例如,D:\ShareRoot\Folder1\SubFolder1,FileName.log,.txt),請執行下列命令:
    reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v GhostingExclusionList /t REG_SZ /d D:\\ShareRoot\\Folder1\\SubFolder1|FileName.log|.txt /f

  3. 若要讓雲端階層處理排除生效,您必須執行下列命令,重新啟動儲存體同步代理程式服務 (FileSyncSvc):
    net stop filesyncsvc
    net start filesyncsvc

階層式下載

當您排除檔類型或模式時,不會再從該伺服器分層。 不過,在不同端點中變更或建立的所有檔案都會繼續下載為階層式檔案,而且會保持分層。 系統會根據排除原則逐漸重新叫用這些檔案。

例如,如果您排除 PDF 檔案,您直接在伺服器上建立的 PDF 檔案將不會分層。 不過,您在不同端點上建立的任何 PDF 檔案,例如另一個伺服器端點或 Azure 檔案共用,仍會下載為階層式檔案。 這些排除的階層式檔案將在接下來 3-4 天內完全回收。

如果您不想讓任何檔案處於階層式狀態,請啟用 主動式召回。 這項功能可防止階層式下載所有檔案,並停止背景階層處理。

其他相關資訊

  • 如果故障轉移叢集上安裝 Azure 檔案同步 代理程式,您必須在 底下HKEY_LOCAL_MACHINE\Cluster\StorageSync\SOFTWARE\Microsoft\Azure\StorageSync建立 GhostingExclusionList 登錄設定。
    • 範例:reg ADD "HKEY_LOCAL_MACHINE\Cluster\StorageSync\SOFTWARE\Microsoft\Azure\StorageSync" /v GhostingExclusionList /t REG_SZ /d .one|.lnk|.log /f
  • 登錄中的每個排除項目都應該以縱線 (|) 字元分隔。
  • 指定要排除的路徑時,請使用雙反斜線 (\\)。
    • 範例:reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v GhostingExclusionList /t REG_SZ /d D:\\ShareRoot\\Folder\\SubFolder /f
  • 檔案名稱或檔案類型排除項目會套用至伺服器上的所有伺服器端點。
  • 您無法只從特定資料夾排除檔案類型。
  • 排除專案不適用於已分層的檔案。 請使用 Invoke-StorageSyncFileRecall Cmdlet 來重新叫用已階層處理的檔案。
  • 使用伺服器上遙測事件記錄檔中的事件識別碼 9001,來檢查已設定的雲端階層處理排除項目。 遙測事件記錄檔位於 底Applications and Services\Microsoft\FileSync\Agent下的 事件檢視器。

如何從雲端階層處理的上次存取時間追蹤中排除應用程式

當應用程式存取檔案時,檔案的上次存取時間會在雲端階層處理資料庫中更新。 掃描檔案系統 (例如防毒軟體) 的應用程式會導致所有檔案都具有相同的上次存取時間,這會影響到檔案進行階層處理的時間。

若要從上次存取時間追蹤中排除應用程式,請將進程排除專案新增至 底下的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSyncHeatTrackingProcessNamesExclusionList 登錄設定。

範例:reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Azure\StorageSync" /v HeatTrackingProcessNamesExclusionList /t REG_SZ /d "SampleApp.exe|AnotherApp.exe" /f

如果故障轉移叢集上安裝 Azure 檔案同步 代理程式,則必須在 下HKEY_LOCAL_MACHINE\Cluster\StorageSync\SOFTWARE\Microsoft\Azure\StorageSync建立 HeatTrackingProcessNamesExclusionList 登錄設定。

範例:reg ADD "HKEY_LOCAL_MACHINE\Cluster\StorageSync\SOFTWARE\Microsoft\Azure\StorageSync" /v HeatTrackingProcessNamesExclusionList /t REG_SZ /d "SampleApp.exe|AnotherApp.exe" /f

注意

依預設會排除重複資料刪除和檔案伺服器資源管理員 (FSRM) 處理程序。 系統會每隔五分鐘接受對進程排除清單的變更。

如何存取熱存放區

雲端階層處理會使用檔案的上次存取時間和存取頻率,判斷哪些檔案應該進行階層處理。 雲端階層處理篩選驅動程式 (storagesync.sys) 會追蹤上次存取時間,然後將資訊記錄在雲端階層處理熱存放區中。 您可以使用伺服器本機的 PowerShell Cmdlet 擷取熱存放區,並將其儲存至 CSV 檔案。

同一磁碟區上的所有檔案皆使用單一熱存放區。 熱存放區可能會變得非常大。 如果您只需要擷取「最酷」的項目數,請使用 -Limit 和一個數位,並考慮依子路徑與磁碟區根目錄進行篩選。

  • 匯入 PowerShell 模組: Import-Module '<SyncAgentInstallPath>\StorageSync.Management.ServerCmdlets.dll'

  • 磁碟區可用空間:若要取得使用磁碟區可用空間原則進行階層處理的檔案順序: Get-StorageSyncHeatStoreInformation -VolumePath '<DriveLetter>:\' -ReportDirectoryPath '<FolderPathToStoreResultCSV>' -IndexName FilesToBeTieredBySpacePolicy

  • 日期原則:若要取得使用日期原則進行階層處理的檔案順序: Get-StorageSyncHeatStoreInformation -VolumePath '<DriveLetter>:\' -ReportDirectoryPath '<FolderPathToStoreResultCSV>' -IndexName FilesToBeTieredByDatePolicy

  • 尋找特定檔案的熱存放區資訊: Get-StorageSyncHeatStoreInformation -FilePath '<PathToSpecificFile>'

  • 依上次存取時間以遞減順序查看所有檔案: Get-StorageSyncHeatStoreInformation -VolumePath '<DriveLetter>:\' -ReportDirectoryPath '<FolderPathToStoreResultCSV>' -IndexName DescendingLastAccessTime

  • 查看透過背景重新叫用或透過 PowerShell 隨需重新叫用而重新叫用的階層式檔案順序: Get-StorageSyncHeatStoreInformation -VolumePath '<DriveLetter>:\' -ReportDirectoryPath '<FolderPathToStoreResultCSV>' -IndexName OrderTieredFilesWillBeRecalled

如何強制讓檔案或目錄進行階層處理

注意

當您選取要進行階層處理的目錄時,只有目前位於目錄中的檔案會進行階層處理。 在該時間之後建立的任何檔案都不會自動進行階層處理。

啟用雲端分層功能時,雲端分層會自動根據上次存取和修改時間來將檔案分層,以達到雲端端點上指定的磁碟區可用空間百分比。 有時候,您可能想要手動強制將檔案分層。 如果您要儲存長時間不打算再次使用的大型檔案,並且想要讓磁碟區上的可用空間現在可供其他檔案和資料夾使用,便適合使用這種方法。 您可以使用下列 PowerShell 命令來強制分層:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Invoke-StorageSyncCloudTiering -Path <file-or-directory-to-be-tiered>

如何將階層式檔案重新叫用至磁碟

將檔案回收到磁碟的最簡單方式就是開啟該檔案。 Azure 檔案同步 檔系統篩選器 (儲存體 Sync.sys) 會順暢地從 Azure 檔案共用下載檔案。 對於可以部分讀取或部分串流的檔案類型 (例如,多媒體或 .zip 檔案),只開啟檔案無法確保能下載整個檔案。

注意

如果快捷方式檔案以階層式檔案的形式降級到伺服器,則透過SMB存取檔案時可能會發生問題。 為了減輕這種情況,有一項工作每隔三天執行一次,會重新叫用任何快捷方式檔案。 不過,如果您想要讓階層式的快捷方式檔案更頻繁地重新叫用,請建立排程工作,以所需的頻率執行此作業:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll" 
Invoke-StorageSyncFileRecall -Path <path-to-to-your-server-endpoint> -Pattern *.lnk

若要確保檔案已完整下載至本機磁碟,您必須使用 PowerShell 強制完全重新叫用檔案。 如果您想要一次重新叫用多個檔案,例如資料夾內的所有檔案,此選項也非常適合。 在 Azure 檔案同步安裝所在的伺服器節點開啟 PowerShell 工作階段,然後執行下列 PowerShell 命令:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Invoke-StorageSyncFileRecall -Path <path-to-to-your-server-endpoint>

選擇性參數:

  • -Order CloudTieringPolicy 會先重新叫用最近修改或存取的檔案,並由目前的階層處理原則允許。
    • 如果已設定磁碟區可用空間原則,則會重新叫用檔案,直到達到磁碟區可用空間原則的設定為止。 例如,如果磁碟區可用原則設定為 20%,當磁碟區可用空間達到 20% 時,重新叫用將會停止。
    • 如果已設定磁碟區可用空間和日期原則,則會重新叫用檔案,直到達到磁碟區可用空間或日期原則的設定為止。 例如,如果磁碟區可用原則的設定是 20%,日期原則是 7 天,則當磁碟區可用空間達到 20% 或在 7 天內已存取或已修改的所有檔案都在本機時,將會停止重新叫用。
  • -ThreadCount 決定可以平行重新叫用的檔案數目 (執行緒計數限制為 32)。
  • -PerFileRetryCount 會決定目前封鎖檔案的重新叫用頻率。
  • -PerFileRetryDelaySeconds 會決定重試重新叫用嘗試之間的秒數,而且應該一律與上一個參數搭配使用。

範例:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Invoke-StorageSyncFileRecall -Path <path-to-to-your-server-endpoint> -ThreadCount 8 -Order CloudTieringPolicy -PerFileRetryCount 3 -PerFileRetryDelaySeconds 10

注意

  • 如果裝載伺服器的本機磁碟區沒有足夠的可用空間來重新叫用所有階層式數據,Cmdlet 就會 Invoke-StorageSyncFileRecall 失敗。

注意

若要重新叫用已進行階層處理的檔案,網路頻寬應該至少有 1 Mbps。 如果網路頻寬小於 1 Mbps,檔案可能無法重新叫用,並出現逾時錯誤。

下一步