공급자
공급자는 실행 중인 볼륨을 관리하고 요청 시 해당 볼륨의 섀도 복사본을 만듭니다.
요청자의 요청에 대한 응답으로 공급자는 COM 이벤트를 생성하여 다가오는 섀도 복사본의 애플리케이션에 신호를 보낸 다음, 더 이상 필요하지 않을 때까지 해당 복사본을 만들고 유지 관리합니다.
섀도 복사본이 있는 동안 공급자는 섀도 복사된 볼륨의 독립적인 복사본이 두 개 있는 환경을 만듭니다. 하나는 실행 중인 디스크가 정상적으로 사용되고 업데이트되고 다른 하나는 백업을 위해 고정되고 안정적인 디스크 복사본입니다.
기본 공급자는 Windows의 일부로 제공되지만 다른 공급업체는 자체 스토리지 하드웨어 및 소프트웨어 제품에 최적화된 자체 구현을 자유롭게 제공할 수 있습니다.
최종 사용자 또는 백업/복원 애플리케이션 개발자의 관점에서 모든 공급자는 동일한 인터페이스 를 갖습니다(공급자 선택 참조).
모든 공급자는 다음을 수행할 수 있어야 합니다.
- 파일 시스템과 기본 대용량 스토리지 시스템 간에 I/O 요청을 가로챌 수 있습니다.
- 섀도 복사본 시 볼륨의 상태 캡처하고 검색하여 디스크에 있는 파일의 "특정 시점" 보기를 유지 관리하며 부분 I/O 작업이 해당 상태에 반영되지 않습니다.
- 이 "특정 시점" 보기를 사용하여 섀도 복사된 데이터를 포함하는 가상 볼륨을 노출(VSS 사용 애플리케이션에 최소한)합니다.
이 작업을 수행하는 방법에 따라 공급자는 다음 세 가지 유형 중 하나일 수 있습니다.
시스템 공급자
시스템 공급자인 하나의 섀도 복사본 공급자는 Windows 운영 체제 설치의 기본 부분으로 제공됩니다. 현재 시스템 공급자는 소프트웨어 공급자의 특정 instance. 그러나 나중에 변경될 수 있습니다.
섀도 복사본에 포함된 볼륨의 "특정 시점" 보기를 유지하기 위해 시스템 공급자는 쓰기 시 복사 기술을 사용합니다. 섀도 복사본 만들기 시작부터 수정된 디스크의 섹터 복사본("diffs"라고 함)은 섀도 복사본 스토리지 영역에 저장됩니다.
따라서 시스템 공급자는 일반적으로 쓰고 읽을 수 있는 라이브 볼륨을 노출하고 라이브 볼륨의 데이터에 "diffs"를 적용하여 섀도 복사본의 고정된 데이터를 효과적으로 노출할 수 있습니다.
시스템 공급자의 경우 섀도 복사본 저장 영역은 NTFS 볼륨에 있어야 합니다. 섀도 복사할 볼륨은 NTFS 볼륨일 필요는 없지만, 시스템에 탑재된 하나 이상의 볼륨은 NTFS 볼륨이어야 합니다.
소프트웨어 공급자
소프트웨어 섀도 복사본 공급자는 파일 시스템과 볼륨 관리자 소프트웨어 간의 소프트웨어 계층에서 I/O 요청을 가로채서 처리합니다. 이러한 공급자는 사용자 모드 DLL 구성 요소 및 하나 이상의 커널 모드 디바이스 드라이버(일반적으로 스토리지 필터 드라이버(반드시 그렇지는 않음)로 구현됩니다. 이러한 섀도 복사본을 만드는 작업은 소프트웨어에서 수행됩니다.
소프트웨어 섀도 복사본 공급자는 섀도 복사본 이전에 볼륨 상태 정확하게 다시 만드는 데 사용할 수 있는 파일 집합에 액세스하여 볼륨의 "특정 시점" 보기를 유지해야 합니다. 이 예제는 시스템 공급자의 쓰기에 복사 기술입니다.
그러나 VSS는 소프트웨어 공급자가 섀도 복사본을 만들고 유지 관리하는 데 사용하는 기술에 제한을 두지 않으며, 타사 공급업체는 소프트웨어 공급자를 적합하게 자유롭게 구현할 수 있습니다.
또한 VSS는 특정 시점 정의, 데이터 동기화 및 플러시, 백업 애플리케이션에 대한 공통 인터페이스 제공, 섀도 복사본 관리와 같은 소프트웨어 섀도 복사본 공급자의 많은 기능을 지원합니다.
소프트웨어 공급자는 정의상 하드웨어 공급자보다 광범위한 스토리지 플랫폼에 적용할 수 있으며 기본 디스크 또는 논리 볼륨을 동일하게 사용할 수 있어야 합니다. 이러한 일반성은 하드웨어에서 섀도 복사본을 구현하여 사용할 수 있는 성능을 희생하며 공급업체별 볼륨 캡처 또는 파일 미러링 기능을 사용하지 않습니다.
하드웨어 공급자
하드웨어 섀도 복사본 공급자는 하드웨어 스토리지 어댑터 또는 컨트롤러와 함께 작업하여 하드웨어 수준에서 파일 시스템의 I/O 요청을 가로챌 수 있습니다. 섀도 복사본을 만드는 작업은 운영 체제 외부의 호스트 어댑터, 스토리지 어플라이언스 또는 RAID 컨트롤러에서 수행됩니다.
이러한 공급자는 섀도 복사본 데이터를 노출하는 하드웨어와 통신하는 사용자 모드 DLL 구성 요소로 구현됩니다. 따라서 하드웨어 섀도 복사본 공급자는 다른 커널 모드 구성 요소를 호출하거나 만들어야 할 수 있습니다.
하드웨어 공급자는 전체 디스크 또는 LUN(논리 단위)의 VSS 섀도 복사본에 노출됩니다. 요청자는 여전히 볼륨의 섀도 복사본을 처리합니다. 모든 볼륨-디스크 매핑은 VSS에서 내부적으로 처리됩니다. 동적 디스크에 있는 볼륨의 하드웨어 공급자가 만든 섀도 복사본에는 특정 요구 사항이 있습니다. 동일한 시스템으로 가져올 수 없습니다. 두 번째 시스템에서 전송 가능하고 가져와야 합니다.
하드웨어 섀도 복사본 공급자는 특정 시점을 정의하고, 데이터 동기화를 허용하고, 섀도 복사본을 관리하고, 백업 애플리케이션과 공통 인터페이스를 제공하는 VSS 기능을 사용하지만, VSS는 하드웨어 공급자가 섀도 복사본을 생성하고 유지 관리하는 기본 메커니즘을 지정하지 않습니다.