การตั้งค่าสถานะ 'สิ่งกีดขวาง' หมายถึงอะไรใน Linux


20

คู่มือสำหรับตัวเลือก 'mount' mount คือ:

สิ่งกีดขวาง = 0 / สิ่งกีดขวาง = 1

สิ่งนี้ปิดใช้งาน / เปิดใช้งานการใช้อุปสรรคการเขียนใน jbd code.barrier = 0 ปิดการใช้งานอุปสรรค = 1 เปิดใช้งาน (ค่าเริ่มต้น) สิ่งนี้ต้องใช้สแต็ก IO ซึ่งสามารถรองรับอุปสรรคและหาก jbd ได้รับข้อผิดพลาดในการเขียนสิ่งกีดขวางมันจะปิดการใช้งานอุปสรรคอีกครั้งด้วยคำเตือน อุปสรรคในการเขียนบังคับให้มีการสั่งบันทึกบนดิสก์ที่เหมาะสมของการทำเจอร์นัลทำให้การเขียนดิสก์ที่ระเหยง่ายปลอดภัยที่จะใช้ หากดิสก์ของคุณมีแบตเตอรี่สำรองในทางใดทางหนึ่งการปิดใช้งานสิ่งกีดขวางอาจช่วยปรับปรุงประสิทธิภาพได้อย่างปลอดภัย

แต่ฉันไม่ทราบว่าประโยคที่ว่า " การสั่งซื้อวารสารบนแผ่นดิสก์ที่เหมาะสม " หมายถึงอะไร

สมมติว่าคำสั่งปกติ - เจอร์นัล 1, ข้อมูล 1; วารสาร 2 ข้อมูล 2.
ซึ่งผลการสั่งซื้อต่อไปนี้จะเกิดขึ้นถ้าผมตั้งbarrier=0?

  1. วารสาร 2 ข้อมูล 2; วารสาร 1 ข้อมูล 1;
  2. ข้อมูล 1, วารสาร 1; data 2, เจอร์นัล 2

git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/…น่าจะเป็นการอ่านที่คุ้มค่า
Håkan Lindqvist

1
หากคุณอ่านเกี่ยวกับการทำเจอร์นัลระบบไฟล์คุณจะรู้ว่ามันเป็นสิ่งสำคัญที่จะต้องเขียนเจอร์นัลก่อนจากนั้นจึงเรียกใช้งานเจอร์นัลเพื่อเขียนข้อมูลจริงลงในดิสก์ สิ่งกีดขวางทำให้แน่ใจว่าวารสารถูกเขียนก่อนที่จะถูกประหารชีวิต มิฉะนั้นวารสารเราไร้ประโยชน์
ctrl-alt-delor

@richard เมื่อใช้การตั้งค่าสถานะ "nobarrier" ในฮาร์ดไดรฟ์ BBWC จากนั้นดิสก์ไม่สามารถตรวจสอบให้แน่ใจว่ามีการเขียนบันทึกประจำวันก่อนที่ข้อมูลจะถูกดำเนินการเงื่อนไขนี้ไม่สำคัญหรือไม่?
leafonsword

ฉันไม่รู้พอที่จะรู้ว่ามันสำคัญ ฉันคิดว่ายิ่งแย่ลงมันก็แย่เหมือนไม่มีวารสาร แต่สิ่งที่ฉันได้อ่านมันไม่ได้เลวร้ายอะไร แต่ฉันไม่สามารถมองเห็นรายละเอียดปลีกย่อยได้ ฉันมีbarrier=1และมันก็เร็วพอสำหรับฉัน ถ้าคุณไม่ทำสิ่งที่หนักมากฉันจะทิ้งมันไว้ คุณมีหน่วยความจำบัฟเฟอร์ดังนั้นสิ่งต่างๆจะถูกเขียนออกมาเมื่อทำได้โดยไม่ทำให้แอปพลิเคชันช้าลง และความล่าช้าในการเขียนลงดิสก์น้อยมาก ถ้าคุณเห็นว่า ram ramers เร่งความเร็วเท่าใดให้เพิ่ม sync = 1 ในโฮมไดเร็กตอรี่ของคุณแล้วลองใช้ระบบของคุณสักวันหรือสองวัน
ctrl-alt-delor

คำตอบ:


15

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

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

ปัญหาคือดิสก์จำนวนมากมีแคชของตนเองซึ่งอาจเรียงลำดับการเขียนใหม่เช่นกัน ระบบไฟล์บางระบบจะสมมติว่าจะเกิดขึ้นและจะบังคับให้ดิสก์ล้างแคชในบางจุดเพื่อป้องกันสิ่งนี้และถูกเรียกwrite barriersในเช่น ext4 และ Linux โดยทั่วไป

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


1

จากบทความ LWN นี้ :

รหัสระบบไฟล์จะต้องก่อนที่จะเขียน [บันทึกประจำวัน] บันทึกการกระทำให้แน่ใจว่าข้อมูลทั้งหมดของธุรกรรมได้ทำลงในสมุดรายวัน การเขียนในลำดับที่เหมาะสมนั้นไม่เพียงพอ ไดรฟ์ร่วมสมัยรักษาแคชภายในขนาดใหญ่และจะจัดลำดับการดำเนินการใหม่เพื่อประสิทธิภาพที่ดีขึ้น ดังนั้นระบบไฟล์จะต้องแนะนำให้ดิสก์รับข้อมูลเจอร์นัลทั้งหมดลงบนสื่อบันทึกอย่างชัดเจนก่อนที่จะเขียนบันทึกการกระทำ หากบันทึกการกระทำได้รับการเขียนก่อนวารสารอาจเสียหาย ระบบย่อย block I / O ของเคอร์เนลทำให้ความสามารถนี้พร้อมใช้งานผ่านการใช้สิ่งกีดขวาง ในสาระสำคัญอุปสรรคห้ามการเขียนบล็อกใด ๆ หลังจากอุปสรรคจนกว่าบล็อกทั้งหมดที่เขียนก่อนที่จะมีอุปสรรคมุ่งมั่นที่จะสื่อ โดยใช้อุปสรรค

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