上次的物理机多网卡知识点Linux|物理机多网卡的弯弯绕中,保留了通过HBA卡接入SAN网的知识点,本次进行讲解
1、物理机识别到存储上的LUN

不同于以太网下的网卡、交换机的无联线预配置,物理机接入SAN网需要依赖于存储侧能提前识别到主机侧的HBA卡的WWN号,所以在配置前要先整个物理联线、再实施存储侧、光交侧和主机侧配置:
1)采集物理机的HBA卡信息:使用cat /sys/class/fc_host/host*/port_name命令,获取每个HBA端口的wwn号,另称WWPN号
2)存储侧配置:以华为OceanStor存储为例,SAN环境不像IP网络通过IP地址识别主机,而是通过HBA卡唯一身份WWPN进行授权,因此存储首先需要建立“这个WWPN属于哪台服务器”的关系。
①定义两个启动器initiator(wwn号、别名)、一个主机host(操作系统、ip) → ②主机host下添加这两个启动器 → ③再创建一个主机组hostgroup把主机host加入(为了多物理机的集群场景) 规划→ ④创建一个或多个LUN卷(配额、应用类型)、创建LUN组并添加LUN → ⑤最后将“LUN组+主机组+存储物理端口”组进行映射。关联如下图:

3)光交侧配置:以博科FC交换机为例,①先定义别名、方便后续运维,为每个主机HBA卡的WWPN创建alicreate别名、存储侧的端口也创建别名(这个一般已经有了) → ②再配置zone,把一个主机端口发起端和一个存储端口目标端zonecreate关联起来;③最后配置生效、持久保持、配置生效,cfgadd→cfgsave→cfgenable。关联如下图:

4)主机侧配置:主机侧通过扫描脚本rescan-scsi-bus.sh和查询命令lsscsi -g和lsblk查看存储接入/dev/sd*情况(其实直接multipath -ll也行)。此时由于有 A、B 两个平面,同一个LUN会被识别两次(例如sda走平面A,sdb走平面B)。
它们的 WWID(世界唯一标识符)是完全一样的,但 SCSI 地址([HBA:Channel:Target:Lun])不同,还需要在主机侧上使用mpathconf --enable --with_multipathd y启用并激活multipathd进程。
Linux看到了两块盘(sda、sdb),mulitpath会读取底层设备的WWID,发现WWID相同时会聚合、让系统把它们当成一块盘用,并且同时利用两张卡进行路径分担,主要参数(cat /etc/multipath.conf)为:
path_checker tur:使用SCSI命令TEST UNIT READY检测no_path_retry 18:所有路径都失效时,还会重试18次才放弃I/O请求,避免网络短暂波动影响failback immediate:失效路径恢复后,立即切换该路径,适用于延迟敏感的场景reassign_maps no:禁止在路径状态变化时重新分配设备映射表,保持设备名稳定,避免因设备名变动导致应用异常check_path_num_per_splice 2:每次检查时,最多同时检查 2 条路径,用于控制检查频率和系统负载path_grouping_policy group_by_prio:根据路径的优先级(prio)将路径分组,用于实现故障切换prio const:所有路径的优先级都相同,不分主次,即AA负载调度;配合group_by_prio实际上就是让所有路径处于同一个优先级组,从而实现轮询负载均衡detect_prio no:不自动从存储阵列获取路径优先级,而是使用配置的prio值uid_attribute "ID_SERIAL":使用设备的 ID_SERIAL 属性作为唯一标识符UID,用于区分不同设备,作为多路径设备的唯一标识符deferred_remove yes:允许延迟移除设备映射,即使路径暂时不可用,也不会立即删除设备节点,避免应用因设备消失而崩溃flush_on_last_del yes:当最后一个路径被删除时,强制刷新缓存并释放资源,确保数据一致性TCP/IP以太网配置主要依赖于无状态的IP网络,数通RS是不需要提前知道以太网网卡的唯一标识MAC地址的,而FC-SAN网是高安全、强鉴权的,如果物理线没插好,或者Zone没划对,存储侧根本扫描不到WWN,就无法执行 create initiator 命令。FC-SAN网的核心优势如下:
最后,给上全览图:
