Files
markbase/docs/RAID0_LINUX_DEPLOYMENT.md
Warren 596d8d5e27
Some checks are pending
Test / test (push) Waiting to run
Test / build (push) Blocked by required conditions
Add RAID 0 production deployment suite
- Linux mdadm RAID 0 deployment (4 NVMe, 28 GB/s)
- Performance test scripts and configuration
- WebDAV + RAID integration documentation
- CLI WebDAV command integration in main.rs
- Complete deployment checklist (1685 lines)

Testing verified: RAID 0 stripe algorithm works correctly
2026-05-19 10:10:32 +08:00

5.4 KiB
Raw Permalink Blame History

Linux RAID 0 Production Deployment Guide

概述

本文档提供MarkBase在Linux环境下的RAID 0生产部署方案实现多NVMe磁盘的频宽叠加。

性能目标:

  • 4盘RAID 028 GB/s读20 GB/s写2400K IOPS
  • 8盘RAID 056 GB/s读40 GB/s写4800K IOPS
  • 16盘RAID 0112 GB/s读80 GB/s写9600K IOPS

系统需求

硬件配置

组件 最低要求 推荐配置
CPU 8核 (Intel Xeon) 16核 (AMD EPYC 9654)
RAM 32GB DDR4 64GB DDR5 ECC
NVMe插槽 4个PCIe 4.0 8-16个PCIe 5.0
NVMe SSD Samsung 980 Pro WD Black SN850X 2TB
网卡 1GbE 10GbE/25GbE (Mellanox)
存储 4 × 2TB NVMe 16 × 2TB NVMe

操作系统

  • Ubuntu 22.04 LTS
  • Debian 12 (Bookworm)
  • Rocky Linux 9
  • Fedora 38+

NVMe SSD推荐

型号 读速度 写速度 IOPS 价格
Samsung 980 Pro 7000 MB/s 5000 MB/s 1000K $199/2TB
WD Black SN850X 7200 MB/s 6600 MB/s 1200K $179/2TB
Sabrent Rocket 4 Plus 7000 MB/s 5000 MB/s 1000K $149/2TB

部署步骤

1. 安装依赖

sudo apt update
sudo apt install mdadm fio sysstat nvme-cli tgt

2. 检查NVMe磁盘

nvme list
nvme smart-log /dev/nvme0n1

3. 创建RAID 0阵列

sudo bash scripts/deploy_raid0_linux.sh

关键参数:

  • Stripe size: 64KB适合媒体文件
  • Filesystem: XFS优化大文件
  • Mount options: noatime, largeio

4. 性能测试

sudo bash scripts/run_raid0_tests.sh

测试项目:

  • Sequential read/write (最大频宽)
  • 4K video streaming (ProRes 4444)
  • Concurrent streams (多流并发)
  • IOPS saturation (最大IOPS)

性能结果

4盘RAID 0实测预期

测试项目 预期性能 实测方法
Sequential read 28 GB/s fio bs=1M
Sequential write 20 GB/s fio bs=1M
4K ProRes read 3200 MB/s (4 streams) fio bs=256k
Random IOPS 2400K fio bs=4k

瓶颈分析

可能的瓶颈:

  1. PCIe带宽限制 - 每NVMe需要PCIe 4.0 × 4 lanes
  2. CPU瓶颈 - RAID计算开销检查top
  3. NUMA问题 - 多CPU节点内存访问
  4. 内核开销 - mdadm vs 用户态RAID

优化方案:

  • 确保每个NVMe有独立PCIe通道
  • 使用NUMA-aware配置numactl
  • 增加iodepthfio测试
  • 调整stripe size32KB/64KB/128KB

MarkBase集成

方案1本地挂载最优

# Linux mount
mount /dev/md0 /mnt/raid0_media

# MarkBase WebDAV backend
cargo run -- display --backend /mnt/raid0_media

优势:

  • 全速访问28 GB/s
  • 无网络延迟
  • 直接集成SQLite文件树

方案2iSCSI导出远程访问

# Linux: 配置iSCSI target
sudo bash scripts/markbase_raid0_integration.sh

# macOS: 连接iSCSI initiator
# xtend SAN iSCSI Initiator
Discovery Portal: <SERVER_IP>:3260
Target: iqn.2026-05.com.markbase:raid0.media

限制:

  • 网络瓶颈10GbE ≈ 1.25 GB/s
  • 延迟增加LAN < 1ms
  • 需高速网络25GbE+ for full speed

方案3NFS导出文件级访问

# Linux NFS server
apt install nfs-kernel-server
echo "/mnt/raid0_media *(rw,sync,no_subtree_check)" >> /etc/exports
exportfs -a

# macOS NFS client
mount -t nfs <SERVER_IP>:/mnt/raid0_media /Volumes/MarkBase_NFS

性能:

  • NFS v4: 800-1000 MB/s1GbE
  • NFS v4 + 10GbE: 2000-3000 MB/s

监控与维护

RAID状态监控

# 检查RAID状态
mdadm --detail /dev/md0
cat /proc/mdstat

# NVMe健康检查
nvme smart-log /dev/nvme0n1 | grep percentage_used

性能监控

# 实时I/O监控
iostat -x /dev/md0 1

# 带宽监控
nethogs /dev/md0

# NVMe温度监控
nvme get-feature -f 2 /dev/nvme0n1

故障处理

RAID 0风险

  • 无冗余(单盘故障 = 全盘数据丢失)
  • 不可恢复无parity

防护措施:

  • 定期备份rsync到RAID 10阵列
  • 监控NVMe健康percentage_used
  • 及时更换老化磁盘
  • 仅用于非关键数据cache, scratch

扩展方案

升级到RAID 10

# RAID 10 (4盘)
mdadm --create /dev/md10 \
    --level=10 \
    --raid-devices=4 \
    --layout=f2 \
    /dev/nvme[0-3]n1

# 性能14 GB/s读10 GB/s写1200K IOPS
# 容量4TB (50%)
# 可靠性可承受2盘故障

升级到RAID 5

# RAID 5 (4盘)
mdadm --create /dev/md5 \
    --level=5 \
    --raid-devices=4 \
    /dev/nvme[0-3]n1

# 性能21 GB/s读5 GB/s写600K IOPS
# 容量6TB (75%)
# 可靠性可承受1盘故障

成本估算

4盘RAID 0配置

项目 数量 单价 总价
NVMe SSD 4 × 2TB $179 $716
Linux服务器 - - $1500
10GbE网卡 1 $200 $200
总计 - - $2416

性能/成本比:

  • 28 GB/s读 / 2416 = 11.6 MB/s/
  • 对比单盘7000 MB/s / 179 = 38.9 MB/s/
  • RAID 0成本效率30%(因硬件重复)

相关文档

文档 位置 说明
deploy_raid0_linux.sh scripts/ 部署脚本
raid0_performance_test.fio scripts/ 性能测试配置
run_raid0_tests.sh scripts/ 测试执行脚本
markbase_raid0_integration.sh scripts/ iSCSI集成脚本

下一步

  1. 部署Linux RAID 04 NVMe
  2. 性能测试验证28 GB/s目标
  3. MarkBase WebDAV集成
  4. SQLite文件树同步
  5. 生产环境部署25GbE网络

最后更新: 2026-05-19 作者: MarkBase Team 版本: 1.0