autofs mount tidak memutus setelah tidak aktif

10

Saya memiliki autof yang diinstal pada beberapa server linux yang terhubung ke server NFS pusat untuk direktori pengguna / rumah. Ini berfungsi dengan baik ketika memasang direktori pada login, tetapi tunggangan sepertinya tidak pernah habis. Saya telah memeriksa /etc/sysconfig / autofs dan defaultnya memang diatur ke 300, jadi ini harus waktu setelah 5 menit.

Restart autofs memang umount semua direktori, jadi saya tahu itu mampu.

Saya sudah mencoba menggunakan lsof secara acak di direktori tetapi tidak ada file yang muncul terbuka kapan saja.

Saya juga telah memasang direktori acak yang saya tahu tidak aktif, tetapi ini tidak pernah melakukan umount sendiri. Beberapa kotak ini memiliki 10+ pengguna yang telah login sekali, dan tunggangan tidak pernah jatuh.

Saya hanya berusaha mencari tahu ada metode yang lebih baik untuk mencari tahu mengapa. Saya tidak melihat sesuatu yang spesifik dalam log apa pun.

Ada saran yang dihargai. Terima kasih!

MEMPERBARUI

Saya menyalakan debugging untuk autofs tetapi tampaknya tidak mengungkapkan sesuatu yang luar biasa. Log-log ini dihasilkan 7 menit setelah / home / user1 awalnya dipasang dan setelah 6 menit tidak aktif. Menurut standar 5 menit, ini harus dilepas. Saya tidak pernah melihat log masuk yang mengindikasikan upaya bahkan dibuat untuk menghitung.

Jan 11 12:52:00 linux automount[26505]: st_expire: state 1 path /home
Jan 11 12:52:00 linux automount[26505]: expire_proc: exp_proc = 3055176592 path /home
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user1
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user2
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user3
Jan 11 12:52:00 linux automount[26505]: 3 remaining in /home
Jan 11 12:52:00 linux automount[26505]: expire_cleanup: got thid 3055176592 path /home stat 7
Jan 11 12:52:00 linux automount[26505]: expire_cleanup: sigchld: exp 3055176592 finished, switching from 2 to 1
Jan 11 12:52:00 linux automount[26505]: st_ready: st_ready(): state = 2 path /home

Perbarui 2 Setelah berbicara dengan dukungan Red Hat tentang ini, solusinya adalah hanya memperpendek nilai batas waktu untuk direktori home. Saya melakukan itu dan terlihat sehat. Sesuatu tampaknya melintasi titik pemasangan setiap 2 1/2 hingga 3 menit dan menyebabkan ini tetap terjaga.

Solusinya adalah menambahkan nilai batas waktu ke file /etc/auto.master untuk pemetaan itu:

 /home     /etc/auto_home --timeout=120
SteveHNH
sumber
perintah apa yang Anda gunakan untuk menentukan bahwa tunggangan ini ada? Saya berasumsi df, tetapi hanya ingin mengklarifikasi.
Banjer
Ya, saya menggunakan df untuk memeriksa ruang yang terpasang. Saya hanya cd ke direktori sebagai root untuk mendapatkan mereka untuk me-mount.
SteveHNH

Jawaban:

4

Selain itu TIMEOUT variabel autof memiliki interval pengecekan:

# cat /var/log/messages
Jan 11 21:45:35 client automount[24804]: mounted offset on /net/server/share with timeout 300, freq 75 seconds

Itu sama dengan TIMEOUT / 4. Setiap TIMEOUT / 4 detik otomatis meminta kernel ketika direktori diakses terakhir kali. Jadi di lingkungan Anda, Anda memiliki direktori yang dinamai setelah 375 detik tidak aktif.

Untuk mendapatkan log yang lebih detail Anda harus menambahkan LOGGING="debug"untuk/etc/sysconfig/autofs

dchirikov
sumber
Saya melihat. Terimakasih atas klarifikasinya. Log di atas berlanjut dengan baik setelah 6 menit tidak aktif, dan melebihi 375 detik. Saya terus berpikir bahwa sesuatu harus mengakses direktori ini, atau umount akan dicoba. Saya kira tujuan saya sebenarnya adalah untuk mengetahui apa yang mengakses direktori ini, jika ada. Itu bisa menjadi satu-satunya alasan saya dapat berpikir bahwa itu tidak akan terjadi.
SteveHNH
1

Saya punya masalah serupa. Saya menginstal ulang server RHEL 4.7 ProLiant kami yang berusia 10 tahun dengan CentOS 6 selama liburan Natal. Saya memiliki 2 ProLiants yang lebih baru yang dapat saya instal CentOS 7 baru-baru ini (pada bulan April).

Saya mengkonfigurasi automounting direktori home dari server CentOS 6 menggunakan baris di /etc/auto.masterpada server CentOS 7 seperti:

/home   /etc/auto.home

Kemudian saya membuat /etc/auto.homefile baru di server CentOS 7 awalnya dengan sebuah baris:

*      sam:/home/&

Direktori home tidak akan di-unmount. Saya juga menemukan bahwa beberapa kepemilikan file di direktori home akan dari waktu ke waktu berakhir dengan jumlah UID dan GID yang sangat besar. Itu akan berubah beberapa menit kemudian.

Saya mengatur level logging ke 'debug' /etc/autofs.confdan mulai menonton dengan journalctl -fu autofs.service. Saya melihat pesan yang hampir sama seperti yang ditunjukkan di atas, yang sepertinya tidak mengandung petunjuk.

Karena saya belum dapat memahami NFS 4, dan saya tahu server CentOS 6 kami mengekspor sahamnya sebagai NFS 4 secara default, saya mencoba menambahkan nfsvers=3ke /etc/auto.homefile seperti:

training      -nfsvers=3,noac,soft,intr  sam:/home/training

Saya juga melihat pesan aneh tentang mencoba me-mount direktori seperti /home/lib, jadi menambahkan direktori home masing-masing pada baris yang berbeda. (Mungkin seharusnya mencoba mount langsung pada titik ini, atau mencoba systemd automounts.)

Sekarang saya mulai melihat pesan seperti:

Apr 27 09:32:28 betty automount[13501]: expire_proc_indirect: expire /home/fred
Apr 27 09:32:28 betty automount[13501]: handle_packet: type = 4
Apr 27 09:32:28 betty automount[13501]: handle_packet_expire_indirect: token 21, name fred
Apr 27 09:32:28 betty automount[13501]: expiring path /home/fred
Apr 27 09:32:28 betty automount[13501]: umount_multi: path /home/fred incl 1
Apr 27 09:32:28 betty automount[13501]: umount_subtree_mounts: unmounting dir = /home/fred
Apr 27 09:32:28 betty automount[13501]: spawn_umount: mtab link detected, passing -n to mount
Apr 27 09:32:29 betty automount[13501]: rm_unwanted_fn: removing directory /home/fred
Apr 27 09:32:29 betty automount[13501]: expired /home/fred
Apr 27 09:32:29 betty automount[13501]: dev_ioctl_send_ready: token = 21
Apr 27 09:32:29 betty automount[13501]: handle_packet: type = 4
Apr 27 09:32:29 betty automount[13501]: handle_packet_expire_indirect: token 22, name barney
Apr 27 09:32:29 betty automount[13501]: expiring path /home/barney
Apr 27 09:32:29 betty automount[13501]: umount_multi: path /home/barney incl 1
Apr 27 09:32:29 betty automount[13501]: umount_subtree_mounts: unmounting dir = /home/barney
Apr 27 09:32:29 betty automount[13501]: spawn_umount: mtab link detected, passing -n to mount
Apr 27 09:32:29 betty automount[13501]: rm_unwanted_fn: removing directory /home/barney
Apr 27 09:32:29 betty automount[13501]: expired /home/barney
Apr 27 09:32:29 betty automount[13501]: dev_ioctl_send_ready: token = 22
Apr 27 09:32:29 betty automount[13501]: expire_proc_indirect: expire /home/barney
Apr 27 09:32:29 betty automount[13501]: expire_proc_indirect: expire /home/wilma
Apr 27 09:32:29 betty automount[13501]: 1 remaining in /home

Direktori home sekarang mulai unmount setelah 10 menit seperti yang seharusnya - jadi itu adalah masalah dengan NFS 4 yang salah konfigurasi dalam kasus saya.

Penting: setelah mengkonfigurasi ulang peta, cukup melakukan systemctl daemon-reloadatau systemctl reload autofstidak memiliki efek apa pun. saya harus melakukansystemctl restart autofs

wanpelaman
sumber
1

Untuk orang lain yang mengalami masalah serupa ada proses GUI di desktop modern yang memindai drive terus menerus. Khususnya Nautilus di Gnome dan Dolphin di KDE bersama dengan aplikasi pengindeksan file seperti Baloo. Ini semua mampu menyebabkan gejala.

Bagi saya (menjalankan KDE) satu-satunya petunjuk dari pendataan debug otomatis adalah "1 tersisa" misalnya:

    Feb 13 00:00:44 fig automount[19026]: expire_proc: exp_proc = 139620739028736 path /mnt/vchanger
    Feb 13 00:00:44 fig automount[19026]: expire_proc_indirect: expire /mnt/vchanger/fb207cd6-6931-4af4-8293-c82ee0d2394c
    Feb 13 00:00:44 fig automount[19026]: 1 remaining in /mnt/vchanger

Ini tidak benar-benar mengidentifikasi sumbernya. Juga tidak ada dari lsof, fuser dan auditctl (auditd) yang memberikan wawasan apa pun.

Akhirnya dengan proses eliminasi saya menentukan ada 2 aplikasi:

  • KSysGuard (Monitor Sistem KDE)
  • Dolphin (Manajer File)

Masalah dengan Dolphin dapat diperbaiki dalam kasus ini dengan "menyembunyikan" disk terpasang yang menyinggung dalam tampilan hierarki.

KSysGuard tampaknya tidak dapat dikonfigurasi tetapi kemudian mungkin tidak biasa untuk menjalankannya dalam jangka panjang kecuali jika Anda sedang men-debug sesuatu. Semoga aplikasi lain mungkin lebih dapat dikonfigurasi dalam mengizinkan pengecualian untuk mencegah mount point mount otomatis dipindai.

flashydave
sumber
FYI, jika Anda akan login sebelum mengedit posting Anda, Anda tidak perlu menyetujuinya nanti (atau menunggu berjam-jam bagi orang lain untuk menyetujuinya).
G-Man Mengatakan 'Reinstate Monica'
0

Saya menghabiskan berjam-jam hari ini mencoba men-debug dan masalah serupa. Inilah yang saya temukan dan bagaimana saya mengatasinya.]

setup: Saya ingin me-mount dir otomatis yang berisi home dirs pengguna dari server nfs "srv1: / srv / homes" di / mnt / nfs / homes pada klien. Server NFS mengekspor NFS4. autofs versi 5.1.3

Saya telah mengkonfigurasi setiap klien seperti itu:

/etc/auto.mount: file yang berisi:

... 
/mnt/nfs /etc/auto.home
...

/etc/auto.home:

homes  -rw,soft,intr,rsize=8192,wsize=8192 srv1:/srv/homes

Akhirnya ini mewakili peta tidak langsung. Pemasangan otomatis berfungsi seperti pesona. Saya mendapatkan volume NFS terpasang dengan benar dan berfungsi. Tapi ... itu tidak pernah otomatis dilepas. Meskipun file autofs.conf mengatakan:

dan mountmenunjukkan batas waktu 600 detik:

#1# /etc/auto.home on /mnt/nfs type autofs (rw,relatime,fd=18,pgrp=5054,timeout=300,minproto=5,maxproto=5,indirect) 
srv1:/srv/homes on /mnt/nfs/homes type nfs4 (rw,relatime,vers=4.2,rsize=8192,wsize=8192,namlen=255,soft,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=x.x.x.x,local_lock=none,addr=y.y.y.y)

Saya melihat persis sama di autofs (debug log level aktif) log dari journalctl sebagai wanpelaman

automount[53593]: st_expire: state 1 path /mnt/nfs
automount[53593]: expire_proc: exp_proc = 139645987374848 path /mnt/nfs
automount[53593]: expire_proc_indirect: expire /mnt/nfs/homes
automount[53593]: 1 remaining in /mnt/nfs
automount[53593]: expire_cleanup: got thid 139645987374848 path /mnt/nfs stat 3
automount[53593]: expire_cleanup: sigchld: exp 139645987374848 finished, switching from 2 to 1
automount[53593]: st_ready: st_ready(): state = 2 path /mnt/nfs

Pada saat itu saya menyerah pada autofs dan memutuskan untuk meniru konfigurasi automount dengan systemd. Sebenarnya saya menjalankannya dan pada saat ini semuanya bekerja dengan baik - mount otomatis, auto unmount setelah periode idle yang telah ditentukan. Sempurna. Tapi systemd ... sedikit canggung (jangan tembak aku, aku benar-benar menyukainya). Lalu saya melihat bagaimana systemd menangani pemasangan otomatis:

#2# systemd-1 on /mnt/nfs/homes type autofs (rw,relatime,fd=35,pgrp=1,timeout=20,minproto=5,maxproto=5,direct)
srv1:/srv/homes on /mnt/nfs/homes type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=x.x.x.x,local_lock=none,addr=y.y.y.y)

Perbedaan antara # 1 # dan # 2 # adalah yang terakhir adalah peta langsung sedangkan # 1 # tidak langsung. Karenanya saya segera memutuskan untuk mengkonfigurasi ulang autof pada klien lain dan membuat peta langsung seperti itu:

/etc/auto.master

/-   /etc/auto.home

/etc/auto.home

/mnt/nfs/homes  -rw,soft,intr,rsize=8192,wsize=8192 srv1:/srv/homes

Dan ini akhirnya menyelesaikan masalah. Baik mount otomatis dan umount otomatis berfungsi dengan baik. umount berhasil dijalankan setelah waktu siaga yang ditentukan di /etc/autofs.conf

Sama sekali tidak diperlukan modifikasi pada server NFS.

George Ivanov
sumber