xiRAID – Giải pháp RAID hiệu suất cao cho NVMe SSD

🧠 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?

  • 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 TypePlatformIOPS 4k random readCPU Load
xiRAIDAMD EPYC 7702P18.9 million6% (tổng CPU)
mdraidAMD EPYC 7702P2.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ợ

RAIDTối thiểu ổBảo vệ lỗiHiệu năng đọcHiệu năng ghiDung lượng khả dụng
02Rất caoRất cao100%
12✅ 1 ổCaoTrung bình50%
53✅ 1 ổCaoTốt nếu xiRAID(N-1)/N
64✅ 2 ổCaoTốt nếu xiRAID(N-2)/N
104✅ 1 ổ mỗi cặpRất caoCao50%
506✅ 1 ổ mỗi nhómRất caoCao(N – G)/N *(G=groups)
608✅ 2 ổ mỗi nhómRất caoCao(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ốngLý 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 snapshotxiRAID không cần ghi metadata, checksum dày đặc như ZFS nên ghi nhanh hơn.
Dùng máy có ít RAMZFS 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 writesxiRAID 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 dataxiRAID đơ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ốngLý do ZFS tốt hơn
Bạn cần snapshot, rollback, cloneZFS có sẵn snapshot, rất mạnh mẽ.
Bạn cần kiểm tra lỗi (checksum), tự-heal dữ liệuZFS 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 ZFSZFS cache cực kỳ mạnh nếu đủ RAM.
Bạn dùng ZFS send/recv để replicate dữ liệuxiRAID 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 casexiRAID RAID 10ZFS RAIDZ2
Sequential Read900 MB/s700 MB/s
Sequential Write850 MB/s600 MB/s
Random Read (4K)95,000 IOPS75,000 IOPS
Random Write (4K)82,000 IOPS30,000 IOPS (vì ZFS có penalty ghi nhỏ)

🧪 Tổng kết dễ hiểu

Tiêu chíxiRAIDZFS
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ầuThấpCao
Tối ưu cacheKhông cóCó ARC/L2ARC
Dễ cấu hìnhDễTrung bình
Sửa lỗi bitKhôngCó checksum, tự-heal

Nếu bạn đang cần:

  • Tốc độ tối đaxiRAID RAID 10 hoặc RAID 50 rất tốt.
  • Bảo vệ dữ liệu cao, dùng lâu dàiZFS 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

  • 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ụngLý do chọn xiRAID
Video streaming serverGhi 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 storageKhô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ụngLý do chọn ZFS
Long-term archiveCó checksum, chống bitrot, snapshot
Database workloadsGhi nhỏ, cần integrity và rollback
Backup serverSnapshot, send/recv cực tiện
Storage cần nén/tự sửa lỗiTí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/

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email