ZFS
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
ZFS는 Jeff Bonwick, Bill Moore, Matthew Ahrens가 설계하고 구현한 파일 시스템이다. 2004년에 발표되었으며, 데이터 무결성, 스냅샷, RAID-Z를 포함한 다양한 기능을 제공한다. 썬 마이크로시스템즈에서 개발되었으며, 오라클이 썬을 인수한 후 오픈 소스 개발이 중단되었으나, OpenZFS 프로젝트를 통해 다양한 운영체제에서 ZFS를 사용할 수 있도록 개발이 이어지고 있다.
더 읽어볼만한 페이지
- RAID - 장애 허용 시스템
장애 허용 시스템은 일부 구성 요소에 고장이 발생해도 성능 저하 없이 작동하도록 설계되어 높은 신뢰성이 요구되는 분야에서 사용되며, 안전 실패 방지, 성능 저하 최소화, 견고성, 고장 투명성 등의 특징을 가진다. - RAID - 패리티 비트
패리티 비트는 이진 데이터에서 1의 개수가 짝수인지 홀수인지 나타내는 비트로서, 오류 감지 및 수정에 사용되며, 통신 프로토콜과 RAID 시스템 등 다양한 분야에서 활용된다. - 유닉스 - 유닉스 시간
유닉스 시간은 1970년 1월 1일 00:00:00 UTC부터 경과된 초를 나타내는 시스템으로, 컴퓨터 시스템에서 시간 저장 및 처리에 널리 사용되며 32비트 정수 표현 시 2038년 문제를 야기할 수 있고 64비트 정수로 해결 가능하며, 다양한 시스템에서 타임스탬프로 활용되지만 윤초 처리 차이로 UTC 시간과 완벽히 일치하지는 않는다. - 유닉스 - 유닉스 계열
유닉스 계열은 유닉스 운영체제의 특징과 설계를 공유하는 운영체제들을 지칭하며, 유전적, 상표, 기능적 유닉스로 분류되고 macOS는 상표 유닉스이자 유전적 유닉스에 해당하며 리눅스는 기능적 유닉스의 대표적인 예이다. - 오라클 소프트웨어 - 자바 데스크톱 시스템
- 오라클 소프트웨어 - 스타오피스
스타오피스는 1985년 스타라이터에서 시작하여 다양한 플랫폼으로 확장되고 썬 마이크로시스템즈에 인수되어 OpenOffice.org의 기반이 되었던 오피스 스위트였으나, 오라클에 인수 후 오라클 오픈 오피스로 변경되었다가 판매가 중단되었으며, 워드 프로세서, 스프레드시트, 프레젠테이션 프로그램 등을 포함하고 있었다.
| ZFS - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 일반 정보 | |
| 이름 | ZFS |
| 종류 | 파일 시스템 |
| 개발 | |
| 개발자 | 썬 마이크로시스템즈 (원래), 오라클 (2010년부터), OpenZFS (2013년부터) |
| 첫 공개 운영 체제 | OpenSolaris |
| 첫 공개일 | 2005년 11월 |
| 구조 | |
| 디렉터리 구조 | 확장 가능한 해싱 |
| 최대 파일 이름 크기 | 1023 ASCII 문자 (유니코드와 같은 멀티바이트 문자 표준의 경우 더 적음) |
| 최대 파일 수 | 디렉터리당: 248개 파일 시스템당: 무제한 |
| 최대 볼륨 크기 | 256 트릴리온 요비바이트 (2128 바이트) |
| 최대 용량 | 256 유비바이트 (2128 바이트) |
| 최대 파일 크기 | 16 엑스비바이트 (264 바이트) |
| 포크/스트림 | 예 (확장된 속성이라고 하지만, 완전한 스트림임) |
| 속성 | POSIX, 확장 속성 |
| 파일 시스템 권한 | 유닉스 권한, NFSv4 ACL |
| 압축 | 예 |
| 데이터 중복 제거 | 예 |
| 암호화 | 예 |
| Copy-on-write | 예 |
| 지원 운영 체제 | |
| 지원 운영 체제 | 썬 코드베이스: OpenSolaris, illumos 배포판, OpenIndiana 오라클 ZFS: 솔라리스 OpenZFS: FreeBSD, Mac OS X Server 10.5 (읽기 전용으로 제한), NetBSD, 리눅스 (타사 커널 모듈 ("ZFS on Linux") 또는 ZFS-FUSE), OSv |
2. 역사
ZFS는 2001년 썬 마이크로시스템즈에서 Jeff Bonwick, Bill Moore[138], Matthew Ahrens를 중심으로 개발이 시작되었다.[140] 2004년 9월에 공식 발표되었으며,[139] 2005년 10월에 오픈 소스 운영체제인 OpenSolaris에 포함되어 공개되었다.[136]
2007년 9월, 넷앱은 ZFS가 자사의 Write Anywhere File Layout 특허를 침해했다며 썬 마이크로시스템즈를 고소했고, 썬은 10월에 특허 무효를 주장하며 맞소송을 제기했다. 양측의 소송은 2010년 9월 오라클에 썬이 인수된 후 소송 취하에 합의하면서 종결되었다.[21]
2010년 오라클이 썬 마이크로시스템즈를 인수하면서 ZFS는 폐쇄 소스화되었으나, OpenZFS 프로젝트를 통해 오픈 소스 개발이 계속되고 있다.
2. 1. 썬 마이크로시스템즈 시절 (2004-2010)
1987년, AT&T와 썬은 버클리 소프트웨어 배포판, UNIX System V, Xenix를 병합하는 프로젝트에 협력한다고 발표했다. 이것이 유닉스 System V Release 4 (SVR4)가 되었다.[11] 이 프로젝트는 솔라리스라는 이름으로 출시되었으며, SunOS 4의 후속 버전이 되었다.[12]ZFS는 Jeff Bonwick, Bill Moore,[13] 및 Matthew Ahrens가 이끄는 썬의 팀에 의해 설계 및 구현되었다. 2004년 9월 14일에 발표되었지만,[14] 개발은 2001년에 시작되었다.[15] ZFS의 소스 코드는 2005년 10월 31일에 솔라리스 개발의 메인 트렁크에 통합되었고,[16] 2005년 11월 16일에 OpenSolaris의 빌드 27의 일부로 개발자에게 출시되었다. 2006년 6월, 썬은 ZFS가 Solaris 10의 주류 6/06 업데이트에 포함되었다고 발표했다.[17]
솔라리스는 원래 독점 소프트웨어로 개발되었지만, 썬 마이크로시스템즈는 오픈 소스 소프트웨어의 초기 상업적 지지자였으며, 2005년 6월에 대부분의 솔라리스 코드베이스를 CDDL 라이선스 하에 출시하고 OpenSolaris 오픈 소스 소프트웨어 프로젝트를 설립했다.[18] 솔라리스 10 6/06 ("U2")에서 썬은 ZFS 파일 시스템을 추가했고, 이후 5년 동안 ZFS를 새로운 기능으로 자주 업데이트했다. ZFS는 이 오픈 소스 라이선스 하에 포팅되어 리눅스, Mac OS X (MacZFS로 계속됨), FreeBSD로 이식되었다.
2007년 9월, 넷앱은 ZFS가 NetApp의 일부 Write Anywhere File Layout 특허를 침해했다고 주장하며 썬을 고소했다. 썬은 같은 해 10월에 반소하여 정반대의 주장을 했다. 이 소송은 2010년 공개되지 않은 합의로 종결되었다.[21]
2. 2. 오라클 인수 이후 (2010-현재)
오라클이 2010년 썬 마이크로시스템즈를 인수하면서, 오라클 ZFS는 폐쇄 소스가 되었다.[95][96][97] 2013년부터 ZFS의 오픈 소스 버전 개발은 OpenZFS 프로젝트를 통해 독립적으로 진행되고 있다.[97] OpenZFS는 ZFS의 핵심 코드를 공동으로 개발하고, 각 플랫폼에 맞는 추가 코드는 개별적으로 관리하는 방식으로 운영된다.오라클은 ZFS 기반 스토리지 제품군(예: ZS3 시리즈)을 출시하고 있다.
3. 기능
ZFS는 볼륨 관리자와 파일 시스템 역할을 모두 수행하여, 물리적 디스크 및 볼륨(상태, 조건, 논리적 배열 포함)과 해당 디스크에 저장된 모든 파일에 대한 완전한 정보를 갖는다. 이는 대부분의 다른 스토리지 시스템과 구별되는 ZFS의 특징이다. 이러한 통합 관리 덕분에 ZFS는 디스크에 저장된 데이터가 물리적 오류, 하드웨어나 운영 체제의 잘못된 처리, 또는 시간이 지남에 따라 발생할 수 있는 데이터 부패로부터 안전하게 보호되도록 설계되었다.[9]
ZFS는 다음과 같은 다양한 기능을 제공한다.
- 데이터 무결성: 모든 데이터와 메타데이터에 대해 계층적 체크섬을 사용하여 데이터 손상을 방지한다.
- 용량: 128비트 파일 시스템으로, 방대한 양의 데이터를 처리할 수 있다.
- RAID-Z: 소프트웨어 RAID인 RAID-Z를 제공하여 쓰기 홀 오류를 제거하고 성능을 향상시킨다.
- 스냅샷 및 복제: 카피 온 라이트 방식을 사용하여 효율적인 스냅샷 및 복제 기능을 제공한다. 시스템 복원, 데이터 보호, 백업 및 복구 등 다양한 목적으로 활용된다.
- 기타 기능:
- 여러 단계의 디스크 캐시를 사용한 읽기 및 쓰기 작업 가속화
- 동적 스트라이핑을 통한 처리량 최대화
- 가변 블록 크기 지원
- 경량 파일 시스템 생성
- 엔디안 적응성
- 데이터 중복 제거 (선택 사항, 대용량 RAM 필요)
- 암호화
- 명시적 I/O 우선순위, 전역 최적 I/O 정렬 및 집계, 병렬 상수 시간 디렉토리 작업 등
2004년 9월에 발표되었고, 2005년 11월에 출시된 OpenSolaris 빌드 27에서 구현이 공개되었다. "CDDL"(CDDL) 하에 오픈 소스로 개발되고 있다.
ZFS는 지속적인 기능 개선을 통해 저장소 관리의 안정성과 효율성을 높여왔다. 예를 들어, Solaris10 11/06 버전에서는 RAID-Z2, 핫 스페어, 클론 프로모션 등의 기능이 추가되었고, Oracle Solaris Solaris SRU 11.2.8.4.0 등에서는 Persistant L2ARC(부팅을 넘어서는 L2ARC 내용의 재사용)가 추가되었다.
3. 1. 데이터 무결성
ZFS는 모든 데이터와 메타데이터에 대해 계층적 체크섬을 사용하여 데이터 손상을 방지한다.[31] 체크섬은 블록 자체와 함께 저장되는 대신 블록의 부모 블록과 함께 저장되어, 체크섬 자체의 손상도 방지한다. 이는 체크섬이 데이터와 함께 저장되어 데이터가 손실되거나 손상될 경우 체크섬도 손실되거나 잘못될 가능성이 있는 많은 파일 시스템과 대조된다.[31]블록에 접근하면 데이터이든 메타데이터이든, 해당 체크섬이 계산되어 "예상" 체크섬 값과 비교된다. 체크섬이 일치하면 데이터가 해당 데이터를 요청한 프로세스에 프로그래밍 스택 위로 전달된다. 값이 일치하지 않으면 ZFS는 스토리지 풀이 데이터 중복성을 제공하는 경우(예: 내부 디스크 미러링) 데이터 복구를 시도한다.[32] 풀 내에서 추가 중복성을 제공하기 위해 `copies=2` (또는 `copies=3`)를 선택적으로 지정할 수 있다. 이는 데이터가 디스크에 두 번(또는 세 번) 저장되어 디스크의 저장 용량을 절반(또는 `copies=3`의 경우 3분의 1)으로 줄임을 의미한다.[33] ZFS에서 풀 관리에 사용되는 일부 데이터는 기본적으로 `copies=1` 설정에서도 안전을 위해 여러 번 저장된다.
손상된 데이터의 다른 복사본이 존재하거나 체크섬 및 패리티 데이터로부터 재구성할 수 있는 경우, ZFS는 데이터 복사본을 사용하거나(또는 RAID 복구 메커니즘을 통해 다시 생성) 체크섬을 다시 계산하여 원래 예상 값을 얻는다. 데이터가 이 무결성 검사를 통과하면 시스템은 모든 오류가 있는 복사본을 알려진 양호한 데이터로 업데이트하고 중복성을 복원한다.
ZFS는 데이터 손상, 전력 서지(전압 스파이크), 디스크 펌웨어의 버그, 팬텀 쓰기(이전 쓰기가 디스크에 도달하지 못함), 잘못된 읽기/쓰기(디스크가 잘못된 블록에 접근), 배열과 서버 메모리 간의 DMA 패리티 오류, 드라이버 오류(체크섬이 배열 내의 데이터를 검증하므로), 드라이버 오류(데이터가 커널 내의 잘못된 버퍼에 저장됨), 실수로 덮어쓰기(라이브 파일 시스템으로 스와핑하는 경우 등) 등으로 인해 발생하는 사일런트 데이터 손상으로부터 디스크의 사용자 데이터를 보호한다.
1999년 연구에 따르면 당시 주요하고 널리 사용되던 파일 시스템(UFS, Ext,[22] XFS, JFS, NTFS)이나 하드웨어 RAID(데이터 무결성에 몇 가지 문제점이 있음)는 데이터 손상 문제에 대한 충분한 보호 기능을 제공하지 못했다.[23][24][25][26] 초기 연구에 따르면 ZFS가 이전의 노력보다 데이터를 더 잘 보호하는 것으로 나타났다.[27][28] 또한 UFS보다 빠르며[29][30] 이를 대체할 수 있다.
3. 2. 용량
ZFS는 128비트 파일 시스템으로,[44][16] Btrfs와 같은 64비트 시스템보다 1.84 × 1019 배 더 많은 데이터를 처리할 수 있다. ZFS의 최대 한계는 실제로는 절대 발생하지 않도록 설계되었다. 예를 들어, 단일 zpool을 2128 비트의 데이터로 완전히 채우려면 3×1024 TB 하드 디스크 드라이브가 필요하다.[45]ZFS의 몇 가지 이론적 제한은 다음과 같다.
| 항목 | 제한 |
|---|---|
| 단일 파일의 최대 크기 | 16 엑스비바이트 (264 바이트) |
| 개별 디렉터리의 항목 수[46] | 248 |
| 임의의 속성의 최대 크기 | 16 엑스비바이트 |
| 파일의 속성 수 | 256 (실제로 디렉터리의 파일 수에 대해 248로 제한됨) |
| 임의의 zpool의 최대 크기 | 256 제비바이트 (2128 바이트) |
| 임의의 zpool의 장치 수 | 264 |
| zpool의 파일 시스템 수 | 264 |
| 시스템의 zpool 수 | 264 |
3. 3. RAID (RAID-Z)
ZFS는 하드웨어 RAID 대신 소프트웨어 RAID인 RAID-Z를 제공한다. RAID-Z는 RAID 5와 유사하지만, 동적 스트라이프 폭을 사용하여 쓰기 홀 오류를 제거하고 성능을 향상시킨다. 모든 블록은 블록 크기에 관계없이 자체 RAID 스트라이프이므로 모든 RAID-Z 쓰기는 전체 스트라이프 쓰기가 된다. 이는 ZFS의 카피-온-라이트 트랜잭션 시맨틱스와 결합되어 쓰기 홀 오류를 제거한다.[37]RAID-Z는 기존 RAID 5보다 빠르다. 일반적인 읽기-수정-쓰기 시퀀스를 수행할 필요가 없기 때문이다.[37]
RAID-Z는 전체 디스크 장애를 처리하는 것 외에도 침묵하는 데이터 손상을 감지하고 수정하여 "자체 복구 데이터"를 제공한다. RAID-Z 블록을 읽을 때 ZFS는 해당 블록을 체크섬과 비교하고, 데이터 디스크가 올바른 응답을 반환하지 않으면 ZFS는 패리티를 읽은 다음 어떤 디스크가 잘못된 데이터를 반환했는지 파악한다. 그런 다음 손상된 데이터를 복구하고 요청자에게 양호한 데이터를 반환한다.[37]
RAID-Z와 미러링은 특별한 하드웨어가 필요하지 않다. 안정성을 위해 NVRAM이 필요하지 않으며, 우수한 성능이나 데이터 보호를 위해 쓰기 버퍼링이 필요하지 않다. RAID-Z를 사용하면 ZFS는 저렴한 일반 디스크를 사용하여 빠르고 안정적인 스토리지를 제공한다.[37]
다음과 같은 다양한 수준의 RAID-Z를 제공한다.
| RAID-Z 종류 | 설명 |
|---|---|
| 스트라이핑 | RAID 0과 유사하며 중복성을 제공하지 않음 |
| RAID-Z1 | RAID 5와 유사하며 하나의 디스크 장애를 허용 |
| RAID-Z2 | RAID 6과 유사하며 두 개의 디스크 장애를 허용 |
| RAID-Z3 | RAID 7 구성이며 세 개의 디스크 장애를 허용 |
| 미러링 | RAID 1과 유사하며 하나를 제외한 모든 디스크 장애를 허용[39] |
RAID-Z3의 필요성은 2000년대 초반에 멀티 테라바이트 용량 드라이브가 더 일반화되면서 발생했다. 처리 속도의 증가 없이 용량이 증가하면서, 드라이브 고장으로 인해 어레이를 재구축하는 데 "몇 주 또는 몇 달"이 걸릴 수 있다.[38] 이 기간 동안 어레이의 이전 디스크는 추가 작업 부하로 인해 스트레스를 받게 되며, 데이터 손상 또는 드라이브 고장으로 이어질 수 있다. 패리티를 증가시킴으로써 RAID-Z3는 중복성을 증가시켜 데이터 손실의 가능성을 줄인다.[40]
동적 스트라이핑은 모든 장치에 걸쳐 처리량을 최대화하므로, zpool에 장치를 추가할 때마다 스트라이프 폭이 자동으로 확장되어 이를 포함한다. 따라서 풀의 모든 디스크가 사용되어 쓰기 부하가 분산된다.[59]
3. 4. 스냅샷 및 복제
ZFS는 카피 온 라이트 방식을 사용하여 매우 효율적인 스냅샷 기능을 제공한다.[10] 스냅샷은 특정 시점의 파일 시스템 상태를 그대로 보존하며, 읽기 전용으로 생성된다. 스냅샷 생성은 매우 빠르게 이루어지는데, 이는 스냅샷을 구성하는 모든 데이터가 이미 저장되어 있기 때문이다. 또한 변경되지 않은 데이터는 원본 파일 시스템과 스냅샷 간에 공유되므로, 저장 공간을 매우 효율적으로 사용한다.[10]스냅샷은 주로 다음과 같은 목적으로 활용된다.
- 시스템 복원: 위험한 시스템 작업이나 소프트웨어 변경 전에 스냅샷을 생성하여, 문제가 발생할 경우 이전 상태로 쉽게 복원할 수 있다.
- 데이터 보호: 사용자 실수나 악의적인 활동으로 인한 데이터 손실을 방지하기 위해 주기적으로 스냅샷을 생성한다.
- 백업 및 복구: 스냅샷을 사용하여 정식 백업 및 복원 프로세스에 비해 시간과 자원을 절약할 수 있다. 특히, 매우 큰 파일 시스템에서도 이전 상태를 빠르게 확인할 수 있다.[10]
ZFS는 쓰기 가능한 스냅샷인 "클론"을 생성하는 기능도 제공한다. 클론은 원본 스냅샷과 블록을 공유하는 독립적인 파일 시스템으로, 클론에 변경 사항이 발생하면 새로운 데이터 블록이 생성되고, 변경되지 않은 블록은 계속 공유된다. 이는 카피 온 라이트 원리를 활용한 것이다.
ZFS 파일 시스템은 전송 명령어를 통해 스트림 형태로 다른 풀이나 원격 호스트로 이동할 수 있다. 이 스트림은 스냅샷 간의 변경 사항(델타)만을 포함할 수도 있어, 원격 백업 동기화나 고가용성 미러 구현에 효율적으로 사용된다.
3. 5. 기타 기능
ZFS는 읽기와 쓰기 작업을 빠르게 하기 위해 여러 단계의 디스크 캐시를 사용한다. 모든 데이터를 RAM에 저장하면 좋겠지만, 비용이 너무 많이 든다. 그래서 성능과 비용을 최적화하기 위해 데이터는 자동으로 여러 단계에 걸쳐 캐싱된다.[55] 이는 종종 "하이브리드 스토리지 풀"이라고 불린다.[56] 자주 사용하는 데이터는 RAM에 저장되고, 덜 자주 사용하는 데이터는 솔리드 스테이트 드라이브(SSD)와 같은 더 느린 저장 장치에 저장될 수 있다. 자주 사용되지 않는 데이터는 캐싱되지 않고 느린 하드 드라이브에 남는다. 오래된 데이터를 갑자기 많이 읽으면, ZFS는 자동으로 SSD나 RAM으로 옮긴다.ZFS 캐싱 메커니즘에는 읽기와 쓰기 각각에 하나씩 있으며, 각 경우에 두 가지 캐싱 레벨이 있을 수 있다. 하나는 컴퓨터 메모리(RAM)에 있고, 다른 하나는 빠른 저장 장치(일반적으로 솔리드 스테이트 드라이브(SSD))에 있어 총 4개의 캐시가 있다.
| 저장 위치 | 읽기 캐시 | 쓰기 캐시 | |
|---|---|---|---|
| 첫 번째 레벨 캐시 | RAM | 적응형 교체 캐시(ARC) 알고리즘의 변형을 사용하기 때문에 ARC라고 한다. RAM은 항상 캐싱에 사용되므로 이 레벨은 항상 있다. ARC 알고리즘의 효율성은 ARC 크기가 충분히 크면 디스크에 접근할 필요가 없는 경우가 많다는 것을 의미한다. RAM이 너무 작으면 ARC가 거의 없을 것이다. 이 경우 ZFS는 항상 성능에 큰 영향을 주는 기본 디스크에 접근해야 한다. | "트랜잭션 그룹"을 통해 처리된다. 쓰기는 짧은 기간(보통 5~30초) 동안 정해진 제한까지 모아지며, 각 그룹은 다음 그룹이 모아지는 동안 이상적으로 디스크에 기록된다. 이를 통해 전원 중단이나 하드웨어 오류가 발생했을 때 가장 최근 트랜잭션의 약간의 데이터 손실을 감수하고 기본 디스크에 대한 쓰기를 더 효율적으로 구성할 수 있다. 실제로는 ZFS 쓰기 저널링 파일 시스템과 SLOG/ZIL 두 번째 계층 쓰기 캐시 풀(아래 참조)을 통해 전원 손실 위험을 막으므로, 쓰기 실패가 두 번째 계층 SLOG 풀의 전체 손실과 동시에 발생하고 동기식 쓰기 및 SLOG 사용과 관련된 설정이 그러한 상황이 발생하도록 허용하는 방식으로 설정된 경우에만 쓰기가 손실된다. 데이터가 기록될 수 있는 속도보다 빠르게 들어오면 디스크가 따라잡을 때까지 데이터 수신이 일시 중지된다. |
| 두 번째 레벨 캐시 및 의도 로그 | 빠른 저장 장치 (ZFS의 현재 버전에서는 중단 없이 "라이브" 시스템에 추가하거나 제거할 수 있지만, 이전 버전에서는 항상 그런 것은 아니었다.) | L2ARC("레벨 2 ARC")라고 하며 선택 사항이다. ZFS는 L2ARC에 가능한 한 많은 데이터를 캐시한다. L2ARC는 또한 전체 중복 제거 테이블을 L2ARC에 캐시할 수 있으면 데이터 중복 제거를 상당히 빠르게 한다. 빈 L2ARC를 완전히 채우는 데 몇 시간이 걸릴 수 있다(ZFS가 어떤 데이터가 "핫"하고 캐시되어야 하는지 결정하기 전). L2ARC 장치가 손실되면 모든 읽기가 디스크로 이동하여 성능이 저하되지만 다른 것은 아무것도 발생하지 않는다(데이터가 손실되지 않음). | SLOG 또는 ZIL("ZFS 의도 로그")라고 하며, 이 용어는 종종 잘못 사용된다. SLOG(보조 로그 장치)는 시스템 문제 발생 시 쓰기를 기록하기 위한 별도의 장치에 있는 선택적 전용 캐시다. SLOG 장치가 있으면 ZFS 의도 로그에 두 번째 레벨 로그로 사용되고 별도의 캐시 장치가 제공되지 않으면 ZIL이 대신 기본 저장 장치에 생성된다. 따라서 SLOG는 기술적으로 풀의 속도를 높이기 위해 ZIL이 오프로드되는 전용 디스크를 나타낸다. 엄밀히 말하면 ZFS는 SLOG 장치를 사용하여 디스크 쓰기를 캐시하지 않는다. 오히려 SLOG를 사용하여 전원 손실이나 쓰기 실패 시 쓰기로 승인된 데이터가 손실되지 않도록 가능한 한 빨리 영구 저장 매체에 쓰기가 캡처되도록 한다. SLOG 장치를 사용하면 ZFS가 쓰기를 빠르게 저장하고 하드 디스크 드라이브(HDD)와 같이 훨씬 느린 저장 장치에 대해서도 쓰기를 빠르게 보고할 수 있다. 정상적인 활동 과정에서 SLOG는 참조되거나 읽히지 않으며 캐시 역할을 하지 않는다. 그 목적은 결국의 쓰기가 실패할 경우 수집 및 "쓰기"에 소요되는 몇 초 동안 전송 중인 데이터를 보호하는 것이다. 모든 것이 잘 되면 다음 5~60초 이내에 현재 트랜잭션 그룹이 디스크에 기록될 때 스토리지 풀이 업데이트된다(위 참조). 이 시점에서 SLOG에 저장된 쓰기는 단순히 무시되고 덮어 쓰여진다. 쓰기가 결국 실패하거나 시스템이 충돌하거나 장애가 발생하여 쓰기를 막는 경우 ZFS는 SLOG를 다시 읽어(유일하게 읽을 때) 쓰기로 확인한 모든 쓰기를 식별하고 이를 사용하여 데이터 손실을 완전히 복구할 수 있다. |
ZFS에는 다른 여러 캐시, 캐시 분할 및 대기열도 있다. 예를 들어, 각 VDEV에는 자체 데이터 캐시가 있으며, ARC 캐시는 사용자가 저장한 데이터와 ZFS에서 사용하는 메타데이터 간에 분할되어 있으며, 이들 간의 균형을 제어할 수 있다.
- 동적 스트라이핑: 모든 장치에 걸쳐 처리량을 최대화하므로, zpool에 장치를 추가할 때마다 스트라이프 폭이 자동으로 확장되어 이를 포함한다. 따라서 풀의 모든 디스크가 사용되어 쓰기 부하가 분산된다.[59]
- 가변 블록 크기: ZFS는 가변 크기 블록을 사용하며, 기본 크기는 128KB이다. 관리자는 사용 가능한 기능을 통해 사용되는 최대 블록 크기를 조정할 수 있는데, 특정 작업에서는 큰 블록에서 성능이 좋지 않기 때문이다. 데이터 압축이 활성화되어 있으면 가변 블록 크기가 사용된다. 블록이 더 작은 블록 크기로 압축될 수 있다면, 더 적은 저장 공간을 사용하고 IO 처리량을 개선하기 위해 더 작은 크기가 디스크에서 사용된다(압축 및 압축 해제 작업에 대한 CPU 사용량 증가를 대가로).[60]
- 경량 파일 시스템 생성: ZFS에서 스토리지 풀 내 파일 시스템 조작은 기존 파일 시스템 내 볼륨 조작보다 더 쉽다. ZFS 파일 시스템을 만들거나 확장하는 데 필요한 시간과 노력은 다른 시스템의 볼륨 조작보다 새 디렉토리를 만드는 것에 더 가깝다.
- 엔디안 적응성: 풀(Pool)과 관련된 ZFS 파일 시스템은 서로 다른 바이트 순서를 사용하는 시스템을 포함하여, 서로 다른 플랫폼 아키텍처 간에 이동할 수 있다. ZFS 블록 포인터 형식은 파일 시스템 메타데이터를 엔디안 적응 방식으로 저장한다. 개별 메타데이터 블록은 블록을 쓰는 시스템의 기본 바이트 순서로 기록된다. 읽을 때 저장된 엔디안이 시스템의 엔디안과 일치하지 않으면 메타데이터는 메모리에서 바이트 교환된다. 이것은 저장된 데이터에는 영향을 미치지 않는다. POSIX 시스템에서 흔히 볼 수 있듯이, 파일은 애플리케이션에 단순한 바이트 배열로 표시되므로, 데이터를 생성하고 읽는 애플리케이션은 기본 시스템의 엔디안과 독립적인 방식으로 이를 수행해야 한다.
- 데이터 중복 제거: ZFS 소스 저장소에 데이터 중복 제거 기능이 2009년 10월 말에 추가되었으며,[61] 관련 OpenSolaris ZFS 개발 패키지는 2009년 12월 3일(빌드 128)부터 사용할 수 있게 되었다. 중복 제거를 효과적으로 사용하려면 대용량 RAM이 필요할 수 있으며, 권장 사항은 저장 공간 1TB당 1~5GB의 RAM이다.[62][63][64] 중복 제거에 필요한 메모리를 정확하게 평가하려면 풀의 고유 블록 수와 각 레코드를 저장하는 데 필요한 디스크 및 RAM("코어")의 바이트 수를 참조해야 한다. 이러한 수치는 `zpool` 및 `zdb`와 같은 내장 명령으로 보고된다. 물리적 메모리가 부족하거나 ZFS 캐시가 부족하면 중복 제거를 사용할 때 가상 메모리 스래싱이 발생하여 성능이 급격히 저하되거나 메모리 부족 현상이 발생할 수 있다. 중복 제거는 쓰기 시간에 발생하므로 CPU를 많이 사용하며, 이로 인해 시스템 속도가 현저히 느려질 수도 있다. 다른 스토리지 벤더들은 ZFS의 수정된 버전을 사용하여 매우 높은 데이터 압축률을 달성한다. 2012년의 두 가지 예는 GreenBytes와 Tegile이었다. 2014년 5월, 오라클은 ZFS 중복 제거 및 복제 기술을 위해 GreenBytes를 인수했다.[67] 위에 설명된 바와 같이, 중복 제거는 시스템과 데이터가 이 공간 절약 기술에 적합한 특정 상황을 제외하고는 과도한 리소스 요구 사항(특히 RAM)과 성능 저하(특히 쓰기 시)로 인해 일반적으로 권장되지 않는다.
- 암호화: ZFS[47]의 암호화 기능은 오라클 솔라리스에서 I/O 파이프라인에 내장되어 있다. 쓰기 작업 중에 블록은 압축, 암호화, 체크섬, 중복 제거 순서로 처리될 수 있다. 암호화 정책은 데이터 세트(파일 시스템 또는 ZVOL)가 생성될 때 데이터 세트 수준에서 설정된다. 사용자와 관리자가 제공하는 래핑 키는 파일 시스템을 오프라인으로 전환하지 않고 언제든지 변경할 수 있다. 기본 동작은 래핑 키가 모든 하위 데이터 세트에 의해 상속되는 것이다. 데이터 암호화 키는 데이터 세트 생성 시 무작위로 생성된다. 자손 데이터 세트(스냅샷 및 복제본)만이 데이터 암호화 키를 공유한다.[48] 복제본 또는 언제든지 새로운 데이터 암호화 키로 전환하는 명령이 제공된다. 이는 이미 존재하는 데이터를 다시 암호화하지 않고, 암호화된 마스터 키 메커니즘을 활용한다. 현재 암호화 기능은 데비안 및 우분투 리눅스 배포판에서 사용할 수 있는 OpenZFS 0.8.0에도 완벽하게 통합되어 있다.[49] ZFS 네이티브 암호화를 사용할 때 실패했다는 일화적인 최종 사용자 보고가 있었다. 정확한 원인은 아직 밝혀지지 않았다.[50][51]
- 기타:
- 데드라인 스케줄링을 사용한 명시적 I/O 우선순위.
- 전역 최적 I/O 정렬 및 집계.
- 자동 길이 및 스트라이드 감지 기능이 있는 여러 개의 독립적인 사전 가져오기 스트림.
- 병렬, 상수 시간 디렉토리 작업.
- "데이터 무결성 필드"의 일종을 사용하여 종단 간 체크섬을 수행하여 데이터 손상 감지(및 풀에 중복성이 있는 경우 복구)를 가능하게 한다. 속도에 최적화된 3개의 해시(fletcher), 표준화 및 보안(SHA256) 및 솔트 해시(Skein)를 선택할 수 있다.[68]
- 투명한 파일 시스템 압축. LZJB, gzip,[69] LZ4 및 Zstd를 지원한다.
- 지능형 데이터 스크러빙 및 디스크 미러링(재동기화).[70]
- 풀 내 디스크 간의 로드 및 공간 사용 공유.[71]
- 동일 블록: 사용자 데이터에 대해 쓰기 시 0개, 1개 또는 2개의 추가 복사본을 요청하고 메타데이터에 대해 동일한 기본 복사본 수에 1개 또는 2개를 추가하여 파일 시스템별로 구성 가능한 데이터 복제(메타데이터 중요도에 따라).[72] 풀에 여러 장치가 있는 경우 ZFS는 서로 다른 장치에서 복제하려고 한다. 동일 블록은 주로 전체 디스크 장애가 아닌 손상된 섹터에 대한 추가적인 보호 기능이다.[73]
- ZFS 설계(쓰기 시 복사 + 슈퍼블록)는 쓰기 배리어를 준수하는 경우 쓰기 캐시가 활성화된 디스크를 사용할 때 안전하다. 이 기능은 다른 파일 시스템에 비해 안전성과 성능 향상을 제공한다.
- Solaris에서 전체 디스크를 ZFS 풀에 추가하면 ZFS가 자동으로 쓰기 캐시를 활성화한다. ZFS가 디스크의 개별 슬라이스만 관리하는 경우에는 다른 슬라이스가 UFS와 같이 쓰기 캐시에 안전하지 않은 파일 시스템에 의해 관리되는지 알 수 없으므로 이렇게 하지 않는다. FreeBSD 구현은 GEOM 프레임워크 덕분에 파티션에 대한 디스크 플러시를 처리할 수 있으므로 이러한 제한 사항이 없다.
- 사용자별, 그룹별, 프로젝트별 및 데이터 세트별 할당량 제한.[74]
- Solaris 11 Express 이후의 파일 시스템 암호화,[75] 및 OpenZFS(ZoL) 0.8.[76] (다른 시스템에서는 ZFS가 유사한 효과를 위해 암호화된 디스크를 활용할 수 있다. FreeBSD의 GELI를 사용하여 완전히 암호화된 ZFS 스토리지를 만들 수 있다).
- 풀은 읽기 전용 모드로 가져올 수 있다.
- zpool을 가져올 때 전체 트랜잭션을 롤백하여 데이터를 복구할 수 있다.
- 스냅샷은 수동 또는 자동으로 수행할 수 있다. 스냅샷에 포함된 저장된 데이터의 이전 버전은 완전한 읽기 전용 파일 시스템으로 노출될 수 있다. 또한 CIFS(SMB, 삼바 또는 파일 공유)와 함께 사용하면 파일 및 폴더의 기록 버전으로 노출될 수 있다. 이는 Windows에서는 "이전 버전", "VSS 섀도 복사본" 또는 "파일 기록"으로, AFP 및 Apple 장치에서는 "Apple Time Machine"으로 알려져 있다.[77]
- 디스크를 '스페어'로 표시할 수 있다. 데이터 풀은 필요할 때 스페어 디스크를 활성화하고 의심스러운 디스크의 데이터를 스페어 디스크로 재동기화하여 디스크 오류를 자동으로 투명하게 처리하도록 설정할 수 있다.
4. 한계
- 솔라리스 10 업데이트 11 및 솔라리스 11.2까지는 핫 스페어, 캐시, 로그 장치를 제외하고 풀의 최상위 vdev 수를 줄이거나 풀 용량을 줄이는 것이 불가능했다.[78] 2007년에 이 기능이 개발 중이라고 언급되었으나,[79] vdev 축소를 허용하는 기능 향상은 OpenZFS에서 개발 중이다.[80] 비중복 최상위 vdev를 제거하여 온라인 축소는 2018년 8월에 출시된 솔라리스 11.4[81] 및 2019년 5월에 출시된 OpenZFS (ZoL) 0.8부터 지원된다.[76]
- 2008년 당시에는 RAID Z, RAID Z2 또는 RAID Z3 vdev에 디스크를 열로 추가하는 것이 불가능했다. 그러나 새로운 RAID Z vdev를 생성하여 zpool에 추가할 수 있다.[82]
- RAID 51(RAID 5 그룹의 미러)과 같은 일부 전통적인 중첩 RAID 구성은 일부 타사 도구 없이는 ZFS에서 구성할 수 없다.[83] 기본 ZFS 관리 명령을 사용하면 vdev는 다른 vdev가 아닌 원시 디스크 또는 파일로만 구성할 수 있다.[84] 그러나 ZFS 풀은 vdev 전체에 걸쳐 스트라이프(RAID 0)를 효과적으로 생성하므로 RAID 50 또는 RAID 60과 동일한 구성이 일반적이다.
- 최상위 vdev의 장치 수를 재구성하려면 오프라인에서 데이터를 복사하고, 풀을 삭제하고, 새로운 최상위 vdev 구성으로 풀을 다시 생성해야 한다. 기존 미러에 추가 중복성을 추가하는 경우는 언제든지 수행할 수 있으며, 모든 최상위 vdev가 충분한 중복성을 가진 미러인 경우 `zpool split`[85] 명령을 사용하여 풀의 각 최상위 vdev에서 vdev를 제거하여 동일한 데이터를 가진 두 번째 풀을 생성할 수 있다.
- ZFS는 데이터 갱신을 항상 카피 온 라이트(Copy-on-Write) 방식으로 처리한다. 이 때문에 기존의 유닉스(Unix) 기반 파일 시스템에서는 발생하지 않는 문제가 발생할 수 있다.
- ZFS에서 데이터가 빈번하게 갱신되는 파일 시스템에서 사용 가능한 공간이 부족해지면, 여유 공간이 남아있음에도 불구하고 데이터 갱신에 실패하는 경우가 있다. 이는 카피 온 라이트 방식을 채택한 파일 시스템에서는 피할 수 없는 문제이다. 예를 들어, 고정 크기의 파일에 `mmap()`을 사용하여 접근하는 경우, 페이지를 파일로 다시 쓸 때 파일 시스템의 여유 공간 부족으로 인한 에러를 방지하기 위해 `fallocate()`[126] 또는 `posix_fallocate()`[127]를 사용하여 파일 블록을 확보하는 경우가 있는데, ZFS에서는 카피 온 라이트가 필수이기 때문에 이를 실행해도 에러가 발생할 수 있다. 이 영향으로 ZFS는 초기에 `fallocate()` 구현을 보류했었다.[128] 2020년 6월까지, 리눅스(Linux)에 한해 `fallocate()`의 호환 구현이 병합되었다.[129] 그러나 실제로는 스냅샷이나 압축 기능과의 간섭이 지적되고 있으며, 근본적인 대응은 어려운 것으로 알려져 있다.[130]
- ZFS 상의 파일에 대해 임의 접근에 의한 데이터 갱신을 수행하면, 미리 `fallocate()` 등을 통해 물리적으로 연속된 파일 블록을 확보하더라도 블록이 단편화된다. ext4가 `fallocate()`에 의한 연속된 파일 블록의 확보를 정식으로 지원하고 있기에, 이를 전제로 한 소프트웨어를 ZFS로 가져오면 문제가 발생하기 쉽다. 이 또한 데이터 갱신이 카피 온 라이트 처리로 이루어지는 직접적인 결과이며, `mmap()` 사용으로 특히 두드러진다. 이러한 경우에는 파일 블록의 연속성을 전제로 하기보다는 단편화를 허용하고, 그것이 기능이나 성능에 영향을 미치지 않도록 해야 한다.
5. 플랫폼
ZFS는 다양한 운영체제에서 사용할 수 있다. 다음은 ZFS를 지원하는 운영체제 및 배포판 목록이다.
| 운영 체제 | Zpool 버전 | 설명 |
|---|---|---|
| 오라클 솔라리스(Oracle Solaris) 11.4 | 49 | |
| 오라클 솔라리스(Oracle Solaris) 11.3 | 37 | |
| 오라클 솔라리스(Oracle Solaris) 10 1/13 (U11) | 32 | |
| 오라클 솔라리스(Oracle Solaris) 11.2 | 35 | |
| 오라클 솔라리스(Oracle Solaris) 11 2011.11 | 34 | |
| 오라클 솔라리스 익스프레스(Oracle Solaris Express) 11 2010.11 | 31 | 테스트 전용 라이선스 |
| 오픈솔라리스(OpenSolaris) 2009.06 | 14 | |
| 오픈솔라리스(OpenSolaris) (최신 개발) | 22 | |
| 오픈인디애나(OpenIndiana) | 5000 | 일루모스(illumos) 기반 배포판 |
| 넥센타(Nexenta) Core 3.0.1 | 26 | GNU userland |
| 넥센타스토어(NexentaStor) Community 3.0.1 | 26 | 최대 18TB, 웹 관리 |
| 넥센타스토어(NexentaStor) Community 3.1.0 | 28 | GNU userland |
| 넥센타스토어(NexentaStor) Community 4.0 | 5000 | 최대 18TB, 웹 관리 |
| 넥센타스토어(NexentaStor) Enterprise | 28 | 유료, 웹 관리 |
| 데비안 GNU/kFreeBSD "Squeeze" (미지원) | 14 | "zfsutils" 패키지 필요 |
| 데비안 GNU/kFreeBSD "Wheezy-9" (미지원) | 28 | "zfsutils" 패키지 필요 |
| 프리BSD(FreeBSD) | 5000 | |
| zfs-fuse 0.7.2 | 23 | 성능 문제 발생, 사용 중단 |
| ZFS on Linux 0.6.5.8 | 5000 | |
| KQ Infotech의 ZFS on Linux | 28 | 사용 중단, 코드는 LLNL에서 지원하는 ZFS on Linux에 통합됨 |
| 벨리닉스(BeleniX) 0.8b1 | 14 | 소형 라이브 CD 배포판, 한때 OpenSolaris 기반 |
| 쉴릭스(Schillix) 0.7.2 | 28 | 소형 라이브 CD 배포판, OpenSolaris 기반 |
| StormOS "hail" | 한때 Nexenta Core 2.0+ 기반, 데비안(Debian) 리눅스 배포판, 다이슨 OS(Dyson OS)로 대체됨 | |
| Jaris | 자판의 Solaris 배포판, 한때 OpenSolaris 기반 | |
| MilaX 0.5 | 20 | 소형 라이브 CD 배포판, 한때 OpenSolaris 기반 |
| FreeNAS 8.0.2 / 8.2 | 15 | |
| FreeNAS 8.3.0 | 28 | FreeBSD 8.3 기반 |
| FreeNAS 9.1.0+ | 5000 | FreeBSD 9.1+ 기반 |
| XigmaNAS 11.4.0.4/12.2.0.4 | 5000 | FreeBSD 11.4/12.2 기반 |
| Korona 4.5.0 | 22 | KDE |
| EON NAS (v0.6) | 22 | 임베디드 NAS |
| EON NAS (v1.0beta) | 28 | 임베디드 NAS |
| [https://www.napp-it.org/ napp-it] | 28/5000 | Illumos/Solaris, 스토리지 어플라이언스 |
| [http://www.omniosce.org/ OmniOS CE] | 28/5000 | illumos-OmniOS 브랜치, 일루모스(Illumos) 기반의 최소한의 안정적인/LTS 스토리지 서버 배포판, 커뮤니티 주도 |
| 스마트OS(SmartOS) | 28/5000 | 일루모스(Illumos) 기반의 최소 라이브 배포판 (USB/CD 부팅), 클라우드 및 하이퍼바이저 사용 (KVM) |
| macOS 10.5, 10.6, 10.7, 10.8, 10.9 | 5000 | MacZFS를 통해, OpenZFS on OS X로 대체됨 |
| macOS 10.6, 10.7, 10.8 | 28 | ZEVO를 통해, OpenZFS on OS X로 대체됨 |
| 넷BSD(NetBSD) | 22 | |
| 미드나잇BSD(MidnightBSD) | 6 | |
| 프록스모스 VE(Proxmox VE) | 5000 | |
| 우분투 리눅스(Ubuntu Linux) 16.04 LTS+ | 5000 | |
| ZFSGuru 10.1.100 | 5000 |
- 솔라리스: 10/08 버전부터 부트 파티션으로도 생성 가능하게 되었다.
- OpenSolaris → OpenIndiana: SPARC 및 x86 버전의 OpenSolaris build 27 이후에서 동작한다. OpenIndiana는 초기 릴리스 oi_148부터 기본 파일 시스템이다.
- FreeBSD: 7.0-RELEASE부터 ZFS를 지원한다.[111] x64 상의 9.0-RELEASE에서 ZFS v28을 지원하며,[112] 13.0-RELEASE에서 OpenZFS 2.0으로 변경했다.[114]
- NetBSD: 2007년 구글 코드 썸머 오브 코드에서 개발이 시작되었지만, 2016년 시점에서는 유지보수되지 않고 있다.[115]
- macOS (구 Mac OS X): 10.5 Leopard부터 탑재되었지만,[116] 초기에는 읽기 전용이었다. 애플(Apple Inc.)은 ZFS 프로젝트를 중단하고[117][118] Apple File System을 개발하여 2017년에 릴리스했다.[120][121] 2020년 11월 30일, OpenZFS on OS X 2.0영어가 릴리스되었다.[122]
- 리눅스: 라이선스 문제[123]로 인해 커널 본체에는 포함되지 않지만, OpenZFS영어가 커널 모듈로서 ZFS 기능을 제공한다.[124] 우분투는 16.04부터 ZFS를 기본 지원한다.
한국에서는 FreeBSD 기반의 TrueNAS(이전 FreeNAS)와 같은 ZFS 기반 NAS 솔루션이 널리 사용되고 있다.
6. OpenZFS와 ZFS
오라클이 2010년 썬을 인수하면서, 오라클의 ZFS는 폐쇄 소스가 되었다.[87] 2013년부터는 OpenZFS 프로젝트를 통해 오픈 소스 버전의 개발이 독립적으로 진행되고 있다.[87]
OpenZFS는 다양한 운영체제 및 플랫폼에서 ZFS를 사용할 수 있도록 지원하며, 지속적인 개발과 개선이 이루어지고 있다. 2019년 기준으로, 원래 OpenSolaris ZFS 코드의 50% 이상이 OpenZFS에서 커뮤니티 기여로 대체되었다.[87]
참조
[1]
웹사이트
What Is ZFS?
http://docs.oracle.c[...]
Oracle
2015-12-29
[2]
웹사이트
ZFS on Linux Licensing
https://github.com/o[...]
2020-05-17
[3]
웹사이트
The OpenZFS project launches
https://lwn.net/Arti[...]
LWN.net
2013-09-17
[4]
웹사이트
OpenZFS Announcement
http://open-zfs.org/[...]
OpenZFS
2013-09-17
[5]
웹사이트
OpenZFS is the truly open source successor to the ZFS project [...] Effects of the fork (2010 to date)
http://open-zfs.org/[...]
2013-12-24
[6]
웹사이트
LinuxCon: OpenZFS moves Open Source Storage Forward
http://www.infostor.[...]
infostor.com
2013-09-18
[7]
웹사이트
The OpenZFS project launches
https://lwn.net/Arti[...]
LWN.net
2013-09-17
[8]
웹사이트
OpenZFS – Communities co-operating on ZFS code and features
http://www.freebsdne[...]
freebsdnews.net
2013-09-23
[9]
웹사이트
The Starline ZFS FAQ
https://www.starline[...]
2024-07-20
[10]
웹사이트
19.4. zfs Administration
https://www.freebsd.[...]
2017-02-22
[11]
서적
A Quarter Century of Unix
Addison-Wesley
[12]
웹사이트
What are SunOS and Solaris?
http://kb.iu.edu/dat[...]
Indiana University Technology Services
2013-05-20
[13]
웹사이트
A Conversation with Jeff Bonwick and Bill Moore
http://queue.acm.org[...]
Association for Computing Machinery
[14]
웹사이트
ZFS: the last word in file systems
http://www.sun.com/2[...]
Sun Microsystems
2004-09-14
[15]
웹사이트
ZFS 10 year anniversary
http://blog.delphix.[...]
2011-11-01
[16]
웹사이트
ZFS: The Last Word in Filesystems
https://blogs.oracle[...]
2005-10-31
[17]
웹사이트
Sun Celebrates Successful One-Year Anniversary of OpenSolaris
http://www.sun.com/s[...]
Sun Microsystems
2006-06-20
[18]
웹사이트
Sun Cracks Open Solaris
http://www.internetn[...]
InternetNews.com
2005-01-25
[19]
웹사이트
ZFS FAQ at OpenSolaris.org
http://hub.opensolar[...]
Sun Microsystems
[20]
웹사이트
You say zeta, I say zetta
https://blogs.oracle[...]
2006-05-03
[21]
웹사이트
Oracle and NetApp dismiss ZFS lawsuits
https://www.theregis[...]
theregister.co.uk
2010-09-09
[22]
웹사이트
Rémy Card (Interview, April 1998)
http://www.april.org[...]
April Association
1999-04-19
[23]
논문
IRON FILE SYSTEMS
http://pages.cs.wisc[...]
University of Wisconsin-Madison
[24]
웹사이트
Parity Lost and Parity Regained
http://www.cs.wisc.e[...]
[25]
웹사이트
An Analysis of Data Corruption in the Storage Stack
http://www.cs.wisc.e[...]
[26]
웹사이트
Impact of Disk Corruption on Open-Source DBMS
http://www.cs.wisc.e[...]
[27]
웹사이트
Reliability Analysis of ZFS
http://pages.cs.wisc[...]
[28]
질문답변
2010-12-06
[29]
웹사이트
Benchmarking ZFS and UFS On FreeBSD vs. EXT4 & Btrfs On Linux
https://www.phoronix[...]
Phoronix Media 2012
[30]
웹사이트
Can DragonFlyBSD's HAMMER Compete With Btrfs, ZFS?
https://www.phoronix[...]
Phoronix Media 2012
[31]
웹사이트
ZFS End-to-End Data Integrity
https://blogs.oracle[...]
2005-12-08
[32]
웹사이트
Demonstrating ZFS Self-Healing
https://blogs.oracle[...]
2009-11-16
[33]
웹사이트
ZFS, copies, and data protection
https://blogs.oracle[...]
2007-05-04
[34]
웹사이트
zpoolconcepts.7 — OpenZFS documentation
https://openzfs.gith[...]
[35]
웹사이트
ZFS Without Tears: Using ZFS without ECC memory
https://www.csparks.[...]
2015-12
[36]
웹사이트
Difference between Desktop edition and RAID (Enterprise) edition drives
http://wdc.custhelp.[...]
2011-09-08
[37]
웹사이트
RAID-Z
https://web.archive.[...]
Oracle Blogs
2005-11-17
[38]
논문
Triple-Parity RAID and Beyond
2009-12-17
[39]
웹사이트
ZFS Raidz Performance, Capacity and integrity
https://web.archive.[...]
2017-06-23
[40]
뉴스
Why RAID 6 stops working in 2019
https://web.archive.[...]
2010-02-22
[41]
웹사이트
Checking ZFS File System Integrity
http://docs.oracle.c[...]
Oracle
2012-11-25
[42]
웹사이트
ZFS Scrubs
https://web.archive.[...]
freenas.org
2012-11-25
[43]
웹사이트
ZFS Best Practices Guide
https://web.archive.[...]
solarisinternals.com
2012-11-25
[44]
웹사이트
128-bit storage: are you high?
https://blogs.oracle[...]
2015-05-29
[45]
웹사이트
ZFS: Boils the Ocean, Consumes the Moon (Dave Brillhart's Blog)
https://web.archive.[...]
2015-12-19
[46]
웹사이트
Solaris ZFS Administration Guide
http://download.orac[...]
Oracle Corporation
2011-02-11
[47]
웹사이트
Encrypting ZFS File Systems
http://download.orac[...]
2011-05-02
[48]
웹사이트
Having my secured cake and Cloning it too (aka Encryption + Dedup with ZFS)
https://blogs.oracle[...]
2012-10-09
[49]
웹사이트
ZFS – Debian Wiki
https://wiki.debian.[...]
2019-12-10
[50]
웹사이트
Proposal: Consider adding warnings against using zfs native encryption along with send/recv in production
https://github.com/o[...]
Github
2024-08-15
[51]
웹사이트
PSA: ZFS has a data corruption bug when using native encryption and send/recv
https://www.reddit.c[...]
Reddit
2024-08-15
[52]
웹사이트
ZFS Fragmentation: Long-term Solutions
https://github.com/o[...]
Github
2024-08-15
[53]
웹사이트
What are the best practices to keep ZFS from being too fragmented
https://forums.lawre[...]
Lawrence Systems
2024-08-15
[54]
웹사이트
Solaris ZFS Enables Hybrid Storage Pools—Shatters Economic and Performance Barriers
http://download.inte[...]
Sun.com
2010-09-07
[55]
웹사이트
ZFS L2ARC
http://dtrace.org/bl[...]
Dtrace.org
2012-10-05
[56]
웹사이트
Hybrid Storage Pool: Top Speeds
http://dtrace.org/bl[...]
Dtrace.org
2009-10-08
[57]
웹사이트
Solaris ZFS Performance Tuning: Synchronous Writes and the ZIL
http://constantin.gl[...]
Constantin.glez.de
2010-07-20
[58]
웹사이트
ZFS On-Disk Specification
https://web.archive.[...]
Sun Microsystems, Inc.
[59]
웹사이트
RAIDZ — OpenZFS documentation
https://openzfs.gith[...]
2023-02-09
[60]
웹사이트
ZFS Nuts and Bolts
http://www.slideshar[...]
slideshare.net
2009-05-21
[61]
웹사이트
ZFS Deduplication
https://blogs.oracle[...]
2019-11-25
[62]
웹사이트
Building ZFS Based Network Attached Storage Using FreeNAS 8
https://web.archive.[...]
TrainSignal, Inc
2012-01-04
[63]
웹사이트
[zfs-discuss] Summary: Deduplication Memory Requirements
http://mail.opensola[...]
zfs-discuss mailing list
2011-05
[64]
웹사이트
ZFSTuningGuide
http://wiki.freebsd.[...]
2012-01-03
[65]
뉴스
GreenBytes brandishes full-fat clone VDI pumper
https://www.theregis[...]
2012-10-12
[66]
뉴스
Newcomer gets out its box, plans to sell it cheaply to all comers
https://www.theregis[...]
2012-06-01
[67]
뉴스
Dedupe, dedupe... dedupe, dedupe, dedupe: Oracle polishes ZFS diamond
https://www.theregis[...]
The Register
2014-12-11
[68]
웹사이트
Checksums and Their Use in ZFS
https://github.com/z[...]
2018-09-02
[69]
웹사이트
Solaris ZFS Administration Guide
https://web.archive.[...]
2009-03-17
[70]
웹사이트
Smokin' Mirrors
https://blogs.oracle[...]
2006-05-02
[71]
웹사이트
ZFS Block Allocation
https://blogs.oracle[...]
2006-11-04
[72]
웹사이트
Ditto Blocks — The Amazing Tape Repellent
https://blogs.oracle[...]
2006-05-12
[73]
웹사이트
Adding new disks and ditto block behaviour
http://opensolaris.o[...]
[74]
웹사이트
OpenSolaris.org
http://www.opensolar[...]
Sun Microsystems
[75]
웹사이트
What's new in Solaris 11 Express 2010.11
http://www.oracle.co[...]
Oracle
[76]
웹사이트
Release zfs-0.8.0
https://github.com/o[...]
OpenZFS
2019-05-23
[77]
웹사이트
10. Sharing — FreeNAS User Guide 9.3 Table of Contents
http://doc.freenas.o[...]
[78]
웹사이트
Bug ID 4852783: reduce pool capacity
http://bugs.opensola[...]
OpenSolaris Project
[79]
메일링리스트
Permanently removing vdevs from a pool
http://mail.opensola[...]
2007-04-19
[80]
블로그
Information on future vdev removal
https://utcc.utoront[...]
[81]
웹사이트
Data Management Features – What's New in Oracle® Solaris 11.4
https://docs.oracle.[...]
[82]
웹사이트
Expand-O-Matic RAID Z
https://blogs.oracle[...]
Adam Leventhal
2008-04-07
[83]
웹사이트
ZFS Toy
https://sourceforge.[...]
[84]
웹사이트
zpoolconcepts(7)
https://openzfs.gith[...]
OpenZFS
2021-06-02
[85]
웹사이트
zpool(1M)
http://download.orac[...]
Download.oracle.com
2010-06-11
[86]
웹사이트
Turbocharging ZFS Data Recovery
https://www.delphix.[...]
[87]
웹사이트
ZFS and OpenZFS
https://www.ixsystem[...]
iXSystems
[88]
웹사이트
Sun rolls out its own storage appliances
http://www.techworld[...]
techworld.com.au
2008-11-11
[89]
웹사이트
Oracle muscles way into seat atop the benchmark with hefty ZFS filer
https://www.theregis[...]
theregister.co.uk
2013-10-02
[90]
웹사이트
Unified ZFS Storage Appliance built in Silicon Valley by iXsystem
http://www.ixsystems[...]
ixsystems.com
[91]
웹사이트
TrueNAS 12 & TrueNAS SCALE are officially here!
https://www.ixsystem[...]
ixsystems.com
[92]
웹사이트
ReadyDATA 516 – Unified Network Storage
http://www.netgear.c[...]
netgear.com
[93]
웹사이트
rsync.net: ZFS Replication to the cloud is finally here—and it's fast
https://arstechnica.[...]
arstechnica.com
2015-12-17
[94]
웹사이트
Cloud Storage with ZFS send and receive over SSH
http://www.rsync.net[...]
rsync.net
[95]
웹사이트
Update on SXCE
http://sstallion.blo[...]
Iconoclastic Tendencies
2010-08-13
[96]
메일링리스트
OpenSolaris cancelled, to be replaced with Solaris 11 Express
http://mail.opensola[...]
[97]
웹사이트
Solaris still sorta open, but OpenSolaris distro is dead
https://arstechnica.[...]
2010-08-16
[98]
웹사이트
Illumos - Hope and Light Springs Anew - Presented by Garrett D'Amore
http://www.illumos.o[...]
illumos.org
2010-08-03
[99]
웹사이트
Whither OpenSolaris? Illumos Takes Up the Mantle
http://www.linuxinsi[...]
[100]
웹사이트
The Hand May Be Forced
http://gdamore.blogs[...]
2010-08-13
[101]
웹사이트
It Looks Like Oracle Will Stand Behind OpenSolaris
https://www.phoronix[...]
Phoronix Media
[102]
웹사이트
OpenIndiana — there's still hope
http://distrowatch.c[...]
DistroWatch
2011-05-23
[103]
웹사이트
Welcome to Project OpenIndiana!
http://openindiana.o[...]
Project OpenIndiana
2010-09-10
[104]
웹사이트
ZFS Pool Versions
https://docs.oracle.[...]
Oracle Corporation
[105]
웹사이트
You say zeta, I say zetta (Jeff Bonwick's Blog)
https://blogs.oracle[...]
[106]
웹사이트
ZFS FAQ (Community Group zfs.faq) - XWiki
http://hub.opensolar[...]
[107]
문서
파일시스템의 특정 시점을 가리키는 기능 설명
[108]
웹사이트
Managing ZFS File Systems in Oracle Solaris 11.4
https://docs.oracle.[...]
2019-06-10
[109]
웹사이트
Feature Flags
https://openzfs.gith[...]
2024-12-24
[110]
웹사이트
ZFS Feature Flags
https://web.archive.[...]
Illumos Meetup January 2012
2024-12-24
[111]
웹사이트
FreeBSD 7.0-RELEASE Release Notes
https://www.freebsd.[...]
2024-12-24
[112]
웹사이트
FreeBSD 9.0-RELEASE Release Notes
https://www.freebsd.[...]
2024-12-24
[113]
문서
FreeBSD의 ZVOL과 iSCSI 기능 설명
[114]
웹사이트
FreeBSD 13.0-RELEASE Release Notes
https://www.freebsd.[...]
2024-12-24
[115]
웹사이트
クレア工房 / NetBSD / ZFS
https://www.clarestu[...]
2017-03-26
[116]
뉴스
Sun、NetApp逆提訴へ--LeopardのZFSに影響は?
https://japan.zdnet.[...]
2021-02-14
[117]
뉴스
Mac OS Forgeの「ZFS移植プロジェクト」が終了--AppleがZFSサポートを打ち切った理由
https://builder.japa[...]
2021-02-14
[118]
뉴스
Apple Shuts Down Mac OS X ZFS Project
http://www.osnews.co[...]
2009-10-26
[119]
뉴스
Apple dumps Sun's ZFS
https://www.theregis[...]
2021-02-14
[120]
뉴스
今度のアップデート「iOS 10.3」は慎重に、ってどういうこと? - いまさら聞けないiPhoneのなぜ
https://news.mynavi.[...]
2021-02-14
[121]
뉴스
アップル、次期macOS「High Sierra」を9月26日にリリースへ
https://japan.zdnet.[...]
2021-02-14
[122]
웹사이트
OpenZFS on OS X • View topic - OpenZFS-2.0-release
https://openzfsonosx[...]
2021-02-14
[123]
웹사이트
Don't use ZFS ―Linus,ZFSをマージしない姿勢をあらためて強調
https://gihyo.jp/adm[...]
[124]
웹사이트
http://zfsonlinux.or[...]
[125]
웹사이트
http://blog.dustinki[...]
[126]
웹사이트
fallocate(2) - Linux manual page
https://man7.org/lin[...]
2024-07-02
[127]
웹사이트
posix_fallocate
https://pubs.opengro[...]
2024-07-02
[128]
웹사이트
Support fallocate(2) · Issue #326 · openzfs/zfs
https://github.com/o[...]
2024-07-02
[129]
웹사이트
linux: implement fallocate(mode=0) compatibility by adilger · Pull Request #10408 · openzfs/zfs
https://github.com/o[...]
2024-07-02
[130]
웹사이트
Support fallocate(2) · Issue #326 · openzfs/zfs (Comment 639468891)
https://github.com/o[...]
2024-07-02
[131]
웹사이트
Support fallocate(2) · Issue #326 · openzfs/zfs (Comment 639378614)
https://github.com/o[...]
2024-07-02
[132]
문서
ext4 파일시스템에서 extent 사용 시 chattr 명령어 설정 설명
[133]
웹인용
What Is ZFS?
https://web.archive.[...]
Oracle
2015-12-29
[134]
웹인용
What's new in Solaris 11 Express 2010.11
http://www.oracle.co[...]
Oracle
2010-11-17
[135]
웹인용
128-bit storage: are you high?
https://blogs.oracle[...]
2015-05-29
[136]
웹인용
ZFS: The Last Word in Filesystems
https://web.archive.[...]
2013-06-22
[137]
웹인용
ZFS: Boils the Ocean, Consumes the Moon (Dave Brillhart's Blog)
https://web.archive.[...]
2015-12-19
[138]
웹인용
A Conversation with Jeff Bonwick and Bill Moore
http://queue.acm.org[...]
Association for Computing Machinery
2015-11-17
[139]
웹인용
ZFS: the last word in file systems
https://web.archive.[...]
Sun Microsystems
2006-04-30
[140]
웹인용
ZFS 10 year anniversary
https://web.archive.[...]
2012-07-24
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com