ตัวเลือกเมานท์ใดที่จะใช้สำหรับระบบไฟล์ ext3 เพื่อลดการสูญหายของข้อมูลหรือความเสียหาย?


15

ฉันมีการตั้งค่าแบบฝังตัวโดยใช้ initramfs สำหรับระบบไฟล์รูท แต่ใช้พาร์ติชัน ext3 แบบกำหนดเองที่ติดตั้งอยู่บนไดรฟ์ IDE แบบคอมแพคแฟลช เนื่องจากความถูกต้องของข้อมูลเมื่อเผชิญกับการสูญเสียพลังงานเป็นปัจจัยที่สำคัญที่สุดในการตั้งค่าทั้งหมดฉันจึงใช้ตัวเลือกต่อไปนี้เพื่อเมานต์ (ด้านล่างคือรายการจาก/etc/fstabไฟล์ของฉัน

<file system> <mount pt> <type> <options>                         <dump><pass>
/dev/sda2     /data      ext3   auto,exec,relatime,sync,barrier=1 0     2

ฉันมาจากตัวเลือกเหล่านี้จากการอ่านหนังสือบนอินเทอร์เน็ต สิ่งที่ฉันเป็นห่วงคือเนื้อหาของการ/proc/mountsให้ดังต่อไปนี้:

/dev/sda2 /data ext3 rw,sync,relatime,errors=continue,user_xattr,acl,
barrier=1,data=writeback 0 0

จากสิ่งที่ฉันเข้าใจจากการอ่านรอบตัวคือฉันต้องการใช้data=journalตัวเลือกสำหรับการเมานต์ของฉันเพราะนี่เป็นการป้องกันที่ดีที่สุดต่อการเสียหายของข้อมูล อย่างไรก็ตามจากหน้า man สำหรับตัวเลือก ext3 ที่เฉพาะเจาะจงซึ่งmountจะกล่าวถึงสิ่งต่อไปนี้เกี่ยวกับตัวเลือก writeback:

การเก็บข้อมูลจะไม่ถูกเก็บไว้ - ข้อมูลอาจถูกเขียนลงในระบบไฟล์หลักหลังจากที่เมตาดาต้าของมันถูกส่งไปยังเจอร์นัลแล้ว
ข่าวลือนี้เป็นตัวเลือกทรูพุตที่สูงที่สุด มันรับประกันความสมบูรณ์ของระบบแฟ้มภายในอย่างไรก็ตามมันสามารถอนุญาตให้ข้อมูลเก่าที่จะปรากฏในไฟล์หลังจากความผิดพลาดและการกู้คืนวารสาร

ฉันสับสนมากเกี่ยวกับเรื่องนี้ - หน้าคนดูเหมือนว่าจะแนะนำว่าสำหรับความสมบูรณ์ของระบบไฟล์ฉันต้องการที่จะระบุdata=writebackตัวเลือกmountแต่อ้างอิงอื่น ๆ มากที่สุดที่ฉันได้พบ (รวมทั้งหนังสือที่ตีพิมพ์บางอย่างเกี่ยวกับลินุกซ์ฝังตัว) data=journalแนะนำว่าผมควรจะใช้ อะไรคือวิธีที่ดีที่สุดที่ฉันจะใช้ ความเร็วในการเขียนไม่ใช่ปัญหา แต่อย่างใดความสมบูรณ์ของข้อมูลคือ


1
ให้คำแนะนำบางรอบข้อมูล = วารสาร ฉันอยากจะใช้สิ่งนั้นเหนือสิ่งอื่นใดเนื่องจาก RH สนับสนุนเฉพาะการสั่งซื้อประเภทนั้นเท่านั้น
slm

2
@sim จริง ๆ แล้วมันบอกว่าdata=ordered: p
sourcejedi

คำตอบ:


7

ไม่ได้ผิดจากความจริงที่ว่ามีเพียงกล่าวwriteback ด้วย, ไม่ว่าคุณจะใช้, หรือ, เมตะดาต้าของระบบไฟล์จะถูกทำเจอร์นัลเสมอและนั่นหมายถึงความสมบูรณ์ของระบบไฟล์ภายใน. internal filesystem integrity
ext3journalorderedwriteback

โหมดข้อมูลที่นำเสนอวิธีการควบคุมวิธีการที่สามัญข้อมูลถูกเขียนไปยังระบบแฟ้ม
ในwritebackโหมดการเปลี่ยนแปลงข้อมูลเมตาจะถูกบันทึกเป็นครั้งแรกในวารสารและบล็อกการกระทำจะถูกเขียน หลังจากอัพเดตเจอร์นัลแล้วเมตะดาต้าและการเขียนข้อมูลอาจดำเนินการต่อได้ data=writeback อาจเป็นความเสี่ยงด้านความปลอดภัยที่รุนแรง: หากระบบล่มในขณะที่ต่อท้ายไฟล์หลังจากข้อมูลเมตาได้รับการยอมรับ (และการจัดสรรบล็อกข้อมูลเพิ่มเติม) แต่ก่อนที่ข้อมูลจะถูกเขียน (บล็อกข้อมูลถูกเขียนทับด้วยข้อมูลใหม่) หลังจากวารสาร การกู้คืนไฟล์นั้นอาจมีบล็อกที่เต็มไปด้วยข้อมูลจากไฟล์ที่ถูกลบก่อนหน้านี้ - จากผู้ใช้1คน

ดังนั้นหากความถูกต้องของข้อมูลเป็นเรื่องสำคัญและความเร็วของคุณไม่สำคัญdata=journalเท่ากับเป็นวิธีที่จะไป


4

ดังที่คุณได้สังเกตเห็นแล้วประเด็นหลักคือคุณไม่สามารถป้องกันระบบไฟล์ของคุณจากความผิดพลาดทุกประเภท

คุณสามารถทำอะไรได้บ้าง:

  1. ในด้านซอฟต์แวร์คุณสามารถใช้fdatawritesหลังจากการดำเนินการที่สำคัญแต่ละครั้ง (ดูโพสต์ 2003จาก Theodore T'so ซึ่งเป็นผู้พัฒนาเคอร์เนลหลัก FS FS มันยังคงเป็นความจริงนอกจากนี้ยังมีสิ่งนี้เกี่ยวกับการสูญหายของข้อมูลหลักที่ซ่อนอยู่ใน ext4 รุ่นเก่า)
  2. ลดช่วงเวลาการส่งข้อมูลเป็น 1 วินาที ( กระทำ = 1 ) (ดูบทความนี้จาก LWN เป็นเรื่องเกี่ยวกับ ext4 แต่มีข้อมูลที่เป็นประโยชน์อย่างมากเกี่ยวกับ ext3) หมายเหตุ: มันไม่ควรจำเป็นต้องมีการซิงค์
  3. ดังที่ RHEL doc ชี้โดย sim ว่าให้ใช้ * data_err = abort * และdata = สั่ง
  4. noatimeจะลดการทำงานที่ไร้ประโยชน์ของระบบไฟล์
  5. ตามที่คุณสังเกตเห็นแล้วbarrier = 1เป็นวิธีที่ดีในการลดการสูญหายของข้อมูล (ดูโพสต์นี้ )
  6. และการซิงค์ก็เป็นหนึ่งในตัวเลือก "ฉันไม่ต้องการให้ข้อมูลของฉันสูญหาย"

ในตอนท้ายตัวเลือกการเมานต์ paranoiac อาจมีลักษณะเช่นนี้:

auto,exec,relatime,sync,barrier=1,commit=1,data=ordered,data_err=abort,noatime,

และคุณยังสามารถมั่นใจได้ถึงความถูกต้องของข้อมูลด้วย fsck อัตโนมัติในการบู๊ตแต่ละครั้ง


2

ลองเปลี่ยนส่วนใดของหน้า man ที่คุณต้องการ:

เขียนกลับ

การเก็บข้อมูลจะไม่ถูกเก็บไว้ - ข้อมูลอาจถูกเขียนลงในระบบไฟล์หลักหลังจากที่เมตาดาต้าของมันถูกส่งไปยังเจอร์นัลแล้ว ข่าวลือนี้เป็นตัวเลือกทรูพุตที่สูงที่สุด มันรับประกันความสมบูรณ์ของระบบแฟ้มภายในอย่างไรก็ตามมันสามารถอนุญาตให้ข้อมูลเก่าที่จะปรากฏในไฟล์หลังจากความผิดพลาดและการกู้คืนวารสาร

ดังที่ don_crissti ชี้ให้เห็นโหมดอื่น ๆ ไม่มี "อย่างไรก็ตาม"

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