在Linux系统下连接光纤磁盘阵列柜需经历硬件准备、物理连接、驱动安装、设备发现、多路径配置及文件系统挂载等流程,以下是详细步骤:
硬件准备与物理连接
光纤磁盘阵列柜通过光纤通道(FC)与服务器通信,需确保以下硬件组件就绪:
组件 | 类型/要求 | 注意事项 |
---|---|---|
服务器端HBA卡 | PCIe接口光纤通道卡(如QLogic 2580、Emulex LPE32002) | 需确认卡型号与Linux内核兼容性,优先选择厂商认证型号 |
光纤线缆 | LC-LC或SC-SC接口,单模(长距离,≥10km)或多模(短距离,≤500m) | 线缆速率需匹配HBA卡与阵列柜(如8G/16G),避免混用不同速率线缆 |
光纤交换机(可选) | FC交换机(如Brocade、Cisco),若直连阵列柜则无需交换机 | 若通过交换机,需提前配置Zone(将服务器HBA WWPN与阵列柜端口WWPN划入同一Zone) |
磁盘阵列柜 | 支持光纤通道的阵列柜(如华为OceanStor、戴尔PowerStore),已完成LUN映射配置 | 阵列柜需提前创建LUN并映射给服务器的HBA卡WWPN |
物理连接步骤:
- 关闭服务器电源,将HBA卡插入PCIe插槽,固定螺丝;
- 根据环境选择直连或交换机连接:
- 直连:服务器HBA卡端口→光纤线缆→阵列柜前端端口;
- 交换机:服务器HBA卡→交换机端口,阵列柜端口→交换机另一端口(需确保交换机Zone配置正确);
- 开机后观察HBA卡指示灯(常绿表示正常)、交换机端口灯(常亮/闪烁表示链路正常)、阵列柜端口灯(常亮表示连接成功)。
Linux系统驱动安装与设备发现
安装HBA卡驱动
Linux内核通常已包含常见HBA卡驱动(如QLogic的qla2xxx
、Emulex的lpfc
),若需手动安装(如驱动版本较旧):
- 以RHEL/CentOS为例:
# 下载厂商驱动包(如QLogic驱动qla2xxx-xxx.rpm) rpm -ivh qla2xxx-xxx.rpm # 加载驱动模块 modprobe qla2xxx
- 以Ubuntu为例:
apt update apt install linux-firmware-qlogic # 安装固件 modprobe qla2xxx
加载后通过
dmesg | grep qla2xxx
查看驱动日志,确认无报错。
发现光纤通道设备
使用以下命令确认HBA卡及LUN是否被识别:
- 查看HBA卡信息:
fcinfo hba-port # 显示HBA卡WWPN(World Wide Port Name)、状态等信息
- 查看逻辑单元(LUN):
fcinfo logical-unit # 列出所有识别到的LUN,显示LUN号、设备路径(如/dev/sdb)
- 通过SCSI设备确认:
lsscsi -g # 显示SCSI设备及其HBA卡、LUN信息,格式为"[HBA:ID:LUN:目标] 设备名"
若能看到阵列柜映射的LUN(如
[0:0:1:0] /dev/sdc
),则设备发现成功。
多路径配置(Multipathing)
为避免单点故障并提升性能,需配置多路径(通过多条物理路径访问同一LUN)。
安装多路径工具
- RHEL/CentOS:
yum install device-mapper-multipath
- Ubuntu:
apt install multipath-tools
配置多路径文件
编辑/etc/multipath.conf
,核心参数如下:
参数 | 说明 | 示例值 |
---|---|---|
defaults |
默认多路径策略 | path_grouping_policy multibus |
path_selector |
路径选择算法(轮询或优先级) | path_selector "service-time 0" |
hardware_handler |
硬件处理程序(适配阵列柜ALUA协议) | hardware_handler "1 alua" |
features |
功能开关(如队列调度) | features "0" |
blacklist |
排除不需要多路径的设备(如本地磁盘) | blacklist { devnode "^sda$" } |
示例配置:
defaults { path_grouping_policy multibus path_selector "service-time 0" hardware_handler "1 alua" features "0" no_path_retry fail } blacklist { devnode "^sda$" devnode "^sdb$" }
启动多路径服务并检查
systemctl enable multipathd --now # 启用并开机自启 multipath -F # 清空旧的多路径配置 multipath -v2 # 扫描并生成多路径设备
通过multipath -ll
查看多路径设备,输出示例:
mpathb (360014051abcdef1234567890abcdef) [size=10T][features=1][hwhandler=1 alua][rw]
_ round-robin 0 [prio=10][active]
_ 0:0:1:0 sdc 8:32 [active][ready]
_ round-robin 0 [prio=10][enabled]
_ 1:0:1:0 sdd 8:48 [active][ready]
其中mpathb
为多路径设备名,包含两条路径(sdc
、sdd
)。
文件系统创建与挂载
- 分区(可选):若需分区,使用
parted
或fdisk
:parted /dev/mapper/mpathb mklabel gpt parted /dev/mapper/mpathb mkpart primary ext4 0% 100%
- 格式化:
mkfs.ext4 /dev/mapper/mpathb # 或xfs(mkfs.xfs /dev/mapper/mpathb)
- 挂载:
mkdir /data mount /dev/mapper/mpathb /data
- 配置开机自启:编辑
/etc/fstab
,添加:/dev/mapper/mpathb /data ext4 defaults,_netdev 0 0
(
_netdev
表示网络设备,避免启动时挂载失败)
测试验证
- 多路径状态检查:拔掉一根光纤线(如拔掉HBA卡与交换机的线缆),通过
multipath -ll
确认路径是否标记为failed
,读写是否正常(如dd if=/dev/zero of=/data/test bs=1M count=1024
)。 - 性能测试:使用
fio
测试读写性能,确保多路径负载均衡生效。
相关问答FAQs
Q1:Linux下如何确认HBA卡是否被系统正确识别?
A:可通过以下命令确认:
lspci | grep -i fibre
:查看PCI设备列表,若包含HBA卡型号(如“QLogic”或“Emulex”),则硬件识别成功;fcinfo hba-port
:若显示HBA卡的WWPN和“Online”状态,则驱动加载成功;dmesg | grep qla2xxx
(或对应驱动名):查看驱动日志,无“error”等报错即正常。
Q2:多路径配置后,设备未显示(如multipath -ll
无输出)怎么办?
A:排查步骤如下:
- 检查
multipathd
服务状态:systemctl status multipathd
,确保服务运行; - 验证
multipath.conf
语法:multipath -t
,若有语法错误会提示; - 确认LUN是否映射:通过
fcinfo logical-unit
查看LUN是否存在,若未找到需检查阵列柜LUN映射配置; - 查看多路径日志:
tail -f /var/log/multipath.log
,定位错误(如路径未绑定、设备被黑名单拦截)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/32519.html