Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

คู่มือสำหรับผู้เริ่มต้นสู่ Btrfs: ระบบไฟล์ Copy-on-Write ที่ทรงพลัง

ผู้ใช้ Linux บนเดสก์ท็อปส่วนใหญ่คงเคยได้ยินระบบไฟล์แบบ "Copy on Write" (CoW) เช่น ZFS หรือ Btrfs พร้อมกับข้อดีของระบบไฟล์ CoW เหล่านี้ การบีบอัด ฟังก์ชัน RAID ในตัว และความสามารถในการสร้างสแนปชอต ทำให้พวกมันเป็นระบบไฟล์ที่ทันสมัยและทันสมัยมาก แต่จะเริ่มต้นใช้งานหนึ่งในระบบไฟล์เหล่านี้อย่างไร? โดยที่ Btrfs เป็น FOSS สมบูรณ์และสร้างอยู่ใน Linux Kernel แล้ว นั่นจึงเป็นจุดเริ่มต้นที่ดี นี่คือคู่มือ Btrfs สำหรับผู้เริ่มต้นของเรา

การรองรับ Btrfs ภายใต้ Linux

หนึ่งในข้อดีของ Btrfs เทียบกับ ZFS คือ Btrfs อยู่ในเคอร์เนลแล้ว (in-tree) หมายความว่ามันอยู่ใน Linux Kernel อยู่แล้ว ไม่มีอะไรต้องติดตั้ง ไม่มีอะไรต้องกำหนดค่า - คุณสามารถใช้งานได้ทันที แต่ควรตรวจสอบการรองรับ Btrfs ของการกระจายต่างๆ เนื่องจากบางตัวดีกว่าอื่นๆ มันเป็นส่วนหนึ่งของ Mainline Kernel מאז 2.6.29 และเรากำลังเข้าใกล้ 5.10 แล้ว จึงน่าจะไม่มีปัญหา

การสร้างพาร์ติชัน Btrfs

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

เพื่อสร้างพาร์ติชัน Btrfs ให้ระบุดิสก์หรือพาร์ติชันของคุณ และใช้คำสั่ง mkfs.btrfs ระบบที่สาธิตมีดิสก์ 3 ตัว และฉันจะเลือก "/dev/vdb1" สำหรับตัวแรก คุณอาจต้องระบุตัวเลือก -f หากมีตารางพาร์ติชันอยู่แล้ว

เมื่อเสร็จสิ้น คุณจะต้องตัดสินใจว่าจะแม้าท์ซับวอลุ่มที่ไหน ขึ้นอยู่กับว่าคุณใช้ทำอะไร: หากสำหรับไลบรารีเกม คุณสามารถสร้างไดเรกทอรีใน "/home" ชื่อ Games และแม้าท์ที่ "~/Games" หากสำหรับโซลูชันแบ็กอัพ อาจต้องการแม้าท์ในไดเรกทอรี "/mnt" เพื่อความสะดวกในการจัดการ ฉันจะสร้างไดเรกทอรีชื่อ "/mnt/btrfs" เพื่อความเรียบง่าย

ฉันจะแม้ท์อุปกรณ์ Btrfs "/dev/vdb" ที่จุดแม้าท์นั้นด้วยคำสั่ง:

sudo mount -t btrfs /dev/vdb /mnt/btrfs

อุปกรณ์และจุดแม้าท์ที่เฉพาะเจาะจงจะแตกต่างกันไป ขึ้นอยู่กับว่าคุณทำอะไรอยู่พอดี

การสร้างซับวอลุ่ม Btrfs

ใน Btrfs ซับวอลุ่มคือเพียงไดเรกทอรีที่ Btrfs สามารถจัดการได้ด้วยวิธี CoW เฉพาะของมัน เพื่อทำเช่นนี้ คุณจะใช้คำสั่ง subvolume create ภายใต้ btrfs

btrfs subvolume create /mnt/btrfs/backups

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

การสร้างสแนปชอตของซับวอลุ่ม Btrfs

หนึ่งในส่วนที่ยอดเยี่ยมของ Btrfs คือความสามารถในการสร้างสแนปชอตในตัว มีเครื่องมือสำหรับสิ่งนี้ เช่น Snapper แต่คำสั่ง btrfs เองมีคำสั่งย่อย subvolume snapshot ที่ยอดเยี่ยม ฉันมีไฟล์ชื่อ "btrfs-test.txt" ในไดเรกทอรี "/mnt/btrfs/backups"

เพื่อสร้างสแนปชอตของไดเรกทอรีนี้ (หรือซับวอลุ่ม Btrfs ใดๆ) ไวยากรณ์คำสั่งคือ btrfs subvolume snapshot /PATH/TO/SUBVOLUME /PATH/TO/SUBVOLUME/SNAPSHOT สำหรับกรณีของฉัน ฉันจะรันคำสั่ง:

btrfs subvolume snapshot /mnt/btrfs/backups /mnt/btrfs/backups/snapshots/

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

คุณยังสามารถใช้แฟล็ก -r เพื่อทำให้สแนปชอตเป็นแบบอ่านอย่างเดียว (read-only) ซึ่งสำคัญสำหรับฟังก์ชัน btrfs send และ receive ที่เราจะครอบคลุมต่อไป

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

คุณสามารถใช้สิ่งนี้เพื่อสร้างสแนปชอตของระบบทั้งหมด และใช้คำสั่ง btrfs send และ btrfs receive เพื่อส่งไปยังอุปกรณ์ btrfs อื่น คำสั่งจะมีลักษณะดังนี้:

sudo btrfs send /mnt/btrfs/backups/ro-snapshot/ | btrfs receive /mnt/btrfs-send-test/

นี่ยอดเยี่ยมหากคุณมีอุปกรณ์ Btrfs บน NAS หรืออาร์เรย์ RAID ในระบบของคุณ และต้องการสร้างสแนปชอตของระบบปฏิบัติการและส่งไปยังที่นั่น คุณสามารถแม้ท์หนึ่งในสแนปชอตเหล่านั้นด้วยคำสั่ง mount ซึ่งจะให้คุณเข้าถึงข้อมูลนั้นอีกครั้ง

หากคุณเพลิดเพลินกับบทความนี้เกี่ยวกับ Btrfs โปรดตรวจสอบเนื้อหา Linux อื่นๆ ของเรา เช่น วิธีสร้าง PC ใหม่สำหรับ Linux เครื่องมือ 8 ชิ้นสำหรับสร้างดิสโทร Linux ของคุณเอง และเกม 12 อันดับนำสำหรับ Linux ในปี 2020