Microsoft Windows는 파일이 사용 중인 상태라도 하드 드라이브에 있는 파일들의 스냅샷 또는 백업 복사본을 생성합니다. 이를 구현하는 기술이 바로 볼륨 섀도우 복사 서비스(Volume Shadow Copy Service, VSS)입니다. 그리고 이러한 VSS를 관리하려면 볼륨 섀도우 복사 관리 명령줄 도구, 즉 Vssadmin을 사용할 수 있습니다.

Vssadmin에는 섀도우 복사 기록기(writer)와 공급자(provider) 목록 조회, VSS 연결 및 복사본 생성·삭제, VSS 저장소 크기 조정 등과 관련된 다양한 명령어가 포함되어 있습니다. 이 글에서는 이러한 명령어들을 효과적으로 활용하는 방법을 소개합니다.
VSS의 주요 구성 요소
Vssadmin으로 VSS를 관리하는 방법을 살펴보기 전에, 먼저 볼륨 섀도우 복사 서비스(VSS)를 이루는 다양한 구성 요소를 이해할 필요가 있습니다. 섀도우 복사본 또는 스냅샷 덕분에 이러한 구성 요소들은 로그인 중인 사용자나 실행 중인 프로그램에 영향을 주지 않고 서버를 백업하는 등의 핵심 작업을 수행할 수 있게 해 줍니다.
그럼 각 VSS 구성 요소가 서버에서 어떤 역할을 하는지 하나씩 살펴보겠습니다.
1] VSS 요청자(VSS Requester)
VSS 요청자의 대표적인 예로는 System Center Data Protection Manager와 Windows Server Backup 프로그램이 있습니다. 이 구성 요소의 핵심 기능은 VSS에 섀도우 복사본 생성을 요청하는 것입니다.
2] VSS 기록기(VSS Writer)
Windows Server에는 여러 개의 VSS 기록기가 존재할 수 있습니다. VSS 기록기는 응용 프로그램이 제공하는 구성 요소로, 데이터가 섀도우 복사본 생성에 적합한 상태가 되도록 보장하는 역할을 합니다. 대표적인 VSS 기록기의 예는 다음과 같습니다.
- WMI Writer
- Registry Writer
- Hyper-V
- Exchange Server
- Performance Counter Writer
- NTDS Writer
- System Writer
- DHCP Jet Writer
- SQL Server
- Active Directory System Service
- ASR Writer
- WINS Jet Writer
- Certificate Authority Writer
그 외에도 다양한 기록기가 존재합니다.
3] 저장소 볼륨(Storage Volume)
저장소 볼륨은 복사하려는 데이터를 담고 있는 VSS의 핵심 구성 요소입니다.
4] VSS 공급자(VSS Provider)
VSS 공급자는 하드웨어 벤더가 제공하는 스토리지 어레이에 포함되어 있으며, 섀도우 복사본을 생성하고 관리합니다. 대표적인 VSS 공급자로는 Microsoft Software Copy 공급자와 Microsoft File Share Shadow Copy 공급자가 있습니다.
5] 원본 볼륨(Source Volume)
원본 볼륨은 VSS 공급자가 사용하는 섀도우 복사 저장소 파일이 시스템에 의해 보관되는 위치입니다.
이제 VSS의 구성 요소를 이해했으니, 실제로 이것들이 어떻게 작동하는지 살펴보겠습니다. 아래에서는 Vssadmin 명령어의 개요와 이를 활용해 VSS를 관리하는 방법을 정리했습니다.
Vssadmin 명령줄로 VSS 관리하기
Vssadmin 명령줄 도구로 VSS를 관리하려면 먼저 관리자 권한으로 서버에 로그인해야 합니다. 로그인한 후에는 관리자 권한으로 명령 프롬프트를 실행하세요. 시작 메뉴에서 '명령 프롬프트'를 검색하고 마우스 오른쪽 버튼을 클릭한 뒤 관리자 권한으로 실행을 선택하면 됩니다.
관리자 권한 명령 프롬프트가 열리면 아래 명령어들로 VSS를 관리할 수 있습니다. 명령어를 입력하고 Enter 키를 누르면 실행됩니다.
| 명령어 | 설명 |
| Vssadmin add shadowstorage | 볼륨 섀도우 복사 저장소 연결을 추가합니다 |
| Vssadmin create shadow | 새 볼륨 섀도우 복사본을 생성합니다 |
| Vssadmin delete shadows | 볼륨 섀도우 복사본을 삭제합니다 |
| Vssadmin delete shadowstorage | 볼륨 섀도우 복사 저장소 연결을 삭제합니다 |
| Vssadmin list providers | 등록된 볼륨 섀도우 복사 공급자 목록을 표시합니다 |
| Vssadmin list shadows | 기존 볼륨 섀도우 복사본 목록을 표시합니다 |
| Vssadmin list shadowstorage | 시스템의 모든 섀도우 복사 저장소 연결을 표시합니다 |
| Vssadmin list volumes | 섀도우 복사가 가능한 볼륨 목록을 표시합니다 |
| Vssadmin list writers | 시스템에 등록된 모든 볼륨 섀도우 복사 기록기를 표시합니다 |
| Vssadmin resize shadowstorage | 섀도우 복사 저장소 연결의 최대 크기를 조정합니다 |
위 명령어들은 구문(syntax)과 스위치(switch)와 함께 사용됩니다. 이를 통해 작업을 수행할 시스템 볼륨을 지정하고 명령을 더욱 간결하게 만들 수 있습니다. Vssadmin에서 사용할 수 있는 주요 매개변수는 아래와 같습니다.
| 매개변수 | 설명 |
| /Oldest | 가장 오래된 섀도우 복사본을 삭제합니다 |
| For=VolumeSpec | 삭제할 섀도우 복사본이 있는 볼륨을 지정합니다 |
| /Quiet | 명령 실행 중 메시지가 화면에 표시되지 않도록 합니다 |
| /All | 지정한 볼륨의 모든 섀도우 복사본을 삭제합니다 |
| /shadow= {ShadowID} | ShadowID를 기준으로 삭제할 섀도우 복사본을 지정합니다 |
Vssadmin 명령어에 대해 더 자세히 알고 싶다면 Microsoft TechNet 문서를 참고하시기 바랍니다.