文章目录

故障处理通用处理原则、常见华为云Stack故障处理(计算域故障场景)

见这篇文章
【hcie-cloud】【12】华为云Stack故障处理【故障处理通用处理原则、常见华为云Stack故障处理(计算域故障场景)】【上】

常见华为云Stack故障处理

存储域故障场景

应知应会 - EVS创建的业务流

在这里插入图片描述

  • 申请并挂载数据盘至ECS的业务流:
    • VDC管理员或VDC业务员通过EVS控制台申请存储资源
    • EVS控制台通过ECS UI(EVS),将请求下发给组合API(EVS)
    • 组合API将请求分发到Cinder
    • Cinder根据申请存储资源的策略在存储池创建卷
    • VDC管理员或VDC业务员通过EVS控制台将申请的存储资源挂载至云服务器
      • EVS控制台通过ECS UI(ECS),将请求下发给组合API(ECS)。组合API将请求分发到Nova。Nova通过运行于计算节点上的Nova-compute处理挂载
    • Nova通知Cinder挂载云硬盘
      • Nova获取云硬盘信息,并通知Cinder保留云硬盘。Nova获取主机启动器信息并传递给Cinder。Cinder通知存储阵列做启动器和目标器映射,并返回Nova目标器信息。Nova完成挂载

Cinder创建卷过程

在这里插入图片描述

  • 流程
    • 用户下发创卷请求。
    • 校验用户是否具有权限,以及做一些基本校验,quota预占等操作,异步返回卷信息(生成卷ID)。
    • 将创卷消息投递到scheduler消息队列中。
    • Scheduler从自己的消息队列中消费创卷消息,根据各个volume定期上报的能力以及卷信息,选择一个主机进行创卷。
    • Scheduler调度到主机后,将消息投递到相应的volume消息队列中。
    • Volume从自己的消息队列中消费创卷消息,调用driver的接口进行创卷,最后更新数据库。
    • Volume调用driver插件。
    • Driver将发送相应的创卷命令到存储

EVS发放失败故障信息收集

  • EVS发放失败时,可以通过以下方法进行故障诊断和处理前的故障信息收集(参考ECS发放失败):
    在这里插入图片描述
    这些方法之间没有严格的先后顺序,需根据实际情况选择不同故障处理方法

常见EVS发放失败报错代码

任务中在创建EVS失败后会显示创建失败的原因

常见报错信息可能原因
Insufficient free space for thin provisioning…因瘦分配比设置过小,虚拟容量不足,虚拟容量等于实际物理容量乘以瘦分配比的值,如果实际可用物理容量还很多,可以把瘦分配比设置为稍大的值
Filter CapabilitiesFilter return 0 host(s)”后端存储名称和后端存储配置名称错误
Filter AvailabilityZoneFilter return 0 host磁盘类型和后端存储所在可用分区配置不一致;创卷选择的可用分区与磁盘类型所在可用分区不一致
the host is unregistered on storage”日志节点到存储设备之间的FC链路有问题
all path is not work”日志节点到存储设备之间的IP SAN链路有问题
all ports are not working”存储主机没有按照HBA卡;启动器异常
Fibre Channel volume device not found没有开启华为多路径

EVS创建失败,查看日志步骤

  • EVS创建失败,查看日志步骤
    • SC控制台查看创建ECS的任务是否失败,失败具体报错提示
    • 查看名称为CPT-SRV的组合API管理虚拟机日志,可以查看到创建ECS的详情,以及请求是否下发到Cinder-api
    • Cinder-scheduler日志可以判断是否选择到卷
    • Cinder-volume日志是否满足创建EVS条件

在这里插入图片描述

查看组合API日志

  • 参考第标题查看组合API日志,查看存储服务EVS创建失败组合API日志
  • 注:cd /var/log/apicom/taskmgr/ 下面的dbs目录对应EVS服务(创建卷)的日志,ecm目录对应ECS服务(虚拟机创建)日志

在这里插入图片描述
在这里插入图片描述

查看Cinder日志 (1)

  • 查看cinder-api、cinder-scheduler、cinder-volume日志
  • 导入环境变量,查看cinder相关组件部署的节点
    • cps template-instance-list --service cinder cinder-api
    • cps template-instance-list --service cinder cinder-scheduler
    • cps template-instance-list --service cinder cinder-volume (或者cinder-volume-kvm00x或者cinder-volume-vrm00x)

在这里插入图片描述
在这里插入图片描述

查看Cinder日志 (2)

  • Cinder组件名字和功能:
Cinder组件功能
cinder-api接收、处理下发请求
cinder-scheduler调度选择cinder-volume
cinder-volume管理监控存储。云平台对接成功一套存储,表现为CPS界面,资源池管理中多一个资源池,就会在后台起一个cinder-volume服务,可以登录OpenStack后台控制节点,执行命令cinder service-list查看到起的cinder-volume服务
cinder-backup备份服务组件
  • 请求下发流程
    • 组合API —>cinder-api —>cinder-scheduler—>cinder-volume
    • cinder-api—>cinder-volume—>cinder-backup (备份服务请求下发流程)

查看Cinder日志 (3)

  • 通过console确认卷的id或者名称,如果界面上没有提示,一般卷的默认名称以虚拟机的名称为前缀,可以按照虚拟机名称查找日志,例如虚拟机名称为test123,以cinder-api为例,登录cinder-api所在主机,三个节点上都执行如下命令找出req_id

    • zgrep test123 /var/log/fusionsphere/component/cinder-api/*
      在这里插入图片描述
  • 根据req_id,找出cinder-api错误信息,假如没有,则去cinder-scheduler日志中寻找,以此类推

    • zgrep req-xxxxxxxxx /var/log/fusionsphere/component/cinder-api/*
    • zgrep req-xxxxxxxxx /var/log/fusionsphere/component/cinder-scheduler/*

创建磁盘失败故障信息收集

  • 最快捷的速度是在ManageOne运营面,创建失败的任务提示,获取还没有被系统回滚的云硬盘ID

  • 控制节点执行如下命令,导入环境变量查看csv文件

    • python /etc/cinder/cinder-api/tools/get_operation_info.py -v 云硬盘ID
      在这里插入图片描述
  • 执行如下命令打开第二个csv文件,依次找出ERROR错误信息,参考第47页胶片《常见EVS发放失败报错代码》

    • cat 第二个csv文件所在目录及文件名称
  • 该python脚本其实查的是数据库中的voluems表格和resource_operations表格错误信息。

Cinder报错 - Insufficient free space for thin provisioning…

  • 现象描述
    • 在Service OM界面或者ManageOne运营面申请云硬盘失败
    • 申请ECS失败,错误提示:创建系统盘或创建数据盘失败
  • 可能原因
    • 后端存储虚拟机容量不足,瘦分配比值太小
    • image-cache或者镜像最小磁盘参数的值太小,导致copy镜像到卷失败
    • cinder-volume服务异常

在这里插入图片描述

解决方案
  • 瘦分配比设置过小,虚拟容量不足,虚拟容量等于实际物理容量乘以瘦分配比的值,如果实际可用物理容量还很多,可以把瘦分配比设置为稍大的值

在这里插入图片描述

Cinder报错 - Filter CapabilitiesFilter return 0 host(s)

  • 结合标题常见EVS发放失败报错代码分析
  • 结合Cinde-sheduler的日志分析,Cinder日志查看方法参考“查看Cinder日志”胶片
    现象描述
    • cinder-scheduler的error日志中报错:“extra_spec requirement murano does not match storatge”,根据该报错信息对应的req-id,到cinder-scheduler日志中搜索“req-id”发现报错:“Filter CapabilitiesFilter return 0 host(s)”
  • 可能原因
    • FusionSphere CPS界面后端存参数配置错误,后端存储名称和后端存储配置名称要一致
    • 申请磁盘时选择了错误的磁盘类型
    • 检查创建磁盘时所选磁盘类型是否正确
解决方案

CPS界面-配置-资源池管理查看以及修改正确的后端存储名称(注意大小写)
在这里插入图片描述

Cinder报错 - Fibre Channel volume device not found

  • 结合标题常见EVS发放失败报错代码分析
  • 结合Cinde-sheduler的日志分析,Cinder日志查看方法参考标题查看Cinder日志胶片
  • 可能原因
    • 没有开启华为存储多路径

在这里插入图片描述

解决方案
  • 解决方案
    • CPS页面 - 配置 - OpenStack开启华为存储多路径
    • OpenStack -> Cinder -> 多路径:针对OpenStack全局的配置
    • 多网元管理 -> 分组管理 -> 多路径:针对某组主机的配置

在这里插入图片描述

  • 对接SAN设备时。为了提高网络存储的可靠性和可用性,需要使用多路径路径。对于不同的存储设备,需要使用对应的多路径软件,对接华为存储设备需要使用华为多路径。
  • 如果分组配置了多路径策略,则优先以分组为准;如果未加入分组中,则以全局策略为准。
  • 修改全局的配置,不会影响已配置的分组策略,影响后续新增分组的默认策略。
  • 单独修改分组的策略,仅影响该分组,不会影响全局以及其他分组。
  • 新增分组时,默认继承当时的全局策略,即使后续全局策略发生变更,也不会影响已配置的分组
  • 推荐:
    • 当使用了华为存储的OpenStack时,建议全局配置项设置为华为多路径。
    • 特殊主机组如果需要采用异构存储,可以单独新建网元分组,配置成通用多路径。

OpenStack故障排查常用命令 (1)

CPS命令
命令解释
cps service-list查看服务列表
cps service-show <SERVICE_NAME>查询服务详细信息
cps template-list/show [–service <SERVICE_NAME>]查询组件列表
cps template-instance-list、show --service <SERVICE_NAME > <TEMPLATE_NAME >查询由某个组件生成的实例列表
cps template-params-list、show/update --service <SERVICE_NAME> 查询/更新某个组件的配置信息
cps host-template-instance-operate --action --service <SERVICE_NAME> [–host <HOST_ID>] <TEMPLATE_NAME >操作某个组件实例,例如重启nova-api组件服务
cps role-list查看系统所有角色
cps role-show <ROLE_NAME>查看角色详情
cps role-host-list <ROLE_NAME>查询指定角色部署的主机列表。
Nova命令
命令解释
nova list --all-t查询全部虚拟机状态
nova show vm_id查询虚拟机详细信息
nova instance-action-list vm_id任务ID 虚拟机任务查询
nova instance-action vm_ID查看虚拟机任务详情
nova get-vnc-console vm_uuid novnc获取虚拟机VNC链接
nova interface-list vm_uuid查询虚拟机网卡列表
nova service-list查询nova所有服务状态
nova flavor-list查看虚拟机规格
nova flavor-flavor flavor_id查询虚拟机规格详细信息
nova availability-zone-list查询所有可用域(AZ)
nova aggregate-list查看所有主机组
python /etc/nova/nova-util/reschedule_vm.py vm_uuid虚拟机手动触发HA重建
Neutron网络命令
命令解释
neutron net-list查询全部网络列表
neutron net-show net_id查询网络详细信息
neutron port-list查询端口列表
neutron port-show port_id查询某端口详细信息
ovs-vsctl show查看OVS网桥结构
ovs-ofctl dump-flows brcps查看brcps网桥OVS流表信息
ovs-ofctl dump-flows br-int查看br-int网桥OVS流表信息
neutron qos-list查询QoS列表
neutron qos-show qos_id查询指定QoS详细信息
neutron physical-net-list查看物理网络平面
nova interface-list vm_id查到虚拟机所用的port-id/net-id
neutron subnet-show subnet_id查看子网信息
neutron security-group-show 安全组id(界面可以查)grep tenant_id
Cinder命令
命令解释
cinder list –all-t查询卷列表
cinder show volume_id查询指定卷详细信息
cinder service-listCinder各个服务状态查询
cinder create --name 卷名称 --volume-type=v3-type0 1 --image 镜像ID创建系统卷
cinder create --name 卷名称 --volume-type=v3-type0 1创建数据卷
cinder delete volume_id删除卷
cinder reset-state --state available --attach-status detached 强制删除异常卷
cinder extra-specs-list查看卷类型列表
cinder snapshot-list --all-tgrep 卷ID 、cinder snapshot-show /delete 快照ID
nova volume-attach 虚拟机ID 卷ID 、nova volume-detach 虚拟机ID 卷ID卷映射给虚拟机 、解除映射
cinder get-pools --detail查看存储池资源情况
Glance命令
命令解释
glance image-list查看镜像列表
glance image-show/delete image_id查看/删除镜像
glance image-upload镜像ID --file xx.qcow2 上传更新镜像
glance image-upload创建镜像

网络域故障场景

常见网络域问题

常见网络域问题一般分为如下网络服务的通断问题,本节内容通过介绍CloudNetDbug工具辅助定位VM与VM之间通信断流以及延迟丢包的业务场景
在这里插入图片描述

应知应会 - VPC内部流量转发路径

在这里插入图片描述

CloudNetDebug工具的适用故障场景

  • 故障场景1:业务不通,网络断流问题
    • 目标:判断流量断流的位置,定界是虚拟网络还是物理网络,断流发生在虚拟网络的哪个网元
    • 措施:可以使用拨测工具和抓包工具,首先推荐使用拨测工具,也可以使用灵活的虚拟机网卡抓包和主机网卡抓包来定界定位
  • 故障场景2:网络时断时续,网络丢包延迟问题
    • 目标:定界发现丢包的位置,是虚拟网络还是物理网络,丢包时延发生在虚拟网络的哪个网元
    • 措施:可以使用拨测工具和抓包工具,首先推荐使用拨测工具,也可以使用灵活的虚拟机网卡抓包和主机网卡抓包来定界定位
  • 故障场景3:应用交互异常类问题
    • 目标:查找应用交互异常的证据,为故障定位提供依据
    • 措施:通过虚拟机网卡抓包,选择一个抓包点进行双向抓包,通过Wireshark分析应用交互报文,查找应用交互异常点
步骤一 - 查询虚拟机状态

在CloudNetDebug网络诊断工具中,利用虚拟机的IP/ID进行“一键式”VM信息查询,用于问题的辅助定位
在这里插入图片描述在这里插入图片描述

步骤二 - 创建拨测任务检测链路

在这里插入图片描述

  • 参数说明
    • 任务名称:用于标识任务的名称,只能由中文、英文字母、数字、下划线、中划线组成。
    • 任务场景:根据运维场景,选择拨测。
    • 协议类型:根据故障流量类型,选择TCP,UDP或者ICMP。
    • 报文详情:
    • 内部IP:
      • 由云平台统一分配的IP属于内部IP,内部IP包括:VM的fixed IP,EIP(绑定虚拟机或者ELB),ELB的licenser监听IP。其他属于外部的IP,比如EIP和SNAT访问的公网远端的IP,专线/VPN访问的远端的IP。
    • 源IP/目的IP:
      • 故障流量的源IP和目的IP。
    • 源ID/目的ID:
      • 如果源IP或者目的IP属于内部IP,输入IP后,点击 ,查找相应的ID,如果有IP重复,需要根据VM名称或者VM的ID选择出正确的VM。
  • 源端口/目的端口:
    • 故障流量的源端口号和目的端口号,拨测场景中源端口号和目的端口号为必选项,输入正确的源端口和目的端口号可以保证拨测验证的流量路径和故障流量的路径一致。如果无法确认源端口号和目的端口号,可以输入任意的1·65535的任意值。
  • 是否双向:双向拨测的方式是,当目的端收到注入的报文后,目的端会自动回注相同数量的报文发回源端。只有TCP协议支持双向拨测。
    • 拨测速率:拨测报文注入的速率,单位是PPS(每秒注入报文的个数)
    • 拨测数量:拨测报文注入的总数,单位是个。
步骤三 - 通过拨测检测链路
  • 拨测信息输入完成后,点击下一步进行场景检查,可能有以下几种可能:
    • ①拨测的流量属于VPC L2或者VPC L3的流量
    • ②拨测的流量属于VPC Peer流量
    • ③源IP和目的IP属于不同的VPC,但是两个VPC之间没有配置VPC Peer,属于非法流量
  • 如果是结果③,说明这两个VM之间流量是非法流量,流量不可能通,可以得出两个VM流量不通的原因,不需要再进行下面的定位步骤
  • 如果是结果①或者结果②,以VPC内L3流量为例,创建拨测任务
步骤四 - 分析拨测结果为有故障

在这里插入图片描述
如图所示,说明丢包发生在ecs-3466的主机内部,主机的Bond口收到了报文,但是Ply网桥没有收到报文,怀疑OVS故障。此时根据排查建议,搜集OVS的信息,以及br-int和br-tun网桥的流表信息,供进一步问题定位

步骤五 - 分析拨测结果为无故障

在这里插入图片描述
拨测没有发现问题,需要通过抓包进一步定位应用是否正常

步骤六 - 创建抓包任务定位应用问题

创建抓包任务
在这里插入图片描述

步骤七 - 创建抓包定位应用问题

场景分析与选择抓包点
在这里插入图片描述

步骤八 - 主机网卡抓包

在这里插入图片描述

  • 参数说明
    • 任务名称:用于标识任务的名称,由中文、英文字母、数字、下划线、中划线组成。
    • 任务场景:根据运维场景,选择主机网卡抓包。
    • 主机IP/ID: 填写主机的external_OM IP,点击 ,查找相应的ID。
    • 协议类型:根据故障流量类型,选择ANY,TCP,UDP或者ICMP。ANY表示不限制协议类型
    • 报文详情:
      • 源IP/目的IP:抓包过滤使用的的源IP和目的IP。如果不填写,表示不对源IP和目的IP过滤。
      • 源端口/目的端口:抓包过滤使用的的源端口号和目的端口号,如果不填写,表示不对源端口号和目的端口号过滤。
    • 是否双向:双向抓包的方式是,抓包不区分源和目的,会抓取会话中的所有报文。
    • 报文类型:选择抓取VXLAN报文还是VLAN报文,如果选择VXLAN报文,是对内层overlay的报文进行过滤。
    • 计划抓包时长:抓包任务抓包的时长
    • 报文个数:抓包任务要抓包的报文个数,抓包任务和抓包时长,任意一个到达,任务结束
      抓包文件切片大小:抓包文件超过切片大小时,抓包文件以文件切换大小进行分包。
步骤九 - 虚拟机网卡抓包

在这里插入图片描述

  • 参数说明
    • 任务名称:用于标识任务的名称,只能由中文、英文字母、数字、下划线、中划线组成。
    • 任务场景:根据运维场景,选择虚拟机网卡抓包。
    • 虚拟机IP/ID: 填写虚拟机的FIXED IP,点击 ,查找相应的ID,如果有IP重复,需要根据VM名称或者VM的ID选择出正确的VM。
    • 协议类型:根据故障流量类型,选择ANY,TCP,UDP或者ICMP。ANY表示不限制协议类型
    • 报文详情:
      • 源IP/目的IP:抓包过滤使用的的源IP和目的IP。如果不填写,表示不对源IP和目的IP过滤。
      • 源端口/目的端口:抓包过滤使用的的源端口号和目的端口号,如果不填写,表示不对源端口号和目的端口号过滤。
    • 是否双向:双向抓包的方式是,抓包不区分源和目的,会抓取会话中的所有报文。
    • 计划抓包时长:抓包任务抓包的时长
    • 报文个数:抓包任务要抓包的报文个数,抓包任务和抓包时长,任意一个到达,任务结束
    • 抓包文件切片大小:抓包文件超过切片大小时,抓包文件以抓包文件切换大小进行分包。
步骤十 - 业务流抓包

在这里插入图片描述

  • 抓包文件按照抓包节点进行分类。抓包文件的名称由主机ID,VMID,抓包网卡和时间组成。
  • 网元的流量会根据南向和北向区分不同的抓包文件,比如上图中的SoftNAT节点,SoftNAT的流量包括SoftNAT北向和BR通信的抓包文件,SoftNAT南向和计算节点通信的抓包文件。
  • 查看抓包结果
    • 下载抓包文件,通过Wireshark打开,做以下检查:
    • 查看源Host的tap口抓包文件,检查是否抓到报文,如果抓到报文,说明报文从源虚拟机中发出。
    • 查看目的Host的tap口抓包文件,检查是否抓到报文,如果抓到报文,说明报文已经发送到目的虚拟机。
    • 如果以上两点都没有发现问题,需要通过抓包文件分析应用交互报文,分析源虚拟机和目的虚拟机的业务交互是否正常。

案例1

定位VM和VM之间通信异常问题 (1)
  • 案例描述:
    • 某客户报障,云数据中心内的两个业务VM之间流量异常,VM1访问VM2的SCP文件传输不稳定,VM1的IP是192.168.10.221,VM1的名称是vm_yc,VM2的IP是192.168.20.31,VM2的名称是vm_test2。VM1的源port是5339,VM2的目的Port是22,协议类型是TCP
  • 定位思路:
    • 从VM入手,先检查VM的状态是否正常,然后通过拨测工具检测两个VM间的物理链路和虚拟机链路是否正常,最后通过抓包排查是否是VM自身的问题,是否是VM的安全组防火墙的问题,或者是VM内部应用的问题
定位VM和VM之间通信异常问题 (2)
  • Step1:通过VM信息查询,重点关注VM所属哪个Host节点,VM的网卡信息,VM的状态
  • 如果有异常状态,先排查虚拟机的异常,如果没有异常,继续进行下一步的检查
    在这里插入图片描述在这里插入图片描述
定位VM和VM之间通信异常问题 (3)
  • Step2:通过拨测工具,排查两个VM之间的链路(物理网络+虚拟网络)是否正常
      1. 创建拨测任务
        在这里插入图片描述
      1. 拨测结果1—发现问题
        在这里插入图片描述
    • 3)拨测结果2—没有发现问题
      在这里插入图片描述
    • 下一步措施:
      根据拨测结果发现是目的Host的OVS内部问题,根据排查建议进行进一步的定位
定位VM和VM之间通信异常问题 (4)
  • Step3:如果业务仍然有故障,业务持续进行,抓包进行进一步的定位
    • 创建业务流抓包任务
      在这里插入图片描述
    • 抓包结果文件
      在这里插入图片描述
  • 查看结果文件:
    • 查看源Host的tap口抓包文件,检查是否抓到报文,如果没有抓到报文,说明报文没有从源虚拟机中发出,否则继续向下排查。
    • 检查源Host节点的Trunk口抓包文件,检查是否抓到报文,如果没有抓到报文,说明报文被源虚拟机的安全组和防火墙拦截,否则继续向下排查。
    • 查看目的Host的Trunk口抓包文件,检查是否抓到报文,如果没有抓到报文,说明是源Host节点和目的Host节点之间的物理网络问题,可能是网卡问题。否则继续向下排查。
    • 查看目的Host的tap口抓包文件,检查是否抓到报文,如果没有抓到报文,说明报文可能被目的端虚拟机的安全组或者防火墙拦截,否则继续向下排查
    • 如果以上都没有发现问题,说明网络基本没有问题,通信异常可能是应用的问题,下载任意一个抓包点的抓包文件分析应用交互报文,分析源虚拟机和目的虚拟机的业务交互是否正常,比如目的端是否正常的回应的TCP ACK报文等。

案例2

定位VM通过EIP与外部IP通信异常问题 (1)
  • 案例描述:
    • 某客户报障,云数据中心内的业务VM与云下业务服务器IP流量异常,VM通过EIP访问云下业务服务器时出现丢包情况
  • 定位思路:
    • 从VM入手,先检查VM的状态是否正常,然后通过拨测工具检测VM与云下服务器间的链路是否正常,最后通过抓包排查是否是VM自身的问题,是否是VM的安全组防火墙的问题,或者是VM内部应用的问题
定位VM通过EIP与外部IP通信异常问题 (2)
  • 检测流程
    • Step1:通过VM信息查询检查VM状态,网口等信息,如果VM状态正常,进行下一步的定位
    • Step2:通过拨测工具,检查外部IP与VM的EIP的链路问题,如果检查链路正常,进行下一步的定位
    • Step3:在背景流量的基础上,通过抓包工具,抓取外部IP和VM的EIP的双向通信报文,检查各个抓包点的报文个数,如果抓包个数没有发现问题,可能是应用的问题,进行下一步的定位
    • Step4:下载任意一个抓包点的抓包文件分析应用交互报文,分析源虚拟机和目的虚拟机的业务交互是否正常,比如分析目的端是否正常回应TCP ACK报文

案例3

定位VM通过专线与外部IP通信异常问题 (1)
  • 案例描述:
    • 某客户报障,云数据中心内的业务VM与云下业务服务器IP流量异常,VM通过云专线访问云下业务服务器时出现网络不通情况
  • 定位思路:
    • 从VM入手,先检查VM的状态是否正常,然后通过拨测工具检测VM与云下服务器间的虚拟链路以及专线物理链路是否正常,最后通过抓包排查是否是VM自身的问题,是否是VM的安全组防火墙的问题,或者是VM内部应用的问题
定位VM通过专线与外部IP通信异常问题 (2)
  • 检测流程
    • Step1:通过VM信息查询检查VM状态,网口等信息,如果VM状态正常,进行下一步的定位
    • Step2:通过拨测工具,检查外部IP与VM的链路问题,如果检查链路正常,进行下一步的定位
    • Step3:在背景流量的基础上,通过抓包工具,抓取外部IP和VM的双向通信报文,检查各个抓包点的报文个数,如果抓包个数没有发现问题,可能是应用的问题,进行下一步的定位
    • Step4:下载任意一个抓包点的抓包文件分析应用交互报文,分析源虚拟机和目的虚拟机的业务交互是否正常,比如分析目的端是否正常回应TCP ACK报文

案例4

如何确认某个业务流量是否从VM发出
  • 虚拟机网卡抓包工具,抓取报文tap口和qvm口(只有内核态VM才会存在)的报文
      1. 创建虚拟机网卡抓包任务
        在这里插入图片描述
      1. 任务场景分析
        在这里插入图片描述- 保值背景流量的基础上,使用虚拟机网卡抓包,在抓包任务完成后查看结果文件:
    • 检查tap口抓包文件,检查是否抓到报文,如果没有抓到报文,说明报文没有从源虚拟机中发出,否则说明报文从虚拟机中发出了。
    • 检查qvm口的抓包文件(只有内核态的VM才会存在qvm口),如果qvm文件抓到报文,而tap就没有抓到报文,说明报文被虚拟机的安全或者防火墙拦截了。

案例5

如何确认某个业务流量是否从主机发出
  • 在保持背景流量的基础上,使用主机网卡抓包工具,报文详情填写需要抓取的业务流量的详细信息
      1. 创建主机网卡抓包任务
        在这里插入图片描述
      1. 任务场景分析
        在这里插入图片描述
  • 检查trunk口是否抓到报文,如果抓到报文,说明报文从主机发出了,可以下载抓包文件作为流量从主机发出的证据。
  • 如果某些场景下主机网口可以抓到报文,但是主机网口连接的交换机没有收到报文,可以考虑以下几个地方排查:
    • 交换机的网口是否正确的放通了VLAN。
    • 检查主机的网卡,光模块和交换机的光模块是否正常。

学习推荐、缩略语

缩略语英文全称解释
FAQfrequently asked questions常见问题解答
BMSbare metal server裸金属服务器
CCECloud Container Engine云容器引擎
ECSElastic Cloud Server弹性云服务器
VPCVirtual Private Cloud虚拟私有云
ASauto scaling弹性伸缩
EIPelastic IP address弹性公网IP
ELBelastic load balancer弹性负载均衡器
EVSelastic volume service弹性卷服务(云硬盘)
IMSImage Management Service镜像服务
OBSObject Storage Service对象存储服务
SWRSoftware Repository for Container容器镜像服务
KVMKernel-based Virtual Machine基于内核的虚拟机Kernel-based Virtual Machine(KVM)是一种内建于Linux中的开源虚拟化技术。 具体而言,KVM 可帮助您将Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机
SNATsource network address translation内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。
DNATdestination network address translation目标地址转换
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐