การใช้เหตุผลเบื้องหลังการโฮสต์อิมเมจดิสก์เสมือนบนระบบไฟล์ BTRFS


14

ฉันได้อ่านเกี่ยวกับ BTRFS และ ZFS มาระยะหนึ่งแล้วและในขณะที่ฉันรู้สึกซาบซึ้งในประโยชน์ของ CoW เมื่อโฮสต์ไฟล์สำคัญ ๆ ฉันกำลังงงงวยกับปัญหาต่อไปนี้:

เนื่องจาก ZFS และ BTRFS ดูเหมือนว่าจะมีประสิทธิภาพลดลงเมื่อโฮสต์ไฟล์ขนาดใหญ่ที่มีการเขียนแบบสุ่ม (เช่น QCOW2, VDIs, ฯลฯ ) ทำไมบางคนจึงใช้ BTRFS เป็น FS ของตัวเลือกในการโฮสต์ VM

ฉันรู้ว่าในกรณี o BTRFS คุณสามารถเลือกปิด CoW โดยใช้ chattr หรือตัวเลือก nodatacow mount ลดการย่อยสลายที่กำหนดโดยการกระจายตัวและ CoW ...

อย่างไรก็ตามตามRedhatสิ่งนี้ยัง"ปิดใช้งานการตรวจสอบการตรวจสอบข้อมูลและข้อมูลเมตาทำให้ความสมบูรณ์ของข้อมูลลดลง" (นอกเหนือจากการบีบอัดที่หายไปและ CoW ที่ต้องการตามธรรมชาติ)

ตามที่ฉันถาม: เหตุใดจึงมีคนเลือก BTRFS มากกว่าให้พูด XFS ผ่าน LVM บน MD RAID


โปรดทราบว่าความถูกต้องของข้อมูลที่ลดลงจะเหมือนกับการใช้ระบบไฟล์อื่น ๆ ส่วนใหญ่เช่น ext4 หรือ xfs ซึ่งไม่เก็บ checksums เลยและไม่สามารถตรวจจับความเสียหายได้
พื้นฐาน 6

1
@ basic6 ฉันรู้ ดังนั้นคำถาม
Andre de Miranda

คำตอบ:


13

หากกรณีการใช้งานหลักคือการจัดเก็บอิมเมจ VM หรือฐานข้อมูลและคุณไม่สนใจที่จะยอมรับปัญหาประสิทธิภาพที่อาจเกิดขึ้นเพื่อรับข้อได้เปรียบด้านความสมบูรณ์ของข้อมูลของ btrfs ฉันไม่สามารถคิดได้ว่าทำไมคุณถึงต้องการเลือก btrfs มากกว่า xfs หรือ ext4

การปิดใช้งาน copy-on-write สำหรับเพียงแค่อิมเมจไดเร็กทอรี VM (โดยใช้ chattr + C) ส่วนใหญ่เกี่ยวข้องกันเมื่อจัดเก็บอิมเมจ VM เป็นหนึ่งในการใช้งานที่คุณมีสำหรับระบบไฟล์ของคุณ จากนั้นจะสะดวกมากเพียงแค่ปิดการใช้งาน copy-on-write สำหรับไดเรกทอรีเดียวนั้น แต่ยังคงรักษาข้อดีทั้งหมดของ btrfs สำหรับส่วนที่เหลือของระบบไฟล์


เหตุผลที่จะมีดิสก์โดยไม่มีตารางพาร์ติชัน BTRFS อนุญาตให้ grub / etc ฝังลงในนั้นโดยตรง XFS / EXT4 / etc ไม่ได้ฉันกำลังมองหาระบบไฟล์ที่อนุญาตให้เป็น CoW ของ BTRFS ที่ด้านบนของ BTRFS ที่ฉันใช้เพื่อเก็บ VM อิมเมจไม่เหมาะ (ฉันใช้สแน็ปช็อตและ btrfs-RAID10 บนโฮสต์) และ chattr + C ดูเหมือนจะเป็นตัวเลือกเดียวของฉันนอกการใช้ตารางพาร์ติชัน เดาฉันจะใช้ตารางพาร์ทิชัน
อเล็กซ์

5

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

เมื่อเปรียบเทียบกับ ZFS แล้ว BTRFS เป็นโซลูชั่นที่ง่ายกว่าและรองรับ Linux ได้ดีกว่า ข้อเสียที่สำคัญคือมันไม่ได้ปรับขนาดด้วย (เมื่อเพิ่มดิสก์จำนวนมาก) และไม่มีฟีเจอร์ชุดเดียวกัน

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

ในแง่ของการสนับสนุน Copy On Write (COW) XFS สนับสนุนประสิทธิภาพมากกว่าการเป็น COW อย่างเคร่งครัด Ie XFS มีเมตาดาต้าที่ดีมากและคุณสมบัติการทำเจอร์นัลในแง่ของความสามารถในการขยายและโดยทั่วไปจะไม่เขียนทับข้อมูลไฟล์ที่เขียนโดยมีข้อยกเว้นว่าจะอนุญาตให้บล็อกดิสก์ที่มีอยู่เขียนทับได้มากเกินไป . นี่อาจเป็นสิ่งที่ดีในกรณีของ VM เนื่องจากการจัดสรรดิสก์ของคุณในตอนแรกอาจต่อเนื่องกันได้และในกรณีนั้นจะยังคงติดกันตลอดช่วงอายุของ VM


5

การใช้ BTRFS แม้จะมีnodatacowและเหมือนกันคุณก็ยังสามารถสร้างสแน็ปช็อตของข้อมูลด้วยตนเองด้วยCoWพฤติกรรมดังนั้นจึงรวดเร็วและใช้หน่วยความจำไม่มาก นอกจากนี้สแน็ปช็อตเหล่านั้นมีความยืดหยุ่นมากกว่าการใช้ LVM เพราะคุณไม่จำเป็นต้องจองพื้นที่ว่างใต้ระบบไฟล์ซึ่งระบบไฟล์ไม่ได้รับรู้และไม่สามารถใช้งานได้หากไม่ต้องการเลย เช่นเดียวกับ ZFS สแน็ปช็อตสามารถส่งและรับผ่านเครือข่ายซึ่งอาจช่วยให้คุณปรับปรุงกลยุทธ์การสำรองข้อมูลของคุณ ดังนั้นแม้จะมีnodatacowBTRFS ดูเหมือนว่าเหนือกว่าการใช้ LVM


3

หลังจากทำงานกับแพลตฟอร์มคลาวด์คอมพิวติ้งฉันได้นำมุมมองของเครื่องเสมือนมาเป็นที่เก็บข้อมูลและการทำงานที่ vm จริงมีความสำคัญน้อยกว่า

ฉันควรมีกระบวนการสำรองข้อมูลคืนค่าและติดตั้งใช้งานได้ดีและไม่ต้องกังวลเกี่ยวกับความสมบูรณ์ของ VM และประสิทธิภาพการทำงานเพิ่มเติม

เช่นไปที่ JFS / XFS / EXT4 ผ่าน LVM บน MD-raid มากกว่า BTRFS ตรวจสอบให้แน่ใจว่าฉันไม่เคยเก็บข้อมูลใด ๆ ที่ไม่ได้ทำการสำรองข้อมูลไว้บน VM เป็นระยะเวลานานกว่านี้ ... และมีสคริปต์และขั้นตอนเพื่อให้สามารถติดตั้ง VM ใหม่ได้ภายในเวลาอันสมควร

แต่นี่เป็นสถานการณ์จำลองสำหรับทดลอง / ทดลองมากกว่าสิ่งอื่นใด

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