【hcie-cloud】【13】华为云Stack故障处理【常见华为云Stack故障处理(存储域故障场景、网络域故障场景)、华为云的OpenStack故障排查常用命令、缩略语】【下】
通过console确认卷的id或者名称,如果界面上没有提示,一般卷的默认名称以虚拟机的名称为前缀,可以按照虚拟机名称查找日志,例如虚拟机名称为test123,以cinder-api为例,登录cinder-api所在主机,三个节点上都执行如下命令找出req_id。如图所示,说明丢包发生在ecs-3466的主机内部,主机的Bond口收到了报文,但是Ply网桥没有收到报文,怀疑OVS故障。根据req_i
文章目录
- 故障处理通用处理原则、常见华为云Stack故障处理(计算域故障场景)
- 常见华为云Stack故障处理
- 存储域故障场景
- 应知应会 - EVS创建的业务流
- Cinder创建卷过程
- EVS发放失败故障信息收集
- 常见EVS发放失败报错代码
- EVS创建失败,查看日志步骤
- 查看组合API日志
- 查看Cinder日志 (1)
- 查看Cinder日志 (2)
- 查看Cinder日志 (3)
- 创建磁盘失败故障信息收集
- Cinder报错 - Insufficient free space for thin provisioning...
- Cinder报错 - Filter CapabilitiesFilter return 0 host(s)
- Cinder报错 - Fibre Channel volume device not found
- OpenStack故障排查常用命令 (1)
- 网络域故障场景
- 学习推荐、缩略语
故障处理通用处理原则、常见华为云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-list | Cinder各个服务状态查询 |
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-t | grep 卷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—发现问题
- 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才会存在)的报文
-
- 创建虚拟机网卡抓包任务
- 创建虚拟机网卡抓包任务
-
- 任务场景分析
- 保值背景流量的基础上,使用虚拟机网卡抓包,在抓包任务完成后查看结果文件:
- 任务场景分析
- 检查tap口抓包文件,检查是否抓到报文,如果没有抓到报文,说明报文没有从源虚拟机中发出,否则说明报文从虚拟机中发出了。
- 检查qvm口的抓包文件(只有内核态的VM才会存在qvm口),如果qvm文件抓到报文,而tap就没有抓到报文,说明报文被虚拟机的安全或者防火墙拦截了。
-
案例5
如何确认某个业务流量是否从主机发出
- 在保持背景流量的基础上,使用主机网卡抓包工具,报文详情填写需要抓取的业务流量的详细信息
-
- 创建主机网卡抓包任务
- 创建主机网卡抓包任务
-
- 任务场景分析
- 任务场景分析
-
- 检查trunk口是否抓到报文,如果抓到报文,说明报文从主机发出了,可以下载抓包文件作为流量从主机发出的证据。
- 如果某些场景下主机网口可以抓到报文,但是主机网口连接的交换机没有收到报文,可以考虑以下几个地方排查:
- 交换机的网口是否正确的放通了VLAN。
- 检查主机的网卡,光模块和交换机的光模块是否正常。
学习推荐、缩略语
-
学习推荐
华为云Stack案例库
http://support-it.huawei.com/kb/#/home -
缩略语
缩略语 | 英文全称 | 解释 |
---|---|---|
FAQ | frequently asked questions | 常见问题解答 |
BMS | bare metal server | 裸金属服务器 |
CCE | Cloud Container Engine | 云容器引擎 |
ECS | Elastic Cloud Server | 弹性云服务器 |
VPC | Virtual Private Cloud | 虚拟私有云 |
AS | auto scaling | 弹性伸缩 |
EIP | elastic IP address | 弹性公网IP |
ELB | elastic load balancer | 弹性负载均衡器 |
EVS | elastic volume service | 弹性卷服务(云硬盘) |
IMS | Image Management Service | 镜像服务 |
OBS | Object Storage Service | 对象存储服务 |
SWR | Software Repository for Container | 容器镜像服务 |
KVM | Kernel-based Virtual Machine | 基于内核的虚拟机Kernel-based Virtual Machine(KVM)是一种内建于Linux中的开源虚拟化技术。 具体而言,KVM 可帮助您将Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机 |
SNAT | source network address translation | 内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。 |
DNAT | destination network address translation | 目标地址转换 |
更多推荐
所有评论(0)