Czy jest możliwe, aby folder domowy był hostowany w systemie plików NFS?


30

Planuję wdrożyć niektóre komputery kiosku i chciałbym zostawić je z małym pendrive'em jako dyskiem rozruchowym, a resztę trzymać na łatwym do tworzenia kopii zapasowych serwerze, ala LTSP .

W tej chwili rozważam dwie opcje. NFSed / home / lub lokalna kopia ~ / skopiowana przy logowaniu, rsynced przy wylogowaniu.

Obawiam się, że praca z plikami może być zbyt wolna lub moja sieć może zostać zatkana .


Czy możesz zastąpić słowo „bezpieczne” innym słowem, które jest mniej związane z bezpieczeństwem? Może wykonalne merriam-webster.com/dictionary/feasible ?
Cristian Ciupitu

1
Lekkie poczucie déja vu. To nie jest dokładnie to samo, ale to interesujący wątek, który tam mają. hardware.slashdot.org/story/09/06/23/1823201/…
voyager

Odpowiedzi:


30

Używam NFS dla moich katalogów domowych w naszym środowisku produkcyjnym. Jest kilka sztuczek.

  1. Nie podłączaj się do NFS /home- w ten sposób możesz mieć lokalnego użytkownika, który pozwoli ci na wypadek awarii serwera NFS. Wspinamy się na/mnt/nfs/home

  2. Używaj miękkich mocowań i bardzo krótkiego czasu oczekiwania - zapobiegnie to blokowaniu procesów na zawsze.

  3. Użyj automountera . Spowoduje to zmniejszenie zużycia zasobów, a także oznacza, że ​​nie musisz się martwić o ponowne uruchomienie usług, gdy serwer NFS się uruchomi, jeśli z jakiegoś powodu przestanie działać.

    auto.master:
      +auto.master
      /mnt/nfs /etc/auto.home --timeout=300
    
    auto.home
       home -rw,soft,timeo=5,intr      home.bzzprod.lan:/home
    
  4. Użyj systemu pojedynczego logowania, aby nie napotkać problemów związanych z uprawnieniami. Mam serwer OpenLDAP.


Zawsze uważałem, że automounter jest okropnie niewiarygodny i podatny na zamykanie się, szczególnie w przypadku awarii serwera NFS. Jeśli montujesz w / mnt / nfs / home, czy to w tym miejscu ustawiasz home użytkownika w / etc / passwd?
pjc50,

2
Cóż, używanie / etc / passwd i katalogów domowych montowania NFS jest złym pomysłem, ponieważ musisz synchronizować UID i GID - użyj czegoś takiego jak OpenLDAP, ale tak, katalog domowy użytkownika jest ustawiony na / mnt / nfs / home /Nazwa Użytkownika.
Aaron Brown,

@AaronBrown Zgadzam się, że jeśli zamierzasz umieścić $ HOME w sieci, powinieneś również umieścić tożsamość użytkownika i uwierzytelnianie również w sieci. Niezależnie od tego, jak to robisz, $ HOME musi być gdzieś zdefiniowane i zaznaczyłeś, że wolisz to ustawić, /mnt/nfs/homeale w jaki sposób korzystasz z lokalnych /homepodczas awarii? W szczególności zobacz unix.stackexchange.com/questions/189404/…
JFlo,

8

http://www.howtoforge.com opublikował niedawno artykuł na temat używania GlusterFS jako zamiennika / alternatywy NFS, możesz to sprawdzić.

http://www.howtoforge.com/creating-an-nfs-like-standalone-storage-server-with-glusterfs-on-debian-lenny

Oto krótki opis, dlaczego jest to dobra „wykonalna” alternatywa dla NFS, ze strony projektu GlusterFS http://www.gluster.org/ :

„GlusterFS sam się leczy w locie. Nie ma fsck. Backend magazynu jest dostępny bezpośrednio jako zwykłe pliki i foldery (styl NFS). Po włączeniu replikacji GlusterFS może wytrzymać awarie sprzętowe”.

Więcej informacji można znaleźć w dokumentacji projektu.

Kolejną fajną rzeczą w korzystaniu z GlusterFS jest to, że jeśli potrzebujesz więcej miejsca w sieci SAN, po prostu dodajesz kolejną cegłę pamięci (węzeł serwera) i możesz skalować / powiększać pamięć równolegle, gdy zajdzie taka potrzeba.

Mam nadzieję, że to pomoże lub przynajmniej pomoże ci wskazać właściwy kierunek!


7

Uważaj na miękkie uchwyty! Miękkie montowanie systemu plików NFS oznacza, że ​​IO zakończy się niepowodzeniem po przekroczeniu limitu czasu. Bądź pewien, że tego właśnie chcesz w katalogach domowych użytkowników! Domyślam się, że nie. Używanie twardego montażu w katalogach domowych w połączeniu z opcją intr jest tutaj znacznie bezpieczniejsze.

Trudno nie przekroczy limitu czasu: operacje we / wy zostaną ponowione na czas nieokreślony. Opcja intr umożliwia przerwanie procesu montażu. Jeśli więc zamontujesz eksport i wystąpi awaria, hard-mount zablokuje twoją sesję. Opcja intr pozwoli przerwać montowanie, więc połączenie jest dość bezpieczne i zapewnia, że ​​nie stracisz łatwo danych użytkownika.

W każdym razie autofs sprawia, że ​​jest to jeszcze łatwiejsze.


1
zauważ, że intropcja montowania została przestarzała w Linuksie po jądrze 2.6.2, patrz np. access.redhat.com/solutions/157873
myrdd 20.04.2018

4

Jedyną rzeczą, na którą należy zwrócić uwagę, jest to, że kiedy serwer NFS jest wyłączony - twoje mounty się zawieszają - wykonanie miękkiego montowania nie będzie blokowało, więc można uniknąć samego „freeze”, ale to nie rozwiąże problemu katalogów domowych jak bez home katalogu, użytkownik i tak jest przykręcony.

Nawet gdy serwer NFS się zregeneruje, chyba że coś z tym zrobisz, problem z zawieszeniem pozostanie - będziesz musiał zabić proces na maszynie montażowej i ponownie zainstalować. Powodem tego jest to, że gdy serwer NFS powraca, przypisuje się inny fsid- abyś mógł przynajmniej rozwiązać ten problem, zakodując fsids na serwerze NFS, na przykład ...

#. Home Directories
/usr/users \
  192.168.16.0/22(rw,sync,no_root_squash,fsid=1) \
  192.168.80.0/22(rw,sync,no_root_squash,fsid=1)

#. Scratch Space
/var/ftp/scratch \
  192.168.16.0/22(rw,async,no_root_squash,fsid=3) \
  192.168.80.0/22(rw,async,no_root_squash,fsid=3) \
  172.28.24.151(rw,async,root_squash,fsid=3)

exports(5)Strona człowiek stwierdza ...

fsid=num
          This option forces the filesystem identification portion of the file handle
          and  file attributes used on the wire to be num instead of a number derived
          from the major and minor number of the block device on which the filesystem
          is  mounted.   Any 32 bit number can be used, but it must be unique amongst
          all the exported filesystems.

          This can be useful for NFS failover, to ensure that  both  servers  of  the
          failover  pair use the same NFS file handles for the shared filesystem thus
          avoiding stale file handles after failover.

... Chociaż oznacza to, że dopóki główne / drobne liczby się nie zmieniają (co zwykle nie zmienia, z wyjątkiem sytuacji, gdy eksportujesz woluminy SAN / wielościeżkowe, gdzie mogą się zmienić), odkryłem, że całkowicie usunąłem problem - tzn. jeśli serwer NFS powróci - połączenie zostało szybko przywrócone - nadal naprawdę nie wiem, dlaczego to zrobiło różnicę dla urządzeń takich jak /dev/sdaXna przykład.

Powinienem teraz zaznaczyć, że mój argument jest w dużej mierze anegdotyczny - w rzeczywistości nie ma sensu, dlaczego rozwiązał problem, ale „wydaje się”, że go naprawił - w jakiś sposób - prawdopodobnie grają tutaj inne zmienne, które mam jeszcze nie odkryte. =)


Czy jesteś pewien tego „losowego” fsid używanego przez serwer?
Cristian Ciupitu

Cześć Cristian - próbowałem wyjaśnić powyżej - ale nie mogę w pełni wyjaśnić zachowania w odniesieniu do opisu flagi strony podręcznika. Próbowałeś i widziałeś inaczej?
Kserkses

4

Kilka ogólnych wskazówek, które będą obowiązywać bez względu na przyjęty system plików sieciowych: wiele programów buforuje dane w katalogu osobistym użytkownika, co zwykle przynosi więcej szkody niż pożytku, gdy katalog domowy jest dostępny przez sieć.

Obecnie możesz powiedzieć wielu programom, aby zapisywały swoje pamięci podręczne w innym miejscu (np. Na dysku lokalnym), ustawiając XDG_CACHE_HOMEzmienną środowiskową w skrypcie logowania. Wiele programów (np. Firefox) wciąż wymaga ręcznej konfiguracji, więc prawdopodobnie będziesz musiał wykonać dodatkową pracę, aby zidentyfikować i skonfigurować je w jednolity sposób dla wszystkich użytkowników.


+1 Miałem problemy z wydajnością w domowych katalogach Google Chrome i NFS. naprawiono go, przenosząc działające katalogi Chrome z powrotem do systemu lokalnego, a następnie umieszczając dowiązanie symboliczne z katalogu domowego NFS (gdzie Chrome spodziewa się znaleźć katalogi) z powrotem do katalogu lokalnego. Może być lepszy sposób na robienie tego, co zrobiłem, ale to rozwiązało problem.
Bryan,

Bryan (9 marca) pozostawił dobrą częściową odpowiedź, jednak chcę rozwinąć tę kwestię. Proszę ... Dziękuję .. Jak przeniosłeś działające katalogi na lokalną maszynę i umieściłeś dowiązania symboliczne.
Jason

Zobacz również XDG_RUNTIME_DIRlokalizację bazy danych Dconf pod adresem: developer.gnome.org/dconf/unstable/dconf-overview.html
JKnight

3

Wiele miejsc, w których pracowałem, korzysta z katalogów domowych montowanych przez NFS. Zwykle nie ma dużej różnicy w wydajności (a użytkownicy kiosków są prawdopodobnie nieco mniej wymagający niż programiści, którzy wiedzą, jak zdobyć lokalnego pracownika IT). Jednym z problemów, które widziałem, jest to, co dzieje się, gdy jestem zalogowany na pulpicie Gnome, a serwer NFS znika z jakichkolwiek powodów. Rzeczy naprawdę nie reagują.


2

Korzystam z domu NFSed i działa dobrze. ale musisz upewnić się, że sieć jest wystarczająco szybka i nigdy nie będzie niedostępna.


2

Z praktycznego punktu widzenia, NFS działa dobrze w przypadku katalogu domowego, jeśli jest sieć przełączana 100 Mb lub lepsza. W przypadku ponad 10-20 kiosków serwer powinien mieć łączność gigabitową. Nie wygrasz konkursów wydajności, ale takie rzeczy jak Firefox i Open Office będą działać dobrze.

Kopiowanie do katalogu domowego będzie dużym problemem w zakresie opóźnień przy logowaniu (w sieci 100mbit, która wynosi maksymalnie 12 MB / s. Katalog domowy 100 MB jest bliski 10 sekund.) Rsync zniszczy synchronizację pamięci podręcznej przeglądarki internetowej ... 10 boli minut i 500 plików.


1

Spójrz na cachefilesd . Sam go nie użyłem, ale wygląda obiecująco.

Demon cachefilesd zarządza plikami i katalogiem buforowania, które są używane przez sieciowe systemy plików, takie jak AFS i NFS, do trwałego buforowania na dysku lokalnym.

Nie zapomnij również dostroić parametrów rsize i wsize i, jeśli to możliwe, użyj ramek Jumbo.


Próbowałem cachefilesd od kilku lat, ale poddałem się z powodu całej niestabilności, jaką to spowodowało. YMMV
JFlo,
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.