WIKI
ZFS
ZFS
스토리지 풀·체크섬·Copy-on-Write를 결합한 파일시스템은 어떻게 데이터 무결성을 확보하는가.
Scope
핵심 질문
ZFS는 storage pool, Copy-on-Write와 end-to-end checksum으로 데이터와 디스크를 어떻게 관리하는가?
Research
핵심 근거
- ZFS는 filesystem과 volume manager를 결합하고 pool에서 storage를 관리한다.
- 모든 데이터와 metadata에 checksum을 사용하고 redundant vdev에서 self-healing이 가능하다.
- snapshot, compression, scrub, send/receive를 통합 제공한다.
Draft
ZFS는 filesystem과 volume manager를 하나의 설계로 결합한 Copy-on-Write storage system이다.
Pool과 Vdev
여러 disk를 vdev로 구성하고 하나 이상의 vdev를 storage pool에 추가한다. Dataset은 pool의 공간을 공유한다.
Checksum과 Self-healing
데이터 block의 checksum을 parent metadata에 저장해 잘못된 disk block이 정상처럼 보이는 silent corruption을 검출한다.
Mirror나 RAIDZ에 올바른 복사본이 있으면 잘못된 쪽을 읽은 뒤 정상 데이터로 복구할 수 있다.
Snapshot과 Send
Copy-on-Write 덕분에 snapshot을 빠르게 만들 수 있고 snapshot 차이를 다른 pool로 전송하는 send/receive도 제공한다.
운영상 주의
Pool topology는 나중에 변경하기 어려운 부분이 있어 초기 vdev 설계를 신중히 해야 한다.
핵심
ZFS의 중심 철학은 저장장치가 항상 올바른 데이터를 반환한다고 믿지 않고 checksum과 redundancy를 filesystem 전체에서 통합하는 데 있다.