Zoptymalizowany ZFS w środowisku o niskiej pamięci RAM?


10

Obecnie konfiguruję serwer plików i doszedłem do tego, że faktycznie skonfigurowałem dyski danych. System ma 4 dyski (jeden dysk systemu operacyjnego, 3 dyski danych). Dysk OS jest sformatowany jako ext4 i nie zostanie dodany do puli ZFS (jeśli wybiorę uruchomienie ZFS). Moim głównym problemem jest integralność danych i minimalne ryzyko utraty danych (buforowanie dysku jest wyłączone w BIOS). Do tego ZFS wydaje się być idealnym kandydatem, ponieważ ma stabilną wersję dla Linuksa (prawda?) I obsługuje duplikację danych, tworzenie puli i podnoszenie, gdzie dyski twarde nie muszą być tego samego rozmiaru.

Ale oto mój problem. Serwer ma tylko 2 GB pamięci RAM i nie można go zaktualizować w najbliższej przyszłości, a realistycznie tylko 1,5 będzie faktycznie dostępne dla ZFS po zainstalowaniu wszystkich innych usług. Jednocześnie może z niego korzystać maksymalnie około 10 klientów (więcej niż średnio 4). Czy to jest zbyt niskie, aby uznać za bezpieczne?

Z tego, co rozumiem, ZFS może ulec awarii w sytuacjach niskiej pamięci RAM i zabrać ze sobą pulę. Słyszałem, że opinie, które wymieniają, czy zamiana pomoże w rozwiązaniu tego problemu (mam dysk o pojemności 20 GB). Czy ktoś doświadczył utraty danych z ZFS z małą pamięcią RAM i jakie optymalizacje wprowadziłeś, aby temu zapobiec?

Biorąc pod uwagę powyższe, czy nadal można uruchomić ZFS, choć zmniejszyć rozmiar potwierdzenia i nieco go przyciąć, czy będzie to zbyt ryzykowne?

Specyfikacje systemu: 2 GB pamięci RAM 20 GB z wymiennym napędem, Debian 7, minimalna instalacja, z FTP i XBMC, DNLA, (aby dać wyobrażenie o wymaganej pamięci RAM). Służy do przesyłania strumieniowego z serwera pamięci i multimediów muzycznych do innych urządzeń.


1
Ja nie guru ZFS, ale wiem, uczciwej trochę o systemach plików w ogóle, i wiem jedno miejsce będziesz musiał patrzeć - wielki czas - na zużycie pamięci deduplikacji danych. Nie określasz, jak duże są twoje dyski, ani ile danych na nich będzie się znajdować; jest to ogromne, ponieważ ZFS musi przechowywać tabelę wyszukiwania w pamięci. Nie mogę rozmawiać z innymi problemami, ale zdecydowanie zabiłbym deduplikację. Ponadto, btrfs jest teraz dość dojrzały do ​​tworzenia kopii zapasowych danych; czy rozważałeś to? Sprawdź arstechnica.com/civis/viewtopic.php?f=16&t=1226135, aby uzyskać pewne spostrzeżenia (z którymi niektórzy bez wątpienia się nie zgodzą).
ravenpi

Och tak, przegapiłem to. Pula będzie wynosić 3,35 TB (zarówno dyski, jak i dane, ponieważ będzie tworzyła kopię zapasową 9 klientów dziennie, więc myślę, że zapełni się szybko, myślę, że oznacza to co najmniej brak duplikacji, ponieważ Freebsd sugeruje RAM o pojemności 5 GB na każde miejsce do przechowywania TB , dzięki za wskazanie btrfs, nie wiedziałem, że teraz jest stabilny, chyba dobrze się przyjrzę
Thomas E

„Stabilny” to coś, co mógłbym nie nazwać pośpiesznym; ktoś waha się nazywać KAŻDEGO, nawet trochę, nowego systemu plików „stabilnym”. Ale się tam dostanie. LWN (Linux Weekly News) właśnie napisał na ten temat serię; jest dobrze - sprawdź to tutaj: lwn.net/Articles/576276
ravenpi

Odpowiedzi:


5

Za główne obawy uznajesz integralność danych i minimalne ryzyko utraty danych. Uruchamianie ZFS tylko z 2GiB pamięci jest ryzykowne i niewskazane. Zbyt mała pamięć RAM zabija wydajność i była przyczyną wielu niezliczonych pul w przeszłości. Projekt FreeNAS określa co najmniej 8 GB pamięci RAM.

Ponadto, ponieważ twoja obawa dotyczy utraty danych, będziesz chciał użyć ECC RAM. Ponieważ twoje urządzenie obsługuje tylko 2 GB pamięci RAM, zakładam, że jest to naprawdę stare urządzenie, które nie byłoby dobrym wyborem dla ZFS.

Aby odpowiedzieć na twoje pytania:

[…] I obsługuje kopiowanie danych

W praktyce zapomnij o deduplikacji, gdy nie masz co najmniej 32GiB, jako ogólną zasadę. W zależności od wielkości puli może być potrzebne znacznie więcej pamięci RAM. Po drugie, wykonaj matematykę, jeśli koszty deduplikacji i pamięci RAM są tańsze niż garść dodatkowych dysków. Najczęściej dyski są tańszą alternatywą.

Czy to jest zbyt niskie, aby uznać za bezpieczne?

Tak, jest zdecydowanie za nisko.

Z tego, co rozumiem, ZFS może ulec awarii w sytuacjach niskiej pamięci RAM i zabrać ze sobą pulę.

To prawda i wiele osób straciło swoje pule z powodu niskiej pamięci RAM.

Słyszałem, że opinie są sprzeczne, czy zamiana pomoże w rozwiązaniu tego problemu

Zapomnij o zamianie, twoje pole ZFS nigdy nie powinno używać zamiany.

EDYCJA: Jeśli masz ochotę na przygodę i nie masz nic przeciwko ryzyku okazjonalnej paniki lub utraty danych, przeczytaj przewodnik strojenia ZFS i dostosuj wspomniane ustawienia. Oto przykładowe ustawienia dla systemu 768 MB pamięci.

vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"

W przeciwnym razie zainwestuj sto dolarów w pasek pamięci i ciesz się stabilnym i wydajnym systemem.


3
Widzę. Dla wyjaśnienia: tak, mam ECC RAM, a maszyną jest HP Proliant MicroServer Gen7, który obsługuje RAM do 8/16 GB, po prostu obecnie nie jest finansowo opłacalne, aby kupić więcej RAM. Wiedziałem, że Freenas zalecił 8 GB, jednak dokumentacja FreeBSD i Solaris sugeruje co najmniej 1 GB, co jest przyczyną pytania. Wydaje mi się, że w świetle tego powinienem ręcznie trzymać się ext4 i dublować za pomocą rsync i dd na dyski offline, prawdopodobnie najbezpieczniejsze rozwiązanie.
Thomas E

Czy możesz wyjaśnić, dlaczego ZFS nie powinien używać SWAP?
CMCDragonkai

Nie ma powodu, aby używanie ZFS bez ECC jest bardziej niebezpieczne niż uruchamianie tego samego sprzętu z innym systemem plików.
Alicia,

5
Dlaczego społeczność ZFS zawsze komentuje z tak aroganckim snobizmem? Nie każdy, kto chce mieć wiarygodne dane, nie może sobie pozwolić na 100 USD, aby spełnić całkowicie absurdalne wymagania projektowe! Mam na przykład mały domowy serwer ARM z 1 GB wbudowanej pamięci RAM i dyskami twardymi USB. Chcę, aby dane na nim były zabezpieczone przed gniciem bitów, ponieważ są zarówno wykrywane, jak i poprawiane, i mają migawki do tworzenia kopii zapasowych. Nie ma potrzeby prędkości. A btrfs jest po prostu zepsuty przez projekt. Więc ZFS byłby rozsądny, gdyby jakiś idiota nie zaprojektował go do implodowania z depresji, ilekroć ma <128 eksabajta pamięci RAM.
Evi1M4chine

0

W systemach wysokiego ciśnienia pamięci (Linux) naprawdę konieczne jest uaktualnienie pamięci. Nadal występuje błąd ( link ), w którym zamiana blokuje IO (zadanie zawieszone w jądrze), uniemożliwiając jego użycie, chyba że zostanie ponownie uruchomiony. Wierzę, że vm.swappiness = X nie ma wpływu na zfs, więc ograniczenie łuku do pewnej liczby może trochę pomóc.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.