欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

neutron基础七(qemu tap)

程序员文章站 2022-07-10 22:26:03
...
使用qemu 建立个虚拟机
然后用tap设备,
根据基础六,tap设备绑定到桥上,就可以和其他vxlan的上的机器通信
简历虚拟机硬盘
虚拟机叫vm,承载虚拟机的机器叫host

qemu-img create -f qcow2 testnet.img 500G           
qemu-img amend -f qcow2 -o compat=0.10 testnet.img 

建立虚拟机
#!/bin/sh
#/usr/libexec/qemu-kvm -m 16384 -smp 2  -hda /home/haoning/qemu/testnet.img -cdrom /home/CentOS-7-x86_64-DVD-1503-01.iso  -net nic -net tap,ifname=tap1,script=/home/haoning/qemu/qemu-ifup,downscript=no  -vnc 192.168.140.11:17  -daemonize  
#/usr/libexec/qemu-kvm -m 16384 -smp 2  -hda /home/haoning/qemu/testnet.img  -net nic -net tap,ifname=tap1,script=/home/haoning/qemu/qemu-ifup,downscript=no  -vnc 192.168.140.11:17  -daemonize 
/usr/libexec/qemu-kvm -m 8192 -smp 2   -hda /home/hao/cirros-0.3.1-x86_64-disk.img  -net nic -net tap,ifname=tap1,script=/home/hao/qemu-ifup,downscript=no  -vnc 0.0.0.0:17  -daemonize

如果是没有lsmod|grep kvm只有一个没有kvm_intel的机器上,只能用qemu
/usr/libexec/qemu-kvm -m 8192  -machine pc-i440fx-rhel7.0.0,accel=tcg,usb=off -cdrom /home/hao/CentOS-7-x86_64-DVD-1503-01.iso  -hda /home/hao/testnet.img  -net nic -net tap,ifname=tap1,script=/home/hao/qemu-ifup,downscript=no  -vnc 192.168.139.55:17  -daemonize

如果是在kvm建的vm上,这vm上就无法再使用kvm了,坑爹
若果想使用kvm on kvm需要在主机上打开nested,kvm的透传
modprobe -r kvm_intel
modprobe kvm_intel nested=1

并且libvert要设置建立的vm和主机的相同
 <cpu mode='host-passthrough'/> 

参见
http://libvirt.org/formatdomain.html  中的 CPU model and topology 部分。

第一次加上-cdrom指定iso
qemu-ifup文件先什么也不写,如果写的话,
#!/bin/sh  
switch=br0  
echo "ifup qemu----"  
#if [ -n "$1" ]; then  
#        ip link set $1 up  
#        sleep 1  
#        brctl addif ${switch} $1  
#        exit 0  
#else  
#        echo "Error: no interface specified"  
#fi  


启动vm后安装系统,
进入系统后host设置
ip link
能发现多了个tap1

brctl addif br0 tap1
ip link set tap1 up


br0是主机上配置的桥,可以参考以前的内容

如果br0上有dhcp服务
直接在vm里面dhcp就行了

tap1就相当于veth peer 的veth0  ,vm里面的网卡就相当于veth1,放到namespace里面的,
vm就相当于namespace

现在,veth peer ,namespace,桥,vxlan,tap设备
有了这些,局域网的网络基本的内容就可以任意玩了