部署交易式 NTFS
交易式 NTFS (TxF) ,就像大部分的交易機制一樣,取決於資料寫入的正確順序。 確保適當的寫入順序需要明確控制資料快取。 為了符合此需求,TxF 要求磁片磁碟機實作屬於標準化磁片磁碟機介面的快取控制機制,例如 SCSI、SATA 和 ATA。
TxF 所使用的快取控制機制是稱為強制單位存取 (FUA) 函式的旗標。 此旗標指定磁片磁碟機應該將資料寫入穩定媒體儲存體,再發出訊號完成。 在交易內的某些關鍵點,TxF 必須發出 FUA,以確保在發生電源失敗時,成功復原交易所需的某些控制資料不會遺失。
伺服器類別磁片磁碟機 (SCSI 和光纖通道) 通常支援 FUA 旗標。 從 Vista 開始,Windows 僅支援 SCSI 和光纖通道磁片的 FUA 旗標。
在商用磁片磁碟機上, (ATA/SATA/USB) ,TxF 有一段時間的弱點,在此期間,磁片磁碟機電源故障可能會導致 TxF 無法正確復原交易,因此除非磁片磁碟機的寫入快取停用,否則資料會處於不一致的狀態。
例如,某些主機匯流排配接器 (HBA) 和儲存體 (控制器,例如,RAID 系統) 具有內建電池支援的快取。 由於這些裝置會在發生電源錯誤時保留快取的資料,因此不需要連線到它們的任何磁片都接受 FUA 旗標。 此外,電源供應器受到不中斷電源供應器保護的磁片, (UPS) 不需要接受 FUA 旗標。 這是因為 UPS 會維持足夠的電源,讓磁片排清其快取到媒體。
停用磁片磁碟機的寫入快取可避免磁片磁碟機接受 FUA 旗標的需求。 您可以將 IOCTL_DISK_SET_CACHE_INFORMATION 控制程式代碼發出至磁片,以停用磁片的寫入快取。 在系統重新開機時,寫入快取 (開啟/關閉) 的狀態將會保留。 發出此控制項程式碼會對發出給該磁片的所有 I/O 產生非常顯著的效能結果,這很可能是效能降低。 在部署之前,應該仔細考慮使用此控制項程式碼。
注意
若要讓 TxF 能夠透過電源錯誤一致地保護資料的完整性,系統必須滿足下列至少一個準則:
- 使用伺服器類別磁片 (SCSI、Fiber 通道) 。
- 請確定磁片已連線到電池支援的快取 HBA。
- 例如,使用儲存體控制器 (,RAID 系統) 作為存放裝置。
- 確定磁片的電源受到 UPS 保護。
- 確定磁片的寫入快取功能已停用。