Cluster File System
จากอดีตจนถึงปัจจุบัน ไม่ว่าระบบการประมวลผลของคอมพิวเตอร์จะก้าวหน้ารวดเร็วไปสักแค่ใหนก็ตาม แต่ก็มักจะเกิดปัญหาคอขวดในการรับส่งข้อมูลของระบบจัดเก็บข้อมูล อันเนื่องมาจากระบบจัดเก็บข้อมูล โดยเฉพาะระบบคลัสเตอร์ต่าง ๆ อันเนื่องมาจากระบบคอมพิวเตอร์คลัสเตอร์ประกอบด้วยเครื่องคอมพิวเตอร์จำนวนมากที่ช่วยกันประมวลผลข้อมูล ซึ่งเครื่องเหล่านี้จะต้องอ่านเขียนข้อมูลกับไฟล์เซิร์ฟเวอร์ ซึ่งอาจเป็นเครื่อง ๆ เดียว แต่ต้องรองรับการเขียนข้อมูลจากระบบคลัสเตอร์ทั้งระบบ ทำให้เกิดปัญหาความล่าช้าในการอ่านเขียนข้อมูลเกิดขึ้นอันเนื่องมาจากการแย่งกันเขียนข้อมูลของเครื่องในระบบคลัสเตอร์และ I/O ของเครื่องไฟล์เซิร์ฟเวอร์ที่มีต่ำกว่าข้อมูลที่จะเขียนลงไฟล์เซิร์ฟเวอร์ทำให้เกิดปัญหาคอขวดในการรับส่งข้อมูลเกิดขึ้น หรือบางครั้งเราอาจจะต้องการ พื้นที่ในการจัดเก็บไฟล์ที่ใหญ่กว่าที่ไฟล์ซิสเต็มส์ปกติจะสามารถสร้างขึ้นมาได้ หรือเราอาจจะต้องการรวมพื้นที่จากแต่ละเครื่องมารวมกันและสร้างพื้นที่จัดเก็บ ข้อมูลขนาดใหญ่เพียงก้อนเดียว
ระบบไฟล์แบบคลัสเตอร์ จึงเกิดขึ้นเพื่อแก้ไขปัญหาดังกล่าว โดยใช้หลักการเปลี่ยนจากไฟล์เซิร์ฟเวอร์เพียงเครื่องเดียวเป็นใช้หลายเครื่องมาช่วยกัน อ่าน/เขียน ข้อมูล เราจึงเรียกระบบนี้ว่า Cluster File System โดยหลักการทำงานของคลัสเตอร์ไฟล์ซิสเต็ม คือ ใช้หลักการกระจายไฟล์และ แบ่งไฟล์กระจายไปเก็บที่เครื่องหลาย ๆ เครื่อง ในการอ่านเขียนไฟล์จากเครื่องคอมพิวเตอร์จำนวนมาก จะติดต่อไปยังกลุ่มเครื่องให้บริการไฟล์เซิร์ฟเวอร์ ซึ่งประกอบด้วยไฟล์เซิร์ฟเวอร์หลาย ๆ เครื่องแทน ทำให้ระบบภาระงานในการอ่านและเขียนไฟล์นั้นถูกกระจายกันออกไปยังเครื่องไฟล์หลาย ๆ เครื่อง แทนที่ภาระงานนั้นจะตกอยู่กับเพียงเครื่อง ๆ เดียว ทำให้ระบบสามารถให้บริการได้ดีขึ้น

lustre นั้นเป็นระบบ Cluster File System ระบบหนึ่งที่นิยมใช้กันแพร่หลายในระบบสมรรถนะสูงปัจจุบัน โดย lustre นั้นมาจากคำผสมของคำว่า linux และ cluster โดยกว่า 40% ของ 100 ระบบคอมพิวเตอร์คลัสเตอร์ที่มีประสิทธิภาพสูงที่สุดนั้น ล้วนใช้ lustre ทั้งนั้น ซึ่งในปัจจุบันมีหลายหน่วยงาน ในหลากหลายวงการ ไม่ว่าจะเป็น วงการอุตสาหกรรม พลังงาน การเงิน การศึกษา โดย lustre นั้น ถูกออกแบบมาให้มีประสิทธิภาพในการทำงาน เพื่อรองรับคุณสมบัติระบบการกระจายข้อมูล สามารถรองรับการขยายตัวของระบบได้ สามารถรองรับลูกข่ายที่จะเข้ามาใช้งานในระบบได้เป็นจำนวนมาก
ข้อดีของ lustre
- จัดการ I/O ได้อย่างมีประสิทธิภาพ ทั้งในด้านการจัดการข้อมูลแบบต่อเนื่อง และแบบกระจาย
- มีเสถียรภาพใหนการทำงาน มีการตรวจจับความผิดพลาดและแก้ไขโดยอัตโนมัติ
- รองรับการขยายตัวของระบบได้ง่าย รองรับลูกข่ายได้มาก
- รองรับการเข้าถึงระบบไฟล์ในระดับ petabytes
- การพัฒนาของ lustre เป็นการพัฒนาแบบ open source
- รองรับมาตรฐานเปิดของระบบเครือข่าย และมาตรฐาน POSIX
ส่วนประกอบของ lustre
lustre นั้นประกอบไปด้วยส่วนต่าง ๆ ที่สำคัญคือ
- Metadata Server (MDS) เป็นเครื่องเซิร์ฟเวอร์ที่สร้างข้อมูลเมตาดาต้าไปจัดเก็บยังหน่วจัดเก็บข้อมูล (MDTs) ทำหน้าที่ จัดการ การอ่านเขียนข้อมูล และจัดการไดเรคทอรีในระบบไฟล์
- Metadata Targets (MDT) เป็นหน่วยจัดเก็บข้อมูลของเมตาดาต้า เช่น ชื่อไฟล์, ไดเรกทอรี, สิทธิ์ และรูปแบบไฟล์ เป็นต้น บนเครื่อง MDS
- Object Storage Servers (OSS) เป็นเครื่องเซิร์ฟเวอร์ที่เชื่อมต่อกับหน่วยจัดเก็บข้อมูลย่อย (OSTs) ทำหน้าที่ให้บริการไฟล์ I/O และการร้องขอผ่านเครือข่าย
- Object Storage Target (OST) เป็นหน่วยจัดเก็บไฟล์ข้อมูลบนหนึ่งหรือหลาย ๆ เครื่อง OSS
- Lustre clients เป็นเครื่องไคลเอ็นท์ที่ร้องขอการอ่านเขียนไฟล์บนระบบ Lustre โดยเครื่องไคลเอ็นท์ต้องทำการเชื่อมต่อมายังเครือง MDS ก่อน

หลักการทำงานของ lustre
หลักาการทำงานชอง lustre โดยคร่าว ๆ จะเป็นดังนี้
- เครื่อง client จะทำการร้องขอข้อมูลที่ต้องการไปที MDS
- MDS ค้นข้อมูลตำแหน่งไฟล์ที่ร้องขอมาว่าเก็บไฟล์ไว้ที่เครื่อง OSS ใดบ้าง
- OSS ส่งไฟล์ข้อมูลกลับไปยัง Client โดยตรง
ซึ่งในการทำงานจริง ๆ นั้น เราจะ mount disk จากเครื่อง MDS โดยเห็นเป็น disk ก้อนเดียว เสมือนเป็น disk ปกติ โดยเครื่อง MDS นั้นจะเป็นคนจัดการควบคุม ส่วนการอ่าน/เขียนไฟล์จากเครื่อง OSS ต่าง ๆ ทั้งหมด


ซึ่งในระบบใหญ่ ๆ นั้น เราสามารถเซ็ต lustre ได้หลายรูปแบบ ตามงบประมาณและความเหมาะสม ดังรูป
ผลงานที่ผ่านมา
คลัสเตอร์คิท เป็นบริษัทคนไทยบริษัทแรก และบริษัทเดียวที่รับความไว้วางใจให้ดำเนินการติดตั้งซอฟต์แวร์ระบบไฟล์ lustre ให้กับหลายองค์กร รวมถึงระบบคลัสเตอร์ที่มีความเร็วในการประมวลผลสูงที่สุด 3 อันดับแรกของประเทศ ซึ่งประกอบด้วย
- ระบบคลัสเตอร์ “เทรา” ขนาด 800 core ของศูนย์ไทยกริดแห่งชาติ
- ระบบคลัสเตอร์ “Eclipse” ขนาด 704core ของศูนย์พันธุวิศวกรรมและเทคโนโลยีชีวภาพแห่งชาติ (BIOTEC)
- ระบบคลัสเตอร์ “ศิลา” ขนาด 284 core ของสถาบันวิจัยและพัฒนา มหาวิทยาลัยรามคำแหง
- ระบบเก็บบริการข้อมูลโครงการดิจิตอลไทยแลนด์เพื่อเก็บภาพถ่ายดาวเทียม จากดาวเทียมธีออส (THEOS) ของสำนักงานพัฒนาเทคโนโลยีอวกาศและภูมิสารสนเทศ (องค์การมหาชน)
