存儲和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和自動化操作。遵循這些原則,您將獲得可預測的性能,高可持續性和透明的存儲經濟性-滿足安全和監管要求。