微信优化

weixinyouhua

naa配置是什么?新手必看NaaS配置教程,最全疑问解答

2026-08-28 21:32:46

Linux系统存储多路径异常,多数情况下问题出在naa配置与设备实际标识不符解决这类问题,只需按本文步骤重新核对并配置naa编号即可。

naa配置到底是什么

naa配置说起来并不高深,它指的是在FC光纤存储或SAS磁盘阵列环境中,每块LUN(逻辑磁盘)都有一串全球唯一的存储设备标识符,这串标识符在光纤通道协议中就叫作naa(Network Address Authority),运维人员把这串编号写进操作系统多路径软件或设备绑定规则里,系统才能准确识别“哪块盘对应哪个存储上的哪个LUN”。

帮助你理解naa的出场场景

想象一下:一台戴尔R740服务器,安装了HBA卡,通过光纤交换机连接华为OceanStor存储,存储管理员在存储侧划了一个800GB的LUN映射给这台服务器,主机侧Linux系统里多出一块设备名是下的/dev/sdb,但你不知道它对应存储上的哪个LUN,展开naa配置,你就能看到每个磁盘设备对应的唯一标识,从而准确绑定业务。

还有一种常见场景:服务器做了双HBA卡冗余,两块卡都连着存储,系统会看到两个一样的磁盘路径一块LUN以/dev/sde和/dev/sdg两条路径出现,如果不做naa配置去绑定和合并,系统会把这些路径当作多块独立磁盘,轻则盘符错乱,重则数据写入混乱。

如何查看磁盘naa编号

操作并不复杂,Linux系统下查看naa配置最直接的命令是通过udev的scsi_id工具获取设备wwid(WWN标识)。

/lib/udev/scsi_id -g -u -d /dev/sdb

输出结果类似:

3600508b1001c73adf123456789abcdef

这串以“3”开头的60位十六进制字符串,就是这块盘的naa编号,注意这里的“naa”与存储厂商文档里的“WWN”“WWID”指代的是同一个概念,只是在不同环境下叫法略有差异,行业共识认为,WWN是总称,naa是WWN中采用NAA格式编码的那一部分,企业级FC存储的LUN标识绝大多数采用naa-5或naa-6格式

naa配置是什么?新手必看NaaS配置教程,最全疑问解答

,开头数字通常是3或6。

查看所有磁盘设备对应的naa编号

逐个查看效率太低,一条循环就能列出系统所有块设备与naa的对应关系:

for disk in /dev/sd[a-z]; do
  echo -n "$disk "  
  /lib/udev/scsi_id -g -u -d $disk
done

另一种方式是通过multipath命令直接看当前已识别的多路径映射:

multipath -ll

输出中每台设备列表后方的“3600508…”就是该LUN的naa编号,在实际项目中,存储侧控制台上也会显示每个LUN的WWN标识,主机侧看到的naa编号应当与之一致,这常被用来核对映射关系是否准确。

在multipath.conf里配置naa的具体操作

拿到naa编号后,核心操作是把它写进/etc/multipath.conf配置文件中,让多路径守护进程按这个标识来识别和聚合路径。

第一步:确认系统启用了multipath服务

先检查是否安装了device-mapper-multipath软件包:

rpm -qa | grep multipath

若未安装,在CentOS/RHEL系统上执行:

yum install -y device-mapper-multipath

第二步:编辑multipath配置文件的naa配置段

编辑/etc/multipath.conf,在multipaths段下添加LUN别名和wwid绑定:

multipaths {
    multipath {
        wwid   3600508b1001c73adf123456789abcdef
        alias  data_lun01
    }
}

配置项说明如下wwid即naa编号,alias是为这个LUN指定的易读名称,alias设置后系统会生成/dev/mapper/data_lun01设备节点,业务挂载时可以直接引用这个稳定名称,不依赖且不受盘符漂移影响。

第三步:重新加载multipath服务并验证

naa配置是什么?新手必看NaaS配置教程,最全疑问解答

修改配置后,依次执行:

systemctl restart multipathd
multipath -r
multipath -ll

multipath -r适合多数环境,如果设备在系统启动早期就已经被占用,无法强制刷新,那么重新启动服务器走一次完整扫描更稳妥,验证时执行multipath -ll,如果输出中出现了alias对应的设备路径且显示active active状态,说明naa配置已生效。

配置文件的常见目录约定

多数主流Linux发行版的multipath配置文件位于/etc/multipath.conf,部分系统还支持/etc/multipath/conf.d/目录下放置分片配置,分片配置思路适合管理大量LUN的环境,比如按业务线、按存储阵列分别建文件,每个文件里维护对应的naa配置段。

绑定naa后服务器重启失效怎么办

实际运维中遇到最多的问题是:重启之后/dev/mapper下的别名丢失,或者盘符重新漂移,排查思路按以下优先级展开。

  • 确认multipathd服务是否开机自启,执行systemctl enable multipathd,确保服务在系统启动阶段优先加载。
  • 确认配置文件中没有语法错误,使用multipathd -k"show config"可以查看实际加载的配置内容,如果wwid少写一位或者多了空格,配置都会被静默忽略。
  • 排查udev规则是否覆盖了naa绑定,多路径设备在系统启动时应通过udev的/dev/mapper/机制来创建设备节点,如果自定义的udev规则也尝试绑定同一个naa编号,两者会互相冲突,这类冲突在systemd环境下尤为突出。

naa配置时的路径归属关系容易搞混的地方

有一个相当普遍的误解:把存储控制器的WWN当成了LUN的naa编号来配置,每台存储设备(存储阵列)自身有出厂WWN,每个LUN也有各自的WWN(naa编号),主机侧磁盘设备输出的scsi_id对应的是LUN的编号,而不是存储控制器的编号,在存储侧LUN映射界面,通常能看到类似“LUN的WWN”字段,主机侧scsi_id输出的值应该与此一致。

naa配置是什么?新手必看NaaS配置教程,最全疑问解答

业内专家指出,多路径配置文件里只认LUN的naa编号,写错成控制器WWN不会导致配置生效,还会让scsi_id搜索出现两个完全不同的标识,增加排障干扰。

表中列出常见标识符号的命名区别,便于理解:

标识符类型 常见格式示例 作用范围
LUN WWN(naa格式) 3600508b1001c73adf… 单个LUN的唯一标识,多路径绑定依据
存储阵列WWN 5000508b1001c73a… 标识存储控制器自身,用于zone划分
主机HBA WWN 10000090fa123456 标识服务器HBA卡,用于存储端映射

Q&A:围绕naa配置的高频疑问

naa配置错误会导致哪些现象

最直接的表现是multipath -ll输出为空,系统识别不到多路径设备;其次是两块盘配置了相同的wwid,multipath将它们误判为同一块盘的多个路径,从而随机聚合错误设备。

配置文件中wwid字符串的大小写有影响吗

naa编号通常是小写十六进制字符串,multipath工具解析时对大小写不敏感,但存储侧下发LUN映射时控制台显示的WWN既有大写也有小写形式,建议统一使用scsi_id输出的小写值直接复制粘贴,避免手动转换出错。

有udev规则还需要naa配置吗

udev规则和multipath的naa配置解决的是不同层面的问题,udev负责固定设备节点名称,多路径配置负责路径聚合和故障切换,生产环境中最常见的做法是先用multipath完成naa绑定和聚合,再为生成的/dev/mapper设备补充udev规则,让权限属组和名称在重启后保持一致,两套机制配合使用才能实现LUN名称管理,两者搭配是生产存储环境中最常用的部署组合。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待