스냅샷 및 롤백
여기서 스냅샷이 거의 비용이 없는 이유, 트리 분기, 알려진 정상 상태로 돌아가는 세 가지 방법.
1VMTool의 스냅샷은 디스크 복사가 아니라 APFS 클론입니다. 파일 시스템은 한쪽이 쓸 때까지 블록을 공유하므로 스냅샷 생성 시 0바이트를 복사하고 약 1밀리초에 완료됩니다 — 24 GiB 디스크든 1 TiB 디스크든 마찬가지로 스케일할 크기가 없습니다.
이것이 스냅샷의 용도를 바꿉니다. 초와 기가바이트 비용이 있으면 아끼고 위험한 단계 전 스냅샷을 건너뜁니다. 비용이 없으면 결정할 필요가 없습니다.
생성 및 복원
1vm snapshot take dev "before upgrade"
1vm snapshot list dev
1vm snapshot restore dev before-upgrade
1vm snapshot rm dev <ref>
<ref>는 이름 또는 id 접두사입니다. snapshot rm은 -r로 한 노드가 아니라 브랜치 전체를 제거합니다.
스냅샷은 분기합니다
이전 상태를 복원한 뒤 새 스냅샷을 찍으면 첫 번째 라인을 버리는 대신 두 번째 라인이 생깁니다. 같은 시작점에서 여러 방향을 탐색할 수 있고 트리 뷰는 각 노드의 고유 데이터로 실제 형태를 그립니다 — 디스크를 실제로 소비하는 브랜치가 추측이 아니라 보입니다.
캡처되는 것
| Situation | Captured |
|---|---|
| Running on Virtualization.framework | 디스크와 함께 메모리. 복원 시 실행 중간부터 재개 |
| Running on the 1VM engine | 디스크만 — 복원 시 콜드 부팅 |
| Stopped, either engine | 디스크만 |
돌아가는 세 가지 방법
혼동하기 쉬우므로 분명히 적습니다.
**snapshot restore**는 선택한 특정 스냅샷으로 갑니다.
**discard-session**은 이 부팅이 시작된 스냅샷으로 돌아가 전원 이후의 모든 쓰기를 버립니다:
1vm discard-session dev --force
**reset**은 머신을 깨끗한 상태로 되돌립니다:
1vm reset dev --force
롤백 모드
상태를 쌓으면 안 되는 머신 — 브라우징 VM, 샌드박스, 데모, 다른 사람에게 넘기는 것 — 에는 롤백 모드를 켜면 전원 끄기 시 모든 쓰기를 자동 폐기합니다:
1vm rollback dev on
모든 부팅이 안전한 지점에서 시작하며 기억할 것이 없습니다. 수동으로 유지해야 할 규율의 구조적 버전입니다.
클론
같은 클론 원시 연산으로 머신 전체의 저렴한 사본을 얻습니다:
1vm clone dev test # linked clone, shares blocks until they diverge
1vm clone dev test --full # an independent copy
1vm clone dev test --rekey-ssh # regenerate the guest's host keys
클론이 부모와 동시에 실행되면 --rekey-ssh 사용 — 그렇지 않으면 두 머신이 같은 SSH 호스트 키를 제시합니다.
디스크 사용량
1vm du
라이브러리 전체의 할당, 디스크 상, 스냅샷별 바이트를 보고합니다. 클론이 블록을 공유할 때 "얼마나 공간을 쓰는가"에 대한 정직한 답입니다.