通过HBA卡新增外接存储,详细流程
当服务器通过 HBA卡(Host Bus Adapter) 新增外接存储(如FC-SAN或SAS存储)时,底层流程涉及 硬件连接、协议协商、设备发现、操作系统识别 等多个步骤。以下是详细流程:
1. 物理连接与链路初始化
(1) 硬件连接
- FC-SAN环境:
- 将HBA卡的光纤接口通过 光纤线缆 连接到 FC交换机 或直接连接到存储阵列的FC端口。
- 存储阵列需提前配置LUN(逻辑单元)并映射到HBA卡的 WWN(World Wide Name)。
- 直连SAS环境:
- 通过SAS线缆将HBA卡直接连接到JBOD(磁盘柜)或存储控制器的SAS端口。
(2) 链路协商
- 光纤通道(FC):
- HBA卡与FC交换机/存储端口通过 FLOGI(Fabric Login) 协议完成身份认证和链路参数协商(速率、拓扑等)。
- 关键步骤:
FLOGI(HBA向交换机注册WWN) → PLOGI(与存储端口建立会话) → PRLI(SCSI协议协商)
- SAS:
- HBA卡与SAS设备通过 SAS协议 协商链路速率(如12Gbps)和拓扑(Expander级联)。
2. 存储设备发现
(1) SCSI扫描触发
- 自动发现:
- 多数HBA驱动在检测到链路状态变化(如新设备接入)后,自动触发SCSI总线扫描。
- 手动触发(如需强制扫描):
# 触发LIP(Fibre Channel环路初始化) echo 1 > /sys/class/fc_host/hostN/issue_lip# 强制SCSI总线扫描(hostN为HBA对应的SCSI主机号) echo "- - -" > /sys/class/scsi_host/hostN/scan
(2) 设备注册
- SCSI层处理:
- HBA驱动将发现的存储设备(LUN)注册为SCSI设备,内核生成 /dev/sdX 设备节点。
- 可通过以下命令查看:
lsscsi -u # 显示设备WWN和SCSI地址
- 多路径处理(如适用):
- 若配置了多路径软件(如DM-Multipath),设备会被聚合为 /dev/mapper/mpathX。
3. 操作系统识别与配置
(1) 设备节点生成
- Linux系统通过 udev 规则创建设备文件:
- 默认路径:
/dev/sdX
(如sdb
、sdc
)。 - 持久化标识:
/dev/disk/by-id/
(基于WWN的符号链接)。
- 默认路径:
(2) 文件系统与挂载
- 分区与格式化:
fdisk /dev/sdX # 创建分区 mkfs.ext4 /dev/sdX1 # 格式化分区
- 挂载使用:
mount /dev/sdX1 /mnt/data
- 持久化挂载:
在/etc/fstab
中添加条目(建议使用WWN或UUID避免设备名变化):/dev/disk/by-id/wwn-0x50014ee20b8d38a9-part1 /mnt/data ext4 defaults 0 0
4. 底层关键日志与诊断
(1) 查看内核日志
- 检查HBA卡和SCSI层事件:
dmesg | grep -i "scsi\|fibre\|lpfc" # 示例输出:
[ 123.456789] lpfc 0000:03:00.0: 11: Link Up Event x5 received [ 123.456801] scsi 11:0:0:1: Direct-Access IBM 2145 0001 PQ: 0 ANSI: 6 [ 123.456810] sd 11:0:0:1: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB)
(2) 验证设备信息
- 查看SCSI设备详情:
sg_inq /dev/sdb # 显示Vendor、LUN ID、WWN等信息
- 检查FC链路状态:
cat /sys/class/fc_host/host11/port_state # 应为"Online"
5. 高级配置(可选)
(1) 多路径I/O
- 配置多路径软件以提升冗余和性能:
multipath -v2 # 扫描多路径设备 multipath -ll # 查看多路径拓扑
(2) 调整HBA参数
- 修改队列深度或超时时间(需根据存储阵列优化):
echo 128 > /sys/block/sdb/queue/nr_requests
流程图总结
物理连接 → FC/SAS链路协商 → SCSI设备发现 → 内核注册设备 → 操作系统识别 → 分区/挂载
常见问题排查
- 设备未识别:
- 检查FC链路状态(
port_state
)、WWN映射、存储阵列LUN Masking。
- 检查FC链路状态(
- 性能低下:
- 验证HBA卡速率(
/sys/class/fc_host/hostN/speed
)、多路径负载均衡策略。
- 验证HBA卡速率(
如果需要针对特定HBA型号(如QLogic/Emulex)或存储厂商(如EMC/NetApp)的配置细节,可进一步分析!