Lustre

Jetsada Malaisirirat
3 min readFeb 21, 2019

--

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 สามารถติดตั้งผ่าน 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

https://whamcloud.github.io/Online-Help/docs/Install_Guide/ig_ch_03_building.html?fbclid=IwAR1KOeyutkkbbPmZIbX9h5sHLpfSGkIIn2sMxG0GgrznfOAJcdw-ZRuQfGg

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

IML Current version is 4.0.9.1
download at
https://github.com/whamcloud/integrated-manager-for-lustre/releases

Lustre
stable release
https://downloads.whamcloud.com/public/lustre/lustre-2.10.6/
https://downloads.whamcloud.com/public/lustre/lustre-2.10.6-ib/

feature release
https://downloads.whamcloud.com/public/lustre/lustre-2.12.0/
https://downloads.whamcloud.com/public/lustre/lustre-2.12.0-ib/

--

--

No responses yet