部署交易式NTFS
交易式NTFS (TxF)就像大部分的交易機制一樣,取決於數據寫入的正確順序。 確保適當的寫入順序需要明確控制數據快取。 為了符合這項需求,TxF 要求磁碟驅動器必須執行快取控制機制,這些機制是標準化磁碟驅動器介面的一部分,例如 SCSI、SATA 和 ATA。
TxF 所使用的快取控制機制是稱為 Force Unit Access (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、光纖通道)。
- 請確定磁碟已連接到具有電池備援的快取 HBA。
- 使用記憶體控制器(例如 RAID 系統)作為儲存裝置。
- 確定磁碟的電源受到UPS的保護。
- 請確定磁碟的寫入快取功能已停用。