Home>>บทความ How-to>>QNAP User Guide>>ทำไม QNAP ยังเลือกใช้ EXT4 เป็นระบบแฟ้ม (File system) ของ NAS แทนที่จะเป็น Btrfs?
ผู้ชายผมสั้น ใส่แว่น มีหนวดเครา กำลังทำหน้างงๆ ครุ่นคิด ใช้มือขวาขึ้นมาจับที่คาง มีแบ็กกราวด์เป็นสองสีแบ่งด้านหลัง สีฟ้ามีข้อความว่า EXT4 สีแดงมีข้อความว่า Btrfs
QNAP User Guideบทความ How-to

ทำไม QNAP ยังเลือกใช้ EXT4 เป็นระบบแฟ้ม (File system) ของ NAS แทนที่จะเป็น Btrfs?

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

เข้าใจคำว่าระบบแฟ้ม (File System) กันก่อน

ระบบแฟ้ม หรือ File system มันถูกเรียกแบบนี้ก็เพราะหน้าที่ของมันก็คล้ายๆ กับชื่อเรียกครับ คือ มันทำหน้าที่เหมือนกับเป็นตู้เก็บแฟ้มเอกสาร ที่ทำหน้าที่เก็บข้อแฟ้มข้อมูลต่างๆ ของระบบคอมพิวเตอร์เอาไว้ มันทำหน้าที่ควบคุมว่าตัวระบบปฏิบัติการจะมีการเก็บข้อมูลอย่างไร เก็บข้อมูลจำพวก Metadata ยังไง ใครจะมีสิทธิเข้าถึงข้อมูลบ้าง ฯลฯ.

ภาพของตู้ใส่แฟ้มเอกสาร ที่มีแฟ้มเอกสารกระดาษเก็บอยู่จำนวนมาก
Image by Ulrike Mai from Pixabay

ในโลกของคอมพิวเตอร์มันมีระบบแฟ้มเยอะแยะมากมาย แต่บนโลกของ NAS ที่มักจะพัฒนาจากระบบปฏิบัติการ Linux ระบบแฟ้มหลักๆ ที่ใช้ๆ กันก็จะมี EXT4 ที่ QNAP เขาใช้ และ Btrfs ที่ Synology หรือ ASUSTOR เขาใช้กัน ซึ่งถ้าเราจะทำความเข้าใจในรายละเอียดละก็

EXT4 เป็นระบบแฟ้มตั้งต้น (Default) ของระบบปฏิบัติการ Linux ส่วนใหญ่ครับ ซึ่ง Distribution ยอดนิยมอย่าง Debian และ Ubuntu เนี่ย ก็จะใช้ EXT4 เป็นค่าตั้งต้น จุดเด่นหลักๆ ของระบบแฟ้มตัวนี้เลยคือเรื่องของประสิทธิภาพด้านความเร็วในการเขียนข้อมูลครับ

Btrfs มีวิธีเรียกหลายชื่อ บางคนเรียกว่า Better-FS (หมายถึง แฟ้มระบบที่ดีกว่า หรือ Better File System นั่นแหละ) บางคนเรียก B-Tree FS ก็ว่ากันไป พัฒนาโดย Oracle บนหลักการที่เรียกว่า Copy-on-write (COW) ซึ่งจะมีการทำสำเนาข้อมูลเอาไว้ก่อน ค่อยทำการแก้ไขข้อมูล ระบบแฟ้มตัวนี้ มีจุดเด่นอยู่ที่ด้านความปลอดภัยของข้อมูล เพราะมันจะมีความสามารถเช่น การซ่อมแซมไฟล์ด้วยตนเอง (File self-healing) ในกรณีที่ข้อมูลบางบิตมีความผิดพลาด มันก็จะตรวจจับได้ และแก้ไขข้อผิดพลาดได้โดยอัตโนมัติ นอกจากนี้ระบบแฟ้มนี้ก็ถูกออกแบบมาสำหรับการทำ Snapshot มากๆ ซึ่งสามารถทำการสำรองข้อมูลแบบ Versioning ได้โดยที่ไม่กินเนื้อที่ในสื่อบันทึกข้อมูลเพิ่มด้วยสำหรับข้อมูลที่ซ้ำ และสำคัญที่สุดคือ ในกรณีที่ใช้กับความจุเยอะมากๆ ระบบแฟ้ม Btrfs นี่รองรับขนาดพาร์ติชันใหญ่สุด 16 เอกซะไบต์ (1 เอกซะไบต์ มีขนาดเท่ากับ 1,000,000 เทระไบต์) และขนาดไฟล์ใหญ่สุดก็อยู่ที่ 16 เอกซะไบต์เช่นกัน ในขณะที่ EXT4 นี่พาร์ติชันใหญ่สุดได้ที่ 1 เอกซะไบต์ และขนาดไฟล์ใหญ่สุดก็คือ 16 เทระไบต์

เอ๊ะ! ดูๆ ไปแล้ว Btrfs มันก็ดีกว่า EXT4 นี่นา ทำไม QNAP ถึงเลือกใช้ EXT4 ไม่ใช้ Btrfs ล่ะ?

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

ระบบแฟ้ม Btrfs มันช้ากว่า ซึ่งอันนี้ผมไม่เถียงอะ เพราะเท่าที่ดูจากแนวคิดในการพัฒนาระบบแฟ้ม Btrfs จะเห็นว่ามันต้องทำสำเนาข้อมูลก่อนที่จะเขียน แถมมีเรื่องการสร้าง Checksum สำหรับตรวจสอบความถูกต้องของข้อมูลด้วย ซึ่งอะไรพวกนี้มันนำไปสู่ Latency ของ I/O ครับ วิดีโอด้านล่าง เป็นการทดสอบ NAS รุ่น 6-bay ของ QNAP และ Synology ซึ่งจะเห็นว่าความเร็วในการก็อปปี้ไฟล์ของ QNAP นั้น เร็วกว่าพอสมควรเลย

ประสิทธิภาพของสื่อบันทึกข้อมูลนับวันจะดีขึ้น ระบบแฟ้มก็ต้องไม่เป็นคอขวด ระบบแฟ้มแบบ Btrfs มีค่า I/O Latency ที่สูง ก็จะทำให้ไม่สามารถดึงประสิทธิภาพของฮาร์ดดิสก์ หรือ SSD ออกมาได้เต็มที่ กลายเป็นคอขวดไป

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

การทำ Snapshot ของ Btrfs มีความเสี่ยงสูงกว่าแนวทางของ QNAP เพราะ Snapshot ของระบบแฟ้ม Btrfs นั้นจะไม่สามารถแยก Volume ในการเก็บข้อมูลและ Snapshot ออกจากกันได้ ส่งผลให้เนื้อที่ที่ใช้เก็บ Snapshot นี่มันไปกินเนื้อที่สำหรับเก็บข้อมูลปกติของ NAS ด้วย ต้องบริหารจัดการเนื้อที่ให้ดี และหากมี Ransomware โจมตีเข้ามา ข้อมูลใน Volume โดนเข้ารหัสไป ตัว Snapshot ก็โดนตามไปด้วย เอามาใช้กู้ข้อมูลไม่ได้ ส่วนของ QNAP ระบบ Snapshot เขาเป็น Block-based เก็บข้อมูลไว้คนละ Volume กัน เวลาโดน Ransomware เข้ารหัสข้อมูลไป ตัว Snapshot ก็จะไม่โดนด้วย เราสามารถทำการกำจัด Ransomware ทิ้ง แล้วกู้ข้อมูลจาก Snapshot ชุดที่ไม่โดนเข้ารหัสกลับคืนมาได้

และถ้าอยากได้ประสิทธิภาพสูงกว่านี้ QNAP ก็มีรุ่นที่รองรับระบบแฟ้ม ZFS แล้ว

ในความเห็นของผม ผมเดาว่า QNAP เองก็มองว่าประโยชน์ที่ผู้ใช้งานทั่วไป ตลอดไปจนถึงผู้ใช้งานระดับองค์กรขนาดกลางและขนาดเล็กจะได้จากระบบแฟ้ม Btrfs ก็ยังไม่ได้มากเท่าไหร่ ไม่ว่าจะเป็นเรื่องของ Self-healing ของข้อมูล หรือการทำ Snapshot แต่ประโยชน์ที่ได้จากประสิทธิภาพด้านความเร็วในการเขียนข้อมูลมันชัดเจนกว่ามาก เขาถึงเลือกเน้นตรงนี้เป็นจุดขาย นอกจากนี้ ถึงจะบอกว่า Btrfs ดีกว่าเพราะขนาดของพาร์ติชันและขนาดของไฟล์มันได้ใหญ่กว่ามาก ณ ปัจจุบันผมก็ยังนึกไม่ออกว่าผู้ใช้งานทั่วไป หรือธุรกิจขนาดกลางและขนาดเล็ก ที่ไหน จะต้องใช้เนื้อที่ระดับเอกซะไบต์เลยครับ เอาจริงๆ แล้ว ไปให้ถึงระดับเพตะไบต์ (1,000 เทระไบต์) ให้ได้ก่อนเหอะ 555

และหากเป็นภาคธุรกิจขนาดใหญ่ ที่อาจจะไปได้ถึงขนาดนั้นจริงๆ QNAP เขาก็จะมี NAS รุ่นที่ใช้ระบบปฏิบัติการ QuTS Hero ที่มีระบบแฟ้มเป็น ZFS มาให้ใช้แทนครับ


ภาพประกอบปกบล็อกโดย People photo created by wayhomestudio – www.freepik.com

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.