autofs mounts ไม่ได้ตัดการเชื่อมต่อหลังจากไม่ได้ใช้งาน


10

ฉันติดตั้งautofsไว้ในเซิร์ฟเวอร์ linux หลายตัวที่เชื่อมต่อกับเซิร์ฟเวอร์ NFS ส่วนกลางสำหรับผู้ใช้ / โฮมไดเรกทอรี มันใช้งานได้ดีเมื่อทำการติดตั้งไดเรกทอรีในการเข้าสู่ระบบ แต่การติดตั้งไม่เคยหมดเวลา ฉันได้ตรวจสอบ / etc / sysconfig / autofs แล้วและค่าเริ่มต้นถูกตั้งไว้ที่ 300 ดังนั้นสิ่งเหล่านี้ควรหมดเวลาหลังจาก 5 นาที

การรีสตาร์ทautofsจะเพิ่มไดเรกทอรีทั้งหมดดังนั้นฉันรู้ว่ามันมีความสามารถ

ฉันพยายามใช้lsofสุ่มในไดเรกทอรี แต่ไม่มีไฟล์ปรากฏเปิดตลอดเวลา

ฉันยังติดตั้งไดเรกทอรีแบบสุ่มที่ฉันรู้ว่าไม่ได้ใช้งาน แต่สิ่งเหล่านี้ไม่เคยเมานท์เอง กล่องเหล่านี้บางกล่องมีผู้ใช้มากกว่า 10 คนที่เข้าสู่ระบบครั้งเดียวและการติดตั้งไม่เคยลดลง

ฉันแค่พยายามค้นหาว่ามีวิธีที่ดีกว่าในการค้นหาสาเหตุ ฉันไม่เห็นสิ่งใดเฉพาะในบันทึกใด ๆ

ข้อเสนอแนะใด ๆ ที่ชื่นชม ขอบคุณ!

UPDATE

ฉันเปิดใช้งานการดีบักสำหรับautofsแต่ดูเหมือนจะไม่เปิดเผยสิ่งที่ผิดปกติ บันทึกเหล่านี้ถูกสร้างขึ้น 7 นาทีหลังจาก / home / user1 ถูกเมาท์ตั้งแต่แรกและหลังจากไม่มีการใช้งาน 6 นาที ตามค่าเริ่มต้น 5 นาทีสิ่งนี้ควรถูกยกเลิกการต่อเชื่อม ฉันไม่เคยเห็นบันทึกที่ผ่านมาซึ่งบ่งบอกว่ามีความพยายามในการนับจำนวน

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

อัปเดต 2 หลังจากพูดคุยกับฝ่ายสนับสนุน Red Hat เกี่ยวกับเรื่องนี้วิธีการแก้ปัญหาก็คือการลดค่าการหมดเวลาลงสำหรับไดเรกทอรีบ้าน ฉันทำอย่างนั้นและดูดี เห็นได้ชัดว่ามีบางอย่างกำลังเคลื่อนที่ไปที่จุดยึดทุก 2 1/2 ถึง 3 นาทีและทำให้สิ่งนี้ยังคงอยู่

วิธีแก้ไขคือการเพิ่มค่าการหมดเวลาลงในไฟล์ /etc/auto.master สำหรับการจับคู่นั้น:

 /home     /etc/auto_home --timeout=120

คุณใช้คำสั่งใดในการพิจารณาว่าการเมาท์เหล่านี้มีอยู่หรือไม่ ฉันถือว่าdfแต่ต้องการชี้แจง
Banjer

ใช่ฉันใช้ df เพื่อตรวจสอบพื้นที่ที่เมานต์ ฉันแค่ซีดีไปยังไดเรกทอรีเป็น root เพื่อให้พวกเขาติด
SteveHNH

คำตอบ:


4

นอกจาก autofs ตัวแปร TIMEOUT มีช่วงการตรวจสอบ:

# 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 การ autofs ทุกครั้งของ TIMEOUT / 4 วินาทีจะถามถึงเคอร์เนลเมื่อเข้าถึงไดเรกทอรีครั้งสุดท้าย ดังนั้นในสภาพแวดล้อมของคุณคุณมีไดเรกทอรี ountount หลังจากไม่มีการใช้งาน 375 วินาที

จะได้รับการบันทึกรายละเอียดเพิ่มเติมที่คุณควรเพิ่มLOGGING="debug"การ/etc/sysconfig/autofs


ฉันเห็น. ขอขอบคุณสำหรับการชี้แจง. บันทึกด้านบนยังคงดำเนินต่อไปหลังจากที่ไม่มีการใช้งาน 6 นาทีและเกิน 375 วินาที ฉันคิดอยู่เสมอว่ามีบางสิ่งที่ต้องเข้าถึงไดเรกทอรีเหล่านี้มิฉะนั้นจะพยายามต่อไป ฉันเดาวัตถุประสงค์ที่แท้จริงของฉันคือการค้นหาสิ่งที่เข้าถึงไดเรกทอรีนี้ถ้ามีอะไร นั่นเป็นเหตุผลเดียวที่ฉันสามารถคิดได้ว่ามันจะไม่นับจำนวน
SteveHNH

1

ฉันมีปัญหาที่คล้ายกัน ฉันติดตั้งเซิร์ฟเวอร์ RHEL 4.7 ProLiant อายุ 10 ปีของเราใหม่ด้วย CentOS 6 ช่วงหยุดคริสต์มาส ฉันมี ProLiants รุ่นใหม่ 2 ตัวซึ่งฉันสามารถติดตั้ง CentOS 7 ได้เร็วกว่านี้ (ในเดือนเมษายน)

ฉันกำหนดค่าไดเรกทอรีบ้านโดยอัตโนมัติจากเซิร์ฟเวอร์ CentOS 6 โดยใช้บรรทัดใน/etc/auto.masterเซิร์ฟเวอร์ CentOS 7 ดังนี้:

/home   /etc/auto.home

จากนั้นฉันสร้าง/etc/auto.homeไฟล์ใหม่บนเซิร์ฟเวอร์ CentOS 7 โดยเริ่มด้วยบรรทัด:

*      sam:/home/&

โฮมไดเรกทอรีจะไม่ยกเลิกการต่อเชื่อมอย่างไรก็ตาม ฉันยังพบว่าบางส่วนของการเป็นเจ้าของไฟล์ในโฮมไดเร็กตอรี่จะเกิดขึ้นเป็นครั้งคราวด้วยหมายเลขโพสต์และหมายเลข GID จำนวนมาก มันจะเปลี่ยนไม่กี่นาทีต่อมา

ฉันจะตั้งค่าระดับการบันทึกที่ 'แก้ปัญหา' ในและเริ่มต้นการดูด้วย/etc/autofs.conf journalctl -fu autofs.serviceฉันเห็นข้อความที่เกือบเหมือนกันดังที่แสดงด้านบนซึ่งดูเหมือนจะไม่มีเบาะแส

ขณะที่ผมยังไม่ได้รับสามารถที่จะเข้าใจ NFS 4 และผมรู้ว่าเรา CentOS 6 เซิร์ฟเวอร์ถูกส่งออกหุ้นของ บริษัท เป็น NFS 4 โดยค่าเริ่มต้นฉันพยายามเพิ่มnfsvers=3ไปยัง/etc/auto.homeไฟล์เช่นดังนั้น:

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

ฉันยังเห็นข้อความแปลก ๆ เกี่ยวกับการพยายามติดตั้งไดเรกทอรีเช่น/home/libดังนั้นเพิ่มไดเรกทอรีบ้านแต่ละรายการในบรรทัดแยกกัน (น่าจะลองใช้การเมาท์โดยตรง ณ จุดนี้หรือลอง systemd automounts)

ตอนนี้ฉันเริ่มเห็นข้อความเช่น:

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

โฮมไดเร็กตอรี่เริ่มถอนติดตั้งหลังจาก 10 นาทีเหมือนที่ควร - ดังนั้นจึงเป็นปัญหากับ NFS 4 ที่ตั้งค่าผิดในกรณีของฉัน

สำคัญ: หลังจากกำหนดค่าแผนที่ใหม่เพียงทำsystemctl daemon-reloadหรือsystemctl reload autofsไม่มีผลใด ๆ ฉันต้องทำsystemctl restart autofs


1

สำหรับผู้อื่นที่ประสบปัญหาคล้ายกันมีกระบวนการ GUI บนเดสก์ท็อปสมัยใหม่ที่สแกนไดรฟ์อย่างต่อเนื่อง โดยเฉพาะอย่างยิ่ง Nautilus บน Gnome และ Dolphin ใน KDE พร้อมกับแอปพลิเคชันการจัดทำดัชนีไฟล์เช่น Baloo สิ่งเหล่านี้ล้วนแล้วแต่สามารถทำให้เกิดอาการได้

สำหรับฉัน (ใช้ KDE) เบาะแสเดียวจากการบันทึกการดีบักอัตโนมัติคือ "เหลือ 1" เช่น:

    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

สิ่งนี้ไม่ได้ระบุแหล่งที่มาจริงๆ นอกจากนี้ยังไม่มี lsof, fuser และ auditctl (auditd) ให้ข้อมูลเชิงลึกใด ๆ

ในที่สุดโดยกระบวนการกำจัดฉันได้พิจารณามี 2 แอปพลิเคชัน:

  • KSysGuard (มอนิเตอร์ระบบ KDE)
  • Dolphin (ตัวจัดการไฟล์)

ปัญหาเกี่ยวกับ Dolphin สามารถแก้ไขได้ในกรณีนี้โดย "ซ่อน" ดิสก์ที่เมาท์ที่ละเมิดในมุมมองแบบต้นไม้

KSysGuard ไม่สามารถกำหนดค่าได้ แต่อาจเป็นเรื่องผิดปกติที่จะใช้งานได้ในระยะยาวเว้นแต่ว่าคุณจะทำการดีบั๊ก หวังว่าแอปพลิเคชั่นอื่น ๆ อาจจะสามารถกำหนดค่าได้มากขึ้นในการอนุญาตการยกเว้นเพื่อป้องกันไม่ให้จุดเมานท์อัตโนมัติถูกสแกน


หากคุณต้องการเข้าสู่ระบบก่อนที่จะแก้ไขโพสต์ของคุณคุณไม่จำเป็นต้องอนุมัติในภายหลัง (หรือรอเวลาให้ผู้อื่นอนุมัติ)
G-Man กล่าวว่า 'Reinstate Monica'

0

ฉันใช้เวลาหลายชั่วโมงวันนี้พยายามแก้ปัญหาและปัญหาที่คล้ายกัน นี่คือสิ่งที่ฉันค้นพบและวิธีการทำงานของมัน]

เซ็ตอัพ: ฉันต้องการเมานต์อัตโนมัติที่มี dir บ้านของผู้ใช้จากเซิร์ฟเวอร์ nfs "srv1: / srv / homes" ที่ / mnt / nfs / homes กับลูกค้า เซิร์ฟเวอร์ NFS ส่งออก NFS4 ออโต้รุ่น 5.1.3

ฉันได้กำหนดค่าลูกค้าทุกคนเช่นนั้น:

/etc/auto.mount: ไฟล์มีดังต่อไปนี้:

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

/etc/auto.home:

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

ในที่สุดนี่ก็แสดงถึงแผนที่ทางอ้อม Auto mount ใช้งานได้อย่างมีเสน่ห์ ฉันได้รับวอลลุ่ม NFS อย่างถูกต้องและทำงานได้ แต่ ... มันไม่เคยถูกถอดออกอัตโนมัติ แม้ว่าไฟล์ autofs.conf พูดว่า:

และmountแสดงเวลาหมดเวลา 600 วินาที:

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

ฉันเห็นเหมือนกันใน (เปิดใช้งานการบันทึกระดับการดีบัก) autofs บันทึกจาก journalctl เป็น 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

ในเวลานั้นฉันเลิกใช้ autofs และตัดสินใจที่จะทำซ้ำ automount config ด้วย systemd อันที่จริงฉันวิ่งมันและในเวลานี้ทุกอย่างใช้งานได้ดี - auto mount, auto unmount หลังจากช่วงเวลาที่ไม่ได้ใช้งานที่กำหนดไว้ล่วงหน้า สมบูรณ์แบบ แต่ systemd ... งุ่มง่ามเล็กน้อย (อย่ายิงฉันเลยฉันชอบมันจริงๆ) จากนั้นฉันดูที่วิธี systemd จัดการการติดตั้งอัตโนมัติ:

#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 # และ # 2 # คือแผนที่หลังตรงในขณะที่ # 1 # เป็นทางอ้อม ดังนั้นฉันจึงตัดสินใจกำหนดค่า autofs ใหม่บนไคลเอนต์อื่นทันทีและสร้างแผนที่โดยตรงแบบนั้น:

/etc/auto.master

/-   /etc/auto.home

/etc/auto.home

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

และสิ่งนี้ได้แก้ไขปัญหาในที่สุด ทั้งเมานต์อัตโนมัติและเมานต์อัตโนมัติทำงานได้ดี umount ทำงานสำเร็จหลังจากเวลาว่างที่กำหนดไว้ล่วงหน้าใน /etc/autofs.conf

ไม่ต้องการการแก้ไขอย่างแน่นอนบนเซิร์ฟเวอร์ NFS

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.