ZFS를 사용하여 홈 FreeBSD 파일 서버를 빌드합니다.
RAM이 3GB 인 AMD X2 3200+입니다. PCI Express Gig-E가 있습니다. 부팅 드라이브는 오래된 400GB이고 4 개의 750GB Seagte 드라이브가 있습니다 (하나의 경우 다른 펌웨어 버전이있는 경우).
ZFS에서 부팅하는 것이 좋았지 만 (설치가 더 간단 해졌지만) ZFSOnRoot 지침을 사용하여 ZFS로 루트 / OS 드라이브를 설정했습니다 (모든 파티션이 ZFS 인 경우 부팅시 fsck를 수행 할 필요가 없습니다) UFS 파일 시스템 확인). 필요한 경우 다른 파티션 (/ var, / usr, / tmp 등)을 필요에 따라 다른 옵션 (예 : / usr / obj의 noatime 및 async)으로 설정하여 커널 속도를 높일 수있는 이유 컴파일)하지만 공통 풀의 공간을 모두 공유합니다. 그런 다음 데이터 드라이브를 설정하고 각 사용자에게 다른 인용 부호와 설정을 사용하여 자신 만의 파티션을 제공 할 수 있습니다. 그런 다음 스냅 샷을 만들 수 있습니다 (ZFS에서는 비용이 저렴함).
My home server has a df that looks like:
/dev/ad0s1a 1.9G 744M 1.1G 41% /
devfs 1.0K 1.0K 0B 100% /dev
dozer/data 1.8T 62G 1.7T 3% /data
dozer/home 1.7T 9.6G 1.7T 1% /home
dozer/home/walterp 1.9T 220G 1.7T 11% /home/walterp
tank/tmp 352G 128K 352G 0% /tmp
tank/usr 356G 4.4G 352G 1% /usr
tank/var 354G 2.2G 352G 1% /var
성능면에서 파일 복사는 정말 빠릅니다. 내가 주목할 한 가지는 3-4GB의 FreeBSD AMD64 시스템에서 ZFS를 사용하고 있으며 잘 작동했지만 2GB가있는 i386 시스템에서 실행하는 것에 대해 걱정할 것입니다. 적은 메모리.
마더 보드의 SATA 포트가 부족하여 새 드라이브를 추가하지 않았습니다. 초기 설정은 간단했습니다. RAIDZ를 만드는 명령과 초 단위 (IIRC) 형식의 / home을 만드는 명령입니다. 나는 여전히 이전 버전의 ZFS (v6)를 사용하고 있으므로 약간의 제한이 있습니다 (동일한 크기의 드라이브가 필요하지 않지만 Drobo와 달리 3750GB 드라이브와 1TB 드라이브가있는 경우 최종 결과 4 개의 750GB 드라이브가있는 것처럼됩니다.
RAIDZ와 함께 ZFS를 사용하는 가장 큰 이유 중 하나는 종단 간 체크섬이었습니다. CERN은 몇 주 동안 R / W 테스트를 실행하는 동안 200 개 이상의 수정되지 않은 읽기 오류를 발견 한 테스트를 문서화 한 논문을 발표했습니다 (소매 드라이브의 ECC는 12TB 읽기마다 한 번씩 오류가 발생 함). 서버의 데이터가 정확하기를 원합니다. 정전 (공간 히터를 꽂아 UPS에 과부하가 걸렸음)으로 인해 심각한 충돌이 발생했지만 시스템이 다시 작동 할 수있게되면 표준 fsck 문제없이 ZFS가 빠르게 돌아 왔습니다.
인쇄 서버를 얻기 위해 CUPS를 Samba에 추가 할 수 있기 때문에 마음에 듭니다. DNS 캐시를 추가하고 원하는대로 다른 소프트웨어를 추가 할 수 있습니다 (대역폭 사용을 측정하기 위해 집의 데스크탑에 SNMP 모니터링을 추가 할 생각입니다). 내가 시스템에서 보낸 것에 대해, 싼 NAS 박스를 구입할 수 있다고 확신하지만 64 비트 로컬 유닉스 박스를 가지고 있지 않을 것입니다. FreeBSD가 마음에 드시면 그대로 가십시오. Linux를 선호한다면 Linux 솔루션을 추천합니다. 관리를 원하지 않으면 독립형 NAS 상자를 사용하십시오.
다음 하드웨어 업그레이드에서는 하드웨어를 업그레이드 한 다음 ZFS v13이있는 현재 버전의 FreeBSD를 설치할 계획입니다. ZIL 로그에 사용할 수있는 배터리 백업 RAM 디스크가있어 V13이 멋지다 (쓰기가 비명을 지른다). 또한 파일 서버 속도를 높이기 위해 SSD를 사용할 수 있도록 지원합니다 (새로운 Sun File Server의 사양은 좋지 않으며 SSD를 사용하여 시스템을 매우 빠르게 만드는 ZFS 시스템에서 가져옵니다).
편집 : (아직 의견을 남길 수 없음). 나는 http://www.ish.com.au/solutions/articles/freebsdzfs 의 지침을 거의 따랐다 . 이러한 지침이 작성된 이후 7.X에 존재하는 주요 변경 사항 중 하나는 7.2가 나오고 2GB 이상인 경우 /boot/loader.conf에 다음 세 줄을 추가하지 않아도됩니다.
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
또한 미러를 만드는 방법과 시스템을 복구 모드 (ZFS로 마운트)로 되 돌리는 방법도 설명합니다. 한 번 또는 두 번 지시 사항을 수행 한 후 Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf 의 ZFS 관리 설명서를 사용하여 ZFS가 무엇인지 더 잘 이해했습니다. 데이터 저장소를 생성하기 위해 ZFS 풀을 생성하기 위해 수정 된 버전의 명령을 사용했습니다. 이것은 FreeBSD이므로 약간 변경해야했습니다.
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
dmesggrep 'ata. * master'를 수행하여 ad4-ad10이있는 경우, 이는 빅 데이터 파티션에 사용될 시스템의 SATA 하드 드라이브 이름입니다. 내 마더 보드에는 4 개의 PATA 포트가있는 첫 번째 3 개의 ata 포트 (ad0-3)가 있으며 각 SATA 포트는 마스터이므로 이전 번호가 없습니다.
파일 시스템을 만들려면 방금 수행했습니다.
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
두 번째 명령은 공유에 대한 기본 마운트 지점을 해제했기 때문에 필요합니다.