GNU/Linux >> Belajar Linux >  >> Linux

Automount Nfs:Pengaturan Timeout Autofs Untuk Server yang Tidak Dapat Diandalkan – Bagaimana Cara Menghindari Hangup?

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.
  • Saat server berjalan, semuanya bekerja dengan baik.

  • Tapi saat server dimatikan, sebelum share telah dilepas, alat (seperti df atau ll ) 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.


Linux
  1. Cara menggunakan autofs untuk memasang share NFS

  2. Bagaimana cara meningkatkan batas waktu Koneksi SSH

  3. Bagaimana cara mensimulasikan batas waktu respons server DNS?

  1. Cara Menggunakan Perintah showmount untuk Membuat Daftar Saham di Server NFS

  2. Pkexec – Bagaimana Cara Mengatur Batas Waktu Khusus Untuk Auth_admin_keep Saat Menulis Kebijakan Pkexec?

  3. Cara Membuat Server Nama Khusus untuk Server Khusus Anda

  1. Bagaimana saya menggunakan Cockpit untuk manajemen server Linux di rumah saya

  2. Matriks izin untuk Server Cloud

  3. Bagaimana cara mengatur izin untuk folder NFS dengan benar? Izin ditolak di ujung pemasangan.