ZFS 대 XFS


62

~ 16TB 스토리지 서버 구축을 고려하고 있습니다. 현재 ZFS와 XFS를 모두 파일 시스템으로 고려하고 있습니다. 장점, 단점은 무엇입니까? 무엇을 찾아야합니까? 더 나은 세 번째 옵션이 있습니까?


7
비교하지 마십시오. ZFS는 jfs2, wafl과 같은 최신 엔터프라이즈 급 파일 시스템입니다. XFS는 10 년 전에는 좋았지 만 오늘은 석기 시대입니다.
disserman

어떤면에서는 비교할 수 없습니다. XFS는 파일 시스템입니다. ZFS는 파일 시스템이며 그 외에도 파일 시스템, 볼륨 관리자 (예 : LVM) 및 RAID를 대체합니다. 그러나 메모리가 제공되는 경우 JFS는 더 이상 유지되지 않습니다. 그러나 XFS는 활성화되어 유지되고 강력합니다. ZFS 또는 XFS 중 어느 쪽이든 내 의견으로는 잘못 될 수 없습니다.
Mei

1
나는 여전히이 질문이 관련이 있다고 생각하므로 여기에 우리의 경험을 적어 보겠습니다. XFS는 간단하고 설치하고 실행하며 빠르게 작동합니다. (아래 HW 습격). ZFS는 저장되어 있고 압축되어 있지만 XFS만큼 빠르게 작동하도록 조정 된 작업입니다. 따라서 서버가 실행될 것으로 예상되는 상황에 따라 다릅니다. (클러스터의 백엔드. 사용자 스토리지, 아카이브, ...)
SvennD

또한 Hammer2 dragonflybsd.org/hammer
skan

답변:


44

XFS가 아마도 큰 파일이 많은 매우 큰 파일 시스템에 더 적합하다는 것을 알았습니다. 나는 2 년 이상 문제없이 3.6TB XFS 파일 시스템을 운영해 왔습니다. 그 크기에서 (특히 많은 큰 파일과 많은 I / O를 다룰 때) ext3보다 확실히 잘 작동합니다.

ZFS를 통해 얻을 수있는 것은 파일 시스템 자체에 내장 된 장치 풀링, 스트라이핑 및 기타 고급 기능입니다. 구체적인 내용은 말할 수 없지만 (다른 사람들이 의견을 말하도록하겠습니다), 제가 말할 수있는 것 중에서 Solaris를 사용하여 가장 큰 혜택을 얻고 자합니다. 이미 하드웨어 RAID를 사용하고 있다면 ZFS가 얼마나 도움이되는지 확실하지 않습니다.


33
ZFS의 주요 기능은 일반적으로 다른 곳에서는 얻을 수없는 블록 레벨 CRC이며, 이는 자동 데이터 손상을 감지 (및 희망적으로 방지)해야합니다. 대부분의 파일 시스템은 쓰기가 성공적으로 완료되면 데이터가 실제로 디스크에 기록되었다고 가정합니다. 특히 섹터가 "마진 적"이되기 시작하는 경우에는 항상 그런 것은 아닙니다. ZFS는 결과 쓰기에 대해 CRC를 검사하여이를 감지합니다.
에이버리 페인

3
그리고 네, 저는 XFS를 많이 좋아합니다. :) 유념해야 할 유일한 것은 저널 복구 중 "나쁜"섹터를 제로화하는 경향입니다. 드문 경우이지만 일부 데이터가 손실 될 수 있습니다. Google 검색 용어 "xfs 복구시 섹터를 0으로 만듭니다
Avery Payne

3
XFS에서 내가 좋아하는 것 중 하나는 xfs_fsr"조각 모음"프로그램입니다.
Cristian Ciupitu

1
ZFS 블록 레벨 CRC의 유용성은 의문의 여지가 있습니다. 하드 드라이브 및 SSD는 해밍 코드 ECC를 사용하여 단일 비트 오류를 ​​수정하고 2 비트 오류를보고합니다. ECC가 물리적 읽기 오류를 투명하게 수정할 수 없으면 데이터가 손실되고 읽기 오류가 OS에보고됩니다. CRC는 오류를 수정하지 않습니다. 이 기능은 ZFS의 주요 이점으로 추진되었지만 실제로는 중복되어 가치가 없다는 것이 사실입니다. XFS 전원 공급 장애 후 버그는 오래 전에 수정되어 오늘날 관련이 없습니다.
Jody Lee Bruchon

@JodyLeeBruchon 작성한 내용이 잘못되었습니다. 스토리지 장치에 이미 데이터에 패리티 코드가 첨부되어 있지만 이것이 엔드 투 엔드 데이터 보호가 가능한 것은 아닙니다. Chechsumming 파일 시스템없이이 목표를 달성하려면 a) SAS T10 / DIF / DIX 스토리지 스택 또는 b) devicemapper dm-integrity를 사용해야 합니다 .
쇼 단쇼

75

ZFS는 소프트웨어 RAID 이상의 이점을 제공합니다. 명령 구조는 매우 신중하게 배치되고 직관적입니다. 또한 메타 데이터 인덱싱 속도를 높이기 위해 압축, 스냅 샷, 복제, 파일 시스템 보내기 / 받기 및 캐시 장치 (멋진 새 SSD 드라이브)가 있습니다.

압축:

#zfs set compression=on filesystem/home

라이브 마운트 할 수있는 COW (Copy-On-Write) 스냅 샷 생성을 간단하게 지원합니다.

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

파일 시스템 복제 :

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

파일 시스템 보내기 / 받기 :

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

증분 전송 / 수신 :

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

캐싱 장치 :

# zpool add filesystem cache ssddev

이것은 모두 빙산의 일각에 불과합니다. Open Solaris 설치를 직접 시도하고 시도해 보는 것이 좋습니다.

http://www.opensolaris.org/os/TryOpenSolaris/

편집 : 이것은 매우 오래되었습니다. Open Solaris가 중단되었습니다. ZFS를 사용하는 가장 좋은 방법은 Linux 또는 FreeBSD 일 것 입니다.


전체 공개 : 저는 Sun 스토리지 아키텍트 였지만 1 년 이상 근무하지 않았으며이 제품에 대해 매우 흥분했습니다.


그 링크는 www와 함께 작동하지 않았습니다. 사용http://opensolaris.org/os/TryOpenSolaris/
집합

실제로 zfs에 가장 적합한 방법은 여전히 ​​FreeBSD라고 말하고 싶습니다. 그것은 몇 년 동안 시스템의 일부였습니다. 내 생각에, 놀랍게도 놀랄만 한 가능성이 가장 적습니다. 그것은 단지 내 $ 0.02이지만.
폭스

18

라이브 파일 시스템에서 lvm 스냅 샷 및 xfs를 사용하는 것은 특히 매우 큰 파일 시스템을 사용할 때 재난을 방지하는 방법입니다 .

지난 6 년간 서버에서 LVM2와 xfs에서만 독점적으로 실행 해 왔습니다 (zfs-fuse가 너무 느리기 때문에 집에서도).

그러나 스냅 샷을 사용할 때 발생한 다른 실패 모드를 더 이상 계산할 수 없습니다. 나는 그들을 완전히 사용 중지했습니다-너무 위험합니다.

내가 지금 할 것이다 유일한 예외, 즉 소스 FS의 크기를 동일 항상 내가 임시 스냅 샷을 사용하여 야간 백업을 할 수 있습니다 내 자신의 개인 메일 서버 / 웹 서버 백업,이다, 그리고 바로 이후에 삭제됩니다.

명심해야 할 가장 중요한 측면 :

  1. 스냅 샷이있는 큰 (ish) 파일 시스템을 사용하는 경우 쓰기 성능이 크게 저하됩니다
  2. 스냅 샷이있는 큰 (ish) 파일 시스템이있는 경우 볼륨 그룹을 가져 오는 동안 디스크가 휘젓고 휘젓는 동안 부팅 시간이 문자 그대로 수십 분으로 지연됩니다. 메시지가 표시되지 않습니다. 루트가 lvm2에있는 경우 (루트 장치가 시간 초과되고 시스템이 부팅되지 않기 때문에)이 효과는 특히 무시 무시합니다.
  3. 스냅 샷이 있으면 공간이 부족하기 쉽습니다. 공간이 부족하면 스냅 샷이 손상되어 복구 할 수 없습니다.
  4. 현재 스냅 샷을 롤백 / 병합 할 수 없습니다 ( http://kerneltrap.org/Linux/LVM_Snapshot_Merging 참조 ). 즉, 스냅 샷에서 데이터를 복원하는 유일한 방법은 실제로 복사 (rsync?)하는 것입니다. 위험 위험 : 스냅 샷 용량이 최소한 소스 fs의 크기가 아닌 경우에는이 작업 원하지 않습니다. 그렇지 않으면 곧 벽돌 벽을 치고 소스 fs와 스냅 샷이 모두 손상됩니다. (난 거기에 가본 적있어!)

1
오늘 막 누군가 스냅 샷-부팅 할 수없는 리눅스가있는 vg가 여전히 최신 버전
sehe

이 버그를 다시 방문 하면서도 스냅 샷과 관련된 끔찍한 부팅 문제는 "lvm의 정상적인 동작"이라고 생각합니다. bugs.launchpad.net/lvm2/+bug/360237/comments/7 (2012-01-07)
sehe

1
업데이트 : 같은 상태입니다. 지금 만 7 년이 더 지났습니다.
sehe

14

고려해야 할 몇 가지 추가 사항.

  • 파일 시스템에 관계없이 드라이브가 하드웨어 RAID 배열로 죽으면 장치의 모든 블록을 다시 작성해야합니다. 데이터를 보유하지 않은 것조차. 반면 ZFS는 볼륨 관리자, 파일 시스템이며 데이터 중복 및 스트라이핑을 관리합니다. 따라서 데이터가 포함 된 블록 만 지능적으로 재구성 할 수 있습니다. 이로 인해 볼륨이 100 % 가득 찬 경우를 제외하고 재 구축 시간이 더 빨라집니다.

  • ZFS에는 백그라운드 스크러빙 기능이있어 데이터가 디스크에서 일관성을 유지하고 데이터 손실이 발생하기 전에 발견 된 모든 문제를 복구합니다.

  • ZFS 파일 시스템은 항상 일관된 상태이므로 fsck가 필요하지 않습니다.

  • ZFS는 또한 LVM에서 제공하는 스냅 샷과 비교하여 스냅 샷 및 복제본으로 더 많은 유연성과 기능을 제공합니다.

Linux, LVM, XFS 스택에서 대형 비디오 제작을 위해 대용량 스토리지 풀을 실행했습니다. 내 경험에 따르면 스토리지를 미세 관리하기가 쉽습니다. 이로 인해 논리 볼륨을 관리 할 때 할당되지 않은 할당 공간과 시간 / 문제가 많이 발생할 수 있습니다. 스토리지를 미세 관리하는 풀 타임 스토리지 관리자가있는 경우 큰 문제가되지 않을 수 있습니다. 그러나 ZFS의 풀 스토리지 접근 방식이 이러한 관리 문제를 제거한다는 것을 알았습니다.


8

ZFS는 정말 놀랍습니다. 5 x 1TB HD 파일 서버의 홈 파일 서버로 사용하고 있으며 거의 ​​32TB의 하드 드라이브 공간이있는 프로덕션 환경에서도 사용하고 있습니다. 빠르고 사용하기 쉬우 며 데이터 손상에 대한 최상의 보호 기능이 포함되어 있습니다.

우리는이 서버에서 특히 OpenSolaris를 사용하고 있습니다. 새로운 기능에 액세스하고 새로운 패키지 관리 시스템과 업그레이드 방법을 제공했기 때문입니다.


7

어떤 OS를 실행할 계획입니까? 아니면 다른 고려 사항입니까? Solaris를 실행하는 경우 XFS는 내가 아는 한 옵션이 아닙니다. Solaris를 실행하지 않는 경우 ZFS를 어떻게 사용할 계획입니까? 다른 플랫폼에서는 지원이 제한됩니다.

Linux 서버에 대해 이야기하고 있다면 Ext3은 가장 많은 테스트를 받았기 때문에 개인적으로 고집합니다. zfs-fuse는 여전히 매우 젊습니다. 또한 커널 업데이트 후 버그로 인해 데이터가 손상되면 XFS에 한 번 문제가 발생했습니다. Ext3에 비해 XFS의 장점은 원격 데이터 센터에있는 머신을 복원하는 데 드는 비용을 능가하지 못했습니다.


6
FreeBSD는 ZFS의 성숙한 기본 포트를 가지고 있습니다
Brian Gianforcaro

7
wiki.freebsd.org/ZFSKnownProblems 성숙에 대한 당신의 정의가 나의 것과 다를 수 있다고 생각합니다 :-) 8.0이 출시 된 후에 그것을 고려할 것입니다.
Kjetil Limkjær 2009

9
16TB의 ext3? 아니, 아니. 하지마. 당신은 울 것이다. ZFS 나 XFS는 제 생각에 최고의 파일 시스템입니다. 가능하면 ZFS를 사용하십시오 (Linux에서는 실행하지 마십시오). 필자는 5 년 동안 Linux와 Solaris에서 많은 양의 경험을 쌓았다 고 말합니다.
Thomas

3
20090601 이후 FreeBSD 7.2는 대부분의 ZFSKnownProblems moot를 렌더링했습니다. OS의 AMD64 버전을 실행중인 경우 이제 안정적입니다. 8.0에서 FreeBSD는 ZFS를 프로덕션에 충분히 안정적으로 표시했습니다.
Walter

3
Linux에서 ZFS를 사용할 수 있습니다 ( zfsonlinux.org )
James Moore

7

나는 당신이 성능에 집중해야한다고 생각하지 않습니다. XFS, ext4 등으로 데이터가 안전합니까? 아닙니다.이 박사 논문 및 연구 논문을 읽으십시오 :

XFS는 데이터 손상에 대해 안전하지 않습니다 : pages.cs.wisc.edu/~vshree/xfs.pdf

ext3, JFS, ReiserFS 등도 마찬가지입니다. zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent "매혹적인 PhD 논문을 보았습니다 IRON 파일 시스템 Vijayan Prabhakaran의 5 가지 상품 저널링 파일 시스템 (NTFS, ext3, ReiserFS, JFS 및 XFS)이 스토리지 문제를 처리하는 방법을 분석합니다.

간단히 말해 그는 모든 파일 시스템이

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

그러나 ZFS는 데이터를 성공적으로 보호합니다. 여기에 대한 연구 논문이 있습니다 : zdnet.com/blog/storage/zfs-data-integrity-tested/811


5

FS 중심의 답변은 아니지만 죄송하지만 많은 디스크 컨트롤러가 2TB 이상의 LUN / 논리 디스크를 처리하지 않으므로 스토리지 구성 방식이 상당히 제한 될 수 있습니다. 방금 16TB를 처리 할 수 ​​있도록 시스템 전체를 검사 할 수 있도록 알고 싶었습니다.


1

그것은 당신이 원하는 기능에 달려 있습니다 ... 두 가지 합리적인 선택은 xfs와 zfs입니다 .xfs 코드는 꽤 잘 테스트되었습니다 .8 년 전에 IRIX에서 처음 사용했습니다.

xfs에서 스냅 샷을 얻을 수 있습니다 (lvm 및 xfs_freeze 사용)

SSD와 같은 별도의 로그 장치를 가질 수 있습니다

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

큰 xfs는 전통적으로 검사하기 위해 많은 메모리가 필요합니다

0이 나타나는 문제는 "보안"기능으로, 얼마 전에 사라 졌다고 생각합니다.


1

이미 언급 한 것과는 별도로, MD 기반 RAID의 xfs는 스트리밍 미디어의 zfs보다 성능이 뛰어납니다. 나는 xfs에서 50 년 동안 정확히 동일한 하드웨어를 사용했고 미디어 서버에서 zfs와 거의 같은 시간을 사용했습니다. xfs를 사용하는 Intel Atom 330에서는 터터가 발생하지 않습니다. 복잡한 장면의 zfs에서는 동일한 하드웨어가 유지할 수 없어 프레임이 떨어지기 시작합니다.


0

대안은 Sun 7410 일명 Toro입니다. 솔루션과 함께 제공되는 매우 유용한 소프트웨어가 있습니다.


0

글쎄, zfs에 대한 최신 추가 사항 : 중복 제거를 잊지 마십시오. 그리고 iscsi, nfs 또는 smb 공유를 즉석에서 이야기 할 수 있습니다. 다른 사람들이 이미 말했듯이 zfs 파일 시스템, 스냅 샷, raidz (= raid5) 블록 체크섬, 동적 스트라이프 너비, 캐시 관리 및 기타 여러 가지 내보내기. zfs에 투표합니다.

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