标签:category2

发表于
不行啊,需要不停的安装测试软件。 不停的反复回到初始的状态,没办法用快照把。 首先需要 shutdown kvm 虚机 virsh destory vis-168-85-40 先查查都有什么命令: virsh --help|grep snapshot Snapshot (help keyword 'snapshot') snapshot-create Create a snapshot from XML snapshot-create-as Create a snapshot from a set of args snapshot-current Get or set the current snapshot snapshot-delete Delete a domain snapshot snapshot-dumpxml Dump XML...
发表于
场景是这样的: 实体机是kvm,上面跑了A和B两台虚机。 A 机 IP 是 192.168.85.40,然后胡乱鼓捣,里面乱作一团,然后想恢复。 B 机 IP 是 192.168.85.47,全新安装。 想直接把 B 机的qcow2文件翻版覆盖A机,然后启动改个 ip 即可。 结果是不行,用 virsh console A 上去查看,发现 eth0 没了,多了一个 eth1 。 于是明白,网卡冲突了,解决方法如下: vi /etc/udev/rules.d/70-persistent-net.rules...
发表于
虚机运行久了,碎片漫天飞,导致整个qcow2文件变大,删除了虚机内的文件,qcow2不会随着变小,浪费了不少空间,如何做一下碎片整理呢? 很简单,首先停了虚机 mv myqcow2file.qcow2 myqcow2file.qcow2.bak qemu-img convert -O qcow2 myqcow2file.qcow2.bak myqcow2file.qcow2 这么转换一下即可。...
发表于
nagios报警,有一台实机的内存使用率达到极限了,告警信息如下: MEMORY CRITICAL : Mem used: 99.61%, Swap used: 95.98% 上帝啊,128G的内存居然被用光了!!! 登上这台机器,验证一下,发现确实啥也不剩了,没有任何缓存,而且连交换分区都用了 # free -g total used free shared buffers cached Mem: 125 125 0 0 0 0 -/+ buffers/cache: 125 0 Swap: 8 7 0 看看上面跑了什么,居然跑了12台虚机 virsh list --all Id...
发表于
自己建了个dnsmasq,和libvirtd自带的冲突了,需要禁掉libvirtd的。 方法如下: virsh net-list Name State Autostart Persistent -------------------------------------------------- default active yes yes virsh net-autostart --disable default virsh net-destroy default 搞定....
发表于
比较古怪的需求,公司拉了根专线到机房。 而使用专线的机器是一台虚机,实机有自己的路由。 虚机就只能使用实机的第三块网卡,上连出去了,而且必须制定host的路由,这里给的子网掩码是255.255.255.252,所以只能虚机有ip,实机根本不能配ip地址。 首先把实机dell r720的第三块网卡em3改一下,连接到网桥br1 cat /etc/sysconfig/network-scripts/ifcfg-em3 DEVICE=em3 HWADDR=XX:XX:XX:XX:XX:XX TYPE=Ethernet UUID=6b68220d-d5ed-496f-b8d1-4c6d9cbb1234 ONBOOT=yes NM_CONTROLLED=no BRIDGE=br1 再做个网桥br1 cat /etc/sysconfig/network-scripts/ifcfg-br1 DEVICE=br1 BOOTPROTO=...
发表于
同事扩容kvm的硬盘,结果写坏了kvm虚机上的/etc/fstab,虚机重启爬不起来了,需要修复。 到网上拷贝一个systemrescuecd-x86-4.7.3.iso的系统恢复盘,拷过去 然后编辑虚机: virsh edit vis-16-45-23 给虚机增加一个iso虚拟光驱 <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/export/kvm/systemrescuecd-x86-4.7.3.iso'/> <target dev='hdc' bus='ide'/> <readonly/...
发表于
在京东和公司生产kvm虚机的时候,虚机命名都是有规则的。 统统是vis-16-100-1这种格式,vis表示虚机,16-100-1是ip地址的后三位。第一位是一样的。 这样做的好处是,你用virsh list --all列虚机的时候,一目了然,一眼就能看出来虚机的ip,就不会改错或者杀错了。 那么问题又来了,如果一台虚机已经装好了,需要修改ip,那么如果修改对应的虚机name呢? 很简单,首先把旧机器的配置给dump出来 virsh dumpxml name_of_vm > name_of_vm.xml 然后删掉虚机,其实文件什么都没动 virsh undefine name_of_vm 然后修改nameofvm.xml中的name,改好后重新定义虚机 virsh define new_name_of_vm.xml 最后启动就好了 virsh start new_...
发表于
最近都在研究gpxe和iscsi,那么如何让kvm使用存储在iscsi上面的文件卷呢? 假设我们已经按之前的文章架好了iscsi: 造个10G文件(因为萝卜花园的clone需要10G): dd if=/dev/zero of=/export/iscsi/disk03.img count=0 bs=1 seek=10G 增加iscsi target vi /etc/tgt/targets.conf <target iqn.2016-07.com.renhe:renhe-16-8-6.disk03> backing-store /export/iscsi/disk03.img write-cache off </target> tgt-admin --execute isci准备好了,然后我们去kvm定义池子:...
发表于
很不凑巧的,这个星期都在docker与systemd之间战斗啊。 实体机是CentOS7,所以是Systemd管Docker。 而虚机中则变成Docker管systemd了。 两个软件互相打架,真是受不了 说说事情的来由,oneapm搞活动,想拿他家那个xbox,因为是cloudinsight,所以不需要开放外网端口,用lxc重了,决定趁这个机会上到centos7试试。 于是乎用centos7+最新版的docker,首先在容器内安装oneapm的agent有些问题,需要d-bus权限。 所以容器必须用这样的方式启动: docker run --privileged -d -p 10000:80 centos:last /sbin/init 这就是大混战的开始啊。 docker启动提了权,然后虚机再boot一版systemd。导致进程中充斥着systemd啊 这样装到第25台虚机的时候systemd再也无法容纳了。 只能降级CentOS7到6,然后再跑,这样跑的是个假的systemd,就是fakesystemd,这样容器跑到单机284个也没问题。 所以在真正的生产环境中,还是Centos6吧,这个战争不结束,就没办法大规模应用。除非是不提权的用法。...
发表于
上篇文章我们学会了kickstart脚本中如何配置bond、bridge的方法,下面我们来看看如何配置openVswitch的方法: 由于openVwitch在系统包里并不存在,所以必须在系统装好后在%post部分中配置: %post # add the puppet server to hosts file echo '200.7.4.199 puppet.mynetwork.com puppet' |tee -a /etc/hosts # add the gateway to /etc/sysconfig/network echo 'GATEWAY=200.7.7.2' |tee /etc/sysconfig/network # Setup the bridge echo 'Bridge Config'...
发表于
容器中已经安装好了apache httpd yum -y install httpd 那么如何从容器外启动apache呢? 用exec即可 # docker ps -aq d464910e61c2 # docker exec d464910e61c2 /bin/bash -c "/usr/sbin/apachectl start" 注意上面的用法,bash -c 后面可以跟单引号,或者双引号,里面是实际执行的命令。...
发表于
在Centos7的docker里装好了httpd,运行报错: systemctl start httpd.service Failed to get D-Bus connection: Operation not permitted 真无语啊,必须提权才可以: docker run --privileged -d -p 10080:80 centos /sbin/init 记下来,备查。...
发表于
其实一直用得docker应该叫做lxc,只不过是套了一个docker的外壳。 这回是真的升级到centos7,docker的跑法也变为两种,一种是lxc引擎,一种是docker的引擎。lxc很熟悉了,但是docker自己的反而不太熟悉,哈哈,倒错吧。 下面说说docker自己引擎的用法,安装前务必确认centos7的selinux已经关掉: 安装: yum install -y docker 启动: systemctl start docker pull个镜像: docker pull centos:latest 跑个docker实例: docker run --privileged -d -p 10080:80 docker.io/centos /sbin/init 进入这个docker实例: docker ps -aq 4e29e10a5110 docker exec 4e29e10a5110 -it /bin/bash...
发表于
管理相关命令 查看bridge信息 ovs-ofctl show br0 # 显示结果中port前面的数字为OpenFlow port id Dump flow table # Dump br0所使用的flow table ovs-ofctl dump-tables br0 Dump flow # Dump br0的所有flow ovs-ofctl dump-flows br0 # Dump br0上匹配xx的flow ovs-ofctl dump-flows br0 xx Flow Table相关命令 添加 flow ovs-ofctl add-flow br0 in_port=1,actions=xx # 从文件br0flow.txt中导入Flow Table # 该文件必须一行一个flow ovs-ofctl add-flow br0 -...
发表于
Introduction Open vSwitch中有多个命令,分别有不同的作用,大致如下: ovs-vsctl用于控制ovs db ovs-ofctl用于管理OpenFlow switch 的 flow ovs-dpctl用于管理ovs的datapath ovs-appctl用于查询和管理ovs daemon 本文主要介绍ovs-vsctl。以下命令查询主机上已有的 OVS bridge,以及其中的 port。 ovs-vsctl show 例子 $ ovs-vsctl show fc562da8-fb36-4d62-8b47-5502e72069dc Bridge br-vxlan Port "vxlan0" Interface "vxlan0" type: vxlan options: {remote_ip="10.10.10.1"} Port br-vxlan Interface br-vxlan type: internal Port "veth2" Interface...
发表于
如上的场景,这是一个标准的生产环境 两台物理机,每台上都跑了若干虚机,eth0是数据网,eth1是管理网。 虚机的网络加载在Open vSwitch之上。 虚机只有一个网卡,tap是个2层设备。 具体的配置步骤如下: 在每台实机上建立网桥: ovs-vsctl add-br br0 把实机上的eth0加入网桥: ovs-vsctl add-port br0 eth0 注意,上面的方法加入网桥,实际和以下命令相当: ovs-vsctl add port br0 eth0 tag=1 缺省tag=1, 表示native,接受所有的vlan。 另外,上一步如果直接执行,会洗掉eth0原有的ip地址,你就连不上了,这就是为什么要有eth1管理网口的原因,你只能连eth1的地址了 把VM1虚机上的网口添加到网桥,打vlan tag=100: ovs-vsctl add-port br0 tap0 tag=100...
发表于
Macvlan and Ipvlan Network Drivers Getting Started The Macvlan and Ipvlan drivers are currently in experimental mode in order to incubate Docker users use cases and vet the implementation to ensure a hardened, production ready driver in a future release. Libnetwork now gives users total control over both IPv4 and...
发表于
通常情况下自己会直接用kvm,因为比openstack省机器,当然也不会排斥CloudStack和opennebula,都很好用的。 下面说说自己来编译一版的CloudStack,环境是CentOS 7: 首先安装开发工具包 yum install maven java-1.8.0-openjdk mkisofs ws-commons-util genisoimage gcc 接下来我们需要调用setnextversion.sh生成新的版本号: usage: ./tools/build/setnextversion.sh -v version [-b branch] [-s source dir] [-h] -v sets the version -b sets the branch (defaults to 'master') -s sets the source directory -h...
发表于
什么是SR-IOV呢? 简单的说,SR-IOV是一种虚拟化方案,用来使一个PCIe的物理设备,能虚拟出多个设备,这些虚拟出来的设备看起来就像是多个真实的物理设备一样,并获得能够与本机性能媲美的 I/O 性能。 SR-IOV现在最多是用在网卡上,kvm虚拟机的网卡功能一般会下降到实体机的30-50%,如果改用SR-IOV会大大提高网卡性能。 SR-IOV 有2种功能: 物理功能 (Physical Function, PF) 就是标准的PCIe的功能了 虚拟功能 (Virtual Function, VF) 与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。 好的,如何在生产环境中使用它呢? 场景如下: 如上: 机房分为两类交换机: switch-1用来连接各机器的eth0口 switch-2用来连接各机器的eth1口 switch-1和switch-2互联 这是一种机房的标准连法,eth0和eth1做bonding,做线路冗余 server-2是一台Dell R730的服务器,eth0连switch-1,eth1连switch-2,上面跑了三个虚机:...