🧠 Giới thiệu xiRAID – Giải pháp RAID hiệu suất cao cho NVMe SSD
xiRAID là một sản phẩm của công ty Xinnor (đặt tại Haifa, Israel), được thiết kế để khắc phục các giới hạn về hiệu năng của các giải pháp RAID truyền thống khi làm việc với ổ đĩa NVMe tốc độ cao.
🚨 Vấn đề với RAID truyền thống
- Các công nghệ RAID hiện tại như mdraid hay Intel VROC không thể tận dụng hết tốc độ của ổ NVMe hiện đại.
- Trong các thử nghiệm, khi gom 24 ổ NVMe lại và dùng mdraid, hiệu suất đạt ngưỡng ~2 triệu IOPS và bị nghẽn cổ chai CPU (có lõi CPU 100%, có lõi thì rảnh).
- Điều này dẫn tới tình trạng mất cân bằng và khiến ứng dụng kinh doanh chạy cùng lúc bị thiếu tài nguyên CPU.
🎯 Mục tiêu thiết kế của xiRAID
- Hiệu suất RAID ≥ 90% hiệu suất ổ NVMe thô, có thể mở rộng tới hàng chục ổ.
- Tương thích với hạ tầng disaggregated/composable (CDI) – tức là lưu trữ NVMe qua mạng.
- Cài đặt, cấu hình đơn giản và nhanh chóng.
- Hỗ trợ đầy đủ API tích hợp với hệ sinh thái.
- Tối ưu tài nguyên hệ thống – ít tốn CPU và RAM.
💡 xiRAID có gì đặc biệt?
- Là một mô-đun phần mềm, cài trực tiếp lên hệ điều hành Linux.
- Hỗ trợ RAID nhiều cấp độ: từ RAID 0 đến RAID 70.
- Tùy chỉnh được strip size và group size (đặc biệt cho RAID-50, RAID-60, RAID-70).
- Tối ưu đa lõi CPU, tránh tình trạng lock hay bottleneck trong quá trình tính toán parity hoặc khôi phục dữ liệu.
- Có thể thay đổi cấp độ RAID, mở rộng dung lượng RAID khi cần.
- Hỗ trợ tạo pool ổ dự phòng (spare).
🔧 Cài đặt xiRAID (trên Oracle Linux 8.4 – kernel UEK)
- Cài đặt gói kernel-devel:
dnf install kernel-uek-devel
- Thêm EPEL repository:
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
- Thêm repository của Xinnor:
dnf install https://pkg.xinnor.io/repositoryRepository/oracle/8.4/kver-5.4/xiraid-repo-1.0.0-29.kver.5.4.noarch.rpm
- Cài đặt xiRAID:
dnf install xiraid-release
Ghi chú: Mặc định cho phép sử dụng tối đa 4 ổ NVMe, nếu cần nhiều hơn (ví dụ 24 ổ) thì bạn cần có license.
📦 Tạo RAID volume với 24 ổ NVMe
Ví dụ tạo RAID-50, 8 ổ mỗi nhóm:
xicli raid create -n xiraid -l 50 -gs 8 -d /dev/nvme[2-25]n1
Sau khi tạo xong, kiểm tra trạng thái volume:
xicli raid show
⚠️ Lưu ý: chỉ nên bắt đầu benchmark sau khi volume ở trạng thái “ready” (đã init hoàn tất).
🧪 Benchmark hiệu năng
- Sử dụng công cụ
fio
để tạo bài test với workload ngẫu nhiên (4k read/write). - Cấu hình test đơn giản, dễ nhân bản, dùng tất cả 24 ổ để kiểm tra:
[global]
rw=randread
bs=4k
iodepth=64
direct=1
ioengine=libaio
runtime=600
numjobs=3
gtod_reduce=1
norandommap
randrepeat=0
buffered=0
size=100%
time_based
refill_buffers
group_reporting
[job1]
filename=/dev/nvme2n1
[job2]
filename=/dev/nvme3n1
...
🧰 Cấu hình phần cứng trong thử nghiệm
- CPU: AMD EPYC 7702P (64 nhân)
- RAM: 256GB DDR4 (8 x 32GB)
- Ổ NVMe: 48 x Samsung 1.92TB NVMe (dùng 24 ổ cho test RAID)
- File system: ext4
- Kernel: 5.4.17 (Oracle UEK)
- Scheduler: NONE (no I/O scheduler – vì NVMe hoạt động tốt mà không cần)
🔥 2. So sánh hiệu năng: xiRAID vs mdraid
a. Tạo RAID-50 bằng mdraid
# Tạo 2 RAID-5 nhóm nhỏ
mdadm --create /dev/md0 --level=5 --raid-devices=12 /dev/nvme2n1 ... /dev/nvme13n1
mdadm --create /dev/md1 --level=5 --raid-devices=12 /dev/nvme14n1 ... /dev/nvme25n1
# Ghép RAID-0 từ 2 RAID-5 trên
mdadm --create /dev/md50 --level=0 --raid-devices=2 /dev/md0 /dev/md1
b. Benchmark với fio (cùng cấu hình cho cả hai)
Tạo file fio-test.fio
:
[global]
rw=randread
bs=4k
iodepth=64
direct=1
ioengine=libaio
runtime=60
numjobs=8
time_based
group_reporting
[job1]
filename=/dev/xiraid # hoặc /dev/md50 nếu mdraid
Chạy benchmark:
RAID Type | Platform | IOPS 4k random read | CPU Load |
---|---|---|---|
xiRAID | AMD EPYC 7702P | 18.9 million | 6% (tổng CPU) |
mdraid | AMD EPYC 7702P | 2.2 million | ~50% (có core bị nghẽn 100%) |
🚀 xiRAID nhanh gấp ~9 lần mdraid trong cùng điều kiện!
🎯 xiRAID hỗ trợ nhiều cấp độ RAID tương tự như mdraid hoặc hardware RAID controller — như: RAID 0
, RAID 5
, RAID 6
, RAID 10
, RAID 50
, RAID 60
…
🧩 RAID 0 — Striping (tăng tốc, không bảo vệ dữ liệu)
[Disk1] A1 A2 A3 A4
[Disk2] B1 B2 B3 B4
==> Khi đọc/ghi: A1+B1, A2+B2,... thực hiện song song => rất nhanh!
==> Nhưng 1 ổ chết là mất hết dữ liệu.
🛡 RAID 1 — Mirroring (an toàn cao, dung lượng 50%)
[Disk1] A1 A2 A3 A4
[Disk2] A1 A2 A3 A4
==> Ghi vào cả 2 đĩa giống nhau
==> 1 ổ hỏng vẫn còn ổ kia
🛠 RAID 5 — Striping + Parity (ít nhất 3 ổ)
[Disk1] A1 A2 P3 A4
[Disk2] B1 P2 B3 B4
[Disk3] P1 C2 C3 P4
P = Parity (dữ liệu dự phòng tính toán)
==> Tăng tốc độ đọc, bảo vệ 1 ổ đĩa bị lỗi
Dung lượng usable = (N-1) ổ
🛡 RAID 6 — Giống RAID 5 nhưng bảo vệ được 2 ổ lỗi
[Disk1] A1 A2 P3 Q4
[Disk2] B1 Q2 B3 P4
[Disk3] P1 C2 Q3 C4
[Disk4] Q1 P2 D3 D4
==> Có 2 mức parity: P và Q
==> Có thể mất cùng lúc 2 ổ vẫn khôi phục được
Dung lượng usable = (N-2) ổ
⚙ RAID 10 — Kết hợp RAID 1 + 0 (ít nhất 4 ổ)
Mirror 1: [Disk1] A1 A2 A3 A4
[Disk2] A1 A2 A3 A4
Mirror 2: [Disk3] B1 B2 B3 B4
[Disk4] B1 B2 B3 B4
==> Sau đó strip giữa Mirror 1 và 2 => RAID 10
Vừa nhanh, vừa an toàn. Nhưng dung lượng = 50% tổng.
🔥 RAID 50 — Stripe of multiple RAID 5 (tối thiểu 6 ổ, chia làm 2 nhóm RAID 5)
Group 1 (RAID 5):
[Disk1] A1 A2 A3 P1
[Disk2] B1 B2 P2 B3
[Disk3] C1 P3 C2 C3
Group 2 (RAID 5):
[Disk4] D1 D2 D3 P4
[Disk5] E1 E2 P5 E3
[Disk6] F1 P6 F2 F3
==> 2 nhóm RAID 5 được stripe lại
==> Tăng hiệu năng và dung lượng lớn, bảo vệ được mỗi nhóm 1 ổ
💪 RAID 60 — Stripe of multiple RAID 6 (tối thiểu 8 ổ, chia làm 2 nhóm RAID 6)
Group 1 (RAID 6):
[Disk1] A1 A2 A3 P1 Q1
[Disk2] B1 B2 P2 Q2 B3
[Disk3] C1 P3 Q3 C2 C3
[Disk4] P4 Q4 D1 D2 D3
Group 2 (RAID 6):
[Disk5] E1 E2 E3 P5 Q5
[Disk6] F1 F2 P6 Q6 F3
[Disk7] G1 P7 Q7 G2 G3
[Disk8] H1 H2 H3 P8 Q8
==> Mỗi nhóm RAID 6 bảo vệ 2 ổ
==> Stripe nhiều nhóm lại với nhau => RAID 60
📌 Tóm tắt tính năng các cấp RAID xiRAID hỗ trợ
RAID | Tối thiểu ổ | Bảo vệ lỗi | Hiệu năng đọc | Hiệu năng ghi | Dung lượng khả dụng |
---|---|---|---|---|---|
0 | 2 | ❌ | Rất cao | Rất cao | 100% |
1 | 2 | ✅ 1 ổ | Cao | Trung bình | 50% |
5 | 3 | ✅ 1 ổ | Cao | Tốt nếu xiRAID | (N-1)/N |
6 | 4 | ✅ 2 ổ | Cao | Tốt nếu xiRAID | (N-2)/N |
10 | 4 | ✅ 1 ổ mỗi cặp | Rất cao | Cao | 50% |
50 | 6 | ✅ 1 ổ mỗi nhóm | Rất cao | Cao | (N – G)/N *(G=groups) |
60 | 8 | ✅ 2 ổ mỗi nhóm | Rất cao | Cao | (N – 2*G)/N |
So sánh xiRAID với ZFS.
Tùy vào workload nhưng xiRAID thường có tốc độ cao hơn ZFS trong các tình huống sau:
⚡ Khi nào xiRAID nhanh hơn ZFS?
Tình huống | Lý do xiRAID nhanh hơn |
---|---|
Workload tuần tự (sequential I/O) | xiRAID tối ưu striping (RAID 0, 10, 50) rất tốt, ghi đọc tuần tự rất nhanh. |
Yêu cầu ghi nhanh, không cần snapshot | xiRAID không cần ghi metadata, checksum dày đặc như ZFS nên ghi nhanh hơn. |
Dùng máy có ít RAM | ZFS yêu cầu nhiều RAM (1GB/TB dữ liệu), xiRAID thì nhẹ hơn. |
RAID 5/6 workload ghi nhỏ, nhiều random writes | xiRAID dùng thuật toán thông minh để giảm penalty khi ghi parity so với mdadm hoặc ZFS RAIDZ. |
Bạn dùng hệ thống chỉ để lưu cache hoặc ephemeral data | xiRAID đơn giản, ít overhead, phù hợp để tối ưu tốc độ. |
🧠 Khi nào ZFS có lợi thế hơn xiRAID?
Tình huống | Lý do ZFS tốt hơn |
---|---|
Bạn cần snapshot, rollback, clone | ZFS có sẵn snapshot, rất mạnh mẽ. |
Bạn cần kiểm tra lỗi (checksum), tự-heal dữ liệu | ZFS có hệ thống tự phát hiện và sửa lỗi bitrot, xiRAID không có. |
Dữ liệu cực kỳ quan trọng, ưu tiên tính toàn vẹn hơn tốc độ | ZFS được thiết kế như một file system + volume manager bảo vệ dữ liệu rất cao. |
Bạn dùng máy nhiều RAM (>=16GB) và muốn tận dụng ARC cache của ZFS | ZFS cache cực kỳ mạnh nếu đủ RAM. |
Bạn dùng ZFS send/recv để replicate dữ liệu | xiRAID không hỗ trợ replication dạng này. |
🚀 Benchmark thực tế (mô phỏng)
⚠ Tham khảo – giá trị thay đổi tùy ổ đĩa, CPU, RAM, cache:
Test case | xiRAID RAID 10 | ZFS RAIDZ2 |
---|---|---|
Sequential Read | 900 MB/s | 700 MB/s |
Sequential Write | 850 MB/s | 600 MB/s |
Random Read (4K) | 95,000 IOPS | 75,000 IOPS |
Random Write (4K) | 82,000 IOPS | 30,000 IOPS (vì ZFS có penalty ghi nhỏ) |
🧪 Tổng kết dễ hiểu
Tiêu chí | xiRAID | ZFS |
---|---|---|
Tốc độ | 🥇 Nhanh | 🥈 Trung bình |
An toàn dữ liệu | 🥈 Cơ bản | 🥇 Rất cao |
Snapshot / Rollback | ❌ Không có | ✅ Có sẵn |
RAM yêu cầu | Thấp | Cao |
Tối ưu cache | Không có | Có ARC/L2ARC |
Dễ cấu hình | Dễ | Trung bình |
Sửa lỗi bit | Không | Có checksum, tự-heal |
Nếu bạn đang cần:
- Tốc độ tối đa →
xiRAID RAID 10
hoặcRAID 50
rất tốt. - Bảo vệ dữ liệu cao, dùng lâu dài →
ZFS RAIDZ2
vẫn là vua về độ tin cậy.
Nếu so sánh bạn thấy xiRAID performance không hơn ZFS là bao nhiêu nhưng việc người ta hay nhắc xiRAID như là giải pháp High Performance Storage không hẳn vì nó vượt trội hoàn toàn so với ZFS, mà là do:
xiRAID được thiết kế để đơn giản và tối ưu cho hiệu năng
- Nó chỉ tập trung vào làm RAID thật tốt (RAID 10, 5, 6, 50…), không đi sâu vào tính năng file system.
- Không có snapshot, không checksum, không metadata nặng nề → nên tốc độ tối đa được đẩy cao nhất có thể.
- Cực kỳ hợp với NVMe SSD, nơi tốc độ quá cao mà ZFS lại bắt đầu thành bottleneck do tính năng quá nhiều.
Dễ tích hợp vào hệ thống lớn
- Dễ nhúng vào các hệ thống lưu trữ chuyên dụng: NAS, SAN, Ceph OSD, v.v.
- Interface quản lý đơn giản, cấu hình nhanh (nhiều hãng sử dụng trong firmware).
Nhiều người nhầm “hiệu năng cao” = “băng thông lớn”
Ví dụ:
Hệ thống cần đọc ghi video 4K liên tục với 2GB/s → xiRAID dễ tối ưu RAID 10 hoặc 50 để đạt ngưỡng đó.
ZFS thì cần RAM lớn, tuning kỹ để đạt cùng mức.
→ Vì vậy, người ta thường chọn xiRAID cho throughput lớn, latency thấp, nhưng không cần tính năng nâng cao.
📈 Khi nào xiRAID đúng là High Performance:
Trường hợp sử dụng | Lý do chọn xiRAID |
---|---|
Video streaming server | Ghi và đọc tuần tự nhiều, yêu cầu throughput cao |
VM hosting (SSD RAID 10) | Latency thấp, random I/O tốt |
Temporary data storage | Không cần snapshot hoặc bảo vệ checksum |
Cache tier (trong Ceph) | Dùng làm cache tốc độ cao, không cần tính năng của ZFS |
🧱 Khi ZFS vẫn là best choice:
Trường hợp sử dụng | Lý do chọn ZFS |
---|---|
Long-term archive | Có checksum, chống bitrot, snapshot |
Database workloads | Ghi nhỏ, cần integrity và rollback |
Backup server | Snapshot, send/recv cực tiện |
Storage cần nén/tự sửa lỗi | Tính năng ZFS mạnh mẽ |
✅ Tổng kết dễ nhớ:
Hệ thống | Ưu điểm nổi bật |
---|---|
xiRAID | 🏎️ Tối ưu hiệu năng raw, đơn giản |
ZFS | 🔐 Tính năng bảo vệ, snapshot, an toàn |
Nếu bạn cần hiệu năng + an toàn, một số hệ thống sẽ dùng:
xiRAID
làm tầng OSD backend (Ceph)ZFS
làm tầng archive / snapshot
✅ Kết luận
xiRAID là một giải pháp RAID hiệu suất cao, phù hợp với các môi trường hiện đại sử dụng ổ NVMe tốc độ cao. Nó giải quyết được các điểm nghẽn về CPU và hiệu năng mà các giải pháp RAID cũ không theo kịp.
Phù hợp với:
- Hạ tầng lưu trữ hiệu suất cao.
- Mô hình hạ tầng disaggregated/composable.
- Trung tâm dữ liệu hiện đại yêu cầu tận dụng tối đa tài nguyên phần cứng.
Tham khảo https://www.storagenewsletter.com/2022/10/21/xinnor-xiraid-efficient-raid-for-nvme-drives/