ฉันกำลังจะสับ FreeBSD automounter เป็นชิ้นเล็กชิ้นน้อยแล้วต้มในน้ำมัน


40

ฉันพยายามที่จะเปิดเผยลำดับชั้นของโฮมไดเร็กตอรี่ถึงจำนวนของ FreeBSD jails โฮมไดเร็กตอรี่ได้รับการกำหนดค่าให้แต่ละชุดข้อมูลเป็น ZFS ที่ไม่ซ้ำใคร คุกใช้สำหรับงานพัฒนาดังนั้นจึงสร้างและทำลายอย่างสม่ำเสมอ

ความคิดแรกของฉันคือการใช้nullfsเพื่อติดตั้ง/homeในคุก แต่nullfsไม่มีวิธีใดในการเข้าถึงระบบไฟล์รอง

ความคิดที่สองของฉันคือการส่งออกไดเรกทอรีผ่าน NFS แล้วเรียกใช้ automounter daemon (amd) ในแต่ละคุก สิ่งนี้จะมี Just Worked ... หากเป็นไปได้ที่จะทำการเมานต์ NFS ภายในคุก แต่มันไม่ใช่

ความคิดที่สามของฉันคือการเรียกใช้เอเอ็มดีในพื้นที่และการให้nullfsม้าเข้าไปในคุก ... แต่การสนับสนุนเอเอ็มดีสำหรับnullfsไม่อยู่

ความคิดที่สี่ของฉันคือกลับไปที่การส่งออกไดเรกทอรีโดยใช้ NFS เพราะแน่นอนว่า amd ทำงานกับ NFS ได้ใช่ไหม แต่น่าเสียดายที่แทนที่จะติดตั้งไดเรกทอรีในตำแหน่งเป้าหมายแล้วเอเอ็มดีชอบที่จะติดตั้งสิ่งต่าง ๆ ในตำแหน่งชั่วคราว ( /.amd_mnt/...) แล้วสร้าง symlink ... ซึ่งแน่นอนว่าไม่มีประโยชน์อะไรในสภาพแวดล้อมของคุก

ดังนั้นบางทีคุณอาจใช้nullfsเพื่อเปิดเผยไดเรกทอรีย่อยของ/.amd_mntคุก? No! วิธีนี้จะทำให้เรากลับไปที่ความพยายามครั้งแรกของฉันในการที่เราจะพบว่ามีวิธีใดในการเข้าถึงระบบไฟล์ของผู้ใต้บังคับบัญชาใช้nullfs

แล้วหัวของฉันก็ระเบิด

มีวิธีแก้ปัญหาที่ดีสำหรับสิ่งที่ฉันพยายามทำหรือไม่? ไม่ดีวิธีการแก้ปัญหาที่จะเรียกใช้สคริปต์หลังจากบูตคุกที่จะสร้างหลายnullfs mountpoints ไดเรกทอรีแต่ละบ้าน แต่นี้เป็น clunky สวย - มันจะต้องมีการทำงานเป็นระยะ ๆ เพื่อนำเข้าบัญชีไดเรกทอรีใหม่หรือไดเรกทอรีที่ถูกลบ ดังนั้นโดยพื้นฐานแล้วฉันจะต้องเขียนตัวนับอัตโนมัติที่ไม่ดี

จะต้องมีวิธีที่ดีกว่า ช่วยฉัน Serverfault คุณเป็นความหวังเดียวของฉัน!

UPDATE 1 : มันเกิดขึ้นกับฉันว่าฉันอาจจะสามารถแก้ปัญหาบางส่วนได้pam_mountแม้ว่าสิ่งนี้จะไม่สมบูรณ์ก็ตาม นอกจากนี้ยังไม่ชัดเจนจากเอกสารประกอบว่าpam_mountจะสร้างจุดยึดเป้าหมายอัตโนมัติหรือไม่ หากต้องการให้ mountpoint มีอยู่ก่อนหน้าโซลูชันนี้จะไม่ดีไปกว่ารถยนต์ที่ฉันเคยเสนอมา

UPDATE 2 : ดังที่อธิบายไว้ในคำตอบด้านล่างการตั้งค่าVFCF_JAILบนระบบไฟล์ NFS จะอนุญาตให้ jails ดำเนินการเมาต์ NFS น่าเสียดายที่ automounter ยังคงทำงานที่ไม่ช่วยเหลือและเมื่อทำงานในคุกดูเหมือนจะดีมากที่ได้รับการประกันในลักษณะที่จำเป็นต้องรีบูตระบบเพื่อลบรายการกระบวนการ


1
และถ้าคุณยินดีที่จะย้ายฟีเจอร์เหล่านั้นไปยัง FreeBSD นั่นจะยอดเยี่ยม การทำงานอย่างจริงจังของ Linux automounter มาตรฐานจะสมบูรณ์แบบสำหรับสิ่งนี้เช่นกันเพราะจริงๆแล้วมันติดตั้งระบบไฟล์บนเป้าหมายเมานต์แทนที่จะใช้ symlink
larsks

4
ฉันโทษขาดเวลาอย่างรุนแรง และอาจเป็นเพียงการขาดแรงจูงใจเล็กน้อย ... >.>
Ignacio Vazquez-Abrams

15
+1 สำหรับชื่อที่ยอดเยี่ยมเท่านั้น :)
Shauna

4
มันเกี่ยวข้องกับฉันว่าวิธีการดำเนินการเฉพาะของคุณนั้นเฉพาะเจาะจงอย่างไร
มาร์คเฮนเดอร์สัน

2
โอ้ @ Wilshire คุณไม่สนุกหรอก
larsks

คำตอบ:


26

ทำไมสวัสดีที่นั่นลาร์ส! นั่นเป็นคำถามที่น่าสนใจที่คุณถามและหลังจากการวิจัยบางอย่างฉันอาจพบคำตอบสำหรับคุณ

ตาม โพสต์นี้และโพสต์อื่น ๆ ที่นั่นอาจเป็นไปได้ที่จะตั้งค่าVFCF_JAIL แอ็ตทริบิวต์บนผู้ให้บริการระบบไฟล์ NFS ซึ่งในทางทฤษฎีแล้วอนุญาตให้ jails ดำเนินการเมาต์ NFS ในทางกลับกันอาจอนุญาตให้บุคคลหนึ่งเรียกเอเอ็มดีเข้าไปในคุก ... ซึ่งจะแก้ไขปัญหานี้ได้อย่างเรียบร้อย

ฉันจะลองสร้างเคอร์เนลใหม่ในเย็นวันนี้เพื่อดูว่าสิ่งต่าง ๆ เป็นไปอย่างไร มันไม่ได้เป็นทางออกที่ดีที่สุด (เพราะมันหมายความว่าคุณต้องแน่ใจว่าการเปลี่ยนแปลงนี้ยังคงมีอยู่ในการอัพเดตเคอร์เนลในอนาคต) แต่มันจะน่าสนใจถ้ามันใช้งานได้

และจำไว้ว่า...

           ___________    ____                                           
    ______/   \__//   \__/____\                             
  _/   \_/  :           //____\\                             
 /|      :  :  ..      /        \                         
| |     ::     ::      \        /                             
| |     :|     ||     \ \______/     Don't try to rebuild the
| |     ||     ||      |\  /  |        kernel remotely because
 \|     ||     ||      |   / | \         you know you're just
  |     ||     ||      |  / /_\ \        going to hose the server.
  | ___ || ___ ||      | /  /    \    
   \_-_/  \_-_/ | ____ |/__/      \   
                _\_--_/    \      /   
               /____             /  
              /     \           /    
              \______\_________/     

6
ขอบคุณลาร์ส; ฉันหวังว่าฉันได้รับคำแนะนำของคุณเพราะตอนนี้ฉันไม่สามารถเข้าถึงเซิร์ฟเวอร์และฉันจะต้องรอจนกว่าฉันจะกลับถึงบ้านเพื่อลองใช้
larsks

10
+1 สำหรับ LOL ให้พิจารณาสิ่งนี้ด้วยเช่นกัน - ขับรถไปที่เซิร์ฟเวอร์ของคุณตอนกลางดึกเพื่อบู๊ต KERNEL.OLD (หรือ KERNEL.GENERIC - คุณอัพเดท GENERIC ที่ทันสมัยอยู่เสมอในระบบของคุณใช่ไหมถ้าไม่ใช่คุณ ควรเริ่มต้น) สอนบทเรียนมากมาย ...
voretaq7

ฉันเก็บสำเนาmfsbsd ที่ใช้ประโยชน์ได้สุทธิเช่นกันซึ่งช่วยฉันจากปัญหาที่เกี่ยวข้องกับตัวบูตบูต
ลาร์สก์

1
การตั้งค่าVFCF_JAILทำให้ NFS mounts ทำงานได้ แต่ตัวตรวจจับอัตโนมัติยังคงทำให้ฉันต้องตกใจอยู่
larsks

1
เอ๊ะฉันใช้ automount สำหรับโฮมไดเร็กตอรี่มากกว่าทศวรรษในสภาพแวดล้อมต่าง ๆ และฉันก็พอใจกับมัน โปรดทราบว่านี่คือตัวนับอัตโนมัติของ Linux (และ Solaris) ไม่ใช่ amd
larsks
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.