Buduję domowy serwer plików FreeBSD przy użyciu ZFS.
Jest to AMD X2 3200+ z 3 GB pamięci RAM. Ma kartę PCI Express Gig-E. Dysk rozruchowy to stary dysk o pojemności 400 GB, a ja mam 4 dyski Seagte o pojemności 750 GB (na wszelki wypadek jeden z inną wersją oprogramowania układowego).
Uruchamianie z ZFS byłoby fajne (uprościłoby to instalację), ale użyłem instrukcji ZFSOnRoot, aby skonfigurować dysk Root / OS za pomocą ZFS (jeśli wszystkie partycje to ZFS, to nie trzeba wykonywać fsck podczas rozruchu aby sprawdzić systemy plików UFS). Powodem, dla którego chcesz, abyś mógł następnie skonfigurować wszystkie swoje partycje (/ var, / usr, / tmp itp.) Z różnymi opcjami zgodnie z wymaganiami (takimi jak noatime i asynchroniczne dla / usr / obj, co przyspieszy jądro kompiluje), ale wszystkie będą dzielić przestrzeń ze wspólnej puli. Następnie możesz skonfigurować dysk danych i dać każdemu użytkownikowi własną partycję (z różnymi cytatami i ustawieniami). Następnie możesz robić migawki (które są tanie w 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
Pod względem wydajności kopiowanie plików jest naprawdę szybkie. Chciałbym zauważyć, że korzystałem z ZFS na systemach AMD64 FreeBSD, które mają 3-4 GB i działa dobrze, ale po przeczytaniu martwię się o uruchomienie go na systemie i386, który miał 2 GB lub mniej pamięci.
Skończyło mi się porty SATA na płycie głównej, więc nie próbowałem dodawać żadnych nowych dysków. Początkowa konfiguracja była prosta: polecenie utworzenia RAIDZ, a następnie polecenie utworzenia / home, które zostało sformatowane w sekundach (IIRC). Nadal używam starszej wersji ZFS (v6), więc ma pewne ograniczenia (nie wymaga dysków o równej wielkości, ale w przeciwieństwie do Drobo, jeśli masz 3 750 GB i 1 TB, efekt końcowy będzie tak, jakbyś miał 4 750 GB dysków).
Jednym z głównych powodów, dla których korzystałem z ZFS z RAIDZ, były kompleksowe sumy kontrolne. CERN opublikował artykuł, w którym udokumentował test, w którym wykrył ponad 200 nieskorygowanych błędów odczytu podczas przeprowadzania testu R / W przez okres kilku tygodni (oczekuje się, że ECC na dyskach detalicznych będzie mieć awarię raz na 12 TB). Chciałbym, aby dane na moim serwerze były poprawne. Miałem poważną awarię z powodu przerwy w zasilaniu (ktoś przeciążył UPS, podłączając do niego grzejnik), ale kiedy system może się wycofać, ZFS szybko wrócił, bez standardowych problemów z FSSP.
Podoba mi się, ponieważ mogłem dodać CUPS do Samby, aby uzyskać serwer wydruku. Dodałem pamięć podręczną DNS i mogę dodać inne oprogramowanie, które mi się podoba (myślę o dodaniu monitorowania SNMP do komputerów stacjonarnych w moim domu, aby zmierzyć wykorzystanie przepustowości). Jeśli chodzi o to, co wydałem na system, jestem pewien, że mógłbym kupić tanią skrzynkę NAS, ale wtedy nie miałbym 64-bitowego lokalnego systemu Unix do zabawy. Jeśli podoba ci się FreeBSD, powiedziałbym, że idź z nim. Jeśli wolisz Linuksa, polecam rozwiązanie Linux. Jeśli nie chcesz wykonywać żadnej administracji, wtedy wybrałbym samodzielne urządzenie NAS.
W kolejnej rundzie aktualizacji sprzętu planuję uaktualnić sprzęt, a następnie zainstalować aktualną wersję FreeBSD, która ma ZFS v13. V13 jest fajny, ponieważ mam dysk RAM z podtrzymaniem bateryjnym, którego mogę użyć do dziennika ZIL (to powoduje krzyk zapisu). Obsługuje także dyski SSD w celu przyspieszenia serwera plików (specyfikacje nowych serwerów plików Sun są słodkie i otrzymują je z systemu ZFS, który używa dysku SSD, aby system był bardzo szybki).
EDYCJA: (Nie można jeszcze dodawać komentarzy). Prawie postępowałem zgodnie z instrukcjami na stronie http://www.ish.com.au/solutions/articles/freebsdzfs . Jedną z głównych zmian w wersji 7.X od czasu napisania tych instrukcji było to, że 7.2 pojawiło się, a jeśli masz 2 GB, nie powinieneś dodawać następujących trzech wierszy w /boot/loader.conf:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
Instrukcje wyjaśniają również, jak utworzyć kopię lustrzaną i jak przywrócić system do trybu odzyskiwania (podłącz z ZFS). Raz lub dwa razy bawiłem się jego instrukcjami, a następnie skorzystałem z instrukcji administratora ZFS firmy Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf, aby lepiej zrozumieć, czym był ZFS. Aby utworzyć mój magazyn danych, użyłem zmodyfikowanej wersji polecenia na stronie 91, aby utworzyć pule ZFS. Będąc FreeBSD, musiałem wprowadzić małą zmianę:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
Tam, gdzie znaleziono ad4-ad10, wykonując dmesg | grep 'ata. * Master', są to nazwy dysków twardych SATA w systemie, które będą używane dla partycji dużych zbiorów danych. Na mojej płycie głównej, pierwsze trzy porty ATA (AD0-3), w których 4 porty PATA, a następnie, ponieważ każdy port SATA jest urządzeniem głównym, nie ma starych numerów.
Aby utworzyć system plików, po prostu:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
Drugie polecenie jest wymagane, ponieważ wyłączyłem domyślne punkty montowania dla udziałów.