【运维】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

 

 

 

 

 

 

 

 

相关文章
|
2月前
|
人工智能 运维 Kubernetes
别再手动敲命令了!运维自动化才是打工人的“自救之道”
别再手动敲命令了!运维自动化才是打工人的“自救之道”
90 8
|
6月前
|
弹性计算 人工智能 运维
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
阿里云操作系统控制台提供了便捷的服务器监控与管理功能,简化了运维工作。通过将多台服务器纳入统一监控平台,用户可以快速查看CPU、内存、磁盘和网络等关键资源的使用情况,避免了逐一远程连接查询的繁琐操作。此外,该工具支持自动化数据汇总,极大地方便了日报、周报和月报的编写。测试过程中,系统展示了良好的稳定性和响应速度,尤其在网络抖动和大文件健康状态测试中表现出色。整体体验流畅,显著提升了运维效率。 操作系统控制台地址:[点击访问](https://alinux.console.aliyun.com/)
185 26
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
|
8月前
|
运维
阿里云服务器批量执行命令(系统运维管理oos)
阿里云【系统运维管理oos】批量执行详情
181 5
|
11月前
|
运维 监控 网络协议
|
10月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
796 3
|
10月前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
713 3
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
786 3
|
SQL 运维 Oracle
入门级Oracle 11g日常运维命令总结
入门级Oracle 11g日常运维命令总结
448 1
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
391 2
|
SQL 运维 数据库
DM8日常运维必须要懂的几个命令
DM8日常运维必须要懂的几个命令
176 1