/ / Linux 용 Z 파일 시스템 (ZFS) 소개

Linux 용 Z 파일 시스템 (ZFS) 소개

ZFS는 데이터 저장 장치 인 NAS에서 일반적으로 사용합니다.클라우드가 아닌 자체 스토리지 시스템을 신뢰하는 애호가 및 기타 괴짜. 여러 데이터 디스크를 관리하는 데 사용할 수있는 훌륭한 파일 시스템이며 가장 큰 RAID 설정과 경쟁합니다.

Kenny Louie의 사진.

ZFS 란 무엇이며 왜 사용해야합니까?

Z 파일 시스템은 Solaris 운영 체제에서 사용하기 위해 Sun Microsystems에서 빌드 한 무료 오픈 소스 논리 볼륨 관리자입니다. 가장 매력적인 기능 중 일부는 다음과 같습니다.

끝없는 확장 성

글쎄, 그렇지 않아 기술적으로 끝은 없지만 제타 바이트 (10 억 테라 바이트)의 데이터를 관리 할 수있는 128 비트 파일 시스템입니다. 하드 드라이브 공간이 아무리 크더라도 ZFS는 관리하기에 적합합니다.

최대 무결성

ZFS 내부에서하는 모든 작업은 체크섬을 사용합니다.파일 무결성을 보장합니다. 파일 및 해당 중복 사본에 자동 데이터 손상이 발생하지 않으므로 안심할 수 있습니다. 또한 ZFS는 데이터의 무결성을 자동으로 확인하는 중이지만 언제든지 자동 복구를 수행합니다.

드라이브 풀링

ZFS의 제작자는 당신이 그것을 다음과 같이 생각하기를 원합니다컴퓨터가 RAM을 사용하는 방식과 비슷합니다. 컴퓨터에 더 많은 메모리가 필요하면 다른 스틱을 넣으면됩니다. ZFS와 마찬가지로 더 많은 하드 드라이브 공간이 필요할 때 다른 하드 드라이브를 넣고 작업을 마칩니다. 더 큰 스토리지 "풀"이 필요한 경우 디스크를 추가하기 만하면 디스크에 파티셔닝, 포맷, 초기화 또는 기타 다른 작업을 할 필요가 없습니다.

RAID

ZFS는 다양한 RAID 수준을 지원합니다.하드웨어 RAID 컨트롤러와 비슷한 성능을 제공합니다. 이를 통해 비용을 절약하고 설정을보다 쉽게하며 ZFS가 개선 한 우수한 RAID 레벨에 액세스 할 수 있습니다.

ZFS 설치

우리는 이것의 기본 사항만을 다루고 있기 때문에ZFS를 루트 파일 시스템으로 설치하지는 않을 것입니다. 이 섹션에서는 ext4 또는 다른 파일 시스템을 사용하고 일부 보조 하드 드라이브에 ZFS를 사용한다고 가정합니다. 다음은 가장 널리 사용되는 Linux 배포판에 ZFS를 설치하는 명령입니다.

Solaris와 FreeBSD는 이미 ZFS가 설치되어 사용할 준비가되어 있어야합니다.

우분투 :

$ sudo add-apt-repository ppa:zfs-native/stable
$ sudo apt-get update
$ sudo apt-get install ubuntu-zfs

데비안 :

$ su -
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
# dpkg -i zfsonlinux_2~wheezy_all.deb
# apt-get update
# apt-get install debian-zfs

RHEL / CentOS :

$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum install zfs

다른 배포판이있는 경우 zfsonlinux.org를 확인하고“Packages”목록에서 해당 배포판을 클릭하여 ZFS 설치 방법에 대한 지침을 확인하십시오.

이 가이드를 계속 진행하면서Linux 괴짜에게는 최고의 선택 인 것 같으므로 Ubuntu를 사용하십시오. ZFS 명령은 다른 배포판에서 변경되지 않으므로 무엇을 계속 수행 할 수 있어야합니다.

설치는 꽤 오래 걸리지 만 일단 완료되면 실행하십시오. $ sudo zfs list 올바르게 설치되었는지 확인하십시오. 다음과 같은 결과가 나타납니다.

현재 하드 드라이브가 하나 인 Ubuntu 서버를 새로 설치했습니다.

ZFS 구성

이제 컴퓨터에 6 개의 하드 드라이브를 추가했다고 가정하겠습니다.

$ sudo fdisk -l | grep Error 방금 설치 한 6 개의 하드 드라이브가 표시됩니다. 어떤 종류의 파티션 테이블도 포함되어 있지 않으므로 현재 사용할 수 없습니다.

앞에서 언급했듯이 좋은 것 중 하나ZFS는 파티션을 신경 쓸 필요가 없다는 것입니다 (원한다면 원할 수도 있지만). 다음 3 개의 하드 디스크를 가져 와서 다음 명령을 실행하여 스토리지 풀에 넣습니다.

$ sudo zpool create -f geek1 /dev/sdb /dev/sdc /dev/sdd

zpool create 새 스토리지 풀을 작성하는 데 사용되는 명령입니다. -f 디스크에 이미 정보가있는 경우와 같이 발생하는 모든 오류를 무시합니다. geek1 스토리지 풀의 이름이며 /dev/sdb /dev/sdc /dev/sdd 풀에 넣은 하드 드라이브입니다.

수영장을 만든 후에는 df 명령 또는 sudo zfs list:

보다시피, / geek1은 이미 마운트되었고 사용할 준비가되었습니다.

풀에서 선택한 3 개의 디스크를 보려면 다음을 실행하십시오. sudo zpool status:

지금까지 수행 한 작업은 9TB 동적 생성스트라이프 풀 (효과적으로 RAID 0). 그 의미에 대해 잘 모르는 경우 / geek1에 3KB 파일을 만들었다 고 가정하십시오. 1KB는 자동으로 sdb로, 1KB에서 sdc로, 1KB에서 sdd로 이동합니다. 그런 다음 3KB 파일을 읽을 때 각 하드 드라이브는 3KB의 속도를 결합하여 1KB를 나타냅니다. 이로 인해 데이터 쓰기 및 읽기 속도가 빨라지지만 단일 장애 지점이 있음을 의미합니다. 하드 드라이브가 하나만 고장 나면 3KB 파일이 손실됩니다.

데이터 보호가 더 중요하다고 가정빠르게 액세스하는 것보다 중요한 다른 인기있는 설정을 살펴 보겠습니다. 먼저 생성 한 zpool을 삭제하여보다 중복 된 설정에서 이러한 디스크를 사용할 수 있습니다.

$ sudo zpool destroy geek1

Bam, 우리 zpool은 없어졌다. 이번에는 3 개의 디스크를 사용하여 RAID-Z 풀을 만들어 보겠습니다. RAID-Z는 기본적으로 RAID 5의 개선 된 버전입니다. 쓰기 중 복사를 사용하여 "쓰기 구멍"을 피할 수 있기 때문입니다. RAID-Z에는 최소 3 개의 하드 드라이브가 필요하며 RAID 0과 RAID 1 사이에서 일종의 타협입니다. RAID-Z 풀에서는 여전히 블록 수준 스트라이핑 속도를 얻지 만 분산 패리티도 갖게됩니다. 풀의 단일 디스크가 죽으면 해당 디스크를 교체하기 만하면 ZFS는 다른 디스크의 패리티 정보를 기반으로 데이터를 자동으로 다시 작성합니다. 스토리지 풀의 모든 정보를 잃어 버리려면 두 개의 디스크가 죽어야합니다. 보다 중복 된 작업을 수행하기 위해 RAID 6 (ZFS의 경우 RAID-Z2)을 사용하고 이중 패리티를 가질 수 있습니다.

이를 위해 동일한 것을 사용할 수 있습니다 zpool create 이전과 같이 명령하지만 지정 raidz 수영장 이름 뒤에 :

$ sudo zpool create -f geek1 raidz /dev/sdb /dev/sdc /dev/sdd

보다시피, df -h 3TB가 패리티 정보를 보유하는 데 사용되므로 9TB 풀이 6TB로 줄 었음을 알 수 있습니다. 와 더불어 zpool status 명령에 따르면 풀은 대부분 이전과 동일하지만 지금은 RAID-Z를 사용하고 있습니다.

스토리지 풀에 디스크를 추가하는 것이 얼마나 쉬운 지 보여주기 위해 다른 3 개의 디스크 (다른 9TB)를 다른 RAID-Z 구성으로 geek1 스토리지 풀에 추가해 보겠습니다.

$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg

우리는 결국 :

사가 계속…

ZFS 표면과 표면을 거의 긁었습니다.이 기사에서 배운 내용을 사용하여 중복 데이터 스토리지 풀을 작성할 수 있습니다. ZFS에 대한 향후 기사를 확인하려면 맨 페이지를 참조하고 ZFS 기능을 다루는 끝없는 틈새 가이드 및 Youtube 비디오를 검색하십시오.