← กลับไปยังบทความทั้งหมด

ระบบไฟล์แบบคลัสเตอร์ (Clustered File System)

สรุปใจความสำคัญ

  • ระบบไฟล์แบบคลัสเตอร์ช่วยให้เซิร์ฟเวอร์หลายเครื่องสามารถเข้าถึงและจัดการข้อมูลชุดเดียวกันได้พร้อมกัน
  • Shared-disk File System เข้าถึงข้อมูลในระดับบล็อกผ่าน SAN และต้องมีกลไก Fencing เพื่อป้องกันข้อมูลเสียหาย
  • Distributed File System เข้าถึงข้อมูลผ่านโปรโตคอลเครือข่ายและมุ่งเน้นความโปร่งใส (Transparency) เพื่อให้ใช้งานได้เหมือนระบบไฟล์ท้องถิ่น
  • ระบบไฟล์แบบขนาน (Parallel File Systems) เป็นประเภทย่อยของระบบไฟล์แบบคลัสเตอร์ที่เน้นการกระจายข้อมูลเพื่อประสิทธิภาพและความเร็วในการอ่านเขียนสูง

ระบบไฟล์แบบคลัสเตอร์ (Clustered File System หรือ CFS) คือระบบจัดการไฟล์ที่ถูกออกแบบมาเพื่อให้เซิร์ฟเวอร์หลายเครื่อง (Nodes) สามารถเข้าถึงและใช้งานข้อมูลชุดเดียวกันได้พร้อมกัน โดยการติดตั้ง (Mount) ระบบไฟล์นี้บนเซิร์ฟเวอร์ทุกเครื่องในคลัสเตอร์ ซึ่งช่วยให้ระบบมีความยืดหยุ่นสูง มีความน่าเชื่อถือ และสามารถขยายขนาดการจัดเก็บข้อมูลได้ง่ายขึ้น

ประเภทของระบบไฟล์แบบคลัสเตอร์

แนวทางการสร้างคลัสเตอร์มีหลายรูปแบบ แต่ระบบไฟล์แบบคลัสเตอร์ที่สำคัญสามารถแบ่งออกเป็นสองประเภทหลักตามลักษณะการเข้าถึงข้อมูล ดังนี้:

1. ระบบไฟล์แบบใช้ดิสก์ร่วมกัน (Shared-disk File System)

ระบบไฟล์ประเภทนี้ใช้เครือข่ายจัดเก็บข้อมูล (Storage Area Network หรือ SAN) เพื่อให้คอมพิวเตอร์หลายเครื่องสามารถเข้าถึงดิสก์ได้โดยตรงในระดับบล็อก (Block-level access) โดยมีลักษณะการทำงานที่สำคัญดังนี้:

  • การควบคุมการเข้าถึง: การแปลงคำสั่งจากระดับไฟล์ (File-level) ที่แอปพลิเคชันเรียกใช้ ไปเป็นคำสั่งระดับบล็อก (Block-level) ที่ SAN เข้าใจ จะเกิดขึ้นที่โหนดลูกข่าย (Client node)
  • การจัดการความสอดคล้อง: มีกลไกควบคุมการทำงานพร้อมกัน (Concurrency Control) เพื่อให้ทุกโหนดเห็นข้อมูลในรูปแบบที่สอดคล้องกัน ป้องกันการเขียนทับข้อมูลหรือการสูญเสียข้อมูลเมื่อมีการเข้าถึงไฟล์เดียวกันในเวลาเดียวกัน
  • กลไกการป้องกัน (Fencing): ใช้เพื่อป้องกันไม่ให้โหนดที่เกิดความล้มเหลวหรือขาดการติดต่อกับโหนดอื่นในคลัสเตอร์ เข้าถึงข้อมูลในดิสก์ ซึ่งอาจนำไปสู่การเกิดข้อมูลเสียหาย (Data Corruption)

โปรโตคอลระดับบล็อกที่มักใช้ในระบบนี้ ได้แก่ SCSI, iSCSI, Fibre Channel, InfiniBand และ ATA over Ethernet (AoE)

2. ระบบไฟล์แบบกระจาย (Distributed File System)

ระบบไฟล์แบบกระจายจะไม่ใช้การเข้าถึงดิสก์ระดับบล็อกร่วมกัน แต่จะสื่อสารผ่านโปรโตคอลเครือข่าย (Network Protocol) ซึ่งมักถูกเรียกว่า ระบบไฟล์เครือข่าย (Network File System) โดยมีความแตกต่างจาก ระบบจัดเก็บข้อมูลแบบกระจาย (Distributed Data Store) ตรงที่ระบบไฟล์แบบกระจายจะอนุญาตให้ผู้ใช้เข้าถึงไฟล์ผ่านอินเทอร์เฟซและรูปแบบเดียวกับไฟล์ในเครื่องท้องถิ่น (เช่น การ mount, การลิสต์รายชื่อไดเรกทอรี และการอ่าน/เขียนข้อมูลตามตำแหน่งไบต์)

เป้าหมายในการออกแบบระบบไฟล์แบบกระจาย

ระบบเหล่านี้มุ่งเน้นที่ "ความโปร่งใส" (Transparency) เพื่อให้ผู้ใช้หรือโปรแกรมไม่รู้สึกถึงความซับซ้อนเบื้องหลัง ดังนี้:

  • ความโปร่งใสในการเข้าถึง (Access Transparency): ผู้ใช้เข้าถึงไฟล์กระจายได้เหมือนกับไฟล์ในเครื่องตนเอง
  • ความโปร่งใสทางตำแหน่ง (Location Transparency): มีการใช้ชื่อเรียกไฟล์ (Namespace) ที่สอดคล้องกัน โดยชื่อไฟล์จะไม่ระบุว่าไฟล์นั้นถูกเก็บไว้ที่เซิร์ฟเวอร์เครื่องใด
  • ความโปร่งใสในการทำงานพร้อมกัน (Concurrency Transparency): ทุกโหนดเห็นสถานะของระบบไฟล์ในรูปแบบเดียวกัน แม้จะมีการแก้ไขไฟล์พร้อมกัน
  • ความโปร่งใสต่อความล้มเหลว (Failure Transparency): ระบบยังคงทำงานได้ปกติแม้เซิร์ฟเวอร์บางเครื่องจะล้มเหลว
  • ความสามารถในการขยายตัว (Scalability): ระบบสามารถรองรับการเพิ่มจำนวนเครื่องจากหลักหน่วยไปจนถึงหลักหมื่นเครื่องได้อย่างมีประสิทธิภาพ

ประวัติและการพัฒนา

การเข้าถึงไฟล์ข้ามเครื่องเริ่มมีมาตั้งแต่ทศวรรษ 1960 ผ่านระบบ Incompatible Timesharing System ต่อมาในทศวรรษ 1970 เริ่มมีการพัฒนาเซิร์ฟเวอร์ไฟล์มากขึ้น จนกระทั่งในปี 1976 Digital Equipment Corporation ได้สร้าง File Access Listener (FAL) ซึ่งเป็นระบบไฟล์เครือข่ายที่แพร่หลายเป็นครั้งแรก และในปี 1984 Sun Microsystems ได้เปิดตัว Network File System (NFS) ซึ่งเป็นระบบไฟล์เครือข่ายบนพื้นฐาน Internet Protocol (IP) ที่ได้รับความนิยมอย่างสูง นอกจากนี้ยังมีระบบอื่น ๆ เช่น Andrew File System (AFS), Apple Filing Protocol (AFP) และ Server Message Block (SMB/CIFS)

ตัวอย่างระบบไฟล์แบบคลัสเตอร์ที่สำคัญ

ประเภทตัวอย่างระบบ
Shared-diskVMware VMFS, Red Hat Global File System (GFS2), IBM General Parallel File System (GPFS), Oracle Cluster File System (OCFS), Microsoft Cluster Shared Volumes (CSV)
DistributedNFS, SMB/CIFS, AFS, Lustre, GlusterFS

คำถามที่พบบ่อย

ระบบไฟล์แบบคลัสเตอร์แตกต่างจากระบบไฟล์ปกติอย่างไร?

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

Shared-disk และ Distributed File System ต่างกันอย่างไร?

Shared-disk จะให้ทุกโหนดเข้าถึงดิสก์ก้อนเดียวกันโดยตรงในระดับบล็อก (Block-level) ผ่าน SAN ในขณะที่ Distributed จะสื่อสารผ่านเครือข่ายโดยใช้โปรโตคอล เช่น NFS หรือ SMB เพื่อขอข้อมูลจากเซิร์ฟเวอร์ที่เก็บไฟล์นั้นไว้

กลไก Fencing ใน Shared-disk File System คืออะไร?

Fencing คือการตัดการเชื่อมต่อของโหนดที่ทำงานผิดปกติออกจากระบบจัดเก็บข้อมูล เพื่อป้องกันไม่ให้โหนดนั้นเขียนข้อมูลลงในดิสก์ในขณะที่โหนดอื่นกำลังทำงานอยู่ ซึ่งจะช่วยป้องกันการเกิด Data Corruption