全闪存储概览
为什么选择全闪
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.72TBH3C 全闪产品线
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/Obash
# 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 天