Pertanyaan Di mana di filesystem saya harus menyimpan data bersama?


Di mana di unix filesystem adalah lokasi konvensional untuk menyimpan data spesifik non-pengguna, misalnya data yang dibagikan melalui nfs atau ftp, atau backup?

Saya dapat dengan jelas membuat dan menggunakan folder sewenang-wenang (seperti / home / shared, / data atau / var / data), tetapi saya benar-benar bertanya-tanya apakah ada pedoman praktik "terbaik" atau "umum". Itu Standar Hirarki Sistem Berkas tidak menentukan lokasi untuk data bersama.

Untuk backup, saya cenderung menggunakan / var / backup, tetapi karena beberapa cronjobs menulis untuk itu harus benar-benar ditinggalkan untuk digunakan?


44
2017-12-07 10:23


asal




Jawaban:


Pertanyaan ini tidak tampaknya memiliki jawaban yang jelas dalam Standar Hirarki Sistem Berkas, yang menentukan /srv sebagai "berisi data khusus situs yang dilayani oleh sistem ini ". (3.16.1)

Tujuan utama dari menetapkan ini adalah agar pengguna dapat menemukan lokasi file data untuk tertentu   layanan, dan layanan yang memerlukan satu pohon untuk data hanya baca, data dan skrip yang dapat ditulis

(Penekanan saya)

Catatan: 'Dilayani oleh sistem' tidak selalu merujuk ke Internet. Itu bahkan tidak berarti jaringan. Ini berlaku bahkan untuk sistem bersama. Lebih jauh, kata-kata situs dan layanan harus dipahami dalam makna pra-internet mereka. Situs Anda dapat menjadi "departemen fisika" atau "kantor keuangan".

Ini melanjutkan dengan mengatakan:

Pada sistem besar dapat berguna untuk struktur / srv oleh konteks administratif, seperti   / srv / physics / www, / srv / compsci / cvs, dll. Pengaturan ini akan berbeda dari host ke host. Karena itu, tidak ada program   harus bergantung pada struktur subdirektori khusus dari / srv yang ada atau data yang harus disimpan di / srv.   Namun / srv harus selalu ada pada sistem yang sesuai dengan FHS dan harus digunakan sebagai lokasi default untuk   data tersebut.

Karena itu Anda harus lebih lanjut struktur data Anda dalam direktori seperti /srv/nfs, /srv/backup dan seterusnya.

Saya juga harus menyebutkan bahwa beberapa orang melakukan ini lagi. Tetapi tidak ada alasan bagus mengapa mereka tidak melakukannya. Standar ini tidak ketinggalan zaman.

/var secara tradisional digunakan untuk hal-hal seperti print-spool dan log-file, tetapi juga digunakan oleh server web Apache (pada sistem Debian - SUSE use / srv); Sepertinya tidak ada konsensus tentang apakah itu /var adalah direktori yang tepat untuk data bersama. Tetapi jika Anda memutuskan untuk menggunakannya, Anda tidak akan menyesal, saya yakin.

Perhatikan juga: Jawaban Karthick sama sekali tidak salah. FHS mengatakan / srv "harus digunakan sebagai lokasi default untuk data seperti itu ", tetapi standar menyisakan sedikit ruang untuk preferensi Anda sendiri, tergantung pada bagaimana Anda menginterpretasikan ketentuan.


29
2017-12-07 12:55



Perhatikan bahwa Debian (dan Red Hat) mulai memasukkan file-file Apache /var/www, sebelum /srv/ adalah bagian dari FHS. - mattdm
Penjelasan yang bagus, terima kasih, meskipun tampaknya jawaban atas pertanyaannya adalah "tidak ada standar yang benar-benar diikuti". Mungkin seharusnya ada, mungkin itu tidak masalah. - misterben
Anda harus selalu melanggar aturan ketika Anda memiliki alasan yang baik. Tapi saya memperkirakan standar ini diikuti dengan teliti dalam banyak penggunaan skala besar. - Stefano Palazzo♦
Orang yang ingin pindah ke standar umum, harus menemukan jawaban ini dengan jelas benar berdasarkan FHS. - Jeremy


  • Data khusus non-pengguna dapat disimpan di / usr / local / var sehingga tidak berakhir di pangsa pekerjaan baru lagi.
  • Apa pun yang tidak di bawah ../local/ .. dibolehkan berakhir pada share nfs, jadi jika Anda ingin mengunduh data dari share nfs, dan pastikan mereka disimpan secara lokal pada harddrive mesin.
  • Maka Anda harus memilih jalan dengan ... / local / .. di dalamnya .... sisanya tergantung pada sifat data, pada jenis itu. Bisa / local / var atau / local / tmp dll .

Hirarki sistem file:
alt text 

Juga lihat ini


12
2017-12-07 11:07



Meskipun ini merupakan representasi yang berguna dari FHS, itu masih tidak menunjukkan lokasi standar untuk penyimpanan data bersama. - misterben
FSH menyatakan, bahwa: / usr adalah data yang dapat dibagikan dan hanya-baca. Itu berarti bahwa / usr harus dapat dibagikan antara berbagai host yang mematuhi FHS dan  tidak harus ditulis. Hmmm, jadi sepertinya tergantung pada apa tujuan pembagian Anda. - htorque
@htorque Saya condong ke arah berpikir di suatu tempat di bawah / var yang paling tepat untuk berbagi file, seperti yang Anda sarankan dalam jawaban Anda (sekarang dihapus). - misterben
Saya menghapus jawaban saya, karena FHS juga menyatakan, bahwa: Aplikasi umumnya harus tidak menambahkan direktori ke tingkat atas / var. Direktori semacam itu hanya boleh ditambahkan jika mereka memiliki implikasi sistem-luas, dan berkonsultasi dengan milis FHS. - FHS sama sekali tidak ingin Anda berbagi (dapat ditulisi) data! : P - htorque
Terima kasih, ikhtisar yang bermanfaat, dan seperti jawaban lainnya, itu benar-benar berfungsi untuk mendokumentasikan bahwa tidak ada jawaban pasti, yang sangat membantu dalam dirinya sendiri. - misterben


Saya tidak berpikir FHS mendefinisikan tempat untuk berbagi data pengguna. Ini tergantung pengguna di mana mereka ingin menyimpan data yang dibagikan di sana. Saya biasanya menggunakan /usr/local/shared atau /home/shared.


5
2017-12-07 11:35





saya sudah melihat /export digunakan untuk melayani dengan nfs, dan /mnt digunakan untuk me-mount share nfs secara lokal, di lingkungan perusahaan, seperti yang disarankan dalam dokumentasi NFS, standar yang saya duga awalnya berasal dari Sun OS, kemudian berganti nama menjadi Solaris.

Itu /etc/exports nama file volume yang diekspor dan /exports direktori melayani mereka untuk pengguna jarak jauh, yang memasangnya /mnt. Host server juga dapat me-mount share yang sama ini /mnt menggunakan nfs daemon yang sama untuk penggunaan setiap klien atau proses yang berjalan secara lokal di server, untuk mempertahankan kompatibilitas dengan remote host dan mungkin mempertahankan fungsi load leveling, kuota, dll.

Itu mendekati 'standar' karena mendapat. Perhatikan itu /export tidak dalam FHS karena itu /export ditambahkan secara independen, jadi mungkin tidak ada yang senang dengan itu /srv. Mungkin karena potensi kebingungan dengan 'layanan' yang berjalan sebagai daemon alih-alih volume 'disajikan'. /export secara jelas diberi nama dengan sedikit kemungkinan kebingungan. Saya tidak pernah melihat apa pun di dalamnya /srv.


1
2017-12-20 03:27