วิธีที่ดีที่สุดในการป้องกันไม่ให้ระบบรากเต็มเมื่อเมาท์ล้มเหลว?


16

เรามีเว็บเซิร์ฟเวอร์ภายใน (เวอร์ชวลไลซ์เซชั่นบอร์ดรีวิว แต่ไม่เกี่ยวข้องกันมาก) และเรามีโหมดความล้มเหลวที่ค่อนข้างสอดคล้องกับการเมาต์ NFS ที่ล้มเหลวทำให้ / เติมเต็ม Distro คือ Ubuntu (ไม่ต้องถาม) หากโซลูชันขึ้นอยู่กับการกระจายที่แตกต่างกันมันจะช้าลงในการติดตั้ง

กำลังทำการสำรองข้อมูลไปยัง / mnt / backup / ซึ่งควรจะเมานต์ NFS ไปยังระบบอื่น แต่น่าเสียดายที่เมื่อการเมานต์ล้มเหลวหรือลดลงการสำรองข้อมูลจะดำเนินการในระบบไฟล์รูทซึ่งคุณสามารถจินตนาการได้ว่าใช้เวลาไม่นานก่อน / เต็มแล้วบริการก็เริ่มล้มเหลว

มีการพูดถึงแนวทางแก้ไขที่เป็นไปได้จำนวนหนึ่ง

  1. มอนิเตอร์ / mnt / backups และตรวจสอบว่าไม่ใช่รูท อาจเป็นงาน cron

  2. ใช้ / mnt / protected / backups และ mount / ป้องกันก่อนกับระบบไฟล์ขนาดเล็กอาจเป็นลูปติดกับไฟล์โลคัลดังนั้นจึงมีโอกาสน้อยมากที่จะล้มเหลว

  3. Chmod a-rwx / mnt / backups (จุดเมานต์ระบบไฟล์รูท) ฉันไม่แน่ใจว่าการติดตั้งผู้กำกับที่ได้รับการปกป้องจะทำงานได้หรือไม่ฉันคิดว่ามันเป็นเช่นนั้น

  4. บนทรีที่เมาท์สร้างไดเรกทอรีที่ชื่อว่า "Backups" จากนั้นซอฟต์ลิงก์ "ln - s / mnt / backup / Backups / Backups" การใช้ / การสำรองข้อมูลสำหรับการสำรองข้อมูลจะล้มเหลวเว้นแต่ว่ามีการติดตั้ง / mnt / backup เนื่องจากแผนผังโลคัลไม่มีไดเรกทอรีย่อย

  5. ดำเนินการตรวจสอบว่าไดเร็กทอรีติดตั้งอย่างถูกต้องในสคริปต์สำรอง

ฉันสนใจข้อเสนอแนะเกี่ยวกับวิธีการเหล่านี้ข้อดีข้อเสียหรือเทคนิคเพิ่มเติมใด ๆ ที่ผู้คนใช้เป็นวิธีมาตรฐานในการปกป้องระบบไฟล์รากจากความน่ารังเกียจประเภทนี้

คำตอบ:


13

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

ลองmountpointคำสั่งซึ่งตรวจสอบว่าไดเรกทอรีที่ระบุเป็นจุดติดตั้ง:

mountpoint -q /mnt/backups || mount /mnt/backups


อืมฉันเดาว่าฉันจะเพิ่ม || echo "การเมานต์ / mnt / backups ล้มเหลว" 2> & 1 หรืออาจมีอยู่แค่นั้น อย่างไรก็ตามขอบคุณ !!!
ปีเตอร์

22

วิธีแก้ไขข้อผิดพลาดที่พิสูจน์ได้มากที่สุดคือการทำให้จุดเชื่อมต่อไม่สามารถเขียนได้ นี่จะเป็นทางออกของคุณ # 3 อย่างไรก็ตามมีอีกหนึ่งขั้นตอนที่คุณควรทำ chattr +i /mnt/backups. นี่เป็นเพราะแม้ว่าจะไม่มีสิทธิ์รูทก็ยังสามารถเขียนไปยังไดเรกทอรีได้ ด้วยchattr +i(ตั้งค่าแฟล็กที่ไม่เปลี่ยนรูป) ไม่ให้รูทสามารถเขียนได้ เมื่อเมานต์ถูกเมาท์สิทธิ์ไม่สำคัญเนื่องจากสิทธิ์จะเป็นของรีโมตไดเร็กทอรีไม่ใช่โลคัลโลคัล


1
นั่นเป็นกลลวงที่เรียบร้อย - ไม่เคยคิดที่จะใช้ 'chattr'
warren

1
ฉันใช้เทคนิคนี้กับจุดยึดทั้งหมดของฉัน
3dinfluence

1
ฉันลองสิ่งนี้ด้วยencfsระบบไฟล์ฟิวส์ มันให้ข้อผิดพลาด:fusermount: user has no write access to mountpoint
ctrl-alt-delor

นี่เป็นวิธีที่ฉันใช้ตามปกติและฉันคิดว่ามันควรจะเป็นคำตอบที่ได้รับการยอมรับ
shodanshok

3

สิ่งที่ ewwhite พูด นอกจากนี้การตรวจสอบเพิ่มเติมสำหรับความสมบูรณ์ของระบบพื้นฐานก็ไม่ใช่ความคิดที่เลว

สิ่งที่ต้องการ Monit สามารถตรวจสอบเพื่อดูว่าพื้นที่ที่เหลืออยู่ หากคุณต้องการที่จะเบื่อกับการตรวจสอบระบบคุณสามารถดู Nagios ได้ แต่ Monit นั้นมีน้ำหนักเบาและจะทำสิ่งพื้นฐาน

ตั้งแต่คุณใช้ Ubuntu Monit อยู่ใน repo อยู่แล้วดังนั้นคุณจึงสามารถ "sudo apt-get install monit" จากนั้นเริ่มดูไฟล์การกำหนดค่าเพื่อบอกให้ส่งการแจ้งเตือนไปยังสถานที่ที่ถูกต้องตรวจสอบบริการที่เหมาะสม ฯลฯ . นี่คือรวดเร็วกวดวิชา


1

นี่คือหนึ่งในสายการบินที่คุณสามารถเรียกใช้เป็นงาน cron ได้โดยถือว่าการเมานต์ที่เป็นปัญหาอยู่ใน fstab:

if mountpoint -q /mnt ; then : ; else mount /mnt ; fi

0

สำหรับการแก้ปัญหาระยะยาว: ไม่แน่ใจว่าจะทำสิ่งนี้บน Ubuntu (ฉันเป็น Centric RH) หรือถ้ามันมีค่าในขณะที่ (ถ้าคุณมีเพียงเครื่องเดียว) แต่วิธีการที่ใช้กับเรามาหลายปีก็คือการสร้างตรรกะแยกต่างหาก วอลุ่มระบบไฟล์แม้กระทั่งกลุ่มวอลุ่มบนเครื่องเซิร์ฟเวอร์ ดังนั้นตามมาตรฐานการปฏิบัติเราจึงสร้างโลจิคัลวอลุ่ม LVM สำหรับ /, / tmp / usr, / usr / local, / opt, / home, / var, พื้นที่สว็อปและพาร์ติชั่นแยกต่างหากสำหรับ / boot วิธีการนี้ทำให้ยากขึ้นเป็นพิเศษสำหรับระบบไฟล์ที่จะเติมและปิดการใช้งานระบบ อันที่จริงวิธีการนี้จะทำให้แทบเป็นไปไม่ได้ที่จะเติมเต็มระบบไฟล์ / คุณยังต้องดู / tmp, / var แน่นอน ถ้าเราต้องการข้อมูลบ้านเราจะสร้างกลุ่มปริมาณที่แตกต่างกันโดยสิ้นเชิง วิธีการนี้มีประโยชน์อื่น ๆ เช่นขยายระบบไฟล์ตามใจชอบย้ายไปมาสร้างใหม่เป็นต้น


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