Giới thiệu
Bài viết này nhằm chia sẻ cách cài đặt và cấu hình file system phân tán hiệu năng cao Lustre phiên bản 2.15.4 trên hệ điều hành RHEL 8.9 (dành cho server) và Ubuntu 22.04 (dành cho máy khách). Nếu bạn đang tìm cách triển khai Lustre trên nền tảng mới mà không sử dụng nhân kernel đã chỉnh sửa, bài viết này sẽ giúp bạn.
Lý do mình viết bài này là vì đa số tài liệu hướng dẫn Lustre trên mạng hiện đã lỗi thời — chẳng hạn như tài liệu trên wiki Lustre thường đề cập đến RHEL 7, vốn đã không còn được hỗ trợ.
Lustre là gì?
Nếu bạn chưa từng nghe tới Lustre, đây là một file system (file system) mã nguồn mở, phân tán, hiệu năng cao, được thiết kế dành cho các hệ thống HPC (High Performance Computing). Theo mô tả chính thức:
Lustre là một file system phân tán, song song, dựa trên object, được thiết kế để đạt hiệu năng tối đa ở quy mô lớn.
Hầu hết các siêu máy tính trong danh sách TOP500 đều sử dụng Lustre. Ví dụ, LUMI, siêu máy tính hàng đầu châu Âu, cũng sử dụng Lustre để lưu trữ dữ liệu với hiệu suất cực cao.
Thành phần trong Lustre
Lustre bao gồm ba loại server chính:
- MGS (Management Server) – Quản lý cấu hình chung cho toàn bộ file system.
- MDS (Metadata Server) – Xử lý metadata như tên file, phân quyền, cấu trúc thư mục.
- OSS (Object Storage Server) – Xử lý dữ liệu thật sự (I/O files).
Mỗi loại server gắn với một loại “target” (thiết bị lưu trữ vật lý hoặc logic):
Loại Server | Target | Vai trò |
---|---|---|
MGS | MGT | Quản lý cấu hình toàn hệ thống |
MDS | MDT | Lưu metadata |
OSS | OST | Lưu dữ liệu thực tế |
Sơ đồ hoạt động của Lustre:
+------------+ +-------------+ +-------------+
| Lustre | request | MDS | response | OSTs |
| Client +----------->+ (MDT) +------------->+ (data store)|
+------------+ +-------------+ +-------------+
^ |
|<----------------- Direct read/write ---------------+
Vai trò và yêu cầu phần cứng
Mỗi loại server có yêu cầu khác nhau:
- MGS: Truy cập ít, yêu cầu lưu trữ < 1 GB. Cần độ tin cậy cao (RAID-1).
- MDS: Tải cao, đọc/ghi nhỏ, cần tốc độ và độ bền (RAID-10). Dung lượng thường chiếm 1–2% tổng dung lượng hệ thống.
- OSS: Xử lý I/O lớn. Thường mỗi OSS có 2–8 OST. RAID-6 (8+2) là cấu hình phổ biến.
⚠️ Lưu ý: Lustre không tự cung cấp tính năng HA hay redundancy. Bạn phải cấu hình RAID, ZFS hoặc cluster (Pacemaker/Corosync) để đạt độ tin cậy cao.
Ví dụ mô hình tối thiểu
Một mô hình triển khai nhỏ có thể bao gồm:
- 1 node đóng vai trò MGS + MDS (chứa MGT và MDT)
- 1 node đóng vai trò OSS (chứa OST)
Sơ đồ đơn giản:

Trong mô hình lớn hơn, bạn sẽ tách các thành phần và mở rộng như sau:
- 1 MGS (dùng chung nhiều file system)
- N MDS (1 hoặc nhiều cho mỗi file system)
- N OSS (thường mỗi file system có nhiều OSS)
Ví dụ hệ thống Lustre trên LUMI:
- 1 file system có 1 MDS và 32 OSTs
- Dung lượng mỗi file system lên tới 20 PB
Cách Lustre hoạt động
Khi một client truy cập file:
- Gửi yêu cầu tới MDS (metadata)
- MDS trả về thông tin về file (stripe, OST)
- Client trực tiếp giao tiếp với các OSS để truy xuất dữ liệu
Mô hình truy cập
+--------+ +--------+ +--------+
| Client |<------->| MDS |<------>| OSS |
| | | (MDT) | | (OSTs) |
+--------+ +--------+ +--------+
Stripe trong Lustre
Tương tự như ZFS/RAID, dữ liệu trong Lustre được chia nhỏ (stripe) ra các OSTs.
- stripe_count: số OST được dùng
- stripe_size: kích thước dữ liệu trên mỗi OST
Bạn có thể đặt các thông số này theo từng file hoặc kế thừa từ thư mục cha.
Ví dụ striping:

File A (60MB), stripe_size=20MB, stripe_count=3
File A chia ra:
- 20MB -> OST0
- 20MB -> OST1
- 20MB -> OST2
Tạm kết
Hy vọng bài viết này giúp bạn hiểu rõ hơn về Lustre cũng như các thành phần cấu thành hệ thống. Trong phần tiếp theo, mình sẽ chia sẻ cụ thể cách cài đặt Lustre 2.15.4 trên RHEL 8.9 với backend ZFS và cách build DKMS client cho Ubuntu 22.04.
Tham khảo https://metebalci.com/blog/lustre-2.15.4-on-rhel-8.9-and-ubuntu-22.04/
📌 Hẹn gặp lại ở phần 2: [Hướng Dẫn Cài Đặt Lustre 2.15.4 Trên RHEL 8.9 Với ZFS]