qemu+kvm 创建虚拟机并虚拟网卡
2017-12-21 20:02
726 查看
Linux目前流行的开源虚拟化技术解决方案:
主机虚拟化:xen, kvm, virtualbox
容器级:lxc, libcontainer, runC, openvz
模拟器:qemu
KVM模块load进内存之后,系统的运行模式:
内核模式:GuestOS执行IO类的操作时,或其它的特殊指令操作时的模式;它也被称为“Guest-Kernel”模式;
用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;
来宾模式:GuestOS的用户模式;所有的非IO类请求;
Qemu:
处理器模拟器
仿真各种IO设备
将仿真设备连接至主机的物理设备
提供用户接口
qemu-kvm 可以完成虚拟机创建,安装,启动运行
qemu-img 辅助对磁盘镜像的管理
qemu-IO 对IO使用情况管理
运行中的一个kvm虚拟机就是一个qemu-kvm进程,运行qemu-kvm程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;
安装使用KVM:
判断CPU是否支持硬件虚拟化:
grep -i -E '(vmx|svm|lm)' /proc/cpuinfo
ip link set br-and up ##启动网桥
编写启动虚拟机时要执行的脚本,默认为/etc/qemu-ifup
创建虚拟机并虚拟网卡网桥
qemu-kvm -smp 1 -m 32 -name c2 -drive file=/data/img/c1.img,if=virtio,media=disk,format=qcow2 -vnc :1 -net nic,
model=e1000,macaddr=52:54:00:00:00:01 -net tap,script=/etc/qemu-ifup -daemonize
#######
-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]:指明虚拟机上vcpu的数量及拓扑;
-name NAME:当前虚拟机的名称,要惟一;
-drive [file=file][,if=type][,media=d][,index=i] [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]:
file=/PATH/TO/SOME_IMAGE_FILE:映像文件路径;
if=TYPE:块设备总线类型,ide, scsi, sd, floppy, virtio,
media=TYPE:介质类型,cdrom和disk;
format=f:磁盘映像文件的格式;
-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v] 为虚拟机创建一个网络接口,并将其添加至指定的VLAN;
-net nic,model=? model=type:指明模拟出的网卡的型号,ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio;
macaddr=mac:指明mac地址;52:54:00:
-net tap[,vlan=n][,name=str][,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile]:
通过物理的TAP网络接口连接至vlan n;
script=file:启动虚拟机时要执行的脚本,默认为/etc/qemu-ifup
#########
-vnc :1 通过vncserver终端1 链接可以在图形化界面登录
yum install tigervnc-server
图形化界面执行vncviewer
在出现的登录界面输入提示的登录
user:cirros
password:cubswin:)
让虚拟机通信
为创建的虚拟主机添加ip地址 内网地址 可随意创建
ifconfig add eth0 10.1.0.1/16
让虚拟主机可以和网桥通信,在宿主机上执行
ip addr add 10.1.0.222/16 br-and ##给虚拟网桥添加地址
echo 1 > /proc/sys/net/ipv4/ip_forward ## 开启路由转发
让虚拟主机可以和宿主机仅主机通信
iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source 172.16.250.200
让虚拟主机可以被访问到
iptables -t nat -A PREROUTING -d 172.16.250.200 -p tcp --dport 22022 -j DNAT --to-destination 10.1.0.1:22
主机虚拟化:xen, kvm, virtualbox
容器级:lxc, libcontainer, runC, openvz
模拟器:qemu
KVM模块load进内存之后,系统的运行模式:
内核模式:GuestOS执行IO类的操作时,或其它的特殊指令操作时的模式;它也被称为“Guest-Kernel”模式;
用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;
来宾模式:GuestOS的用户模式;所有的非IO类请求;
Qemu:
处理器模拟器
仿真各种IO设备
将仿真设备连接至主机的物理设备
提供用户接口
qemu-kvm 可以完成虚拟机创建,安装,启动运行
qemu-img 辅助对磁盘镜像的管理
qemu-IO 对IO使用情况管理
运行中的一个kvm虚拟机就是一个qemu-kvm进程,运行qemu-kvm程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;
安装使用KVM:
判断CPU是否支持硬件虚拟化:
grep -i -E '(vmx|svm|lm)' /proc/cpuinfo
modprobe kvm yum install qemu-kvm ln -sv /usr/libexec/qemu-kvm /usr/bin mkdir /VMs/c{1,2,3} -pv cp cirros-no_cloud-i386.img /VMs/c1/ ## cirros 是一个微型镜像文件 用来测试brctl addbr br-and ##创建虚拟网桥
ip link set br-and up ##启动网桥
编写启动虚拟机时要执行的脚本,默认为/etc/qemu-ifup
vim /etc/qemu-ifup #!/bin/bash bridge=br0 if [ -n "$1" ];then ip link set $1 up sleep 1 brctl addif $bridge $1 [ $? -eq 0 ] && exit 0 || exit 1 else echo "Error: no interface specified." exit 2 fi chmod +x /etc/qemu-ifup
创建虚拟机并虚拟网卡网桥
qemu-kvm -smp 1 -m 32 -name c2 -drive file=/data/img/c1.img,if=virtio,media=disk,format=qcow2 -vnc :1 -net nic,
model=e1000,macaddr=52:54:00:00:00:01 -net tap,script=/etc/qemu-ifup -daemonize
#######
-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]:指明虚拟机上vcpu的数量及拓扑;
-name NAME:当前虚拟机的名称,要惟一;
-drive [file=file][,if=type][,media=d][,index=i] [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]:
file=/PATH/TO/SOME_IMAGE_FILE:映像文件路径;
if=TYPE:块设备总线类型,ide, scsi, sd, floppy, virtio,
media=TYPE:介质类型,cdrom和disk;
format=f:磁盘映像文件的格式;
-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v] 为虚拟机创建一个网络接口,并将其添加至指定的VLAN;
-net nic,model=? model=type:指明模拟出的网卡的型号,ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio;
macaddr=mac:指明mac地址;52:54:00:
-net tap[,vlan=n][,name=str][,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile]:
通过物理的TAP网络接口连接至vlan n;
script=file:启动虚拟机时要执行的脚本,默认为/etc/qemu-ifup
#########
-vnc :1 通过vncserver终端1 链接可以在图形化界面登录
yum install tigervnc-server
图形化界面执行vncviewer
在出现的登录界面输入提示的登录
user:cirros
password:cubswin:)
让虚拟机通信
为创建的虚拟主机添加ip地址 内网地址 可随意创建
ifconfig add eth0 10.1.0.1/16
让虚拟主机可以和网桥通信,在宿主机上执行
ip addr add 10.1.0.222/16 br-and ##给虚拟网桥添加地址
echo 1 > /proc/sys/net/ipv4/ip_forward ## 开启路由转发
让虚拟主机可以和宿主机仅主机通信
iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source 172.16.250.200
让虚拟主机可以被访问到
iptables -t nat -A PREROUTING -d 172.16.250.200 -p tcp --dport 22022 -j DNAT --to-destination 10.1.0.1:22
相关文章推荐
- KVM真机服务器网卡调整,命令行创建虚拟机,LV快照虚拟机
- 批量导入Hyper-V虚拟机时自动创建虚拟网卡关联虚拟交换机
- KVM 虚拟机在 IBM System x 上应用 - 如何使用 SLES11 自带的 KVM 虚拟软件在 IBM Ssystem x 上创建虚拟机
- kvm创建虚拟机流程(1)
- kvm-libvirt的使用:创建虚拟机与快照
- KVM存储池与存储卷,使用virt-install创建虚拟机
- KVM之十:虚拟机在线添加网卡
- 如何在Windows7的虚拟机中添加一块虚拟网卡
- win7 虚拟无线网卡 创建wifi热点
- 利用eNSP的桥接虚拟网卡实现在虚拟机上对设备的Telnet带内管理
- kvm安装配置,创建虚拟机,centos环境
- KVM 虚拟机创建与网络配置
- 在VMware5.5.2虚拟机的虚拟XP内创建与真实硬盘文件夹共享的SHARE FOLDER
- kvm虚拟化关闭虚拟网卡virbr0的方法
- VM虚拟机虚拟网卡对于UDP发送广播包的影响
- Linux系统下基于Kvm创建虚拟机时网络网桥的配置使用说明
- 虚拟网卡创建
- G5老服务器安装centos6.8,在centos6.8中安装KVM,并创建centos7.4虚拟机
- 安装kvm创建虚拟机的问题:VNC server running on '::1:5900'