第267篇:存储网络基础:FC-SAN 与 IP-SAN(iSCSI)

关键词

FC-SAN、iSCSI、IP-SAN、存储网络、光纤通道、FCoE、SCSI 协议、块存储


一、存储网络概述

1.1 三种存储架构

DAS(Direct Attached Storage,直连存储):
  磁盘直接连接到服务器
  简单、低成本
  共享困难、扩展受限

  Server ─── SATA/SAS ─── Disk
  一个服务器独享

NAS(Network Attached Storage,网络附加存储):
  文件级存储(NFS/CIFS)
  通过 TCP/IP 网络访问
  方便共享、适合文件服务

  Server1 ───┐
  Server2 ───┼── IP 网络 ── NAS(文件系统)
  Server3 ───┘
  共享文件系统

SAN(Storage Area Network,存储区域网络):
  块级存储(SCSI 命令)
  专用的存储网络(FC 或 IP)
  高性能、低延迟、易扩展

  Server1 ───┐
  Server2 ───┼── SAN 网络 ── Storage Array
  Server3 ───┘
  共享块设备(LUN)

1.2 块级 vs 文件级 vs 对象存储

存储访问层次:

应用 ← 数据库/虚拟机/文件系统
文件系统 ← NTFS/ext4/XFS(文件级访问)
块设备 ← LUN/卷(块级访问)
磁盘 ← 物理介质

块级存储(SAN): 直接读写磁盘块 操作系统看到的是"裸硬盘" 数据库、虚拟机场景 高吞吐、低延迟

文件级存储(NAS): 通过文件系统协议访问 操作系统看到的是"文件夹" 文件共享、备份场景

对象存储(S3/Swift): HTTP API 访问 键值对(Key-Value)方式 海量数据、云原生场景


二、FC-SAN 架构

2.1 组件与角色

FC-SAN 的三大组件:

  1. HBA(Host Bus Adapter)—— 主机端的 FC 接口卡
  2. FC Switch —— 光纤通道交换机
  3. Storage Array —— 存储阵列(磁盘柜)

逻辑角色:

主机端: Initiator(发起端)—— 发送 SCSI 命令 HBA 卡(FC 端口)

存储端: Target(目标端)—— 接收并执行 SCSI 命令 存储控制器的 FC 端口

┌──────────┐ FC 网络 ┌──────────┐
Server HBA Port Initiator ─► FC Switch ──► Storage FC Port Target

2.2 FC 拓扑

FC-SAN 的三种拓扑:

  1. FC-AL(Arbitrated Loop,仲裁环): 所有设备串联成环 共享带宽(类似 Token Ring) 已被淘汰

  2. Fabric(交换结构,推荐): 使用 FC 交换机 任意到任意连接 高带宽(非共享)

  3. Point-to-Point(点到点): 直连,无交换机 简单但不可扩展

    Fabric 拓扑: | FC SW1 | ─── | FC SW2 | | --- | --- | --- | │ │ │ │ | Srv | | Srv | | Sto | | Sto | | --- | --- | --- | --- | --- | --- | --- |

2.3 FC 协议层次

FC 协议栈(5 层):

功能
FC-4 FC-3 FC-2 FC-1 FC-0 上层协议映射(SCSI-FCP, IPFC) 公共服务(条带化、多路径) 成帧/流控/寻址(24-bit FCID) 编码(8B/10B 或 64B/66B) 物理层(1G/2G/4G/8G/16G/32G/64G)

速率演进: | 速率 | 实际带宽 | | --- | --- | | FC-4G FC-8G FC-16G FC-32G FC-64G FC-128G | 4 Gbps 8 Gbps 16 Gbps 32 Gbps 64 Gbps 128 Gbps |

2.4 FC 的优势与局限

FC-SAN 优势:
  1. 高性能——专用网络,无 TCP 开销
  2. 低延迟——硬件级转发,< 10μs
  3. 零丢包——基于 Credit 的流控,天然无损
  4. 可靠性——FC 交换机高可用设计
  5. 成熟——20 年积累,关键业务标配

FC-SAN 局限:
  1. 成本高——专用 HBA + FC 交换机 + 线缆
  2. 距离限制——通常 < 10km(长距需 DWDM)
  3. 管理复杂——Zone 配置,Domain 管理
  4. 扩展性差——FC Fabric 规模有限(239 Domain)
  5. 与 IP 网络隔离——需要额外网关互通

三、iSCSI(IP-SAN)

3.1 什么是 iSCSI

iSCSI(Internet Small Computer System Interface): 将 SCSI 命令封装在 TCP/IP 中传输 利用标准以太网做 SAN

封装格式:

SCSI Command / Data ← 原始的 SCSI 命令或数据
iSCSI Header ← iSCSI 会话管理
TCP(默认端口 3260) ← 可靠传输
IP ← 路由
Ethernet ← 物理

iSCSI 名称(唯一标识):

iqn.1999-03.com.huawei:storage:array-001 │ │ │ │ │ 格式 日期 域名反写 厂商:设备:序列号

iSCSI 地址格式: IP:Port,iqn → 192.168.1.100:3260,iqn.xxx

3.2 iSCSI 工作流程

iSCSI 会话建立与数据传输:

  Initiator(服务器)                 Target(存储阵列)
        │                                  │
        │     1. TCP 连接(端口 3260)     │
        │◄════════════════════════════════►│
        │                                  │
        │     2. iSCSI Login               │
        │     CHAP 认证                    │
        │     (用户名/密码/Mutual Auth)   │
        │◄════════════════════════════════►│
        │                                  │
        │     3. SCSI 命令封装            │
        │     READ(块地址, 长度)            │
        │────────────────────────────────►│
        │                                  │
        │     4. SCSI 数据返回             │
        │     Data(块内容)               │
        │◄────────────────────────────────│
        │                                  │
        │     5. WRITE                     │
        │     Data + WRITE 命令             │
        │────────────────────────────────►│
        │         R2T(Ready to Transfer)  │
        │◄────────────────────────────────│
        │     Data(剩余数据)              │
        │────────────────────────────────►│
        │         Response(写入完成)      │
        │◄────────────────────────────────│

3.3 iSCSI 配置示例

# 服务器端(Initiator,Linux)
#
# 安装 iSCSI 客户端
yum install iscsi-initiator-utils

# 配置 iSCSI 名称
echo "InitiatorName=iqn.1999-03.com.huawei:server-001" > /etc/iscsi/initiatorname.iscsi

# 发现 Target
iscsiadm -m discovery -t sendtargets -p 192.168.1.100

# 登录 Target
iscsiadm -m node -T iqn.1999-03.com.huawei:storage-array-001 -l

# 查看 iSCSI 磁盘
fdisk -l /dev/sdb
lsblk

# 存储阵列端(Target,华为 OceanStor)
#
# 创建 LUN
create lun name=VMware_Data1 capacity=2TB

# 创建 iSCSI 接口
create iscsi_interface ip=192.168.1.100 vlan_id=10

# 创建 Host 组
create host_group name=Compute_Cluster1
add host_group member=Compute_Cluster1 host=Server1
add host_group member=Compute_Cluster1 host=Server2

3.4 iSCSI 的优缺点

iSCSI 优势:
  1. 低成本——标准以太网,无需专用设备
  2. 易管理——与现有 IP 网络融合
  3. 长距离——TCP/IP 天然支持长距离
  4. 易扩展——IP 网络规模大

iSCSI 劣势:
  1. 性能受 TCP 影响(CPU 开销、TCP 卸载)
  2. 对丢包敏感(TCP 拥塞控制导致延迟增加)
  3. 安全性差(需要额外 IPSec 加密)
  4. 延迟 > FC(10-100μs vs FC 1-10μs)

适用场景:
  FC-SAN:核心高性能业务、数据库、关键应用
  iSCSI:虚拟化存储、备份归档、中等性能需求

四、FC-SAN vs iSCSI 对比

对比维度 FC-SAN iSCSI (IP-SAN)
网络类型 传输协议 速率 延迟 丢包 CPU 开销 距离 成本 管理复杂度 安全性 多路径支持 适用场景 光纤通道专用网 FC-FCP 32G/64G/128G 1-10μs 零丢包(Credit) 无(硬件卸载) < 10km 高 高 物理隔离 原生 核心数据库 高性能计算 标准以太网 TCP/IP 25G/50G/100G 10-100μs TCP 重传 中(需 TCP offload) 任意 低 中 需额外加密 MPIO 虚拟化、备份 中等性能需要

选择建议: 核心生产数据库 → FC-SAN(性能优先) 虚拟化平台 → 两者皆可(取决于预算) 备份/归档 → iSCSI(成本优先) 远程复制 → iSCSI(距离要求)


五、FCoE(Fibre Channel over Ethernet)

5.1 融合网络思路

FCoE 将 FC 帧直接封装在以太网中传输:

FC Frame FCoE Header 以太网 MAC

FCoE 的目标:用一张网络承载 LAN + SAN 需要无损以太网(DCB/PFC) 需要 CEE(Converged Enhanced Ethernet)交换机

CNA 卡 (融合网卡) LAN+FC ────► FCoE SW (DCB) ────► FC Storage

CNA(Converged Network Adapter): 一张网卡同时支持 TCP/IP 和 FCoE 替代 HBA + NIC 双卡

5.2 FCoE 的现状

FCoE 的发展:

  兴起(2010-2015):
    融合网络理念
    节省端口和线缆
    厂商大力推广

  降温(2015-2020):
    部署复杂度高
    DCB/PFC 配置困难
    NVMe over Fabrics 兴起

  当前:
    主要用于 FC 到 IP 过渡
    新部署较少
    NVMe-oF 成为新方向

六、总结

知识点 核心要点
DAS/NAS/SAN 直连/文件/块三种存储架构
FC-SAN 专用光纤通道网络,高性能低延迟天然无损
iSCSI SCSI over TCP/IP,低成本易扩展
FC 组件 HBA + FC Switch + Storage Array
iSCSI 地址 IQN 格式(iqn.yyyy-mm.domain:标识)
FC 特点 零丢包、低延迟、管理复杂、成本高
iSCSI 特点 标准以太网、长距离、CPU 开销
FCoE FC over Ethernet,融合网络思路
选择依据 性能需求、预算、距离决定方案

七、思考

  1. DAS、NAS、SAN 三种存储架构的核心区别是什么?数据库通常用哪种?
  2. FC-SAN 中 HBA、FC Switch、Storage Array 各自扮演什么角色?Initiator 和 Target 分别是谁?
  3. iSCSI 将 SCSI 命令封装在哪些协议中传输?为什么 iSCSI 的延迟比 FC 高?
  4. FC-SAN 和 iSCSI 的优缺点对比中,性能差异的根源是什么?
  5. FCoE 为什么需要 DCB(PFC)的支持?没有无损以太网 FCoE 能否正常工作?

下篇预告:第268篇《FC 交换机基础:Domain ID、WWN、Zone》——FC 交换机的核心概念,Domain ID 寻址、WWN 设备标识、Zone 分区隔离与配置实例。