Saya menjalankan server kecil untuk flat share kami. Sebagian besar adalah server file dengan beberapa layanan tambahan. Klien adalah mesin Linux (kebanyakan Ubuntu, tetapi beberapa Distro lain juga) dan beberapa Mac (-Book) di antaranya (tetapi mereka tidak penting untuk pertanyaan itu). Server menjalankan Ubuntu 11.10 (Oneiric Ocelot) 'Edisi Server', sistem tempat saya melakukan pengaturan dan pengujian menjalankan 11.10 'Edisi Desktop'. Kami menjalankan pembagian kami dengan Samba (yang lebih kami kenal) selama beberapa waktu tetapi kemudian bermigrasi ke NFS (karena kami tidak memiliki pengguna Windows di LAN dan ingin mencobanya) dan sejauh ini semuanya berfungsi dengan baik .
Sekarang saya ingin mengatur pemasangan otomatis dengan autofs untuk memperlancar semuanya (hingga sekarang semua orang memasang saham secara manual bila diperlukan). Pemasangan otomatis tampaknya berfungsi juga. Masalahnya adalah "server" kami tidak berjalan 24/7 untuk menghemat energi (jika seseorang membutuhkan barang dari server, dia menyalakannya dan mematikannya setelah itu, jadi itu hanya berjalan beberapa jam setiap hari). Tetapi karena pengaturan autofs, klien sering menutup telepon ketika server tidak berjalan.
-
Saya dapat memulai semua klien dengan baik, bahkan saat server tidak berjalan.
-
Tetapi ketika saya ingin menampilkan direktori (di terminal atau nautilus), yang berisi tautan simbolis ke share di bawah
/nfs
saat server tidak berjalan, server hang setidaknya selama dua menit (karena autofs tidak dapat terhubung ke server tetapi terus mencoba, saya rasa).- Apakah ada cara untuk menghindarinya? Sehingga pemasangan akan ditunda hingga perubahan ke direktori atau sampai konten direktori itu diakses? Bukan saat "melihat" tautan ke bagian di bawah
/nfs
? Saya rasa tidak, tapi mungkinkah mungkin untuk tidak mencoba mengaksesnya begitu lama? Dan beri saya direktori kosong atau "tidak dapat menemukan / terhubung ke direktori itu" atau sesuatu seperti itu.
- Apakah ada cara untuk menghindarinya? Sehingga pemasangan akan ditunda hingga perubahan ke direktori atau sampai konten direktori itu diakses? Bukan saat "melihat" tautan ke bagian di bawah
-
Saat server berjalan, semuanya bekerja dengan baik.
-
Tapi saat server dimatikan, sebelum share telah dilepas, alat (seperti
df
ataull
) hang (dengan asumsi karena menurut mereka share masih aktif tapi server tidak merespon lagi).- Apakah ada cara untuk meng-unmount share secara otomatis, ketika koneksi terputus?
-
Juga klien tidak akan mematikan atau memulai ulang ketika server sedang down dan mereka masih memiliki share yang terpasang. Mereka menggantung (seperti kelihatannya) dalam “membunuh proses yang tersisa ” dan sepertinya tidak ada yang terjadi.
Saya pikir semuanya bermuara pada nilai batas waktu yang rapi untuk pemasangan dan pelepasan. Dan mungkin untuk menghapus semua pembagian saat koneksi ke server terputus.
Terkait:`$XAUTHORITY` muncul dari 'tidak ada tempat' di su+tmux?
Jadi pertanyaan saya adalah:Bagaimana menangani ini? Dan sebagai bonus:apakah ada cara yang baik untuk menautkan di dalam /nfs
tanpa perlu me-mount share yang sebenarnya (opsi autofs atau mungkin menggunakan pseudo FS untuk /nfs
yang akan diganti saat pemasangan terjadi atau semacamnya)?
Pengaturan Saya
Setelan NFS cukup mendasar tetapi sejauh ini melayani kami dengan baik (menggunakan NFSv4 ):
/etc/default/nfs-common
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/etc/exports
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
Di bawah root ekspor /srv
kami mendapat dua direktori dengan bind
:
/etc/fstab (Server)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
Yang pertama sebagian besar hanya bisa dibaca (tapi saya menerapkannya melalui atribut dan kepemilikan file alih-alih pengaturan NFS) dan yang kedua adalah rw untuk semua. Catatan:Mereka tidak memiliki entri tambahan di /etc/exports , memasangnya secara terpisah berfungsi.
Di sisi klien mereka mendapatkan pengaturan di /etc/fstab
dan dipasang secara manual sesuai kebutuhan (morton
adalah nama server dan dapat diselesaikan dengan baik).
/etc/fstab (Klien)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
Untuk penyiapan otomatis Saya menghapus entri dari /etc/fstab
pada klien dan atur sisanya seperti ini:
/etc/auto.master
/nfs /etc/auto.nfs
Pertama saya mengikat /etc/auto.net
yang dapat dieksekusi yang disediakan (Anda dapat melihatnya di sini) tetapi tidak secara otomatis memasang apa pun untuk saya. Kemudian saya menulis /etc/auto.nfs
berdasarkan beberapa HowTo yang saya temukan online:
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
Dan itu agak berhasil ... Atau akan berfungsi jika server akan berjalan 24/7. Jadi kita mendapatkan hangup saat klien melakukan booting tanpa server berjalan atau saat server mati saat berbagi saat masih terhubung.
Jawaban yang Diterima:
Menggunakan sistem mount apa pun, Anda ingin menghindari situasi di mana Nautilus mencantumkan direktori yang berisi mount yang mungkin dipasang atau tidak. Jadi, dengan autofs, jangan buat mount di, misalnya, /nfs. Jika ya, saat Anda menggunakan Nautilus untuk membuat daftar 'Sistem File', ia akan mencoba membuat mount apa pun yang seharusnya ada di /nfs, dan jika upaya mount tersebut gagal, perlu beberapa menit untuk menyerah.
Jadi yang saya lakukan adalah mengubah auto.master untuk membuat mount di /nfs/mnt.
Ini memperbaiki masalah bagi saya. Saya hanya mendapatkan penundaan yang lama jika saya mencoba membuat daftar isi /nfs/mnt, yang dapat saya hindari dengan mudah.