작년 8 월에 [홈 서버] (https://tstrs.me/1456.html)를 업데이트하고 ZFS 저장소 풀로 구성했는데 그 당시 'raidZ1'의 가장 낮은 '2 + 1'구성을 사용했는데 향후 확장 및 업그레이드 '2 + 1'은 공간 낭비가 적고 데이터가 그렇게 비싸지 않으므로 '4 + 1'구성으로 업데이트하고 마지막으로 15T의 여유 공간 ( 정크 Windows는 14T만 표시합니다. 이 항목의 주요 내용은 ZFS, 디스크 복구, 저장소 풀 업그레이드 및 업그레이드에 대한 기본 자습서입니다.
공간 낭비의 계산 방법은 이렇습니다, 3 + 4 raidZ2 스토리지 풀을 형성하기 위해 1 개의 1T 하드 드라이브가 있고, 실제 여유 공간은 '3.7×2 = 7.4TB'이며, 각 하드 디스크에 할당 된 * 2.4TB *이므로 매우 비경제적입니다.
5개의 베이가 '3.7×4÷5=2.9TB'인 경우 디스크당 평균 0.5T 더 많은 스토리지 공간을 확보하지 않는 이유는 무엇입니까?
# ZFS 정보
ZFS는 원래 Solaris 운영 체제용으로 Oracle에서 개발한 파일 시스템에서 파생된 논리적 볼륨 관리 기능이 있는 파일 시스템입니다. ZFS는 확장 가능하며 데이터 손상에 대한 광범위한 보호, 높은 저장 용량, 효율적인 데이터 압축, 통합 파일 시스템, 볼륨 관리, 스냅샷 및 기록 중 복사, 지속적인 무결성 검사 및 자동 복구, RAID-Z, 기본 NFSv4 ACL 및 기타 기능을 포함하며 정확하게 구성할 수 있습니다. Oracle과 OpenZFS의 ZFS에는 두 가지 주요 구현이 있으며, 이들은 서로 매우 유사하므로 Unix 계열 시스템에서 ZFS를 널리 사용할 수 있습니다.
--위키피디아에서 발췌
ZFS의 장점과 단점 :
1.커넥터와 전원 케이블이 충분하다면 거의 ❎ 무제한의 저장 공간으로 하드 디스크를 스토리지 풀에 무기한으로 추가할 수 있습니다. JBOD 섀시를 HBA 패스스루 카드와 HBA 패스스루 카드와 연결하여 확장할 수도 있으며 나중에 더 자세히 설명할 것입니다.
2.강력한 ❎ 볼륨 관리, 'raidZ1' 모드에서 ZFS를 사용하면 데이터 손실 없이 물리적 디스크를 직접 분리할 수 있으며, 'raidz2'는 2개의 블록을, 'raidz3'은 3개의 블록을 허용합니다. 그리고 손상된 하드 디스크를 새 하드 디스크로 교체할 때 ZFS는 다른 하드 디스크의 데이터를 기반으로 새 하드 디스크를 재구축하는 것만으로 디스크 드롭 문제가 있어도 데이터를 복원할 때 하드 RAID보다 훨씬 안전합니다. 재구축하는 동안 다른 디스크를 잃어버리는 것은 거의 불가능합니다.
3.COW ❎ (copy-on-write), ZFS는 기존 데이터에 쓸 때 원본 데이터를 삭제하지 않고 다시 쓸 위치를 찾아 원래 데이터가 '(저장되지 않았거나 손실됨)' 영향을 받지 않을 때 갑작스러운 정전 및 기타 사고가 발생할 때 파일을 편집하고 있는지 확인합니다.
4.불량 블록을 자동으로 수정하면 ZFS가 데이터를 읽을 때 데이터를 패리티와 비교하고, 반환이 잘못된 경우 올바른 패리티 결과를 가진 데이터를 다른 디스크에서 읽어 요청자에게 반환하고, 잘못된 데이터는 자동으로 ❎ 복구됩니다.
5.마더보드 ❎ 또는 CPU가 손상되면 장치를 시작할 수 없으며 스토리지 풀의 모든 하드 디스크를 분리하고 새 장치에 삽입하기만 하면 새 장치 가져오기가 스토리지 풀을 복원할 수 있으며 전혀 문제가 없습니다'(새 장치의 인터페이스가 충분하지 않습니다. ZFS Oh를 탓할 수 없습니다)'.
1. ZFS는 캐시를 매핑하기 위해 메모리를 사용해야 하고 적절한 비율은 저장소 1TB당 1GB의 RAM이기 때문에 많은 RAM이 필요합니다 🅾. 맵 캐싱을 위한 메모리가 충분하지 않으면 성능이 저하됩니다.
2. 최근에 z1의 2+1을 4+1로 업그레이드하고 2개의 하드 디스크를 직접 추가하는 대신 이전 3개의 하드 디스크를 비워야 하는 것처럼 스토리지 풀을 동적으로 업그레이드할 수 없다는 것은 더 반인간적입니다. 🅾
이므로
처음에 사용할 RAID 레벨을 결정해야 하고 나중에 변경하는 것은 매우 번거롭습니다. RAIDZ1에는 (2+1) 이상, RAIDZ2에는 (3+2) 이상, RAIDZ3에는 (5+3) 이상이 필요합니다.
ZFS 설치
apt 설치 zfsutils-linux
ZFS 저장소 풀 만들기
zpool create storage pool name raid level hard disk 1 하드 디스크 2 hard disk 3 ...
#raid级别 옵션 RAIDZ RAIDZ2 RAIDZ3 다른 RAID 레벨에 해당
생성되면 'zpool status'를 사용하여 상태를 확인합니다.
수영장: 수영장
·주: 온라인
검사: 요청한 사항 없음
구성:
이름: STATEREAD WRITE CKSUM
수영장 온라인 000
레이드Z1-0 온라인 000
sda온라인 000
sdc온라인 000
sdd온라인 000
errors: 알려진 데이터 오류 없음
ZFS는 기본적으로 루트 디렉토리 '/'에 만든 '풀'을 마운트합니다. 이후 스토리지 풀을 삭제한 후 데이터가 손실되지 않는지 확인하려면 먼저 대용량 파일을 다운로드하여 MD5를 확인합니다. 'md5sum + filename'을 사용하여 파일의 MD5 값을 가져옵니다.
이 단계에서는 스토리지 풀에서 하드 디스크를 직접 분리하여 하드 디스크의 물리적 손상 효과를 시뮬레이션하고 zpool 디렉토리에 저장할 항목을 다시 다운로드합니다. 스토리지 풀의 상태를 확인하면 오류가 있음을 알 수 있습니다. 하드 디스크 UNAVAIL을 표시합니다.
수영장: 수영장
상태: DEGRADED
status: 레이블이 없거나
올바르지 않음. 풀을 계속할 수 있는 충분한 복제본이 있습니다.
성능이 저하된 상태에서 작동합니다.
작업: 'zpool replace'를 사용하여 장치를 교체합니다.
참조: http://zfsonlinux.org/msg/ZFS-8000-4J
스캔 : 2020 년 1 월 5 일 일요일 13:26:50에 0 개의 오류가있는 0h0m에서 2.05M을 다시 실버 화
구성:
이름: STATEREAD WRITE CKSUM
풀 DEGRADED000
raidZ1-0 성능 저하000
sda온라인 000
sdc온라인 000
sddUNAVAIL 0 1300 손상된 데이터
errors: 알려진 데이터 오류 없음
이것은 다운그레이드 RAID 레벨일 뿐이며 가능한 한 빨리 새 하드 드라이브로 교체해야 합니다. 그러나 데이터는 전혀 손실되지 않으며 'md5sum' 명령을 사용하면 데이터의 md5가 변경되지 않았음을 확인할 수 있습니다.
수영장: 수영장
·주: 온라인
스캔 : 2020 년 1 월 5 일 일요일 14:14:24에 0 개의 오류가있는 0h0m에서 424M을 다시 실버 화
구성:
이름: STATEREAD WRITE CKSUM
수영장 온라인 000
레이드Z1-0 온라인 000
sda온라인 000
sdc온라인 000
sdeONLINE 000 (영어)
errors: 알려진 데이터 오류 없음
모두 '온라인'입니다. 다음 단계는 3베이 'zfs raidZ1'을 삭제하고 5베이 z1로 교체하는 것입니다.
ZFS 저장소 풀 업데이트
이전 스토리지 풀을 삭제합니다.
zpool destroy 스토리지 풀 이름
새 5베이 z1 스토리지 풀을 생성합니다.
zpool 풀 raidz / dev / sdb / dev / sdc / dev / sdd / dev / sde / dev / sdf 만들기
#可选-f 명령은 생성을 강제합니다.
상태를 확인하면 5개의 하드 드라이브가 온라인 상태가 되었음을 알 수 있습니다.
수영장: 수영장
·주: 온라인
검사: 요청한 사항 없음
구성:
이름: STATEREAD WRITE CKSUM
수영장 온라인 000
레이드Z1-0 온라인 000
sdb온라인 000
sdc온라인 000
sdd온라인 000
sdeONLINE 000 (영어)
sdf온라인 000
errors: 알려진 데이터 오류 없음
몇 가지 유용한 ZFS 명령
전부는 아니지만 사용해봤기 때문에 직접 문서를 보는 것이 좋습니다.
디스크를 삭제한 후 복구합니다.
Zpool Scrub 스토리지 풀 이름
zpool 스토리지 풀 이름 지우기
풀 정보를 가져옵니다.
zpool get all storage pool 이름
자동 확장 지원을 활성화하여 하드 디스크를 교체합니다.
zpool set autoexpand=풀 이름
# 포스트 스크립트
ZFS는 정말 향긋하고 현재 15T의 여유 공간이 있으며 연말까지 사용할 것으로 예상합니다. 읽기 및 쓰기 속도에는 여전히 개선의 여지가 있으며 잠시 후 ZIL 및 L2ARC를 시도하여 얼마나 개선할 수 있는지 확인하십시오. 이제 raidZ1 4 + 1 모드로 업그레이드하여 향후 5 개의 하드 디스크를 구입하여 스토리지 풀을 그룹화하고 향후 더 편리하게 업그레이드하기 위해 서버, 30 개의 디스크 위치가있는 3U 랙 섀시를 이동했습니다.
신중한 조사 후, 전체 시스템에서 가장 비싸고 중요한 것은 하드 디스크이며, 마더 보드 CPU는 일회성 투자이며, 하드 디스크는 계속 구매, 구매해야하며, 이제는 가격 인하 인 것처럼 보이지만 대용량 하드 디스크는 여전히 매우 비싸고 10T는 기본적으로 약 1500입니다. 시스템에서 또 다른 매우 중요한 것은 전원 공급 장치이며, 좋은 전원 공급 장치는 하드 디스크에 지속적이고 안정적인 전류 공급을 제공 할 수 있습니다.