ReFS ระบบไฟล์ตัวใหม่ ผู้สืบทอดของ NTFS, เริ่มใช้ใน Windows Server 8

by mk
18 January 2012 - 13:09

ก่อนหน้านี้เราเคยเห็น ข่าวลือ เรื่องนี้มาก่อนแล้ว ล่าสุดบล็อก Building Windows 8 ของไมโครซอฟท์เพิ่งออกมาเปิดเผยข้อมูลของมันอย่างเป็นทางการ

อธิบายแบบสั้นๆ คือ Windows 8 จะมีระบบไฟล์ (file system) แบบใหม่ที่เป็นภาคต่อของ NTFS ที่ใช้กันมานาน ระบบไฟล์ตัวใหม่มีชื่อเรียกว่า Resilient File System หรือตัวย่อ ReFS ซึ่งมีคุณสมบัติเด่นที่ความเหนียวแน่น (resilence) ของมันในการรับมือกับปัญหาระบบไฟล์พัง

ReFS จะเสร็จพร้อมใช้ใน Windows 8 แต่ไมโครซอฟท์พยายามปรับตัวแบบค่อยเป็นค่อยไป ดังนั้นในขั้นแรก มันจะถูกใช้กับ Windows Server 8 ก่อนเฉพาะในพาร์ทิชันเก็บข้อมูล จากนั้นในอนาคตข้างหน้า ไมโครซอฟท์จะเพิ่มมันเข้ามาใน Windows Client รุ่นหน้า (อาจจะเป็น Windows 9) ในฐานะระบบไฟล์สำหรับเก็บข้อมูลเช่นกัน และสุดท้ายมันจะเข้ามาทดแทน NTFS อย่างสมบูรณ์ในพาร์ทิชันที่วินโดวส์ติดตั้งอยู่ (boot partition)

การใช้โค้ดร่วมกับ NTFS

จุดเด่นของไมโครซอฟท์ในช่วงหลังคือความเข้ากันได้ (compatibility) ซึ่งในกรณีของ ReFS ก็ไม่ต่างกันนัก ไมโครซอฟท์ต้องการให้ ReFS ทำงานร่วมกับระบบเดิมๆ ที่ใช้ NTFS ได้ทันที แนวทางการออกแบบของไมโครซอฟท์จึงยกโค้ดที่เกี่ยวข้องกับ file system API (เช่น การขอระบบไฟล์ให้อ่าน-เขียน-ลบไฟล์) ของ NTFS มาเลย แล้วเปลี่ยนแปลงเฉพาะเอนจินฐานล่างที่จัดการกับไฟล์บนดิสก์

แนวทางการออกแบบนี้ถือว่าน่าสนใจมาก เพราะความเข้ากันได้กับระบบเก่าอยู่ในระดับสูง (ไม่ทั้งหมด 100%) และโค้ดส่วน file system API เดิมถูกพัฒนามานาน ผ่านการทดสอบมาเยอะ บั๊กย่อมน้อยกว่าการเขียนใหม่ทั้งหมด

คุณสมบัติของ ReFS

สิ่งที่เพิ่มเข้ามาใน ReFS ส่วนมากเป็นการแก้ปัญหาเรื่องระบบไฟล์พัง ป้องกันไฟล์มีปัญหา โดยคงฟีเจอร์หลายๆ อย่างของ NTFS อย่าง BitLocker, symbolic links, ACL, file ID ฯลฯ มาด้วย

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

  • ตัว storage engine เก็บข้อมูลแบบ B+ tree ที่ได้รับความนิยมในระบบไฟล์ยุคใหม่
  • ตรวจสอบความถูกต้องของข้อมูลผ่านการ checksum (ฟีเจอร์ของ journaling file system)
  • มี checksum แยกของไฟล์ (integrity stream) มาให้เลือกใช้ (ฟีเจอร์นี้จะไม่เปิดเป็น default)
  • ใช้วิธีการเขียนไฟล์แบบ copy on write หรือ allocate-on-write ซึ่งจะเขียนไฟล์บนบล็อคใหม่แทนการเขียนทับบนบล็อคเก่า ช่วยแก้ปัญหาข้อมูลเก่าพังเวลาเขียนไฟล์แล้วมีปัญหาได้
  • มันถูกออกแบบมาให้ทำงานร่วมกับ Storage Spaces ซึ่งเป็นฟีเจอร์ใหม่อีกอย่างหนึ่งของ Windows 8 (อธิบายแบบสั้นๆ มันคือ Software RAID เวอร์ชันของไมโครซอฟท์ แบบละเอียดอ่านที่ Storage Spaces) ซึ่งช่วยสำรองระบบไฟล์บนดิสก์อีกตัวหนึ่ง และซ่อมกลับมาได้เมื่อดิสก์ตัวใดตัวหนึ่งมีปัญหา
  • ในกรณีที่ทุกอย่างสิ้นหวังจริงๆ มีดิสก์สองตัวไฟล์ก็ยังพัง การกู้ระบบคืนก็ถูกออกแบบมาให้ง่ายและเร็ว โดย ReFS จะดึงข้อมูลที่มีปัญหาออกจากระบบไฟล์ เพื่อให้ระบบโดยรวมทำงานต่อไปได้ก่อน ตรงนี้ทำได้เร็วและไม่ต้องรอกู้ไฟล์ทั้งระบบ ซึ่งเวลาเป็นเรื่องสำคัญในกรณีของเซิร์ฟเวอร์
  • รองรับดิสก์ขนาดใหญ่ ไฟล์จำนวนมากๆ โดยระบบไฟล์ขนาดใหญ่ที่สุดที่รองรับคือ 2^78 ไบต์ (ซึ่งวินโดวส์แบบ 64 บิตสามารถอ้างได้แค่ 2^64 ไบต์)

ข้อมูลเชิงเทคนิค

ยกตารางของไมโครซอฟท์มาเลยนะครับ

Attribute

Limit based on the on-disk format

Maximum size of a single file

2^64-1 bytes

Maximum size of a single volume

Format supports 2^78 bytes with 16KB cluster size (2^64 * 16 * 2^10). Windows stack addressing allows 2^64 bytes

Maximum number of files in a directory

2^64

Maximum number of directories in a volume

2^64

Maximum file name length

32K unicode characters

Maximum path length

32K

Maximum size of any storage pool

4 PB

Maximum number of storage pools in a system

No limit

Maximum number of spaces in a storage pool

No limit

ประเด็นอื่นๆ

  • Windows Server 8 ไม่สามารถบูตจากพาร์ทิชันที่เป็น ReFS ได้
  • ReFS ไม่สามารถใช้ได้กับ removable media
  • ยังไม่รองรับการแปลง NTFS เป็น ReFS ได้โดยตรง เนื่องจากข้อมูลปัจจุบันมีขนาดใหญ่และอาจมีปัญหาในการแปลง ไมโครซอฟท์จึงจงใจให้ใช้วิธีก็อปปี้ข้อมูลจาก NTFS มาลง ReFS แทน

รายละเอียดที่เหลืออ่านกันเองตามลิงก์ เหมาะมากสำหรับคนที่สนใจเรื่องการออกแบบระบบไฟล์ครับ

ที่มา - Building Windows 8

Blognone Jobs Premium