雲端分層是 Azure 檔案同步 的一項可選功能,能減少本地儲存空間,同時維持本地檔案伺服器的效能。
啟用此功能後,它只會將經常存取的(熱)檔案儲存在你的本地伺服器上。 不常存取的 (非經常性) 檔案會分割為命名空間 (檔案和資料夾結構) 和檔案內容。 命名空間儲存在本地,檔案內容則存放在雲端的 Azure 檔案分享中。
當使用者開啟分層檔案時,Azure 檔案同步 會無縫地從 Azure 檔案分享中調回檔案資料。
雲端階層處理的運作方式
雲端分層透過監視檔案的存取模式,並根據定義的策略進行檔案分層。
雲端階層處理原則
啟用雲端分層時,有兩種政策可以設定,告訴Azure 檔案同步何時要分層酷炫檔案:volume free space policy 以及 date policy。
磁碟區可用空間原則
磁碟區釋放空間原則會要求 Azure 檔案同步在本機磁碟佔用一定空間時,將非經常性檔案分層到雲端。
舉例來說,如果你的本地磁碟容量是 200 GiB,且你希望至少有 40 GiB 的本地磁碟容量能永遠保持空閒,請將磁碟區自由空間政策設為 20%。 磁碟區可用空間適用於磁碟區層級,而不是個別目錄或伺服器端點。
日期原則
使用日期原則時,如果非經常性存取檔案未被存取 (讀取或寫入) x 天,則會分層到雲端。 例如,如果您注意到未存取超過 15 天的檔案通常是封存檔案,您應該將日期原則設定為 15 天。
關於日期政策與容量自由空間政策如何協同運作的更多範例,請參見 Choose Azure 檔案同步 cloud tiering policies。
Windows Server 資料重複刪除
從 Windows Server 2016 開始,啟用雲端分層的磁碟區支援資料重複刪除。 欲了解更多資訊,請參閱Azure 檔案同步部署計畫。
雲端階層處理健康情況
Azure 檔案同步 會隨時間監控檔案存取(讀寫操作),並根據檔案存取的時間與頻率,為每個檔案分配熱度分數。 其會使用這些分數,在每個伺服器端點上建立命名空間的「熱度圖」。 此熱度圖是已啟用雲端階層處理的位置中所有同步檔案的清單 (依其熱度分數排序)。 經常被存取且最近開啟過的檔案被視為熱檔案,而很少被存取且一段時間未被存取的檔案則被視為冷檔。
若要判斷該熱度圖中個別檔案的相對位置,系統會以下列順序使用其時間戳記的最大值:MAX (上次存取時間、上次修改時間、建立時間)。
一般而言,會追蹤並提供上次存取時間。 然而,當你建立啟用雲端分級的新伺服器端點時,還沒經過足夠時間觀察檔案存取。 如果沒有有效的上次存取時間,則會改為使用上次修改時間來評估熱度圖中的相對位置。
日期原則的運作方式相同。 若沒有最後存取時間,日期政策會依據最後修改時間執行。 如果無法取得該資源,則會改用檔案的建立時間。 隨著時間推移,系統會觀察到更多檔案存取請求,並自動開始使用自我追蹤的最後存取時間。
備註
雲端階層處理並不依賴NTFS功能來追蹤上次存取時間。 此 NTFS 功能預設為關閉。 出於效能考量,請勿手動啟用此功能。 雲端階層處理會分別追蹤上次存取時間。
選擇雲端階層處理原則的考量
較少被存取的冷檔案最適合分層存放,因為要調回資料需要從雲端下載。 Azure 檔案同步 保留 10% 的總記憶體用於持續呼叫到磁碟。 如果已經使用此保留記憶體的 60%,召回就不會儲存到磁碟。 如果系統上存在大量的階層式檔案,而且會進行大量存取,系統可能會達到記憶體閾值。 這種情況可能導致意外的額外出口、I/O 效能下降、系統變慢以及當機。
主動召回
當檔案被建立或修改時,你可以主動將該檔案調回你指定的伺服器。 主動式重新叫用讓新的或修改過的檔案隨時可以在每部指定的伺服器中取用。
例如,一家全球都有據點的公司在美國和印度都設有分公司。 在美國上午,資訊工作者會為全新專案建立新的資料夾和檔案,且一整天都在做後續處理。 Azure 檔案同步 會將資料夾和檔案同步到 Azure 檔案分享(雲端端點),該資料夾作為所有註冊伺服器之間的中央樞紐。 印度的資訊工作者繼續在他們的時區從事該專案。 當他們隔天早上抵達時,印度本地支援 Azure 檔案同步 的伺服器必須在本地提供這些新檔案,讓印度團隊能有效率地從本地快取工作。 啟用主動召回會告訴伺服器在 Azure 檔案分享中檔案被更改或建立後立即下載,而不必等使用者嘗試開啟檔案。
如果本機不需要召回的檔案到伺服器,那麼這些不必要的召回會增加輸出流量和成本。 因此,只有在您確定使用來自雲端的最新變更預先填入伺服器快取將會對使用該伺服器上檔案的使用者或應用程式產生正面影響時,才啟用主動召回。
啟用主動召回可能會增加伺服器的頻寬使用量,且可能會因召回的檔案增加而導致本機伺服器上其他相對較新的內容遭到積極分層。 接著,如果階層式檔案被伺服器視為經常性存取,那麼分層過快可能產生更多的重新叫用。
欲了解更多主動召回資訊,請參見 Deploy Azure 檔案同步。
階層式與本機快取檔案行為
雲端階層處理是命名空間 (檔案和資料夾階層,以及檔案屬性) 和檔案內容之間的分隔。
分層檔
若為階層式檔案,磁碟的大小會是零,因為檔案內容本身不會儲存在本機。 當檔案遭到分層時,Azure 檔案同步檔案系統篩選條件 (StorageSync.sys) 會將本機檔案替換成稱為重新分析點的指標。 重新分析點代表 Azure 檔案儲存體共用中檔案的 URL。 階層式檔案同時具有 offline 屬性和 NTFS 中設定的 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 屬性,讓第三方應用程式可以安全地識別階層式檔案。
本機快取檔案
對於儲存在本地檔案伺服器的檔案,磁碟大小約等於檔案的邏輯大小,因為整個檔案(檔案屬性與檔案內容)皆儲存在本地。
檔案也可能部份分層 (或部份回收)。 在部分階層式檔案中,只會將部分檔案儲存在磁碟上。 如果支援串流存取檔案的應用程式部份讀取檔案,您可能會在磁碟區上有部份重新叫用檔案。 部分範例包括多媒體播放機和 zip 公用程式。 Azure 檔案同步 效率高,僅從連接的 Azure 檔案分享中呼叫所需資訊。
備註
大小代表檔案的邏輯大小。 磁碟大小代表儲存在實體磁碟上的檔案資料流大小。
磁碟空間不足模式
有伺服器端點的磁碟即使啟用了雲端分層,也可能因各種原因空間不足。 這些原因包括:
- 手動將資料複製到伺服器端點路徑外的磁碟
- 緩慢或延遲的同步處理導致檔案無法分層
- 階層式檔案的過度重新叫用
當磁碟空間耗盡時,Azure 檔案同步 可能會無法正常運作,甚至無法使用。 雖然 Azure 檔案同步 無法完全避免這些情況,但低磁碟空間模式(從 15.1 起的 Azure 檔案同步 代理版本提供)有助於防止伺服器端點遇到這種情況,並加快伺服器脫離。
對於啟用雲端分級的伺服器端點,如果磁碟區的可用空間低於計算出的門檻,該磁碟區就會進入低磁碟空間模式。
在低磁碟空間模式下,Azure 檔案同步 代理程式有兩件事不同:
主動分層:檔案同步代理會更主動地將檔案分層到雲端。 同步代理每分鐘檢查檔案是否分層,而不是通常每小時一次。 容量自由空間政策的分級通常不會在初始上傳同步時發生,直到完整上傳完成。 然而,在低磁碟空間模式下,分層會在初始上傳同步時啟用,且當個別檔案上傳到 Azure 檔案共享時,檔案才會被考慮分層。
非持續性召回:當使用者打開分層檔案時,從 Azure 檔案分享直接召回的檔案不會儲存到磁碟。 由
Invoke-StorageSyncFileRecallcmdlet 發起的召回屬於此規則的例外,並會持續存在磁碟。
當磁碟區空間超過閾值時,Azure 檔案同步 會自動回復正常狀態。 低磁碟空間模式僅適用於啟用雲端分層的伺服器,且始終遵守磁碟區自由空間政策。
如果一個磁碟區有兩個伺服器端點,一個啟用分層,一個未啟用分層,低磁碟空間模式僅適用於啟用分層的伺服器端點。
如何計算低磁碟空間模式的閾值?
以下列三個數字的最小值來計算閾值:
- 磁碟區大小的 10% (以 GiB 為單位)
- 磁碟區可用空間原則 (以 GiB 為單位)
- 20 GiB
下表包含一些關於如何計算閾值以及何時進入低磁碟空間模式的範例。
| 磁碟區大小 | 10% 的磁碟區大小 | 磁碟區可用空間原則 | 臨界值 = 最小值 (磁碟區大小 10%、磁碟區可用空間政策、20 GiB) | 目前的磁碟區可用空間 | 磁碟空間不足模式嗎? | 原因 |
|---|---|---|---|---|---|---|
| 100 GiB | 10 GiB | 7% (7 GB) | 7 GiB = 最小值 (10 GiB、7 GiB、20 GiB) | 9% (9 GiB) | 否 | 目前的磁碟區可用空間 (9 GiB) > 閾值 (7 GiB) |
| 100 GiB | 10 GiB | 7% (7 GB) | 7 GiB = 最小值 (10 GiB、7 GiB、20 GiB) | 5% (5 GiB) | 是的 | 目前的磁碟區可用空間 (5 GiB) < 閾值 (7 GiB) |
| 300 GiB | 30 GiB | 8% (24 GiB) | 20 GiB = 最小值 (30 GiB、24 GiB、20 GiB) | 7% (21 GiB) | 否 | 目前的磁碟區可用空間 (21 GiB) > 閾值 (20 GiB) |
| 300 GiB | 30 GiB | 8% (24 GiB) | 20 GiB = 最小值 (30 GiB、24 GiB、20 GiB) | 6% (18 GiB) | 是的 | 目前的磁碟區可用空間 (18 GiB) < 閾值 (20 GiB) |
低磁碟空間模式如何搭配磁碟區可用空間原則運作?
低磁碟空間模式一律會遵守磁碟區可用空間原則。 閾值計算是為了確保它符合你設定的無容量空間政策。
伺服器端點處於低磁碟模式最常見的原因為何?
低磁碟模式的主要原因是將大量資料複製到已啟用分層的伺服器端點所在的磁碟。
我該如何擺脫磁碟空間不足的模式?
低磁碟模式會自動切換到正常行為,使召回不再持續,並更頻繁地分層檔案,無需任何介入。 您可以藉由增加磁碟區大小或釋放伺服器端點以外的空間,手動加速流程。
我要怎麼檢查伺服器是否處於低磁碟空間模式?
- 若伺服器端點處於低磁碟空間模式,Azure 入口網站會在該伺服器端點的 Errors + troubleshooting 分頁的 cloud tiering health 區塊中顯示它。
- 事件識別碼 19000 會每分鐘記錄到每個伺服器端點的遙測事件記錄檔。 利用此事件判斷伺服器端點是否處於低磁碟空間模式(IsLowDiskMode = true)。 你可以在事件檢視器的
Applications and Services\Microsoft\FileSync\Agent下找到遙測事件日誌。