마짱짱의 지식창고
ZFS 개요 및 구조 본문
1. ZFS 역사 및 개념(ZFS 개념)
ZFS 란 ZettaByte File System 의 줄임말로, 기존의 유닉스(Unix) 파일 시스템을 대체하기 위하여 탄생한 파일 시스템 입니다. Matthew Ahrens 와 Jeff Bonwick 이 2001 년에 만들었습니다. ZFS 는 SUN Microsystems 의 OpenSolaris 를 위한 차세대 파일 시스템으로 설계되었습니다. 그 후에 2008 년 ZFS 는 FreeBSD 로 포팅되었습니다.
현존하는 유일한 128 비트 파일시스템이며, 기존의 32~64 비트 파일 시스템의 160 억배에 이르는 방대한 볼륨 크기를 가능하게 합니다. 64 비트 파일 시스템인 XFS 와 비교하는 것이 의미 없을 정도로 성능을 무한대로 확장한 스토리지이며, NTFS 의 논리적인 최대 12Exbyte 를 뛰어넘는 스토리지 공간을 제공합니다. 표준 POSIX 파일 시스템을 따르며, 기존 파일 시스템보다 관리가 편리합니다. 파일 시스템과 볼륨 매니저가 통합되어있기때문에 RAID 기술을 파일 시스템에서 지원합니다. 데이터 손상에 대한 광범위한 보호 및 자동 복구를 지원하며 기존 파일 시스템이 사용하지 않는 스토리지 풀(Storage Pool) 기술을 지원합니다.
2. ZFS 구조
위 이미지는 ZFS 파일 시스템의 구조를 도식화 한 그림이며, 구조의 가장 하부 구성은 SPA(Storage Pool Allocator)로 ZFS 파일 시스템의 특징 중 하나인 스토리지 풀을 의미합니다. 공간할당, 체크섬, 압축 암호화 등 ZFS 파일 시스템의 특징을 제공합니다. 상위 구조로 DMU(Data Management Unit)이며, DMU 오브젝트 및 13 SPA 메타 데이터를 저장합니다. DMU 오브젝트는 사용자 데이터, 디렉토리, znode, SPA 등으로 구성되며, 오브젝트 기반이기 때문에 모듈형 확장이 가능합니다. ZFS 의 경우 inode 기반의 표준 POSIX 를 타파했으나, 사용자들을 위해 ZPL(ZFS POSIX Layer)이 vnode 로부터 들어오는 읽기와 쓰기 작업 환경을 변환하여 처리하며 DMU 에게 SPA 의 위치와 사이즈를 기록하도록 요청합니다. 또한 볼륨 에뮬레이션이 가능하며, ZVOL(ZFS Emulated Volume)은 Pool 의 공간을 RAW 디바이스로 표현할 수 있도록 하여 SWAP 이나 ZFS 파일 시스템에서 UFS 파일 시스템을 생성하여 사용할 수 있도록 합니다. 체크섬(Checksum)은 엔드 투 엔드 (endto-end) 체크섬을 사용하여 블록마다 검사하지 않고 uberblock 최상위에 일괄적으로 작성하여 데이터 기록 오류에 대하여 빠른 에러 감지와 복구가 가능합니다. uberblock 이란 스토리지 풀 전체가 트리 구조로 표현이 되어 해당 트리의 뿌리에 해당하는 단일 디스크 블록을 의미합니다.
다음 포스팅에선 ZFS의 주요기능에 대해 하나씩 소개 하겠습니다.
'Linux' 카테고리의 다른 글
[Git] 한번도 사용하지 않는 자의 Github에 commit 하기 (0) | 2022.01.19 |
---|---|
ZFS 의 주요기능(cow, checksum, RAID-Z..등등) (0) | 2021.01.13 |
Apache vs NginX (0) | 2020.09.17 |
[Ubuntu] 설치 후 할 일 (0) | 2020.07.26 |
[Linux] Raid, Disk관리 (0) | 2020.05.27 |