COW 스냅샷을 지원하는 Linux의 파일 시스템이나 볼륨 관리자가 있습니까? 하지만 새 스냅샷에 대해 새 블록을 쓰는 대신 이전의 변경되지 않은 블록을 복사하고 새 쓰기를 제자리에서 교체합니다. 이 시스템 설계 기법에 정식 명칭이 있는지는 모르겠지만 역COW이다.
특히 LVM 측면에서 여러 물리 볼륨을 하나의 볼륨 그룹으로 결합하는 시스템을 갖고 싶습니다. 파일 시스템 데이터 블록의 최신 복사본을 포함하는 읽기/쓰기 논리 볼륨이 있습니다. 새 물리 볼륨을 추가하고 이를 할당하여 읽기/쓰기 논리 볼륨의 읽기 전용(사용자 공간 관점에서) 기록 스냅샷을 저장할 수 있습니다. 읽기/쓰기 논리 볼륨에 쓸 때 데이터의 이전 복사본은 읽기 전용 물리 볼륨에 복사되고 새 복사본은 읽기/쓰기 볼륨에 그 자리에 기록됩니다.
이는 추가 복사가 거의 또는 전혀 필요하지 않고 이전 스냅샷, 모든 데이터 및 물리적 볼륨을 한 번에 완전히 삭제할 수 있도록 설계되었습니다. LVM 스냅샷이나 COW 파일 시스템을 사용하여 일반적인 방법으로 이 작업을 수행하는 경우 기존 디스크에는 COW가 적용되지 않은 기존 데이터뿐만 아니라 COW가 적용되지 않은 모든 기존 데이터의 복사본이 있으므로 디스크를 삭제하기 전에 변경되지 않은 모든 데이터를 복사해야 합니다.
답변1
LVM은 범위를 기반으로 합니다. 즉, 파티션과 같은 큰 영역이 아닌 디스크의 작은 영역을 동적으로 할당합니다. 스냅샷 또는 논리 볼륨은 해당 볼륨 내에서 이러한 범위를 참조하지만 이는 기본적으로 원래 논리 볼륨의 작동 방식과 다르지 않습니다. 언제든지 이전 스냅샷을 삭제할 수 있으며 콘텐츠를 복사하지 않고 단독 소유자의 모든 익스텐트(새 상태에서 변경된 볼륨의 일부)만 해제됩니다.
물리적으로 아주 새로운 디스크에서는 범위가 생각하는 순서대로 물리적 볼륨에 배치될 수 있지만 이는 사소한 경우에만 해당됩니다. 스냅샷을 삭제하면 볼륨의 활성 상태를 삭제하는 것보다 조각 세트를 확보할 가능성이 더 높습니다. 따라서 실용적인 관점에서 볼 때 LVM이 있으면 원하는 것과 스냅샷을 삭제하여 얻는 것 사이에는 차이가 없습니다.
답변2
~에 따르면lvm2 문서스냅샷에서는 두 가지 dm 대상 유형이 사용됩니다.
스냅샷 소스
[...] 각 쓰기마다 원본 데이터는 각 스냅샷의 <COW 장치>에 저장됩니다. [...]
"원시 데이터를 COW 디스크에 복사하고 기본 디스크를 덮어쓰는 것"의 춤입니다.
스냅 사진
[...] 쓰기 작업은 <COW 장치>로만 전송됩니다. [...]
자명합니다. 완료된 사본이 없습니다.
스냅샷을 생성하기 위해 lvm2는 이를 다음과 같이 설정합니다:
- 소스 볼륨에 대한 원래 매핑 테이블을 포함하는 장치입니다.
- <COW 장치>로 사용되는 장치;
- #1과 #2가 결합된 "스냅샷" 장치는 표시되는 스냅샷 볼륨입니다.
- "원래" 볼륨(원래 소스 볼륨에서 사용하는 장치 번호 사용)의 테이블은 장치 #1의 "스냅샷 소스" 매핑으로 대체되었습니다.
이는 두 개의 눈에 보이는 마운트가 있음을 의미합니다. 그중 하나는 방금 찍은 스냅샷 #3입니다. 다른 하나는 스냅샷을 찍는 마운트 지점인 #4입니다.
#3(스냅샷 마운트)에 대한 모든 쓰기는 대상이기 때문에 COW 장치로 직접 이동됩니다 snapshot
. 이는 스냅샷이 읽기/쓰기로 마운트되어 있다고 가정합니다.
#4(원래 설치)에 대한 쓰기 작업은 원본 데이터를 COW 장치에 복사하고 새 데이터를 그 자리에 씁니다. 목표 이기 때문이죠 snapshot-origin
.
따라서 제 질문에 대답하자면 다음과 같습니다. 읽기 전용 스냅샷을 만들고 lvm2가 삭제하려는 물리 볼륨에 COW 장치를 생성하도록 하면 제가 요구하는 동작을 얻게 됩니다. 이 경우 도 lvcreate
지원되는 것 같습니다.
원본 LV의 COW 스냅샷 LV 생성
lvcreate --type snapshot --size 크기 LV PV
새 LV에서 사용할 PV를 제어하려면 명령줄 끝에 하나 이상의 PV를 위치 인수로 지정합니다. lvcreate는 지정된 PV에서만 물리적 확장 영역을 할당합니다.
이는 명령줄에 지정된 PV가 COW 장치(위의 #2)를 수용한다는 의미인 것 같습니다.