存储和NAS
简短摘要
存储是媒体(SSD/NVMe/HDD),网络(以太网/IB/FC),协议(NFS/SMB/iSCSI/S3)和软件(ZFS,Ceph,NetApp,TrueNAS等)的组合,可提供性能,可靠性,安全性和经济性。正确的选择取决于I/O配置文件(运行/串行、块/文件/对象)、RPO/RTO和SLO的潜力/带宽要求。
存储分类法
DAS(直接连接存储)-"服务器旁边"驱动器。最小的潜伏期,没有网状瓶颈但更难共享资源。
SAN(存储区域网络)是基于FC/iSCSI/NVMe-oF的块存储。高性能、共享LUN、集中管理。
NAS(网络连接存储)是NFS/SMB上的文件球。方便共享目录、日志、人工制品、媒体内容。
对象存储-S3兼容API(Ceph RGW/MinIO/云)。用于备份,标志,档案,媒体,模型文物。
超融合解决方案(HCI)-将计算和存储(Ceph,vSAN,StarWind等)结合在一起,以实现水平比例。
访问协议
文件:- NFSv3/v4-Unix/Posix环境,状态锁定,Kerberos/KRB5i/KRB5p。
- SMB 3.x-Windows/AD域,加密/签名,multichannel, DFS。
- iSCSI-在以太网、LUN、许多路径(MPIO)之上,方便虚拟化/数据库。
- FC/NVMe-oF-低潜伏期,专业工厂/卡。
- S3 API是对象版本,lifecycle,WORM/Compliance mode,multipart upload。
- DB/虚拟机 →单元(iSCSI/NVMe-oF)。
- 协作文件夹/CI工件→ NFS/SMB。
- Logi/Backaps/Media/Model → S3兼容的对象。
数据和编码: RAID、ZFS、Erasure Coding
RAID
RAID1/10是低潜伏和高IOPS/Random读/写。
RAID5/6-节省容量,但记录罚款(写作便宜)。
ZFS是拷贝到写入(CoW),池和vdev,ARC/L2ARC缓存,用于同步操作的ZIL/SLOG,快照/复制副本和内置完整性(checksums)。
分布式系统(Ceph/MinIO)中的擦除代码(EC):Reed-Solomon代码"k+m"-与可接受的记录性能降解的三重复制相比节省了成本。
- 热随机负载(元数据、小文件)→ NVMe上的RAID 10/ZFS杂项。
- 冷/存档EC →,大HDD,激进缓存。
- 对于同步记录(NFS export)-在可靠的低专利NVMe (PLP)上专用SLOG。
性能: IOPS,带宽,潜伏期
IOPS对于小型随机操作(DB/元数据)很重要。
带宽-用于大型文件(视频、备份)。
P95/p99的潜在性-对于DB,队列,缓存API至关重要。
队列和并行:客户端上的多线程,NFS的"rsize/wsize",iSCSI的"rw",queue_depth"。
网络:25/40/100 GbE(或IB)+RSS/RPS,数据中心内的巨型MTU。
缓存和打字
ARC/L2ARC (ZFS)-RAM和NVMe读取缓存;SLOG是同步记录日志。
Write-back/Write-through控制器缓存-谨慎,仅使用电池/超级电容器(BBU/PLP)。
Tiering: NVMe(热)→ SSD(热)→ HDD(冷)→对象(存档)。迁移策略和生命周期。
狙击手、克隆、复制、DR
Snapshots (CoW):即时回滚/备用点;将目录"内部"存储,而不仅仅是管理程序。
复制:同步(RPO≈0,上图),异步(RPO=N分钟)。
克隆:经济的dev/测试环境。
DR电路:3-2-1(三份副本,两种媒体类型,一种场外),定期的DR演习;RPO/RTO目标。
安全性、合规性和多范围
身份验证/授权:LDAP/AD, Kerberos/NTLMv2用于SMB, AUTH_SYS/KRB用于NFSv4。
隔离:VLAN/VRF,出口策略,tenant 配额/quotas。
加密:静止(LUKS/ZFS 本机/SED)和飞行(S3的NFS-krb5p/SMB 加密/TLS)。
用于具有法律意义的数据的WORM/Compliance(S3对象锁,SnapLock对应物)。
审核:不可更改的访问日志,与SIEM集成。
监控和SLO
度量标准:- 通过池/卷:使用,"p95/p99 latency", IOPS, throughput, queue depth, cache, write amplification。
- 通过网络:drops,retransmits,PPS,MTU mismatch。
- 根据媒体:媒体错误,wear-level,温度,SMART。
- 复制/snapshot: lag/年龄,任务成功,持续时间。
- NFS球用于CI: p95 latency ≤ 3毫秒,可用性≥ 99。95%.
- LUN for DB: p99 write ≤ 1。5毫秒,该地区内的同步复制品;RPO 0, RTO ≤ 5分钟。
- 对象:p95 PUT ≤ 50毫秒,p95 GET ≤ 30毫秒,11 × 9耐用性(通过EU/复制)。
- 池填充>80/90/95%, cache命中率下降,write-amp增长,磁盘降级,网络缩减,复制时差>阈值。
备份和归档
快照+远程复制副本+单独备份到对象/磁带。
退出政策:每日/每周/每月。
不可移动性:S3对象锁(政府/合规性),"空隙"(磁带/禁用帐户)。
恢复测试-定期。
实用模板(最小值)
导出NFS(示例)
/pool/projects 10. 0. 0. 0/16(rw,async,no_root_squash,sec=krb5p)
SMB共享(smb片段。conf)
[media]
path = /pool/media read only = no vfs objects = acl_xattr, recycle ea support = yes kernel oplocks = no smb encrypt = required
ZFS: 创建池和数据集
bash zpool create tank mirror nvme0n1 nvme1n1 zfs set atime=off compression=lz4 tank zfs create tank/projects zfs set recordsize=1M tank/projects # большие файлы zfs set recordsize=16K tank/db # БД/мелкие I/O
iSCSI(想法)
在客户端上启用ALUA/MPIO,正确的taymout和queue depth。
分开iSCSI网络和客户端流量,在堆栈工厂内使用Jumbo MTU。
容量与性能规划
工作集(热量)和增长率(月度增长)模型。
IOPS和30-50%的容量在峰值和重新平衡下的库存。
考虑写操作(RAID/EC/CoW)和元数据。
对于对象-请求和出站流量、存储类(标准/IA/类似冰川)的成本。
操作和更新
控制器/OS/固件滚动更新。
Scrubs/Resilver窗口和优先级。
重置平衡:在恢复时限制I/O以免被"杀死"。
Runbooks降解/主机/网络丢失。
实施支票
- 选择访问配置文件:文件/块/对象+RPO/RTO/SLO。
- 负载和价格下的编码方桉(RAID/ZFS/EC)。
- 网络:单独的VLAN/VRF、工厂内部的MTU 9000、MPIO/ALUA。
- 缓存/打字:ARC/L2ARC/SLOG或类似的机制。
- Snapshots/复制品/备份:时间表,固定性,DR演习。
- 监视:池/媒体/网络/复制指标,Alertes。
- 访问/安全:ACL, Kerberos/AD,加密,审计。
- Tenant配额/限额和SLA/SLO目录。
- 文档和runbooks,测试恢复。
典型错误
ZFS/EC系统中的池溢出>80% →潜伏率急剧上升。
单个控制器/单网络没有MPIO/冗余。
在同一类媒体中混合冷热工作套件。
NFS上没有同步负载的SLOG →不可预测的延迟。
Backaps仅在同一阵列/帐户的"内部"→事故/损害损失。
缺乏常规的scrub和SMART监控。
忽略小型I/O模式:DB的大"记录大小"。
iGaming/fintech的细节
事务性DB和钱包:单独的NVMe池、RAID 10/ZFS mirrora,同步复制到B区,独立封装。
Logi/原始事件和反 Frod-fichi:对象+lifecycle+便宜的类,索引/店面-在SSD上。
内容和媒体(提供商):NAS+CDN、激进缓存、重复数据消除。
报告和PII:WORM/immutability,加密,访问审核,数据地理定位。
高峰事件:warm-up缓存、I/O限制、池上的p99 latency控制。
底线
可靠的存储系统是正确的类划分(文件/块/对象)、适当的编码方桉(RAID/ZFS/EC)、快速网络、缓存/打字、快照+复制+备份、硬SLO和自动化操作。遵循这些原则,您将获得可预测的性能,高可持续性和透明的存储经济性-满足安全和监管要求。