BTRFS File System ไปทำความรู้จักกัน

Published on July 1, 2025
BTRFS File System ไปทำความรู้จักกัน

BTRFS นั้นเรียกว่าเป็นระบบ file system ที่ค่อนข้างใหม่ และ ก้าวหน้าตัวหนึ่ง เพราะว่ามีคุณสมบัติแบบ copy-on-write (COW) การทำ sub-volume การทำ snapshot การทำโควต้า ทั้งหมดก็เพื่อให้การจัดสรรไฟล์ และ การจัดการข้อมูลเป็นไปได้อย่างมีประสิทธิภาพ

แล้วอะไรล่ะคือ file system

สำหรับ file system นั้นก็คือรูปแบบการบริหารและจัดการไฟล์และโฟลเดอร์ในระบบดิจิทัลว่าจะเก็บอยู่บนสื่อเช่น ฮาร์ดดิสก์และ SSD ได้อย่างไร สำหรับ Linux เองนั้นต้องบอกว่ามีระบบไฟล์ หลากหลายตัว และตัวที่ได้รับความนิยมมากที่สุดตัวหนึ่งคือ Ext4 ซึ่งมีการใช้งานมาอย่างยาวนานและมีชื่อเสียงด้านความเสถียรและประสิทธิภาพ

แต่อย่างไรก็ตามสำหรับผู้ที่ต้องการใช้คุณสมบัติแบบ snapshot หรือว่า copy-on-write นั้นการใช้ Btrfs ก็อาจจะเป็นทางเลือกเพิ่มเติมขึ้นมาจาก Ext4

BTRFS File system

สำหรับ BTRFS นั้นเป็นตัวย่อของ B-tree file system ซึ่งเรียกว่าเป็นหนึ่งใน file system ยุคใหม่บน Linux ที่มีฟีเจอร์ที่ก้าวหน้าขึ้นไปอีกระดับ เพื่อช่วยรักษาความถูกต้องของข้อมูล สามารถขยายได้ง่าย และ รองรับจำนวนข้อมูลปริมาณมหาศาล Btrfs นั้นทำงานอยู่บนหลักการของ B-tree หรือการทำให้โครงสร้างแบบต้นไม้นั้นมีความสมดุลกัน

b-tree structure

b-tree จะถูกใช้งานในการทำ index หรือดัชนี และ จัดการคุณสมบัติของไฟล์ รวมถึง ข้อมูล โครงสร้างไดเร็กทอรี (folder) เพื่อให้การค้นหา การแทรก และ การลบทำได้ง่ายขึ้น และ เร็วขึ้น

แต่ละสาขาของโครงสร้าง (ใบ) นั้นจะเก็บบล็อกของข้อมูล โดยหลักการแล้วก็เหมือนกับ inode ในระบบ file system บางระบบ ซึ่งจะเก็บ metadata เกี่ยวกับไฟล์และไดเร็กทอรี เช่นสิทธิ์ เวลา และ ขนาดไฟล์

Copy-On-Write (COW)

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

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

copy-on-write

Sub-Volumes

ให้คุณคิดง่ายๆ ว่าเหมือนคุณมี file system ย่อยๆ บน file system หลักอีกระดับหนึ่งนั้นเอง แต่ละตัวนั้นก็จะมี inode เป็นของตัวเอง และ มันสามารถถูกใช้เป็น snapshot ได้ด้วย แต่อย่างไรก็ตาม มันก็ไม่ได้เหมือนกันทีเดียว เพราะว่ามันไม่ได้ logical disk/devices/volume อันเดียวกัน ซึ่งปกติแล้ว เป็นการ snapshot ที่ระดับ block แต่ subvolume ทำงานในระดับ file

Quota Group

Quota นั้นเป็นสิ่งที่เกิดมาพร้อมกับ โลกของ Unix/Linux เป็นเวลานาน เพราะว่าระบบนี้เป็นระบบที่มีผู้ใช้งานหลายคนแชร์ file system อันเดียวกัน เพราะฉะนั้น ทุกคนก็จำเป็นที่จะต้องมีโควต้าเป็นของตนเอง แต่อย่างไรก็ตามระบบโควต้าแบบเดิมนั้นทำงานกับ ไดเร็กทอรีไม่ค่อยดีนัก เพราะว่าเราจะต้องสร้าง partition สำหรับ ที่จะเอามาแบ่งโควต้าโดยเฉพาะ แต่ด้วย Btrfs เราสามารถให้มันมองเป็น subvolume ได้และทุกคนก็มีโควต้าเป็นของตนเอง ไม่ต้องสนใจเรื่องการสร้าง partition อีกต่อไป

โดยสรุป แล้ว Btrfs นั้นเป็นอีก file system หนึ่งที่น่าสนใจมากๆ เลยทีเดียว และ สำหรับผู้ใช้งาน Proxmox VE และ ต้องการสร้าง volume และใช้ Btrfs แน่นอนว่า ท่านสามารถใช้ snapshot ได้ โดยเฉพาะ ท่านที่มีเครื่องแบบ standalone

สำหรับผู้ที่สนใจ Proxmox VE บริษัท AVESTA คือตัวแทนจำหน่ายอย่างเป็นทางการ ออกแบบติดตั้ง และ สนับสนุนหลังการขายให้ท่านครบถ้วนเลย ติดต่อเราวันนี้ที่ Line OA : @avesta.co.th หรือเมล์ [email protected]

 

วิธีตั้งค่า Cloud-Init VM บน Proxmox VE เพื่อสร้างและกำหนดค่า VM โดยอัตโนมัติ

Cloud-Init คืออะไร Cloud-Init เป็นเครื่องมือมาตรฐานที่ช่วยให้ระบบสามารถตั้งค่าการเริ่มต้นของเครื่องเสมือน (Virtual Machine: VM) โดยอัตโนมัติทันทีที่ VM บูตขึ้นครั้งแรก...

Read more »

มอนิเตอร์ Proxmox VE ด้วย ProxMenux

วันนี้เราขอเสนอวิธีการมอนิเตอร์ Proxmox VE ของท่านอย่างง่ายด้วย ProxMenux จริงๆ ต้องบอกว่า ProxMenux นั้นมันไม่ได้เป็นโปรแกรมมอนิเตอร์ Proxmox...

Read more »

Memory overcommitment ทำงานอย่างไร

Memory Overcommitment หรืออีกชื่อหนึ่งคือ Memory Oversubscription นั้นเป็นเทคโนโลยีที่อนุญาตให้ผู้ใช้งานหรือผู้จัดการ hypervisor นั้นสามารถที่จะตั้งค่าหน่วยความจำของ VMs ทั้งหมด...

Read more »

CPU overcommit คืออะไรและมันทำงานอย่างไร

สำหรับผู้ที่ใช้งาน VMware ESXi มาก่อนนั้น ท่านอาจจะคุ้นเคยกับคำว่า CPU Overcommit เนื่องจากเป็นฟีเจอร์หนึ่งที่ถือว่าเป็นจุดขาย เพราะมันทำงานโดย การอนุญาตให้เรากำหนดจำนวน...

Read more »

การเลือกชนิด processor สำหรับ VM บน Proxmox VE

สำหรับผู้ที่เริ่มใช้งาน Proxmox VE นั้นอาจจะต้องพบกับสับสนหลายอย่าง และ หนึ่งในสิ่งที่เจอบ่อยๆ ก็คือ การเลือกชนิด processor หรือเรียกง่ายๆ...

Read more »

สิ่งที่มักเข้าใจผิดเมื่อพูดถึง Virtualization Platforms

Hypervisor Type 1 หรือเรียกว่า Bare-metal Hypervisor คือซอฟต์แวร์ที่รันโดยตรงบนฮาร์ดแวร์ของเครื่องเซิร์ฟเวอร์ โดยไม่ต้องผ่านระบบปฏิบัติการก่อน ทำให้มีประสิทธิภาพสูง เสถียร...

Read more »