autofs bağlar aktif değil sonra bağlantıyı kesmiyor


10

Ben autofs kullanıcılar / ev dizinleri için merkezi NFS sunucusuna bağlanan birçok linux sunucularda yüklü. Dizinleri oturum açarken bağlarken harika çalışıyor, ancak bağlar hiçbir zaman zaman aşımına uğramadı. Ben / etc / sysconfig / autofs kontrol ettik ve varsayılan gerçekten 300 olarak ayarlanmış, bu yüzden bu 5 dakika sonra zaman aşımı olmalıdır.

Yeniden başlatma autofs Bunun yetenekli olduğunu biliyorum bu yüzden, dizinlerin tüm umount yapar.

Ben dizinlerde rastgele lsof kullanarak denedim ama hiçbir zaman dosya açık görünür.

Ayrıca aktif olmadığını bildiğim rastgele bir dizin monte ettim, ancak bunlar asla kendilerini umount etmiyor. Bu kutulardan bazılarında bir kez oturum açmış 10'dan fazla kullanıcı vardır ve bağlantılar asla düşmez.

Sadece nedenini bulmak için daha iyi bir yöntem olduğunu bulmaya çalışıyorum. Günlüklerde belirli bir şey görmüyorum.

Herhangi bir öneriniz için teşekkür ederiz. Teşekkürler!

GÜNCELLEME

Autofs için hata ayıklamayı açtım ama sıradan bir şey ortaya çıkmıyor gibi görünüyor. Bu günlükler, / home / user1 ilk olarak monte edildikten 7 dakika sonra ve 6 dakika kullanılmadığında üretildi. 5 dakikalık varsayılana göre, bunun bağlantısı kaldırılmış olmalıdır. Bir günlüğüne rastlamadığımı bile görmezden gelme girişiminde bulunduğuna işaret ettim.

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

Güncelleme 2 Red Hat desteğiyle konuştuktan sonra, çözüm ev dizinleri için zaman aşımı değerini kısaltmak oldu. Bunu yaptım ve iyi görünüyor. Görünüşe göre bir şey her 2 1/2 ila 3 dakikada bir montaj noktasını geçiyor ve bunun kalmasına neden oluyor.

Çözüm, zaman aşımı değerini /etc/auto.master dosyasına bu eşleme için eklemekti:

 /home     /etc/auto_home --timeout=120

bu bağların mevcut olduğunu belirlemek için hangi komutları kullanıyorsunuz? Sanırım df, ama açıklığa kavuşturmak istiyorum.
Banjer

Evet, bağlı alanı kontrol etmek için df kullanıyorum. Ben sadece onları monte etmek için kök olarak dizinlere cd.
SteveHNH

Yanıtlar:


4

Ayrıca TIMEOUT değişken autofs'ın bir kontrol aralığı vardır:

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

TIMEOUT / 4 değerine eşit. Her TIMEOUT / 4 saniyede bir otomatik dosyalar, dizine en son ne zaman erişildiğini sorar. Böylece ortamınızda 375 saniye boyunca herhangi bir işlem yapılmazsa dizini açmışsınızdır.

Daha ayrıntılı günlük elde LOGGING="debug"etmek için/etc/sysconfig/autofs


Anlıyorum. Açıklama için teşekkürler. Yukarıdaki günlükler 6 dakikalık kullanılmama süresinden sonra da devam etti ve 375 saniyeyi aştı. Bu dizinlere bir şeylerin girmesi gerektiğini düşünmeye devam ediyorum, yoksa umount denenir. Sanırım asıl amacım bu dizine neyin eriştiğini bulmak. Bu umursamayacağımı düşünebilmemin tek nedeni olabilir.
SteveHNH

1

Benzer bir sorun yaşadım. 10 yaşındaki RHEL 4.7 ProLiant sunucumuzu CentOS 6 ile Noel tatilinde yeniden kurdum. CentOS 7'yi daha yakın bir zamanda (Nisan ayında) yükleyebildiğim 2 yeni ProLiant'ım vardı.

Ben /etc/auto.masterCentOS 7 sunucularında bir satır kullanarak CentOS 6 sunucusundan ev dizinleri otomatik numaralandırma yapılandırdı :

/home   /etc/auto.home

Sonra /etc/auto.homeCentOS 7 sunucularında başlangıçta bir satır ile yeni bir dosya oluşturdum :

*      sam:/home/&

Ancak ev dizinleri bağlantısını kesmezdi. Ayrıca, ev dizinlerindeki bazı dosya sahiplerinin zaman zaman onlara karşı büyük bir UID ve GID numarası ile sonuçlanacağını buldum. Birkaç dakika sonra değişecekti.

Kayıt seviyesini 'hata ayıklama' olarak ayarlayıp /etc/autofs.confizlemeye başladım journalctl -fu autofs.service. Yukarıda gösterildiği gibi hiçbir ipucu içermeyen neredeyse özdeş mesajlar gördüm.

Henüz NFS 4'ü anlayamamıştım ve CentOS 6 sunucumuzun hisselerini varsayılan olarak NFS 4 olarak dışa aktardığını biliyordum nfsvers=3, /etc/auto.homedosyaya şu şekilde eklemeyi denedim :

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

Ben de gibi dizinleri monte etmeye çalışırken garip bir mesaj görüyordum /home/lib, bu yüzden ayrı satırlara bireysel ev dizinleri ekledi. (Muhtemelen bu noktada doğrudan bağları denemeliydim veya systemd otomatik sayılarını denemeliydim.)

Şimdi şöyle mesajlar görmeye başladım:

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

Ev dizinleri şimdi olması gerektiği gibi 10 dakika sonra bağlantısını kesmeye başladı - bu yüzden benim durumumda yanlış yapılandırılmış NFS 4 ile ilgili bir sorun vardı.

Önemli: haritaları yeniden yapılandırdıktan sonra , herhangi bir etkisi yoktur systemctl daemon-reloadveya systemctl reload autofsyoktur. yapmak zorundaydımsystemctl restart autofs


1

Benzer sorunları yaşayan herkes için, modern masaüstlerinde sürücüleri sürekli olarak tarayan GUI süreçleri vardır. Özellikle Baloo gibi dosya indeksleme uygulamaları ile birlikte GDE üzerinde Nautilus ve KDE üzerinde Dolphin. Bunların tümü semptomlara neden olabilir.

Benim için (KDE çalıştıran) automount hata ayıklama günlüğünden tek ipucu "1 kaldı" ör:

    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

Bu gerçekten kaynağı tanımlamadı. Ayrıca hiçbir bilgi kaynağı, füzer ve denetleme (denetleme) hakkında herhangi bir fikir vermedi.

Sonunda eleme süreci ile 2 başvuru olduğunu tespit ettim:

  • KSysGuard (KDE Sistem monitörü)
  • Dolphin (Dosya Yöneticisi)

Dolphin ile ilgili sorun, bu durumda rahatsız edici monte edilmiş diski ağaç görünümünde "gizleyerek" düzeltilebilir.

KSysGuard yapılandırılabilir görünmüyor, ancak bir şey hata ayıklamadığınız sürece uzun vadede çalışmasını sağlamak belki de olağandışıdır. Umarım diğer uygulamalar, otomatik sayı bağlama noktasının taranmasını önlemek için hariç tutmalara izin verme konusunda daha yapılandırılabilir olabilir.


Bilginize, yayınınızı düzenlemeden önce giriş yaparsanız daha sonra onaylamanız (veya başkalarının onaylaması için saatler beklemeniz) gerekmez.
G-Man

0

Bugün hata ayıklamak ve benzer bir sorunu çözmek için saatler geçirdim. İşte bulduğum ve nasıl çalıştığım.]

kurulum: Ben nfs sunucu "srv1: / srv / homes" dan / mnt / nfs / homes istemcilerinde kullanıcıların ev dirs içeren dir otomatik montaj istedim. NFS sunucuları NFS4'ü dışa aktarır. autofs sürüm 5.1.3

Her istemciyi böyle yapılandırmıştım:

/etc/auto.mount: aşağıdakileri içeren dosya:

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

/etc/auto.home:

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

Sonunda bu dolaylı bir haritayı temsil eder. Otomatik montaj bir cazibe gibi çalışır. NFS birimini düzgün şekilde monte edilmiş ve çalışır hale getiriyorum. Ama ... asla otomatik olarak sökülmez. Autofs.conf dosyası şöyle diyor olsa da:

ve mount600 saniye zaman aşımını gösterir:

#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)

Ben aynı günlüğüne wanpelaman olarak autoct günlükleri (hata ayıklama günlük seviyesini etkinleştir) görüyordum

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

O zaman autofs'den vazgeçtim ve automount yapılandırmasını systemd ile çoğaltmaya karar verdim. Aslında onu çalıştırdım ve şu anda her şey harika çalıştı - otomatik montaj, önceden tanımlanmış boşta kalma süresinden sonra otomatik olarak çıkar. Mükemmel. Ama sistemd ... biraz sakar (bana ateş etme, aslında hoşuma gidiyor). Sonra systemd'in otomatik montajı nasıl ele aldığını inceledim:

#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)

# 1 # ve # 2 # arasındaki fark, ikincisinin doğrudan harita olması, ancak # 1 #'nin dolaylı olmasıdır. Bu yüzden hemen başka bir istemcide autofs yeniden yapılandırmaya ve böyle doğrudan harita oluşturmaya karar verdim:

/etc/auto.master

/-   /etc/auto.home

/etc/auto.home

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

Ve bu sonunda sorunu çözdü. Hem otomatik montaj hem de otomatik umount iyi çalıştı. umount /etc/autofs.conf dosyasında önceden tanımlanmış boşta kalma süresinden sonra başarıyla çalıştırıldı

Kesinlikle NFS sunucusunda değişiklik yapılması gerekmedi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.