Services

Cluster File System

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

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


lustre นั้นเป็นระบบ Cluster File System ระบบหนึ่งที่นิยมใช้กันแพร่หลายในระบบสมรรถนะสูงปัจจุบัน โดย lustre นั้นมาจากคำผสมของคำว่า linux และ cluster โดยกว่า 40% ของ 100 ระบบคอมพิวเตอร์คลัสเตอร์ที่มีประสิทธิภาพสูงที่สุดนั้น ล้วนใช้ lustre ทั้งนั้น ซึ่งในปัจจุบันมีหลายหน่วยงาน ในหลากหลายวงการ ไม่ว่าจะเป็น วงการอุตสาหกรรม พลังงาน การเงิน การศึกษา โดย lustre นั้น ถูกออกแบบมาให้มีประสิทธิภาพในการทำงาน เพื่อรองรับคุณสมบัติระบบการกระจายข้อมูล สามารถรองรับการขยายตัวของระบบได้ สามารถรองรับลูกข่ายที่จะเข้ามาใช้งานในระบบได้เป็นจำนวนมาก

ข้อดีของ lustre

  1. จัดการ I/O ได้อย่างมีประสิทธิภาพ ทั้งในด้านการจัดการข้อมูลแบบต่อเนื่อง และแบบกระจาย
  2. มีเสถียรภาพใหนการทำงาน มีการตรวจจับความผิดพลาดและแก้ไขโดยอัตโนมัติ
  3. รองรับการขยายตัวของระบบได้ง่าย รองรับลูกข่ายได้มาก
  4. รองรับการเข้าถึงระบบไฟล์ในระดับ petabytes
  5. การพัฒนาของ lustre เป็นการพัฒนาแบบ open source
  6. รองรับมาตรฐานเปิดของระบบเครือข่าย และมาตรฐาน POSIX

ส่วนประกอบของ lustre

lustre นั้นประกอบไปด้วยส่วนต่าง ๆ ที่สำคัญคือ

  1. Metadata Server (MDS) เป็นเครื่องเซิร์ฟเวอร์ที่สร้างข้อมูลเมตาดาต้าไปจัดเก็บยังหน่วจัดเก็บข้อมูล (MDTs) ทำหน้าที่ จัดการ การอ่านเขียนข้อมูล และจัดการไดเรคทอรีในระบบไฟล์
  2. Metadata Targets (MDT) เป็นหน่วยจัดเก็บข้อมูลของเมตาดาต้า เช่น ชื่อไฟล์, ไดเรกทอรี, สิทธิ์ และรูปแบบไฟล์ เป็นต้น บนเครื่อง MDS
  3. Object Storage Servers (OSS) เป็นเครื่องเซิร์ฟเวอร์ที่เชื่อมต่อกับหน่วยจัดเก็บข้อมูลย่อย (OSTs) ทำหน้าที่ให้บริการไฟล์ I/O และการร้องขอผ่านเครือข่าย
  4. Object Storage Target (OST) เป็นหน่วยจัดเก็บไฟล์ข้อมูลบนหนึ่งหรือหลาย ๆ เครื่อง OSS
  5. Lustre clients เป็นเครื่องไคลเอ็นท์ที่ร้องขอการอ่านเขียนไฟล์บนระบบ Lustre โดยเครื่องไคลเอ็นท์ต้องทำการเชื่อมต่อมายังเครือง MDS ก่อน


หลักการทำงานของ lustre

หลักาการทำงานชอง lustre โดยคร่าว ๆ จะเป็นดังนี้

  1. เครื่อง client จะทำการร้องขอข้อมูลที่ต้องการไปที MDS
  2. MDS ค้นข้อมูลตำแหน่งไฟล์ที่ร้องขอมาว่าเก็บไฟล์ไว้ที่เครื่อง OSS ใดบ้าง
  3. OSS ส่งไฟล์ข้อมูลกลับไปยัง Client โดยตรง

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



ซึ่งในระบบใหญ่ ๆ นั้น เราสามารถเซ็ต lustre ได้หลายรูปแบบ ตามงบประมาณและความเหมาะสม ดังรูป

ผลงานที่ผ่านมา

คลัสเตอร์คิท เป็นบริษัทคนไทยบริษัทแรก และบริษัทเดียวที่รับความไว้วางใจให้ดำเนินการติดตั้งซอฟต์แวร์ระบบไฟล์ lustre ให้กับหลายองค์กร รวมถึงระบบคลัสเตอร์ที่มีความเร็วในการประมวลผลสูงที่สุด 3 อันดับแรกของประเทศ ซึ่งประกอบด้วย

และล่าสุด ระบบ HAII Cluster ขนาด 432 core ของ สถาบันสารสนเทศทรัพยากรน้ำและการเกษตร (HAII) เพื่อการวิจัยลมและน้ำ