트랜잭션 NTFS 배포
대부분의 트랜잭션 메커니즘과 마찬가지로 TxF(트랜잭션 NTFS)는 데이터 쓰기의 올바른 순서에 따라 달라집니다. 적절한 쓰기 순서를 보장하려면 데이터 캐싱을 명시적으로 제어해야 합니다. 이 요구 사항을 충족하려면 디스크 드라이브가 SCSI, SATA 및 ATA와 같은 표준화된 드라이브 인터페이스의 일부인 캐싱 제어 메커니즘을 구현해야 합니다.
TxF에서 사용하는 캐싱 제어 메커니즘은 FUA(Force Unit Access) 함수라고 하는 플래그입니다. 이 플래그는 알림이 완료되기 전에 드라이브가 안정적인 미디어 스토리지에 데이터를 기록하도록 지정합니다. 트랜잭션 내의 특정 중요 지점에서 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로 보호되는지 확인합니다.
- 디스크의 쓰기 캐싱 기능이 사용하지 않도록 설정되어 있는지 확인합니다.