Skip to content

全闪存储概览

为什么选择全闪

HDD vs SSD vs NVMe 性能对比:

指标          HDD(7200rpm)  SAS SSD      NVMe SSD
随机读 IOPS   ~200           ~100,000     ~1,000,000
随机写 IOPS   ~200           ~50,000      ~500,000
顺序读带宽    ~200 MB/s      ~550 MB/s    ~7,000 MB/s
延迟(读)    ~5ms           ~100μs       ~20μs
功耗          ~10W           ~5W          ~8W
容量          16TB           30.72TB      30.72TB

H3C 全闪产品线

UniStor G5500(旗舰全闪)

H3C UniStor G5500 规格:

控制器:
  ├── 双控(Active-Active,双活)
  ├── 每控:2× Intel Xeon 32C
  └── 每控内存:512GB(缓存)

存储介质:
  ├── 支持 NVMe SSD(PCIe 4.0)
  ├── 最大:192 块 NVMe SSD
  └── 最大容量:5.9PB(192× 30.72TB)

性能:
  ├── IOPS:1,500 万(随机读,4K)
  ├── 带宽:300 GB/s(顺序读)
  └── 延迟:< 100μs(P99.9)

接口:
  ├── FC:32Gbps × 16 端口
  ├── iSCSI:25GbE × 16 端口
  └── NVMe/FC:32Gbps × 8 端口

数据保护:
  ├── RAID 5/6/10/TP
  ├── 双控双活(无单点故障)
  └── 端到端数据校验

UniStor G3500(主流全闪)

H3C UniStor G3500 规格:

控制器:双控 Active-Active
每控 CPU:2× Intel Xeon 16C
每控内存:256GB

最大容量:1.2PB
最大 IOPS:500 万
延迟:< 150μs

适用:中型企业核心业务

NVMe 架构详解

NVMe 协议栈

传统 SAS/SATA 路径:
  应用 → 文件系统 → 块层 → SCSI 层 → SAS/SATA 驱动 → HBA → 磁盘
  命令队列深度:1(SATA)/ 254(SAS)
  延迟:~100μs

NVMe 路径:
  应用 → 文件系统 → 块层 → NVMe 驱动 → PCIe → NVMe SSD
  命令队列深度:65535(每队列)× 65535 队列
  延迟:~20μs
  
优势:
  - 更短的 I/O 路径(去掉 SCSI 层)
  - 更高的队列深度(支持更多并发)
  - 更低的 CPU 开销

NVMe-oF(NVMe over Fabrics)

NVMe-oF 将 NVMe 协议扩展到网络,实现远程 NVMe 访问:

本地 NVMe:
  主机 ←PCIe→ NVMe SSD
  延迟:~20μs

NVMe/FC(FC 网络):
  主机 ←FC→ 存储控制器 ←PCIe→ NVMe SSD
  延迟:~50-100μs(接近本地)

NVMe/RoCE(以太网):
  主机 ←25GbE RDMA→ 存储控制器 ←PCIe→ NVMe SSD
  延迟:~100-150μs

对比传统 iSCSI:
  iSCSI 延迟:~500μs-1ms
  NVMe/RoCE 延迟:~100-150μs(快 5-10 倍)

全闪存储最佳实践

数据库优化

sql
-- Oracle 数据库存储配置建议

-- 1. 使用 ASM(Automatic Storage Management)
-- 创建 ASM 磁盘组
CREATE DISKGROUP DATA NORMAL REDUNDANCY
  DISK '/dev/sdb', '/dev/sdc', '/dev/sdd'
  ATTRIBUTE 'compatible.asm' = '19.0',
             'compatible.rdbms' = '19.0',
             'au_size' = '4M';  -- 4MB AU 适合 OLTP

-- 2. 调整 I/O 参数
ALTER SYSTEM SET db_file_multiblock_read_count = 128;
ALTER SYSTEM SET db_writer_processes = 8;

-- 3. 关闭不必要的 I/O 等待
ALTER SYSTEM SET filesystemio_options = 'SETALL';  -- 直接 I/O
bash
# MySQL 存储优化
# /etc/mysql/conf.d/storage.cnf

[mysqld]
# InnoDB 存储引擎优化
innodb_buffer_pool_size = 128G          # 设置为内存的 70-80%
innodb_buffer_pool_instances = 16       # 减少锁竞争
innodb_io_capacity = 20000             # NVMe SSD IOPS
innodb_io_capacity_max = 40000
innodb_flush_method = O_DIRECT         # 绕过 OS 缓存
innodb_flush_log_at_trx_commit = 1     # 每次提交刷盘(安全)
innodb_log_file_size = 4G
innodb_log_buffer_size = 256M

# 数据文件放在 NVMe 存储上
datadir = /nvme/mysql/data
innodb_log_group_home_dir = /nvme/mysql/logs

虚拟化优化

VMware/CAS 虚拟化存储最佳实践:

1. 使用 VAAI(vStorage APIs for Array Integration)
   - 硬件加速快照、克隆、清零操作
   - 减少主机 CPU 开销

2. 存储策略(Storage Policy)
   - 为不同 VM 设置不同 QoS
   - 数据库 VM:高 IOPS 策略
   - 普通 VM:标准策略

3. 精简配置(Thin Provisioning)
   - 节省存储空间
   - 配合存储层面的精简配置

4. 快照管理
   - 定期清理过期快照(快照过多影响性能)
   - 生产环境快照保留不超过 7 天

褚成志的云与计算笔记