LVM 스냅 샷 및 파일 시스템 스냅 샷


32

내가 아는 한 LVM을 사용하면 볼륨의 스냅 샷을 만들 수 있습니다. 스냅 샷을 지원하는 여러 파일 시스템 (ZFS, Btrfs, reiserfs 등)도 있습니다.

그러나 LVM 스냅 샷과 파일 시스템 스냅 샷의 차이점을 이해하지 못했습니다. LVM으로 스냅 샷을 찍을 수 있다면 누군가 파일 시스템에서이를 구현하는 데 시간이 걸리는 이유는 무엇입니까?

편집 : 일부 상황에서 선호되는 것이 있습니까? 왜?

답변:


25

이러한 스냅 샷의 대부분은 기록 중 복사 스냅 샷으로, 거의 업데이트되지 않은 시스템에서 실제로 빠르고 저렴합니다 (스토리지 단위). LVM 스냅 샷은 COW 스냅 샷이며 ZFS / BTRFS에는 스냅 샷을위한 COW 모드가 있으며, reiserfs에는 기본적으로 스냅 샷이 없으며 Novell의 NSS 파일 시스템도 Windows NTFS 볼륨의 섀도 복사본 볼륨과 같이 COW입니다.

COW (Copy-On-Write) 스냅 샷은 대상 볼륨의 메타 데이터 사본을 스냅 샷 풀로 가져옵니다. 그런 다음 사용중인 COW 모드에 따라 새 데이터를 쓰기 전에 새 쓰기로 덮어 쓴 데이터를 스냅 샷 풀에 복사합니다.

ZFS 및 최종적으로 BTRFS에는 전체 스냅 샷 기능이있어 별도의 미디어에 스냅하는 데 유용하며 이동식 미디어를 사용하는 스니커 넷 백업 시스템에 매우 유용합니다. ZFS는 활용 ZFS의 능력을 사용하지만 "스냅 샷"이 호출하지 않습니다 zfs sendzfs recv원격 호스트 (또는 로컬 배열)에 네트워크를 통해 볼륨과 스냅 샷을 복사합니다.

프로세스를 깨끗하게 처리하기 위해 파일 시스템 자체를 더 잘 신뢰하기 때문에 LVM에 비해 파일 시스템 수준 스냅 샷 기능을 선호합니다. 그러나 직접 파일 시스템 지원이 없으면 LVM은 대부분의 경우 제대로 작동합니다.

COW 스냅 샷은 단기 복구 요구를 위해 실제로 빠른 시점 백업이 필요한 경우에 좋습니다. 매일 또는 매일 4x를하는 것과 같이 일주일 동안 유지되도록 스냅하십시오. 사용자가 실수로 삭제 한 파일을 복구하거나 전체 시스템을 업데이트 전 구성으로 롤백해야하는 경우에 유용합니다. 또한 일부 백업 시스템에서 완전히 정지 된 파일 시스템으로 사용할 수 있으므로 스냅 샷 볼륨 에서 가져온 백업 은 열린 파일이 방해가되지 않도록 걱정할 필요가 없습니다. 기억해야 할 중요한 점은 스냅 샷 볼륨이 기본 볼륨과 동일한 스토리지에 있다는 것이므로 어레이 장애가 발생하더라도 아무 것도주지 마십시오.

FULL 스냅 샷은 어떤 종류의 이동식 또는 원격 미디어로 촬영할 때 좋습니다. 네트워크 스토리지가있는 경우 대상은 주 스토리지가 호스팅되는 스토리지와 다른 iSCSI 또는 파이버 채널 어레이 일 수 있습니다.이를 통해 일부 종류의 장애에 대한 오프 어레이 보호가 제공됩니다. 3TB ESATA 드라이브와 같은 이동식 매체를 사용하는 경우 간단한 디스크 백업 시스템으로 사용할 수도 있습니다. 이러한 스냅 샷은 COW 형제와 다른 하드웨어에있을 수 있으므로 재난 복구에 유용합니다.


전체 vs COW 스냅 샷

'스냅 샷'이라는 용어는 수년에 걸쳐 약간 표류했습니다. 올해, 나는 이것이 "블록 재배치를 사용하여 원본 데이터의 복사시 복사 사본"을 의미한다고 확신합니다. 이 정의에 따라 위에서 제시 한 "전체"스냅 샷은 실제로 스냅 샷이 아니라 복제입니다. 일부 스토리지 공급 업체는 과거에 다양한 '스냅 샷'정의를 사용하여 수행 한 다양한 블록 수준 작업을 설명했습니다. 혼란스러운 부분은 복제 프로세스의 일부로 스냅 샷을 사용하는 시스템입니다.


«파일 시스템 수준 스냅 샷은 파일 시스템이 LVM이 할 수있는 스냅 샷 프로세스 중에 일관성을 유지하는 방법을 알고 있다는 사실 때문에 LVM을 통해 하나보다 선호됩니다.»실제로는 사실이 아닙니다. 그것을 확인하십시오 : serverfault.com/questions/300961/…
poige

1
«ZFS 및 (아직없는 경우) BTRFS에는 전체 스냅 샷 기능이 있습니다. — "전체"스냅 샷의 의미를 설명해야합니다. AFAIK에서 ZFS를 사용하는 스냅 샷에는 "COW / full"을 선택할 수 없습니다. 모든 스냅 샷은 COW이지만 나중에 별도의 미디어에 전체 파일 시스템 또는 볼륨으로 저장할 수 있습니다.
jlliagre

5

LVM에는 사전 계획이 필요합니다. 나는 또 다른 추상화 계층이기 때문에 사용하지 않는 경향이 있으며 필요할 때 거의 사용할 수 없습니다. 하지만 LVM없이 파일 시스템 수준 (Linux의 경우)에서 복제 할 수있는 다른 옵션이 있습니다. 이를 위해 R1Soft의 Hot Copy를 활용할 수 있습니다 . 커널 모듈이지만이 기능을 즉시 추가 할 수 있습니다.


3

매우 명확한 문제 : LVM의 스냅 샷 LVM이 페이로드되는 FS에 대해 아무것도 "알지"않기 때문에 일관된 FS Jue를 보장하지 않습니다.

편집 됨 (의견 참조) : — FS가을 지원하지 않으면 true이고 .freeze_fs, 그렇지 않으면 FS가 정상적으로 처리해야합니다.


2
그릇된; LVM은 스냅 샷을 작성하기 전에 파일 시스템이 동기화되도록합니다.
womble

1
@womble : 이후에도 sync스냅 샷은 이미 마운트 된 파일 시스템의 정확한 복제본입니다. 마운트 할 때 마운트가 해제되지 않았기 때문에 마운트가 해제되지 않은 것으로 표시되며, 일관성을 유지하기 전에 수정 조치를 수행해야합니다. 물론, 그것은 일반적으로 저널 리플레이 일 뿐이며, 이후에는 sync빈 리플레이 여야합니다. 데이터 손실 위험이 없습니다.
Javier

1
@womble, 1) 동기화 와 LVM의 스냅 샷 처리 사이에 새로운 I / O 요청을위한 창이 있으므로 동기화 는 충분하지 않습니다 . 차단이 필요합니다. 2) XFS에는 "고정 (Freeze)"( xfs_freeze is intended to be used with volume managers and hardware RAID devices that support the creation of snapshots.) 이라는 특수 기능 이 있습니다. 스냅 샷을위한 특별한 기능입니다. LVM-2는이를 알고 이미 사용하고 있습니까? 3) 사용자 공간 ( sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2 ) 또는 커널 소스의 어느 곳에서 LVM이 FS를 동조.
poige

9
좋아, 나는 숙제를했고 이제 내 질문의 세 번째 부분에 답할 수 있습니다. 실제로 LVM은 커널의 freeze_bdev ()를 사용합니다 lock a filesystem and force it into a consistent state. FS 구현에서 freeze_fs 'method'지원 문제이기 때문에 적어도 "일관된 FS를 보장 할 수 없다"고 잘못 말했을 수 있습니다. 일부는 그렇지 않습니다 (예 : EXT2). 또한 두 번째 질문에 답합니다. XFS의 동결은 LVM으로 자동 처리 될 가능성이 높습니다.
poige

1

다른 답변을 보완합니다. FS 스냅 샷에서는 모든 스냅 샷에서 압축 및 중복 제거와 같은 FS 기능을 활용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.