ทำความรู้จัก และ เข้าใจ XFS File System

Published on July 4, 2025
ทำความรู้จัก และ เข้าใจ XFS File System

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

ทำความรู้จักกับ XFS

XFS คือหนึ่งใน file system ที่เสถียรตัวหนึ่งใน Linux และถูกออกแบบโดย Silicon Graphics Inc เปิดตัวครั้งแรกในปี 1994 บนระบบปฏิบัติการ IRIX (คล้าย UNIX) หลังจากนั้น ได้มีการนำไปใช้บน สังคมโอเพนซอร์ส ต่อมาในปี 2001 ได้มีการผนวกเข้ากับ Kernel หลังจากนั้น ก็ทำให้ distribution ต่างๆ ก็นำไปใช้งานหรือแนะนำให้กับผู้ใช้ และมีบาง distribution ที่ใช้งานเป็น default file system เช่น CentOS, RHEL และ Rocky Linux

เพราะ Silicon Graphics Inc ซึ่งในขณะนั้นเป็นบริษัทที่ขายฮาร์ดแวร์และระบบให้กับองค์กรขนาดใหญ่ เลยทำให้การออกแบบนั้น นั้นการรองรับข้อมูลปริมาณมหาศาล ทำให้ XFS นั้นขึ้นชื่อเรื่องประสิทธิภาพ นอกจากบน Linux Distribution ก็จะมี NAS ที่มีการนำไปใช้งานเหมือนกันเช่น Buffalo LinkStation & TeraStation, NetGear, LaCie, Iomega และอื่นๆ

สำหรับการพัฒนานั้น ก็มีหลักๆ อยู่ 3 ครั้ง จึงเป็นที่มา ว่าเป็นยุคๆ ของ XFS

XFS Gen 1 : มาจาก SGI XFS สำหรับทำงานบน IRIX OS ของ SGI ในยุคเริ่มแรก

XFS Gen 2 : เข้ามาทำงานบน Linux ได้แล้ว และ ทำงานบน NAS เพิ่มขึ้น

XFS Gen 3 : ส่วนนี้ทำงานอยู่บน Linux ปัจจุบันเป็นส่วนใหญ่ และ เรียกว่ามีการพัฒนาเพื่อให้เก็บ metadata เพื่อการตรวจสอบและยืนยันข้อมูลได้ดีขึ้น

XFS นั้นอนุญาตให้เราสร้าง volume ที่มีขนาดถึง 18 exabytes และ จัดการไฟล์ที่มีขนาดใหญ่ได้สูงสุดถึง 9 exabytes จำนวนของไฟล์ นั้นไม่จำกัด นอกจากนั้น ก็ยังจะสร้างข้ามดิสก์ได้อีกด้วย

มันทำงานในลักษณะทีเรียกว่า Journaling โดยจะมีการเก็บการเปลี่ยนแปลงก่อนที่จะทำการเขียนทับ ทำให้การันตีความสมบูรณ์ของไฟล์ได้ดีมาก

โครงสร้างพื้นฐานของ XFS File System

แทนที่ XFS จะทำการจัดสรรเนื้อที่ว่างเป็นบล็อกอิสระต่อกัน มันจะทำการรวมบล็อกเหล่านั้น เป็นหน่วยที่ต่อๆกัน โดยมีความยาวต่างกัน และ เราจะเรียกสิ่งเหล่านี้ว่า extent ไฟล์หนึ่งๆ อาจจะประกอบด้วยหลายๆ extent XFS นั้นจะพยายามทำให้ตัวเลขนั้นน้อยที่สุด และ พยายามที่จะรวม extent เข้าด้วยกัน เมื่อไฟล์นั้นใหญ่ขึ้น ข้อมูลเกี่ยวกับไฟล์ (metadata) จะถูกเก็บอยู่ใน inode และ inode เหล่านั้นจะถูกจัดสรรใน chunk โดยมีขนาด 64 ต่อตัว

file system นั้นสามารถแบ่งได้เป็น 3 ส่วนดังนี้

  • Data Section

เป็นส่วนที่เก็บ metadata ของ file system และ ดาต้าของผู้ใช้ไฟล์ เนื้อที่ว่างของหน่วยเก็บข้อมูลจะถูกแบ่งย่อยๆ เป็นกลุ่มที่เท่าๆกัน โดยมีขนาดน้อยสุดคือ 16MB และขนาดมากสุดคือ 1TB แต่ละกลุ่มที่ถูกแบ่ง มีการควบคุาอย่างอิสระ เพราะฉะนั้นการดำเนินการเกี่ยวกับไฟล์สามารถทำได้ในเวลาเดียวกันหรือพร้อมกัน ในส่วน extent ที่ว่างอยู่นั้น ถูกจัดการด้วยคู่ของ B+ tree

  • Log (journal) section

ส่วนนี้จะเก็บการแก้ไขไฟล์ metadata โดยมีส่วนที่เป็น header เก็บว่ามันถูกทำสำเนาอย่างไร ในกรณีที่เกิดปัญหาขึ้นเช่นไฟดับหรือว่าอย่างอื่น ก็จะมีการดึงข้อมูลจาก log ขึ้นมาดำเนินการต่อนั่นเอง

  • Real-time section

เป็นส่วนที่จะเก็บไฟล์แบบเรียลไทม์ ด้วยความต้องการ I/O พิเศษ ปกติแล้วก็จะถูกใช้งาน สตอเรจประสิทธิภาพสูง โดยมีการแบ่ง extent เป็นส่วนที่มีขนาดเท่าๆ กัน มีการใช้ index แบบ array สองมิติ

Veeam และ XFS

Veeam นั้นแนะนำว่า หากท่านใช้ Linux Repo ท่านควรใช้ file system แบบ XFS ทั้งนี้เพราะว่า ระบบไฟล์แบบนี้ จะทำให้การทำ synthetic full นั้นทำงานได้อย่างรวดเร็ว เพราะเป็นเหมือนการเปลี่ยนแปลง pointer แทนการเขียนไฟล์จริงๆ ซึ่งก็เป็นหลักการเดียวกับ ReFS จากค่าย Windows Server เพราะฉะนั้น หากท่านใช้ Repo ใน Veeam ไม่ว่าจะเป็น Repo ธรรมดาหรือว่า Hardened Repo ท่านควรเลือก XFS อย่างยิ่ง

มีปัญหาเรื่องการใช้งาน Linux, Veeam ติดต่อเราได้เลยที่ Line OA : @avesta.co.th หรืออีเมล์ [email protected]

 

 

ชุปชีวิต App เก่าของท่าน ด้วยพลังการ reverse-engineering ของ AI

Rebuild the Application by Reverse Engineering the Existing System แน่นอนว่าธุรกิจทุกรูปแบบได้ทำงานบนระบบคอมพิวเตอร์มาหลายสิบปี...

Read more »

Migrate VMware virtual machines to Hyper-V in WAC

Windows Admin Center หรือ WAC นั้นเป็นเครื่องมือในการบริหาร Windows Server ที่เข้ามาแทน Microsoft...

Read more »

Understanding UUID

UUID นั้นต้องเรียกได้ว่ามีข้อถกเถียงกันมานานมา ในการใช้ในการเขียนโปรแกรมและการออกแบบดาต้าเบส วันนี้เราจะไปศึกษาว่ามันคืออะไร และ ในการออกแบบฐานข้อมูลมันเข้ามามีบทบาทอย่างไร UUID คืออะไร UUID ย่อมาจาก...

Read more »

วันสิ้นสุด License Perpetual ของ VMware มาถึงแล้ว รีบย้ายไป Proxmox VE กันเถอะ

ตอนที่ VMware ประกาศว่าจะออก ESXi 9 มานั้น ทุกคนในวงการก็คิดว่า มันน่าจะมาพร้อมการอัพเดทบางส่วนเหมือนทุกๆ ครั้งที่ผ่านมาเช่น การเพิ่มการสนับสนุนฮาร์ดแวร์...

Read more »

Garage ทางเลือกในการแทนที่ MinIO

MinIO นั้นเป็นซอฟต์แวร์ที่จะทำให้เราสามารถเก็บข้อมูลในลักษณะที่เป็น Object ได้ และ เรียกว่าเป็นตัวเลือกที่มีอยู่ไม่มากนักในท้องตลาดหากท่านต้องการจะสร้าง Object Storage Server เพื่อใช้ภายในองค์กร...

Read more »

Time Range Booking System

Time Range Booking คืออะไร และทำไมธุรกิจยุคใหม่จำเป็นต้องใช้ ในยุคที่ลูกค้าคาดหวัง ความรวดเร็วและความแม่นยำ มากขึ้น ระบบจองแบบเดิมที่เลือกแค่วันที่หรือรอบเวลา (slot...

Read more »