3.1.5 存储协议与接口概览(SATA/SAS/NVMe/iSCSI/FC)

3.1.5 存储协议与接口概览(SATA/SAS/NVMe/iSCSI/FC)#

存储协议与接口决定了介质与主机之间的数据传输方式、性能上限、可靠性与可扩展性。本节以“原理草图 + 命令识别 + 安装/连接示例 + 排错要点 + 练习”给出可落地的运维视角。

一、原理与位置(总览)

文章图片

二、协议特性速记(含典型场景)
- SATA:成本低、带宽/并发低;适合容量型、冷数据。
- SAS:企业级、双端口、多路径;适合数据库/虚拟化。
- NVMe:PCIe 直连、队列深度高;适合低延迟高并发。
- iSCSI:IP 网络传输 SCSI;适合中小型 SAN、虚拟化平台。
- FC:专用 SAN、低延迟高可靠;适合核心业务与大规模存储。

三、识别与基础命令(含解释)

# 识别本机块设备与传输类型(TRAN 字段)
lsblk -o NAME,TYPE,SIZE,MODEL,TRAN

# 查看 PCIe 设备,识别 NVMe 控制器
lspci | grep -i nvme

# NVMe 设备列表与健康信息
nvme list
nvme smart-log /dev/nvme0

# iSCSI 发现与会话
iscsiadm -m discovery -t sendtargets -p 10.0.0.10
iscsiadm -m session

# 多路径查看(SAS/iSCSI/FC 常用)
multipath -ll

四、iSCSI 连接示例(安装 + 配置 + 验证)

以 RHEL/CentOS/AlmaLinux 为例,连接到 iSCSI Target。

# 1) 安装客户端工具
yum -y install iscsi-initiator-utils

# 2) 设置发起端名称(可选但推荐)
cat >/etc/iscsi/initiatorname.iscsi <<'EOF'
InitiatorName=iqn.2024-ops.client:node01
EOF
systemctl restart iscsid

# 3) 发现目标
iscsiadm -m discovery -t sendtargets -p 10.0.0.10

# 4) 登录并自动重连
iscsiadm -m node -T iqn.2024-ops.storage:disk01 -p 10.0.0.10 --login
iscsiadm -m node -T iqn.2024-ops.storage:disk01 -p 10.0.0.10 --op update -n node.startup -v automatic

# 5) 验证新盘出现
lsblk -o NAME,SIZE,TYPE,TRAN

预期效果lsblk 中出现新块设备(如 /dev/sdb),TRAN 显示 iscsi

五、SAS/NVMe 典型运维示例(队列与调度)

# 查看当前块设备调度器
cat /sys/block/sda/queue/scheduler
cat /sys/block/nvme0n1/queue/scheduler

# 设置 NVMe 设备调度器为 none(高性能场景常用)
echo none > /sys/block/nvme0n1/queue/scheduler

# 查看并设置队列深度(示例)
cat /sys/block/nvme0n1/device/queue_depth
echo 1024 > /sys/block/nvme0n1/device/queue_depth

六、FC 场景识别与多路径示例

# 安装多路径软件
yum -y install device-mapper-multipath

# 生成默认配置并启用
mpathconf --enable --with_multipathd y
systemctl enable --now multipathd

# 查看多路径设备
multipath -ll

预期效果:多路径设备以 mpath 命名出现,路径为 active/ready

七、排错清单(含命令)
1. 链路不通/无盘

# iSCSI 发现失败:检查端口与连通
ping 10.0.0.10
nc -zv 10.0.0.10 3260

# 查看 iSCSI 服务状态
systemctl status iscsid
  1. 设备抖动/超时
# 查看内核日志定位错误码
dmesg -T | egrep -i "scsi|nvme|iscsi|fc|timeout|reset"

# 检查 SMART(SATA/SAS)
smartctl -a /dev/sda
  1. 多路径路径异常
multipath -ll
# 观察 path 状态是否为 failed/faulty

八、协议选型实践示例(简表)
- 数据库主库:SAS/NVMe + 多路径
- 日志归档/备份:SATA
- 虚拟化共享存储:iSCSI/FC
- 极致低延迟:NVMe 本地或 NVMe-oF

九、练习
1. 使用 lsblk -o NAME,TRAN 区分本机 SATA 与 NVMe 设备,并截图记录。
2. 在测试机上完成 iSCSI 登录与自动重连设置,重启后验证连接是否恢复。
3. 找出一条 dmesg 中的存储相关日志,解释其含义。
4. 修改 NVMe 调度器为 none,用 fio 进行简单对比测试并记录结果。