Cluster File System

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

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

A generic square placeholder image with rounded corners in a figure.
Lustre Logo

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 Lustre clients เป็นเครื่องไคลเอ็นท์ที่ร้องขอการอ่านเขียนไฟล์บนระบบ Lustre โดยเครื่องไคลเอ็นท์ต้องทำการเชื่อมต่อมายังเครือง MDS ก่อน
A generic square placeholder image with rounded corners in a figure.
Lustre Architecture

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

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

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

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

A generic square placeholder image with rounded corners in a figure.
หลักการทำงานของ Lustre
A generic square placeholder image with rounded corners in a figure.
Lustre Architecture

การติดตั้งระบบ Lustre

ในการติดตั้งระบบ Lustre สามารถติดตั้งผ่าน Repository ของ Lustre ที่ https://downloads.whamcloud.com/public/lustre โดยใช้ yum หรือ Download Package มาติดตั้งเองหรืออีกวิธีหนึ่งคือการติดตั้งผ่านซอฟต์แวร์ Integrate Manager for Lustre (IML)

Integrate Manager for Lustre (IML)

ซอฟต์แวร์ IML นี้จะเป็นซอฟต์แวร์ช่วยในการติดตั้งซอฟต์แวร์ Lustre แก่เครื่องในระบบ และบริหารจัดการระบบ Lustre โดยการ Monitoring ระบบ, สามารถบริหารจัดการ Resource ที่แชร์อยู่ระหว่าง MDS/OSS เพื่อทำ High Availability ของระบบ Lustre ได้

High Availability ในระบบ Lustre

Integrate Manager for Lustre นั้น ถ้าติดตั้งบนระบบที่ออกแบบมาสำหรับทำ High Availability คือเครื่องแต่ละส่วนของระบบ Lustre เช่น MDS และ OSS นั้น จะมีเป็นคู่ ๆ โดยในคู่เครื่องนั้น ๆ จะสามารถ mount LUN ที่แชร์ระหว่างกันได้ โดยในการเม้าท์ LUN จะใช้ซอฟต์แวร์ Corosync/Pacmaker/PCS ในการจัดการผ่านหน้า Web GUI ของ IML โดยในแต่ละคู่จะต้องมี interface ที่ต่อ crossover กันอยู่ เพื่อตรวจสอบสถานะของคู่ว่าเครื่องยังทำงานอยู่หรือไม่

และบน Production ควรมีพอร์ต Out-of-band Management (Idrac/ILO/ILOM) เชื่อมต่อไว้ด้วย เมื่อระบบมีปัญหา IML จะสามารถยิง IPMI Command เพื่อไปสั่งการเครื่องในระบบ Lustre ให้เปิด,ปิด ระบบได้ ส่วน Lustre Network จะเป็นวงที่ให้บริการ Lustre แก่ Client ซึ่งมักจะเป็น Network ความเร็วสูง เช่น 10GbE หรือ Infiniband

A generic square placeholder image with rounded corners in a figure.
Lustre Architecture

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

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

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