| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- kubernetes 동작 원리
- EKS 클러스터
- blue-green
- 로드밸런서 컨트롤러
- grafana on kubernetes
- 쿠버네티스
- 솔데스크
- LoadBalancer Controller
- 그라파나 대시보드
- AWS 딥레이서
- terraform
- Aurora cluster
- SAA 합격 후기
- 딥레이서 보상함수
- Kubernetes
- headless service
- 메탈LB
- 쿠버네티스 컴포넌트
- Solution Architecture
- Kubernets on Jenkins
- 딥레이서
- jenkins
- Prometheus install
- livenessPorbe
- helm
- 깃허브 액션
- EFS CSI Driver
- Firelens
- github action 사용법
- 그라파나 시각화
mingming
VSS 실습하기 - Volume Shadow Copy 본문
VSS 실습하기 - Volume Shadow Copy 직접 해보기
VSS (Volume Shadow Copy Service)는 이론만 이해해서는 부족합니다.
직접 실습해보면 시스템이 어떻게 스냅샷을 생성하고, 어떤 흐름으로 백업을 가능하게 하는지 체감할 수 있습니다.
이번 글에서는 Windows에서 기본 제공하는 명령어 도구를 이용해 VSS를 실습해보겠습니다.
🔍 실습 환경
- OS: Windows Server 2019
- 권한: 관리자 권한 필수
1. Writer 상태 확인
가장 먼저 VSS Writer들이 정상적으로 준비되어 있는지 확인합니다.
vssadmin list writers
정상적인 경우 다음과 같은 출력이 나옵니다:
작성자 이름: 'System Writer'
작성자 Id: {e8132975-6f93-4464-a53e-1050253ae220}
작성자 인스턴스 Id: {c106c609-48f4-4821-a2c7-592f2dba960c}
상태: [1] 안정적
마지막 오류: 오류 없음
👉 State가 "안정적" 이고 마지막 오류가 "오류 없음"이면 정상입니다.
2. Shadow Copy Provider 확인
vssadmin list providers
기본적으로 아래와 같은 Microsoft Software Shadow Copy provider가 존재합니다:
공급자 이름: 'Microsoft File Share Shadow Copy provider'
공급자 유형: 파일 공유
공급자 Id: {89300202-3cec-4981-9171-19f59559e0f2}
버전: 1.0.0.1
공급자 이름: 'Microsoft Software Shadow Copy provider 1.0'
공급자 유형: 시스템
공급자 Id: {b5946137-7b9f-4925-af80-51abd60b20d5}
버전: 1.0.0.7
3. Shadow Copy 수동 생성
명령어로 수동 스냅샷을 만들어 봅니다.
wmic shadowcopy call create Volume=C:\
성공 시 다음과 같은 메시지가 출력됩니다:
Executing (Win32_ShadowCopy)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 0;
ShadowID = "{GUID}";
};
👉 ShadowID가 나오면 성공입니다.
4. 생성된 Shadow Copy 목록 확인
vssadmin list shadows
이전에 만든 스냅샷 정보가 출력됩니다.
섀도 복사본 세트 ID의 콘텐츠: {f51476dd-0a45-48a1-ad7f-c6120cdec029}
다음 작성 시간에 1 섀도 복사본 포함: 2025-04-26 오후 6:17:45
섀도 복사본 ID: {6ff3259f-72a7-45d9-a062-05be8b29bc59}
원본 볼륨: (C:)\\?\Volume{a77a487f-0000-0000-0000-602200000000}\
섀도 복사본 볼륨: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
원본 컴퓨터: WIN-J2IBS83E48R
서비스 컴퓨터: WIN-J2IBS83E48R
공급자: 'Microsoft Software Shadow Copy provider 1.0'
형식: ClientAccessible
특성: Persistent, Client-accessible, No auto release, No writers, Differential
vssadmin list shadowstorage
Shadow Copy가 생성되면서 Sahdow Storage가 같이 생성됩니다.
섀도 복사본 저장소 연결
볼륨: (C:)\\?\Volume{a77a487f-0000-0000-0000-602200000000}\
섀도 복사본 저장소 볼륨: (C:)\\?\Volume{a77a487f-0000-0000-0000-602200000000}\
사용된 섀도 복사본 저장소 공간: 97.9MB(0%)
할당된 섀도 복사본 저장소 공간: 414MB(0%)
최대 섀도 복사본 저장소 공간: 4.95GB(10%)
5. Shadow Copy를 통한 복구 테스트
생성된 Sahdow Copy를 복구하는 방법에는 Windows 탐색기를 사용하는 방법과 Command Line을 이용하는 방법이 있습니다.
- Windows 탐색기 이용
- Shadow Copy가 생성된 디스크 속성 → 섀도 복사본 탭 → 특정 시점 선택 후 되돌리기
- 스냅샷을 수행한 디스크의 속성에서 Shadow 목록을 확인할 수 있으며, 해당 버전으로 되돌릴 수 있습니다.
- 디스크 속성의 이전 버전 탭에서 특정 시점의 파일 경로를 열어 확인할 수 있습니다.
- 디스크 단위로 복구도 가능하지만, 폴더 단위로도 특정 시점으로 되돌릴 수 있습니다.
- vssadmin 명령어 이용
- vssadmin revert shadows /Shadow={{shadowID}
- vssadmin revert 명령어 사용시 제약사항
지원 볼륨 일반 데이터 볼륨(D:, E:) 등만 가능 불가 볼륨 C: (운영체제 볼륨) 절대 불가 클러스터 디스크 불가 (CSV, 공유 디스크 등) 조건 해당 Shadow Copy가 ClientAccessible 타입이어야 하고, 디스크 상태가 깨끗해야 함 실패 케이스 "운영체제 파일이 포함되어 있어서 복원할 수 없습니다." 에러 발생
💡 팁: net use 명령어를 통해 특정 시점의 shadow를 마운트해 사용할 수 있습니다.
net use Z: \\localhost\C$ ## C드라이브 숨긴 공유 폴더
Z:
cd Z:\@GMT-날짜시간
6. 생성된 스냅샷 삭제
테스트 후 불필요한 스냅샷은 삭제해주는 것이 좋습니다.
vssadmin delete shadows /for=C: /oldest
👉 가장 오래된 스냅샷을 삭제합니다.
반복 실행하면 모든 스냅샷을 정리할 수 있습니다.
vssadmin delete shadows /Shadow={shadowID}
👉 특정 Shadows 스냅샷 삭제
✅ 마무리
- VSS는 Writer / Provider / Requestor 간의 협력으로 동작
- 명령어를 통해 Writer 상태 점검 → 스냅샷 생성 → 복구 확인 → 삭제까지 실습 가능
👉 다음 글에서는 DiskSahdow 명령어를 통한 shadow 관리 및 백업 및 복구에 대해 다뤄보겠습니다.
'Windows' 카테고리의 다른 글
| Windows TCP/IP 포트 고갈 문제 해결 (0) | 2025.06.03 |
|---|---|
| Windows 꼭 알아야 할 이벤트 로그 정리 (0) | 2025.05.19 |
| VSS - Volume Shadow Copy Service 개념과 아키텍처 (1) | 2025.04.25 |
| Windows Server Telnet 기능 활성화 (0) | 2024.08.25 |
| Windows Server 2019 gpedit.msc 실행시 display 참조 에러 (2) | 2024.08.25 |