ovs-dpdk + qemu 使用vhostuserclient通信,连路不通,libvirt报错如下: -- ::: starting up libvirt version: , package: .el7_4. (CentOS BuildSystem <http://bugs.centos.org>, 2018-03-07-13:51:24, x86-01.bsys.centos.org), qemu version: 2.9.0, hostna LC_ALL=C PATH=/usr/l…
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 (7)快照 (snapshot) (8)迁移 (migration) 1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移.系统整理迁移…
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 (7)快照 (snapshot) (8)迁移 (migration) 1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-…
1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移.系统整理迁移,是将系统上所有软件包括操作系统完全复制到另一个物理机硬件机器上.虚拟化环境中的迁移,可分为静态迁移(static migration,或者 冷迁移 cold migration,或者离线迁移 offline migration) 和 动态迁移 (live migration,或者 热迁移 hot migration 或者 在线迁移 online migration).静态迁移和动态…
1. Libvirt 在 OpenStack 架构中的位置 在 Nova Compute 节点上运行的 nova-compute 服务调用 Hypervisor API 去管理运行在该 Hypervisor 的虚机.Nova 使用 libvirt 管理 QEMU/KVM 虚机,还使用别的 API 去管理别的虚机.        libvirt 的实现代码在 /nova/virt/libvirt/driver.py 文件中. 这里是 OpenStack Hypervisor Matrix. 这里是…
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分配和 SR-IOV (5)libvirt 介绍 (6)Nova 通过 libvirt 管理 QEMU/KVM 虚机 (7)快照 (snapshot) (8)迁移 (migration) 本文将梳理 QEMU/KVM 快照相关的知识,以及在 OpenStack Nova 中使用 libvirt 来对…
本文将梳理 QEMU/KVM 快照相关的知识,以及在 OpenStack Nova 中使用 libvirt 来对 QEMU/KVM 虚机做快照的过程. 1. QEMU/KVM 快照 1.1 概念 QEMU/KVM 快照的定义: 磁盘快照:磁盘的内容(可能是虚机的全部磁盘或者部分磁盘)在某个时间点上被保存,然后可以被恢复. 磁盘数据的保存状态: 在一个运行着的系统上,一个磁盘快照很可能只是崩溃一致的(crash-consistent) 而不是完整一致(clean)的,也是说它所保存的磁盘状态可能相…
[思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没有很好隔离应用,所以催生了Docker这种虚拟容器的技术, 虽然我现在还没有去掌握Docker,但我已经觉得迫在眉睫需要去学习并好好应用上了. 大概2016年8.9月份我知道了有Docker这种东西,到2017年1月份也只是大致上对它有一些了解和看了有关它技术的开篇的文档. 因为其它如mysql.n…
[排障]tomact未能看到网页 文:食梦貘 这是几个月前的事情了,那时候我在安装xwiki,需要用到tomcat,但是初次安装好时碰上过一个故障: 安装tomcat后,客户机用IE网址上输入:服务端IP:8080 仍无法看到tomcat的网页 telnet 服务机8080端口提示连接被拒绝(反正就是不弹黑窗) 但防火墙确信是已配置好放行8080端口的,纠结了半天防火墙,关了也试过,都无效 后来再网上查tomcat的时候,发现有人提到tomcat有一个错误日志! 设置JDK环境变量时由于是直接复…
个人对win7开机黑屏只有鼠标排障总结 文:铁乐猫 第一种情况是explorer.exe进程丢失或损坏有关: 判断方法是按Ctrl+Alt+Del键能呼出任务管理器,结束explorer.exe进程,再运行输入"explorer.exe"后能看到桌面被加载出来.这种情况是最好解决的,修改一下注册表HKEY_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 中的shell项,将explorer.exe值…
五.优先级与限速 5.1 Traceroute延时判断影响因素 Traceroute延时包括三点: 探测包到达一个特定路由器的时间 路由器生成IPMI TTL Exceed的时间 ICMP TTL Exceed返回到SRC的时间 第一个和第三个时间都是受实际网络情况影响的,而第二个时间不是.能够对网络问题的判断起到帮助作用的仅仅只有第一个和第三个时间,第二个时间往往起到误导的作用. 5.2 路由器工作原理 路由器有转发(data-plane)和接收(control-plane)的功能. 路由器转…
突然有一天部署在服务器的一个应用挂掉了,没办法只能进入服务器打开 [事件查看器]查看下,好不容易找到了打开后一脸懵逼 事件查看器查到的内容根本对我们排障没有任何作用. 在这个时候如果有对应的dump文件就能派上用场了, 只要有dump文件就能查到应用挂掉那刻的一手情报,可能有人认为分析dump文件是非常难的事情, 但是最近不断有新的dump分析工具出来,例如用vs2017就能够很简单的分析dump文件. 接下来我们用几个实际的例子来看看如何用vs2017来分析dump文件吧 dump文件的收集…
https://coolshell.cn/articles/18654.html 总结在前面: 1.kill -9杀死docker进程,系统一定是要遍历所有的docker子进程来一个一个发退出信号的,这个过程可能会非常的长,结果客户没等到遍历完直接Ctrl+C结束了kill,导致一些docker的进程被杀死,这些docker的子进程就被挂载到PID 1下了,其中docker的NAT进程一直还在,所以出现的现象就是IP地址冲突. 2.上面的问题,重启必然能解决~~所以重启是万能法宝 3.一台物理服…
当你需要追踪某个进程产生和接收的系统调用时,首先浮现在你脑海中的是什么?你可能会想到strace,那么你是对的.你会使用什么样的命令行工具来监控原始网络通信呢?如果你想到了tcpdump,你又作出了一个极佳的选择.而如果你碰到必须追踪打开的文件(在Unix意义上:一切皆文件)的需求,可能你会使用lsof. strace.tcpdump以及lsof,确实是些伟大的工具,它们应该成为每个系统管理员工具集之中的一部分,而这也正是你为什么应该爱上sysdig的原因.它是一个强大的开源工具,用于系统级别的…
[作者] 王栋:携程技术保障中心数据库专家,对数据库疑难问题的排查和数据库自动化智能化运维工具的开发有强烈的兴趣. [问题描述] 最近我们有多台MongoDB的服务器CentOS 7.1系统发生了crash,会不定期的自动重启. [排查思路] 1.碰到linux系统crash的问题,我们首先想到的是排查系统日志/var/log/message,看是否有硬件问题或其他原因.抽查了多台服务器在crash的时间点message中都没有记录异常信息. 2.对于CentOS 7的系统,我们可以使用jour…
在一次修改nginx配置时候,执行 case: #/usr/local/nginx/sbin/nginx -t 出现执行命令出现很久没返回结果,也没返回成功或是失败,就是一直卡住的状态,严重影响nginx配置文件修改. -t            : test configuration and exit   //-t就是检查nginx配置检查. , 出现此问题之后,开始着手排查原因.   solution: 于是用ps-ef获取到改进程的pid,想知道这个进程到底在哪一步耗时 ps -ef |…
目录 一.故障现象... 1 二.初步分析... 2 三.排障过程... 2 1.排查是否QPS或insert并发请求上升导致问题发生... 2 2.排查是否锁资源等待或block导致了insert变慢... 3 3.排查是否表上无用索引导致的写入时间较长... 5 4.人工抓取perf,排查CPU上升期间的资源消耗... 5 5.疑似触发MySQL BUG,进一步分析... 6 四.优化过程... 8 1.初步优化方案... 8 2.删除一批无用索引,将服务器内存升级到80G.. 9 3.未达…
OSPF域内路由故障-现象与排障思路 一.故障现象 OSPF的或内路由故障常表现为邻居路由器不通告部分或全部路由,可能的原因通常为: 1).拟通告的接口上未启用OSPF 2).拟通告的接口被关闭 OSPF是一种基于链路状态的内部网关路由协议,存在链路状态数据库,在运行了OSPF的路由中需要重点关注邻居表.链路状态数据库(也叫链路状态表).路由表.如果邻居不通告某条路由,那么这条路由将无法显示在本地路由器的路由表和OSPF链路状态数据库中.同时, 这也表示邻居没有把这条路由包含到它自己的OSPF链…
排障的前置条件 k8s的成熟度很高,伴随着整个项目的扩增,以及新功能和新流程的不断引入,也伴随这产生了一些问题.虽然自动化测试可以排除掉大部分,但是一些复杂流程以及极端情况却很难做到bug的完全覆盖.因此在实际的工作过程中,需要对运行的集群进行故障定位和解决. 当然,进行排障的前提是对于k8s的流程和概念进行掌握,对于源码有一定的掌握能力,才可以更好的进行.待排障的环境和版本和源代码的版本需要进行匹配.版本号可以通过version命令获取,然后从源码进行对照.而且kubectl version还…
前言 .NetCore日志,相信大家多少都接触过,博客园有关 ① AspNetCore依赖注入第三方日志组件   ②第三方日志组件Nlog,Serilog 应用方法的博文层出不穷. 结合程序的部署结构,本文分单体和微服务聊一聊AspNetCore中追踪日志流的方法. TraceId AspNetCore程序基于Pipeline和中间件处理请求, 根据需要记录日志: 生产出故障时,在数量庞大的日志记录中追踪某个请求完整的处理链显得很有必要(这个深有体会). 针对单体程序,AspNetCore贴心的…
记一次KUBERNETES/DOCKER网络排障 https://coolshell.cn/articles/18654.html 记得之前在一个公众号里面看过这个文章 讲的挺好的.. 物理机直接跑docker 有利有弊 如果出了问题之后 很难通过重启解决 因为影响面积太大 如果加上一层虚拟化的话 虽然有一定的损耗 但是能避免一些 单一环境的严重问题. 昨天周五晚上,临下班的时候,用户给我们报了一个比较怪异的Kubernetes集群下的网络不能正常访问的问题,让我们帮助查看一下,我们从下午5点半…
写在前面 最近用kubeadm鼓捣了几个cluster集群测试用,网络用的flannel.因为这些机器都不是纯净的环境(以前部署过其他的k8s或者有一些特别的设置),所以部署起来遇到了很多问题.看了下相关的文章,梳理了flannel的vxlan的工作原理,成功对这几个环境进行了排障.本文主要是相关流程的笔记记录. 容器间通信 本文以两个节点上的两个容器间通信为例,介绍网络报文的流转过程以及可能出现的问题. flannel使用的镜像为quay.io/coreos/flannel:v0.11.0-a…
本文描述了"vHost User NUMA感知"的概念,该特性的测试表现,以及该特性为ovs+dpdk带来的性能提升.本文的目标受众是那些希望了解ovs+dpdk底层细节的人,如果你正在使用ovs+dpdk在NUMA host上配置虚拟化平台,使用vHost User类型的port作为guest的虚拟网络配置,那么本文或许会给你一些优化性能的灵感.   注意:在本文成文之际,vHost User NUMA感知这个特性仅在OVS master分支上可用.要下载OVS master分支,请…
2017-07-19 一.前言 之前有分析过虚拟化环境下virtIO的实现,virtIO相关于传统的虚拟IO在性能方面的确提高了不少,但是按照virtIO虚拟网卡为例,每次虚拟机接收数据包的时候,数据包从linux bridge经过tap设备发送到用户空间,这是一层数据的复制并且伴有内核到用户层的切换,而在用户空间virtIO后端驱动把数据写入到虚拟机内存后还需要退到KVM中,从KVM进入虚拟机,又增加了一次模式的切换.在IO比较频繁的情况下,会造成模式切换次数过多从而降低性能.而vhost便解…
查看可用的参数: [root@vrouter1 tong]# virt-xml --add-device --network=? |grep source source source_mode source_path source_type [root@vrouter1 tong]# 添加两个vhostuser的网卡 [root@vrouter1 ~]# virt-xml --add-device --network type=vhostuser,model=virtio,source_type…
别人创建的虚拟机.用libvirt做的配置. 我一直是手写qemu脚本的,不会用virtsh,所以,学一下. ------------------ 先来个arch的文档: https://wiki.archlinux.org/index.php/libvirt redhat文档: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_a…
每个hypervisor对于guest能看到的cpu model定义都不同,Xen 提供host pass through,所以guest能看到的cpu和host完全相同. QEMU/KVM中guest能看到自定义的通用cpu model  “qemu32” or “qemu64”,而VMWare 要高级一些,它把host cpu划分成组,guest 能看到每组的baseline CPU model,这样guest就能在改组迁移. 每种CPU models都采用不同方式来暴露其architect…
借鉴:https://www.cnblogs.com/grglym/p/8053553.html 借鉴:http://blog.chinaunix.net/uid-31410005-id-5771894.html qemu与libvirt编译与安装 qemu与libvirt编译与安装 一 .qemu编译前准备 以下链接为的本次编译环境为前提继续进行. ? 1 http://www.cnblogs.com/grglym/p/7891253.html 1.安装必要依赖包 ? 1 sudo apt-g…
导读 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务.Linux下的任务调度分为两类,系统任务调度和用户任务调度.系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件. cro…
本文用于记录在某次个人实验搭建DZ论坛,在编译安装部署mysql环节时出的错到最终排除错误的过程, 前面采用DZ官网所采用的编译安装mysql的过程就省去,主要从报错处开始讲述. (题外话,经此一役后,在下深觉如果不是针对DZ官网给出的mysql包和脚本是针对它的产品作了优化的话,还是之前自己掌握了的RPM换源安装Mysql及普通青年的编译安装mysql方法要简易适合得多,不过对方那个使mysql开机自动启动的脚本及一些目录编排一些配置有可借鉴的地方) 启动mysql时报错,服务退出而不更新PI…