【运维】KVM qemu-kvm命令

简介: KVM学习~

qemu-kvmvirt命令相比,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模拟

image.png

 

-cpu 指定模拟的CPU

#查看可选CPU型号

[root@localhost ~]# qemu-kvm -cpu ?

image.png

 

 

-smp 指定CPU个数

maxcpus=最大cpu]

cores=核心数

threads=线程数

 

 

二、内存定义

 

image.png

-m megs: 设定虚拟机的RAM大小

 

 

三、磁盘镜像文件模拟

 

磁盘文件定义

image.png

 

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命令

 

 

镜像文件定义

image.png

 

需要注意的是-cdrom-hdc不能同时使用:将file指定为/dev/cdrom可以直接使用物理光驱

 

 

四、网络配置参数

 

网卡配置(前端)

image.png

查看支持模拟网卡型号

image.png

 

 

tap设备配置(后端)

image.png

 

 

image.png

 

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

image.png

 

 

五、其他选项

 

image.png

-name name:指定虚拟机的名称

 

image.png

-boot  定义设备的引导次序

每种设备使用一个字符表示。

a,b 表示软驱,c表示第一块硬盘,d表示第一个光驱,n-p 表示网络适配器。

例如:-boot order=dc,once=d

 

image.png

-nographic 禁止图形化输出,直接在终端上打印

 

image.png

-daemonize     虚拟机启动在后台

 

image.png

-vnc :n or x.x.x.x:x 开启vnc

 

 

创建测试虚拟机

 

#编写配置默认网桥脚本,添加执行权限

#$1qemu创建的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

image.png

 

#启动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端口登录

image.png

 

 

启动时输出的系统信息

image.png

 

brctl show查看网桥连接,此时tap0接口已经连接在virbr0

image.png

 

虚拟机通过tap0连接到网桥与物理机virbr0-nic接口进行桥接

获取了DHCP的地址,可以在物理机上进行ssh连接

image.png

 

 

 

 

 

 

 

 

相关文章
|
16天前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
22 0
|
3月前
|
缓存 网络协议 数据安全/隐私保护
[运维笔记] - (命令).Windows server常用网络相关命令总结
[运维笔记] - (命令).Windows server常用网络相关命令总结
183 0
|
17天前
|
运维 Kubernetes 容器
K8S运维命令必备kubectl命令总结
K8S运维命令必备kubectl命令总结
21 3
|
5月前
|
运维 Shell
运维(06)- shell命令代换
运维(06)- shell命令代换
16 0
|
3天前
|
运维 网络协议 安全
neutron 运维命令
OpenStack Neutron是OpenStack的网络服务,它负责管理虚拟机和其他计算资源之间的网络连接。Neutron提供API和插件,支持多种网络拓扑和服务,包括虚拟网络和物理网络的配置、管理和调度。它还支持IP地址分配、网络连接和安全策略等。
7 1
|
14天前
|
运维 Linux Shell
linux运维常用命令
linux运维常用命令
|
29天前
|
监控 网络协议 Linux
Linux 命令大全 & CentOS常用运维命令
Linux 命令大全 & CentOS常用运维命令
137 0
|
2月前
|
运维 Linux Docker
Linux运维工程师必须要掌握的Docker命令,我给你整理好了!
Linux运维工程师必须要掌握的Docker命令,我给你整理好了!
167 2
|
2月前
|
运维 网络协议 Linux
Linux 这50个 systemd 命令值得每位Linux运维工程师收藏!
Linux 这50个 systemd 命令值得每位Linux运维工程师收藏!
442 0
Linux 这50个 systemd 命令值得每位Linux运维工程师收藏!
|
3月前
|
存储 运维 Shell
Shell内置命令大全,Linux运维工程师收藏!
Shell内置命令大全,Linux运维工程师收藏!
161 0
Shell内置命令大全,Linux运维工程师收藏!