qemu-kvm和virt命令相比,qemu-kvm更加接近底层系统。
安装qemu-kvm,因为红帽希望大家使用他们推崇的libvirt。基于libvirt的工具如virt-manager和virt-install 提供了非常便捷的虚拟机管理接口,但他们事实上经二次开发后又封装了qemu-kvm的工具,因此,直接使用qemu-kvm命令也能够完成此前的任务。
所以将qemu-kvm放到了/usr/libexec/ 下,不在PATH下,需要自己创建软连接
CentOS安装了两个重要的命令:
qemu-kvm:管理kvm
qemu-img:管理磁盘
#安装qemu-kvm组件,添加软连接
[root@localhost ~]# yum -y install qemu-kvm [root@localhost ~]# ln -s /usr/libexec/qemu-kvm /usr/local/bin
一、CPU模拟
-cpu 指定模拟的CPU
#查看可选CPU型号
[root@localhost ~]# qemu-kvm -cpu ?
-smp 指定CPU个数
maxcpus=最大cpu数]
cores=核心数
threads=线程数
二、内存定义
-m megs: 设定虚拟机的RAM大小
三、磁盘镜像文件模拟
磁盘文件定义
file=:硬盘映像文件路径
media=:指定介质设备类型,有disk,和cdrom
if= :指定硬盘设备所连接的接口类型,如ide,sd,virtio等
file=/path :硬盘映像文件路径
index=index:设定同一种控制器类型中不通设备的索引号,即标识号
snapshot=snapshot:指定当前硬盘设备是否支持快照功能:on或off
cache=cache:定义如何使用物理机缓存来访问块数据,其可用值有none,writeback,unsafe和writethrough(通写)
format=format:指定映像文件的格式,具体格式可参见qemu-img命令
镜像文件定义
需要注意的是-cdrom和-hdc不能同时使用:将file指定为/dev/cdrom可以直接使用物理光驱
四、网络配置参数
网卡配置(前端)
查看支持模拟网卡型号
tap设备配置(后端)
Tap/Tun工作原理 TUN/TAP虚拟网络设备的原理比较简单,他在Linux内核中添加了一个TUN/TAP虚拟网络设备的驱动程序和一个与之相关连的字符设备/dev/net/tun,字符设备tun作为用户空间和内核空间交换数据的接口。用户空间的应用程序可以通过这个设备文件来和内核中的驱动程序进行交互,其操作方式和普通的文件操作无异。当内核将数据包发送到虚拟网络设备时,数据包被保存在设备相关的一个队列中,直到用户空间程序通过打开的字符设备tun的描述符读取时,它才会被拷贝到用户空间的缓冲区中,其效果就相当于,数据包直接发送到了用户空间。通过系统调用write发送数据包时其原理与此类似。
原文链接:https://blog.csdn.net/xiakewudi/java/article/details/76851076 |
帮助文档:
使用网络脚本文件配置(配置tap接口与桥接接口创建网桥),默认使用位置为/etc/qemu-ifup的配置脚本或指定脚本
使用script=no或downscript=no禁止脚本配置
tap接口名称不指定则默认给一个tapXX
五、其他选项
-name name:指定虚拟机的名称
-boot 定义设备的引导次序
每种设备使用一个字符表示。
a,b 表示软驱,c表示第一块硬盘,d表示第一个光驱,n-p 表示网络适配器。
例如:-boot order=dc,once=d
-nographic 禁止图形化输出,直接在终端上打印
-daemonize 虚拟机启动在后台
-vnc :n or x.x.x.x:x 开启vnc
创建测试虚拟机
#编写配置默认网桥脚本,添加执行权限
#$1为qemu创建的tap设备号作为参数传给脚本,bridge为在系统上创建好的网桥
[root@localhost ~]# vim /etc/qemu-ifup #!/bin/bash bridge=virbr0 if [ -n "$1" ];then ip link set $1 up sleep 1 brctl addif $bridge $1 exit 0 else echo "Error: no interface specified" exit 1 fi [root@localhost ~]# chmod +x /etc/qemu-ifup
#启动cirros测试机
[root@localhost isos]# qemu-kvm -name test-cirros -m 512 -drive file=cirros-0.3.4-x86_64-disk.img -net nic -net tap -nographic -vnc :1
启动成功,虚拟机输出在前台,也可使用VNC连接5901端口登录
启动时输出的系统信息
brctl show查看网桥连接,此时tap0接口已经连接在virbr0上
虚拟机通过tap0连接到网桥与物理机virbr0-nic接口进行桥接
获取了DHCP的地址,可以在物理机上进行ssh连接