当前位置: 首页 > news >正文

通过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(如sdbsdc)。
    • 持久化标识:/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。
  • 性能低下
    • 验证HBA卡速率(/sys/class/fc_host/hostN/speed)、多路径负载均衡策略。

如果需要针对特定HBA型号(如QLogic/Emulex)或存储厂商(如EMC/NetApp)的配置细节,可进一步分析!

http://www.dtcms.com/a/266037.html

相关文章:

  • R 语言安装使用教程
  • Oracle面试题-体系结构
  • 《dlib库中的聚类》算法详解:从原理到实践
  • ABP VNext + Cosmos DB Change Feed:搭建实时数据变更流服务
  • 计算机科学导论(10)什么是BIOS
  • 探秘展销编辑器:相较于传统展销的卓越优势与甄选指南​
  • 按键精灵支持安卓14、15系统,兼容64位环境开发辅助工具
  • github如何创建一个自己的仓库保姆级教程
  • VBScript 安装使用教程
  • Gartner《Guidance Framework for a Modern Data Integration Architecture》学习心得
  • 分块矩阵怎么取逆?
  • svd分解求旋转平移矩阵
  • 基于SpringBoot+Vue的酒类仓储管理系统
  • C# 进行音视频编解码开发
  • 讯飞星火深度推理模型X1,为教育医疗带来革新
  • AUTOSAR图解==>AUTOSAR_AP_EXP_ParallelProcessingGuidelines
  • 打造一个可维护、可复用的前端权限控制方案(含完整Demo)
  • NestJS 系列教程(二):模块化架构与依赖注入机制详解
  • WPS 如何使用宏录制功能
  • Qt的前端和后端过于耦合(0/7)
  • 匹配一切 学习笔记2025
  • Doris 数据导入性能优化全攻略:深度诊断与全面提速指南
  • 封装 获取paramsByKey 方法
  • Unity-MMORPG内容笔记-其一
  • 【tensorflow2.6.0 一系列相关报错记录】
  • 踩坑日记:虚拟机桥接模式无法连接网卡
  • Intellij IDEA中Maven的使用
  • 学习C++、QT---17(C++ 记事本项目的雏形实现)
  • 深度学习1(深度学习和机器学习的区别,神经网络)
  • JNI实现Android音视频播放器的设计方案