Gdzie w systemie plików powinienem przechowywać współdzielone dane?


44

Gdzie w systemie plików unix znajduje się konwencjonalna lokalizacja do zapisywania danych innych niż dane użytkownika, na przykład danych udostępnianych przez nfs lub ftp, lub kopii zapasowych?

Mógłbym oczywiście utworzyć i użyć dowolnego dowolnego folderu (takiego jak / home / shared, / data lub / var / data), ale naprawdę zastanawiam się, czy istnieją jakieś wytyczne dotyczące „najlepszych” lub „wspólnych” praktyk. Filesystem Hierarchy Standard nie określa lokalizację dla współdzielonych danych.

W przypadku kopii zapasowych mam tendencję do używania / var / backups, ale skoro piszę do nich kilka cronjobs, czy naprawdę powinno być pozostawione do użytku?

Odpowiedzi:


29

To pytanie nie wydaje się mieć jasną odpowiedź w Filesystem Hierarchy Standard , która określa /srvjako „zawierać [em] Dane site-specific, które jest obsługiwane przez ten system” . (3.16.1)

Głównym celem określenia tego jest, aby użytkownicy mogli znaleźć lokalizację plików danych dla konkretnej usługi oraz aby usługi wymagające jednego drzewa dla danych tylko do odczytu, danych zapisywalnych i skryptów

(mój nacisk)

Uwaga: „Obsługiwane przez system” niekoniecznie odnosi się do Internetu. To nie musi nawet oznaczać sieci. Dotyczy to nawet wspólnego systemu. Ponadto, słowa „ witryna i usługa” należy rozumieć w ich znaczeniu sprzed internetu. Twoja strona może być „działem fizyki” lub „biurem finansów”.

Mówi dalej:

W dużych systemach przydatne może być ustrukturyzowanie / srv według kontekstu administracyjnego, takiego jak / srv / physics / www, / srv / compsci / cvs itp. Ta konfiguracja różni się w zależności od hosta. Dlatego żaden program nie powinien polegać na konkretnej strukturze podkatalogu istniejącej / srv lub danych koniecznie przechowywanych w / srv. Jednak / srv powinien zawsze istnieć w systemach zgodnych z FHS i powinien być używany jako domyślna lokalizacja takich danych.

Dlatego należy dodatkowo uporządkować swoje dane w katalogach, takich jak /srv/nfs, /srv/backupi tak dalej.

Powinienem również wspomnieć, że niewiele osób już to robi. Ale nie ma dobrego powodu, aby tego nie robić. Standard w żadnym wypadku nie jest przestarzały.

/varjest tradycyjnie używany do buforowania wydruku i plików dziennika, ale jest także używany przez serwer WWW Apache (w systemach Debian i tak - SUSE use / srv); Wydaje się, że nie ma zgody co do tego, czy /varjest to właściwy katalog dla współdzielonych danych. Ale jeśli zdecydujesz się go użyć, na pewno nie będziesz żałować.

Uwaga: odpowiedź Karthicka w żadnym wypadku nie jest błędna. FHS mówi, że / srv „powinno być używane jako domyślna lokalizacja dla takich danych”, ale standard pozostawia miejsce na własne preferencje, w zależności od sposobu interpretacji warunków.


4
Zauważ, że Debian (i Red Hat) zaczął umieszczać pliki Apache /var/www, zanim /srv/był częścią FHS.
— mattdm,

Dobre wyjaśnienie, dzięki, chociaż wydaje się, że odpowiedź na pytanie brzmi: „tak naprawdę nie ma standardu, który byłby rzeczywiście przestrzegany”. Być może powinno być, może to naprawdę nie ma znaczenia.
— misterben

Cóż, zawsze powinieneś łamać zasady, gdy masz ku temu dobry powód. Ale oceniam, że ten standard jest ściśle przestrzegany w wielu wdrożeniach na dużą skalę.
— Stefano Palazzo

Ludzie, którzy chcieliby przejść do wspólnego standardu, powinni znaleźć tę odpowiedź jednoznacznie poprawną na podstawie FHS.
— Jeremy

13
  • Dane niespecyficzne dla użytkownika mogą być przechowywane w / usr / local / var, aby nie znalazły się ponownie w udziale newtwork.
  • Wszystko, co nie jest pod ../local/ .., może skończyć się na udziale nfs, więc jeśli chcesz pobrać dane z udziału nfs i upewnij się, że są one przechowywane lokalnie na dysku twardym komputera.
  • Następnie powinieneś wybrać ścieżkę z ... / local / .. .... reszta zależy od charakteru danych, od rodzaju. Może to być / local / var lub / local / tmp itp. .

Hierarchia systemu plików:
alternatywny tekst

Zobacz także


1
Chociaż jest to przydatna reprezentacja FHS, nadal nie sugeruje standardowej lokalizacji dla wspólnego magazynu danych.
— misterben,

FSH stwierdza, że: / usr można udostępniać, tylko do odczytu. Oznacza to, że / usr powinien być współużytkowany przez różne hosty zgodne z FHS i nie można do niego pisać . Hmmm, więc wydaje się, że zależy to od celu twojego udziału.
— htorque

@htorque Skłaniam się ku myśleniu, że gdzieś pod / var najlepiej nadaje się do udostępniania plików, jak sugerowałeś w (teraz usuniętej) odpowiedzi.
— misterben,

1
Usunąłem swoją odpowiedź, ponieważ FHS stwierdza również, że: Ogólnie aplikacje nie mogą dodawać katalogów do najwyższego poziomu / var. Takie katalogi należy dodawać tylko wtedy, gdy mają one wpływ na cały system i po konsultacji z listą dyskusyjną FHS. - FHS po prostu nie chce, abyś udostępniał (zapisywalne) dane! : P
— htorque,

Dzięki, przydatny przegląd i podobnie jak inna odpowiedź naprawdę służy do udokumentowania, że ​​nie ma ostatecznej odpowiedzi, która sama w sobie jest pomocna.
— misterben

5

Nie sądzę, że FHS definiuje jakiekolwiek miejsce dla udostępnionych danych użytkownika. To użytkownicy muszą przechowywać tam udostępnione dane. Zwykle używam /usr/local/sharedlub /home/shared.


1

Widziałem, /exportjak służyłem do obsługi NFS i /mntdo montowania udziału NFS lokalnie, w środowisku korporacyjnym, jak sugerowano w dokumentacji NFS, standard, który, jak podejrzewam, pierwotnie pochodził z Sun OS, później przemianowany na Solaris.

Te /etc/exportsnazwy plików eksportowane woluminów oraz /exportskatalog służy im do zdalnych użytkowników, którzy zamontować je na /mnt. Host serwera może również montować te same udziały przy /mntużyciu tego samego demona nfs na potrzeby dowolnych klientów lub procesów działających lokalnie na serwerze, aby zachować zgodność z dowolnymi zdalnymi hostami i być może zachować funkcjonalność wyrównywania obciążenia, przydziałów itp.

To jest tak blisko „standardu”, jak to tylko możliwe. Pamiętaj, że /exportnie ma go w FHS, dlatego /exportzostał dodany niezależnie, więc prawdopodobnie nikt nie jest zadowolony /srv. Prawdopodobnie z powodu potencjalnego pomylenia z „usługami” działającymi jako demony zamiast woluminów „obsługiwanych”. /exportjest jednoznacznie nazwany z małą szansą na zamieszanie. Nigdy niczego nie widzę /srv.

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.