Linux 용 ZFS (Z File System) 소개
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를 설치하기위한 명령입니다..
솔라리스와 FreeBSD는 이미 ZFS가 설치되어 있고 사용할 준비가되어 있습니다..
우분투 :
$ sudo add-apt-repository ppa : zfs-native / stable
$ sudo apt-get update
$ sudo apt-get 우분투 -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 debian-zfs를 설치하십시오.
RHEL / CentOS :
$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum은 zfs를 설치합니다.
다른 배포본이 있다면 zfsonlinux.org를 확인하고 "패키지"목록 아래의 배포판을 클릭하여 ZFS 설치 방법을 확인하십시오..
이 가이드를 계속 진행하면서 Ubuntu는 Linux 괴짜를위한 최고의 선택 인 것으로 보이기 때문에 우분투를 사용하게 될 것입니다. ZFS 명령은 서로 다른 배포판에서 변경되지 않으므로 아무리 상관없이 따라 할 수 있어야합니다..
설치가 꽤 오래 걸리지 만 일단 끝나면 $ sudo zfs list
제대로 설치되었는지 확인하십시오. 다음과 같은 결과가 나옵니다.
현재 하드 드라이브가 하나 뿐인 우분투 서버를 새로 설치하고 있습니다..
ZFS 구성
이제 컴퓨터에 여섯 개의 하드 드라이브를 추가한다고 가정 해 봅시다..
$ sudo fdisk -l | grep 오류
방금 설치 한 6 개의 하드 드라이브가 표시됩니다. 파티션 테이블이 없기 때문에 현재 사용할 수 없습니다..
이전에 언급했듯이 ZFS에 대한 좋은 점 중 하나는 파티션을 고수하지 않아도된다는 것입니다 (원한다면 할 수는 있지만). 우선 하드 디스크 3 개를 가져 와서 다음 명령을 실행하여 저장소 풀에 넣으십시오.
$ sudo zpool create -f geek1 / dev / sdb / dev / sdc / dev / sdd
zpool create
새 저장 영역 풀을 작성하는 데 사용되는 명령입니다., -에프
(디스크에 정보가 이미있는 경우와 같이) 발생한 모든 오류를 무시합니다., 괴짜 1
저장 영역 풀의 이름이고, / dev / sdb / dev / sdc / dev / sdd
우리가 수영장에 넣은 하드 드라이브.
풀을 만든 후에는 풀을 사용하여 풀을 볼 수 있어야합니다. df
명령 또는 sudo zfs list
:
보시다시피, / geek1은 이미 마운트되었고 사용할 준비가되었습니다..
풀에 대해 선택한 세 개의 디스크를 확인하려면 다음을 실행할 수 있습니다. sudo zpool status
:
지금까지 수행 한 작업은 9TB 동적 스트립 풀 (사실상 RAID 0)을 만드는 것입니다. 그 의미에 대해 잘 모르겠다면 / geek1에 3KB 파일을 만들었다 고 상상해보십시오. 1KB는 자동으로 sdb, 1KB는 sdc, 1KB는 sdd로 이동합니다. 그런 다음 3KB 파일을 읽으려고하면 각 하드 드라이브는 3KB의 속도를 합쳐 1KB를 표시합니다. 이렇게하면 데이터를 빠르게 쓰고 읽을 수 있지만 단일 실패 지점이 있음을 의미합니다. 하드 드라이브가 하나만 고장 나면 3KB 파일이 손실됩니다..
데이터에 빠르게 액세스하는 것보다 데이터를 보호하는 것이 더 중요하다고 가정 할 때 다른 일반적인 설정을 살펴 보겠습니다. 먼저, 작성한 zpool을 삭제하여 중복 설정에서이 디스크를 사용할 수있게합니다.
$ sudo zpool이 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
전에와 같이 명령하고 그러나 지정하십시오 레이드
수영장 이름 뒤에 :
$ sudo zpool create -f geek1 raidz / dev / sdb / dev / sdc / dev / sdd
보시다시피, df -h
에서는 패리티 정보를 저장하는 데 3TB가 사용되므로 현재 9TB 풀이 6TB로 줄어 들었습니다. 와 더불어 zpool status
명령을 사용하면 풀이 이전과 거의 같지만 RAID-Z를 사용하고 있음을 알 수 있습니다.
스토리지 풀에 더 많은 디스크를 추가하는 것이 얼마나 쉬운 지 보여주기 위해 geek1 스토리지 풀에 다른 세 개의 디스크 (또 다른 9TB)를 다른 RAID-Z 구성으로 추가합시다.
$ sudo zpool add -f geek1 raidz / dev / sde / dev / sdf / dev / sdg
우리는 결국 :
사가가 계속됩니다 ...
우리는 ZFS의 표면과 기능을 간신히 깎아 냈지만이 기사에서 배운 내용을 사용하여 데이터의 중복 저장 풀을 만들 수 있어야합니다. ZFS에 대한 향후 기사를 확인하거나 맨 페이지를보고 ZFS 기능을 포함하는 끝없는 틈새 가이드 및 Youtube 비디오를 검색하십시오..