简介:本资源是一份面向企业IT运维工程师与云计算初学者的华为FusionCompute实战配置笔记,聚焦虚拟化平台核心功能的落地实施,解决FC环境中存储接入、网络规划、高可用保障及跨主机迁移等典型运维难题。文档以PDF格式单文件交付(1个文件,2.27MB),内容覆盖HBA卡WWN号获取、FC-SAN/NAS存储添加与三种数据存储类型(虚拟化/非虚拟化/裸设备映射)选型对比、分布式交换机创建与多网卡绑定策略(主备/基于MAC/轮询/源目的端口)、时钟同步配置、IMC集群兼容性设置、共享磁盘绑定、模板创建及告警阈值设定等关键操作模块。内容结构清晰,含大量界面路径指引(如“主机→配置→存储资源”)与场景化说明,如Oracle RAC对裸设备映射的依赖、VXLAN环境下推荐的负荷分担模式等。目前已有828人学习下载,适合需快速掌握FusionCompute生产环境部署要点与排错逻辑的中级运维人员参考使用。
1. 这不是一份“PDF笔记”,而是一份能直接上手调通FC-SAN+分布式交换机+IMC迁移的FusionCompute配置黑盒手册
你刚接手一套华为私有云,VRM界面卡顿、主机加不进集群、FC存储扫不出来、虚拟机跨主机迁移报“CPU不兼容”——翻遍官方文档却找不到对应场景的实操路径。这份《华为FusionCompute配置笔记.pdf》不是理论汇编,而是从某金融客户生产环境里抠出来的、带血渍的操作日志:它用27处“随意编辑”标记(原文保留)暴露了真实配置过程中的临时跳过项,用“主备模式速率等同于单个网口”这种反直觉结论点破厂商宣传话术,更在裸设备映射章节明确写出“仅支持RHEL 5.4/5.5/6.1/6.2 64bit”——这行字背后是Oracle RAC上线前3次重装系统的代价。它解决的是三类人的问题:刚通过华为HCIA-Cloud认证但没碰过真机的新人、被紧急call到现场救火的二线工程师、以及需要快速验证FC-SAN与分布式交换机联动效果的架构师。如果你正卡在“扫描不到FC存储”或“开启IMC后虚拟机起不来”,这份资料里的每一步操作都经过CAN节点级验证,不是截图堆砌,而是把“为什么选基于源目的MAC而非轮询”“为什么裸设备必须关SELinux”这些玄学结论,拆解成可复现的命令和参数。
2. FC-SAN存储接入全流程:从HBA卡WWN提取到多路径配置落地
2.1 主机HBA卡WWN号提取:不是看文档,而是进CAN Shell抓原始数据
FusionCompute管理界面中“主机→配置→存储资源”路径下显示的WWN,常因驱动版本或HBA固件问题存在缓存偏差。真实生产环境中,我坚持在CAN节点(即CNA计算节点)的Linux Shell中执行以下命令交叉验证:
# 查看所有HBA卡设备 ls /sys/class/fc_host/ # 输出示例:host0 host1 host2 # 提取host0的Node WWN(NWWN)和Port WWN(PWWN) cat /sys/class/fc_host/host0/node_name # 输出示例:0x20000090fa123456 cat /sys/class/fc_host/host0/port_name # 输出示例:0x10000090fa123456注意:
node_name对应NWWN(标识整块HBA卡),port_name对应PWWN(标识HBA卡上的物理端口)。FC交换机Zone配置必须使用PWWN,而存储阵列LUN Masking通常要求同时提供NWWN+PWWN。此处输出的十六进制值需转换为冒号分隔格式(如20:00:00:90:fa:12:34:56)才能被存储侧识别。
2.2 FC-SAN存储扫描与多路径配置:华为存储专用驱动启用是前提
原文提到“如果是华为的存储,选择‘华为’”,但这句背后藏着关键动作:华为OceanStor系列存储需在CAN节点安装专属多路径软件UltraPath。未安装时,即使扫描到LUN,也会因路径缺失导致I/O超时。完整流程如下:
# 1. 挂载UltraPath安装包(以UP1.8.0为例) mount -o loop UltraPath_V1R8C00.iso /mnt cd /mnt # 2. 安装驱动(自动适配内核版本) ./install.sh --force # 3. 验证驱动加载 modprobe -l | grep ultrapath # 应返回类似 /lib/modules/3.10.0-1160.el7.x86_64/kernel/drivers/scsi/ultrapath/ultrapath.ko # 4. 启动服务并设开机自启 systemctl start ultrapathd systemctl enable ultrapathd # 5. 在FusionCompute中执行扫描(此时才真正生效) # 管理界面操作:主机和群集 → 存储设备 → 扫描参数说明:--force参数强制覆盖旧驱动,避免因内核模块冲突导致CAN节点重启;ultrapathd服务负责实时监控路径状态,当FC链路中断时自动切换至备用路径,RTO<3s。若跳过此步直接扫描,FusionCompute会显示“发现0个LUN”,这是生产环境最常被忽略的根因。
2.3 数据存储添加:虚拟化/非虚拟化/裸设备映射的选型决策树
三种存储类型不是性能排序,而是业务SLA约束下的硬性选择。我用一张表固化判断逻辑(基于某证券核心交易系统实际案例):
| 场景特征 | 推荐类型 | 关键参数设置 | 必须规避的风险 |
|---|---|---|---|
| Oracle RAC集群,要求RAC心跳盘IOPS≥5000,延迟<2ms | 裸设备映射 | LUN需在存储侧预分配,FusionCompute中“磁盘类型”选“共享”,容量=整块LUN大小 | ❌ 在RHEL 7+系统上使用裸设备(内核已移除对raw设备的支持) ❌ 将裸设备作为系统盘(启动失败) |
| Web应用虚拟机,需频繁创建快照做灰度发布 | 虚拟化 | “高级设置”中簇大小设为1MB(平衡利用率与读取性能),勾选“首次格式化” | ❌ 多台虚拟机共用同一虚拟化数据存储时未启用DRS(导致存储I/O争抢) |
| 大数据分析任务,临时计算节点需极速挂载/卸载存储 | 非虚拟化 | 创建磁盘时取消勾选“启用磁盘热添加”,避免元数据开销 | ❌ 在非虚拟化存储上创建精简置备磁盘(功能不可用,自动转为厚置备) |
提示:裸设备映射的RHEL版本限制(5.4/5.5/6.1/6.2 64bit)源于其依赖的
device-mapper-multipath旧版API。若强行在RHEL 7上部署,需手动编译兼容驱动,但华为官方不提供支持——这意味着一旦出问题,TAC将拒绝受理。
3. 分布式交换机与网卡绑定:四层负荷分担模式的实战选型指南
3.1 分布式交换机创建:不是右键创建,而是先规划VLAN与MTU一致性
原文“Site-右键‘创建分布式交换机’”过于简略。真实部署中,分布式交换机(DVS)的VLAN ID范围、MTU值必须与物理交换机严格对齐,否则会导致虚拟机间通信异常。关键检查点:
- VLAN规划:DVS的VLAN池需覆盖所有业务VLAN(如管理VLAN 100、业务VLAN 200-300、存储VLAN 400)。在“创建分布式交换机”向导中,务必在“VLAN池”页签输入
100,200-300,400,而非留空。 - MTU设置:若网络中启用Jumbo Frame(如存储流量),DVS的MTU必须设为9000,且所有上行链路物理端口、物理交换机端口MTU同步调整。未同步时,TCP分段导致小包传输正常但大文件拷贝超时。
3.2 网卡绑定模式深度解析:为什么“基于源目的MAC”是默认首选
四种绑定模式的本质是哈希算法差异。原文强调“优先选择基于源和目的MAC”,但未解释其适用边界。我们用真实流量模型验证:
| 绑定模式 | 哈希因子 | 典型场景 | 生产环境踩坑 |
|---|---|---|---|
| 主备 | 无哈希,纯故障切换 | 管理网络(低带宽、高可靠性) | ❌ 用于业务网络时,单网卡承载全部流量,突发流量打满导致丢包 |
| 基于源目的MAC | MAC地址异或 | 同一VLAN内虚拟机互访(如K8s Pod间通信) | ✅ 华为CE系列交换机默认开启MAC学习,哈希结果稳定 |
| 基于轮询 | 网卡索引循环 | 跨VLAN流量(如虚拟机访问外部Web) | ❌ VXLAN封装后外层MAC固定,导致流量始终走同一网卡 |
| 基于源目的端口 | IP+端口哈希 | VXLAN Overlay网络(如FusionSphere SDN场景) | ✅ 需确保物理交换机支持ECMP,否则哈希失效 |
验证命令(在CAN节点执行):
# 查看当前绑定模式及流量分布 cat /proc/net/bonding/bond0 # 关键字段:MII Status(链路状态)、Slave Interface(从属网卡)、Link Failure Count(故障次数) # 若看到某slave的"Link Failure Count"持续增长,说明该网卡物理链路不稳定3.3 上行链路配置:物理网卡加入前的三个强制检查项
“将主机和主机和中的网卡加入‘上行链路’中”这句存在严重歧义。实际操作中,必须完成以下检查才能加入:
- 物理连通性确认:在CAN节点执行
ethtool eth0,确认Link detected: yes且Speed: 10000Mb/s(万兆网卡); - 驱动兼容性验证:华为推荐使用
ixgbe驱动(Intel X540/X550),禁用igb驱动(千兆卡驱动,万兆下性能下降40%); - 网卡命名规范:确保
/etc/default/grub中包含net.ifnames=0 biosdevname=0,避免因udev规则导致网卡名从eth0变为enp1s0f0,造成绑定配置失效。
血泪经验:某次升级后虚拟机网络中断,排查发现新内核自动启用
systemd-networkd接管网卡命名,导致bond0配置引用的eth1实际不存在。解决方案是重建initramfs:dracut -f。
4. IMC策略与集群时钟同步:让跨代CPU主机无缝迁移的底层保障
4.1 IMC策略启用:不是点一下“开启”,而是三步校验CPU功能集
原文“集群开启IMC模式后,需在BIOS中开启Execute Disable Bit”只是冰山一角。完整启用流程包含硬件层、固件层、软件层三级校验:
# 1. BIOS层:确认NX/XD功能已启用(不同厂商BIOS路径不同) # 华为服务器:Boot Menu → Advanced → CPU Configuration → Execute Disable Bit → Enabled # 2. 固件层:验证CPU特性是否满足IMC基线 # 在任意主机执行(需root权限) cpuid -l1 | grep -E "(sse4_1|aes|avx)" # 输出必须包含sse4_1、aes、avx三项,否则无法加入IMC集群 # 3. 软件层:设置IMC基线(以Haswell为基准) # FusionCompute界面:集群 → 右键 → 设置IMC策略 → 选择"Intel Haswell" # 此时系统自动校验:所有主机CPU功能集 ≥ Haswell,所有运行中VM CPU功能集 ≤ Haswell关键参数:Intel Haswell是生产环境最稳妥的基线,兼容至Skylake/Cascade Lake。若选择Intel Ivy Bridge,则无法纳管更新的CPU;若选择Intel Skylake,则旧主机无法加入。基线选择错误将导致“添加主机失败”且错误码模糊(实际是CPUID校验不通过)。
4.2 时钟同步配置:NTP服务器必须是VRM自身,而非外部互联网源
原文“系统管理—业务配置”未指明NTP源选择。生产环境严禁使用pool.ntp.org等公网源,原因有二:一是VRM与CAN间时钟差>500ms触发HA脑裂,二是公网NTP响应延迟波动大(实测抖动达200ms)。正确做法:
# 1. 在VRM节点配置本地NTP服务(VRM 8.1.0+内置chrony) vi /etc/chrony.conf # 修改为: server 127.0.0.1 iburst # 注释掉所有pool.ntp.org行 # 2. 重启chrony服务 systemctl restart chronyd # 3. 在FusionCompute界面配置时钟同步源为VRM本机IP # 系统管理 → 业务配置 → 时钟同步 → NTP服务器地址填VRM管理IP(如192.168.10.1)验证命令:
# 在CAN节点检查同步状态 chronyc tracking # 关键字段:System clock offset: -0.000123 seconds(偏移量<1ms为合格) chronyc sources -v # 显示^* 表示已同步至VRM本机源避坑 / 常见问题 / 排查 / 注意
现象1:开启IMC后,虚拟机迁移失败,错误提示“目标主机不支持该虚拟机CPU特性”
原因:运行中的虚拟机CPU热添加了AVX-512指令集(如TensorFlow训练VM),而IMC基线未包含该特性
解决:关闭虚拟机→编辑虚拟机CPU配置→取消勾选“启用AVX-512”→重新开机现象2:分布式交换机上行链路显示“链路Down”,但物理网线指示灯常亮
原因:物理交换机端口启用了LLDP协议,而CAN网卡驱动未启用LLDP支持(ixgbe驱动需加载参数)
解决:echo 'options ixgbe enable_lltd=1' > /etc/modprobe.d/ixgbe.conf && dracut -f现象3:FC存储扫描成功,但创建虚拟机磁盘时提示“存储空间不足”,实际LUN剩余空间充足
原因:华为存储LUN启用了Thin Provisioning,而FusionCompute未开启“精简置备”开关
解决:在“添加数据存储”向导中,勾选“启用精简置备”(虚拟化存储类型下可见)现象4:虚拟机绑定共享磁盘后,两台VM同时写入同一文件系统,出现ext4 journal corruption
原因:未在虚拟机内配置集群文件系统(如GFS2/OCFS2),裸设备映射不提供分布式锁
解决:在RHEL虚拟机中安装ocfs2-tools,格式化为OCFS2文件系统,配置ocfs2 cluster.conf现象5:NTP同步后,VRM界面告警“时钟偏差超过阈值”,但chronyc显示偏移量<1ms
原因:FusionCompute告警阈值默认为500ms,而chrony精度已达亚毫秒级,阈值需下调
解决:数据库直接修改(需华为TAC授权):update alarm_config set threshold_value=10 where alarm_id='clock_drift';
5. 权限管理与共享磁盘:从管理员账号创建到Oracle RAC双机挂载的闭环验证
5.1 管理员账号创建:角色权限必须遵循最小特权原则
原文“添加管理员账号:系统管理—权限管理”过于笼统。生产环境禁止直接赋予Administrator全局角色,应按职责拆分:
| 角色名称 | 授权范围 | 典型操作 | 禁止操作 |
|---|---|---|---|
| StorageAdmin | 仅限“存储设备”“数据存储”菜单 | 扫描FC-SAN、添加NAS存储、配置多路径 | ❌ 创建虚拟机、修改网络配置 |
| NetworkAdmin | 仅限“分布式交换机”“端口组”菜单 | 创建DVS、配置VLAN池、绑定上行链路 | ❌ 管理存储、操作虚拟机 |
| VMOperator | 仅限“虚拟机”菜单及关联磁盘 | 创建/删除虚拟机、绑定共享磁盘、快照管理 | ❌ 修改主机配置、调整集群策略 |
创建命令(通过FusionCompute REST API实现自动化):
# 创建StorageAdmin角色(JSON payload) curl -k -X POST "https://vrmsvr:8080/fit/api/v1/roles" \ -H "Content-Type: application/json" \ -H "X-Auth-Token: $TOKEN" \ -d '{ "role": { "name": "StorageAdmin", "description": "FC-SAN/NAS存储管理专用角色", "privileges": ["storage:manage", "datastore:manage"] } }' # 为用户分配角色(需先创建用户) curl -k -X POST "https://vrmsvr:8080/fit/api/v1/users/123/roles" \ -H "Content-Type: application/json" \ -H "X-Auth-Token: $TOKEN" \ -d '{"role_id":"456"}'5.2 共享磁盘绑定:Oracle RAC场景下的三重校验清单
“两台虚拟机共用一块磁盘”的配置,本质是构建RAC所需的OCR/Voting Disk。必须完成以下校验:
- 存储层校验:在华为OceanStor存储侧,确认该LUN已启用“多路径读写”模式(而非只读),且LUN映射给两个CAN主机的WWN均在同一个Host Group中;
- 主机层校验:在两台RHEL虚拟机中,执行
multipath -ll确认同一LUN的WWID一致,且status=active的路径数≥2; - 文件系统层校验:使用
oracleasm工具初始化ASM磁盘,而非直接格式化为ext4(否则RAC无法识别):# 在两台VM上执行(需root权限) oracleasm init oracleasm createdisk OCR /dev/mapper/360060ff0000000000000000000000001 oracleasm scandisks # 验证:oracleasm listdisks 应返回OCR
5.3 监控与告警阈值:CPU使用率告警不是设80%,而是按vCPU密度动态计算
原文“设置告警阀值”未说明计算逻辑。真实场景中,CPU告警阈值应随虚拟机vCPU数量动态调整:
| vCPU数量 | 推荐告警阈值 | 依据 |
|---|---|---|
| 1-2 vCPU | 90% | 单vCPU突发负载容忍度高 |
| 4-8 vCPU | 75% | 多线程应用存在CPU争抢风险 |
| ≥16 vCPU | 60% | NUMA节点跨核调度导致缓存失效率上升 |
配置脚本(批量设置虚拟机CPU告警):
# 获取所有虚拟机及其vCPU数 for vm in $(virsh list --all --name); do vcpu=$(virsh dumpxml $vm | grep "<vcpu" | sed -r 's/.*>([0-9]+)<.*/\1/') if [ $vcpu -le 2 ]; then threshold=90 elif [ $vcpu -le 8 ]; then threshold=75 else threshold=60; fi # 调用FusionCompute API设置阈值(此处省略API调用细节) echo "VM: $vm, vCPU: $vcpu, Threshold: ${threshold}%" done6. 从配置笔记到生产环境:一个必须强制执行的五步验证法
我把这份PDF里所有“随意编辑”标记,还原成生产环境上线前的强制验证步骤。每次交付新集群,我都带着这张表逐项打钩,漏一项就回滚——因为曾经有次跳过第3步,导致客户核心数据库在割接后第三天凌晨出现存储IO Hang,根源竟是FC交换机Zone配置遗漏了一个PWWN。
6.1 FC-SAN链路完整性验证:用sg_inq直探HBA卡与存储握手状态
不能只依赖FusionCompute界面显示的“LUN已发现”。必须在CAN节点执行底层探测:
# 安装sg3_utils工具 yum install sg3_utils -y # 对每个HBA端口探测连接的存储设备 for host in /sys/class/fc_host/host*; do port=$(basename $host) echo "=== Checking $port ===" # 列出该HBA可见的所有远程端口 ls /sys/class/fc_remote_ports/rport-$port-* 2>/dev/null | wc -l # 探测远程端口设备信息(需存储LUN已映射) sg_inq /dev/sg$(basename $port | sed 's/host//') 2>/dev/null | grep -E "(vendor|model|revision)" done预期输出:每个host*目录下应有≥1个rport-*,且sg_inq返回存储厂商(如HUAWEI)、型号(如OceanStor 5300)、固件版本。若某host无rport或sg_inq报错,说明FC链路物理层未通。
6.2 分布式交换机流表验证:确认VLAN与MAC学习无异常
DVS配置后,必须验证其转发行为是否符合预期:
# 登录VRM节点(非CAN),进入DVS调试模式 /opt/fm/bin/dvs_debug.sh -dvs-name dvs001 -cmd "show mac-table" # 检查输出中MAC条目数是否与虚拟机数量匹配,且VLAN ID正确 # 抓取DVS上行链路流量,验证VLAN Tag是否携带 tcpdump -i bond0 -nn -c 10 vlan and port 22 # 应看到类似:IP 192.168.10.100.22 > 192.168.10.101.54922: Flags [S] # 若无vlan字段,说明物理交换机端口未配置Trunk或Native VLAN不匹配6.3 IMC迁移能力验证:用virsh migrate绕过FusionCompute界面直测
界面迁移失败时,常因前端JS校验阻断。直接调用libvirt命令验证底层能力:
# 在源主机执行(假设VM名为rac-node1) virsh migrate --live --unsafe --persistent --undefinesource \ rac-node1 qemu+ssh://192.168.20.101/system \ --copy-storage-all --verbose # 关键参数说明: # --live:热迁移(不停机) # --unsafe:跳过安全检查(如CPU特性校验,用于定位IMC问题) # --persistent:迁移后目标主机保留VM定义 # 若报错"operation failed: guest CPU does not match",说明IMC基线未生效6.4 共享磁盘I/O一致性验证:用dd+md5sum检测双机写入冲突
Oracle RAC共享盘必须保证字节级一致性:
# 在VM1执行(写入测试块) dd if=/dev/zero of=/dev/oracleasm/disks/OCR bs=1M count=100 oflag=direct sync # 在VM2立即执行校验(同一时刻) md5sum /dev/oracleasm/disks/OCR | cut -d' ' -f1 # 在VM1执行相同命令,比对MD5值是否完全一致 # 不一致则说明存储层未启用集群锁机制,RAC必然崩溃6.5 时钟漂移压力测试:用stress-ng模拟高负载下的NTP稳定性
常规chronyc tracking只能反映静态精度。需模拟生产负载:
# 在VRM节点执行(持续1小时) stress-ng --cpu 8 --timeout 3600s --metrics-brief # 同时在CAN节点监控时钟漂移 while true; do drift=$(chronyc tracking | grep "System clock offset" | awk '{print $4}') echo "$(date): drift=$drift" sleep 10 done | tee /tmp/clock_drift.log # 分析日志:最大漂移量应<5ms,标准差<0.5ms awk '{print $3}' /tmp/clock_drift.log | sed 's/[^0-9.-]//g' | sort -n | tail -1从那以后我每次交付新集群,都强制走一遍这五步验证——不是为了显得专业,而是因为客户不会为“配置完成”付费,只为“零故障运行”买单。这份PDF里那些被标记为“随意编辑”的地方,恰恰是现场工程师用胶带粘住键盘、蹲在机柜旁盯屏八小时换来的经验结晶。希望帮到你。
本文还有配套的精品资源,点击获取