kvm+qemu+libvirt管理虚机
virt-manager 图形化创建虚拟机
#virt-manager纳管远程kvm虚拟机
# 可以指定kvm虚机的ssh端口和virt-manager所在主机的私钥
virt-manager -c 'qemu+ssh://root@10.197.115.17:5555/system?keyfile=id_rsa' --no-fork
# 如果你生成的ssh-key 的名称是 test-key,在/home/ssh-key/ 目录中,并保持了默认的 22 端口,则为:
virt-manager -c 'qemu+ssh://root@10.197.115.17/system?keyfile=/home/ssh-key/test-key' --no-fork

virt-install 命令行创建虚拟机(安装操作系统可选择vnc连接5910端口进行安装)
#virt-install是使用libvirt库构建虚机的命令行工具,使用了串行控制台(sdl\vnc客户端)来支持图形化安装
virt-install --name=kvm --ram=2048 --vcpus=2 --disk path=/root/kvm/centos01.img,size=20,bus=virtio --accelerate --cdrom /root/iso/CentOS-7-x86_64-Minimal-1810.iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
--name #虚拟机名称
--ram #分配给虚拟机的内存,单位MB
--vcpus #分配给虚拟机的cpu个数
--cdrom #指定CentOS镜像ISO文件路径
--disk #指定虚拟机raw文件路径
--size #虚拟机文件大小,单位GB
--bus #虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio
--cache #虚拟机磁盘的cache类型
--network bridge #指定桥接网卡
--model #网卡模式,这里也是使用性能更好的virtio
#virt-install 子命令缩写
-n --name= 客户端虚拟机名称
-r --ram= 客户端虚拟机分配的内存
-u --uuid= 客户端UUID 默认不写时,系统会自动生成
--vcpus= 客户端的vcpu个数
-v --hvm 全虚拟化
-p --paravirt 半虚拟化
-l --location=localdir 安装源,有本地、nfs、http、ftp几种,多用于ks网络安装
--vnc 使用vnc ,另有--vnclient=监听的IP --vncport =VNC监听的端口
-c --cdrom= 光驱 安装途径
--disk= 使用不同选项作为磁盘使用安装介质
-w NETWORK, --network=NETWORK 连接客户机到主机网络
-s --file-size= 使用磁盘映像的大小 单位为GB
-f --file= 作为磁盘映像使用的文件
--cpuset=设置哪个物理CPU能够被虚拟机使用
--os-type=OS_TYPE 针对一类操作系统优化虚拟机配置(例如:‘linux’,‘windows’)
--os-variant=OS_VARIANT 针对特定操作系统变体(例如’rhel6’, ’winxp’,'win2k3')进一步优化虚拟机配置
--host-device=HOSTDEV 附加一个物理主机设备到客户机。HOSTDEV是随着libvirt使用的一个节点设备名(具体设备如’virsh nodedev-list’的显示的结果)
--accelerate KVM或KQEMU内核加速,这个选项是推荐最好加上。如果KVM和KQEMU都支持,KVM加速器优先使用。
-x EXTRA, --extra-args=EXTRA 当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序
--nographics "virt-install" 将默认使用--vnc选项,使用nographics指定没有控制台被分配给客户机
virsh的libvirt的命令行管理工具
virsh define test.xml # 通过xml文件创建虚机,此时虚机未启动
virsh create test.xml # 创建虚机
virsh edit test # 修改现有的虚机xml定义文件
virsh destroy test # 关闭虚拟机
virsh undefined test # 删除虚机的xml定义定义文件,磁盘文件不会删除
virsh list --all # 列出所有的虚机,包括关机状态的
virsh start domain # 启动虚机并查看状态
virsh autostart domain # 设置虚机自启动
virsh vncdisplay domain # 查看虚机的vnc端口,一版进行操作系统的安装
virsh console domain # 连接虚机
virsh net-list # 查看网络
virsh net-start default # 开启网络将启用一个网桥virbr0,iptables规则、dnsmasq、dhcp
qemu相关命令
# qemu-img用于创建空的镜像文件
qemu-img create -f qcow2 test.qcow2 20G
# 镜像转换
qemu-img convert -c -O qcow2 image result.img
# 修改磁盘大小(增加10G)
qemu-img resize test.qcow2 +10G
虚拟机xml文件
<domain type='kvm'>#域类型<name>test</name> #虚拟机的名字,由字母和数字组成,不能包含空格<memory unit='GiB'>8</memory> #在不reboot guest的情况下,guset可以使用的最大内存,默认KB为单位<currentMemory unit='GiB'>4</currentMemory> #guest启动时内存(当前),可以通过virsh setmem来调整内存,但不能大于最大可使用内存。<vcpu>4</vcpu> #分配的虚拟cpu<os><type arch='x86_64' machine='pc'>hvm</type> #hvm:全虚拟化#<kernel>/tmp/vmlinuz-rhel54</kernel> #kernel:指定guest使用的内核,如果使用ISO(安装时)或guset系统中(系统已经安装完成)的内核,不需要指定该项#<initrd>/tmp/initrd-rhel54.img</initrd> #initrd:指定guest使用的ram disk,如果使用ISO(安装时)或guest系统中(系统已经安装完成)的ram disk,不需要指定该项#注:kernel 和initrd文件位于RHEL系统光盘的images/pxeboot目录,拷贝这两个文件到本地磁盘,并指定路径。#注:这两个元素,如果是为了安装guset而指定,在安装完成以后即可以删除。#如果host开启了SELINUX,需要改变文件的security context类型为virt_image_t,从而在启动时libvirtd可以访问这二者# chcon -t virt_image_t /tmp/vmlinuz-rhel54# chcon -t virt_image_t /tmp/initrd-rhel54.img# ls -Z /tmp|grep virt<boot dev='hd'/> #boot:指定启动设备,可以重复多行,指定不同的值,作为一个启动设备列表。hd表示从硬盘启动<boot dev='cdrom'/> #network表示从pxe启动</os><features> #处理器特性<acpi/><apic/><pae/></features><clock offset='utc'/> #时钟#定义了在kvm环境中power off,reboot,或crash时的默认的动作为destroy。其他允许的动作包括:restart,preserve,rename-restart.<on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>destroy</on_crash> #destroy:停止该虚拟机。相当于关闭电源<devices> #设备定义开始<emulator>/usr/libexec/qemu-kvm</emulator> #模拟元素,此处写法用于kvm的guest。二进制模拟器设备的完整路径。<disk type='file' device='disk'>#disk是用来描述磁盘的主要容器<driver name='qemu' type='qcow2'/><source file='/home/zhzej/test.qcow2'/>#指定磁盘上文件的绝对路径#使用virtio,采用普通的驱动,即硬盘和网卡都采用默认配置情况下,硬盘是 ide 模式,#而网卡工作在 模拟的rtl 8139 网卡下,速度为100M 全双工。#采用 virtio 驱动后,网卡工作在 1000M 的模式下,硬盘工作是SCSI模式下。#硬盘采用 virtio 后,安装windows 系统,将不能正常的识别硬盘,解决的方法是:#从kvm 的官网下载virtio的驱动iso。#1. 先采用ide模式安装系统。#2. 安装完成后,添加一个virtio模式的硬盘。#3. 启动vm后,系统会自动搜索 SCSI的驱动,找到下载的virtio 驱动后,安装即可。#4. 修改vm 配置文件,删除掉添加的 vitro 硬盘后,修改ide硬盘为 virtio模式即可<target dev='vda' bus='virtio'/></disk><disk type='file' device='cdrom'><source file='/home/iso/ubuntu-14.04.3-server-amd64.iso'/><target dev='hdb' bus='ide'/></disk>#使用网桥类型。确保每个kvm guest的mac地址唯一。将创建tun设备,名称为vnetx(x为0,1,2...)<interface type='bridge'><source bridge='br0'/><mac address='52:54:02:2B:73:F1'/><model type='virtio'/></interface># 补充:使用默认的虚拟网络代替网桥,即guest为NAT模式。也可以省略mac地址元素,这样将自动生成mac地址。# 默认分配192.168.122.x/24的地址,也可以手动指定。网关为192.168.122.1#<interface type='network'># <source network='default'/># <mac address="3B:6E:01:69:3A:11"/>#</interface><input type='mouse' bus='ps2'/> #输入设备#定义与guset交互的图形设备。在这个例子中,使用vnc协议。listen的地址为host的地址。prot为-1,表示自动分配端口号。<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us'/></devices>
</domain>
可以使用xml模版创建虚机,事先创建好磁盘文件,然后修改xml的磁盘文件路径和mac地址,重新创建并安装多台虚机
遇到的问题
- could not open disk ,imagePermission denied
virt-install --virt-type kvm --name centos --ram 1024 --disk /tmp/centos.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=centos7.0 --location=/root/CentOS-7-x86_64-DVD-1708.iso
root@test:~# grep -n root /etc/libvirt/qemu.conf
530:user = "root"
534:group = "root"
systemctl restart libvirtd.service
openstack、libvirt、kvm+qemu、kvm之间的关系

相关文章:
kvm+qemu+libvirt管理虚机
virt-manager 图形化创建虚拟机 #virt-manager纳管远程kvm虚拟机 # 可以指定kvm虚机的ssh端口和virt-manager所在主机的私钥 virt-manager -c qemussh://root10.197.115.17:5555/system?keyfileid_rsa --no-fork # 如果你生成的ssh-key 的名称是 test-key,在/home/ssh-key/ 目…...
电气防火限流式保护器在汽车充电桩使用上的作用
【摘要】 随着电动汽车行业的不断发展,电动汽车充电设施的使用会变得越来越频繁和广泛。根据中汽协数据显示,2022年上半年,我国新能源汽车产销分别完成266.1万辆和260万辆,同比均增长1.2倍,市场渗透率达21.6%。因此,电动汽车的安全…...
VBA技术资料MF38:VBA_在Excel中隐藏公式
【分享成果,随喜正能量】佛祖也无能为力的四件事:第一,因果不可改,自因自果,别人是代替不了的;第二,智慧不可赐,任何人要开智慧,离不开自身的磨练;第三&#…...
Gson:解析JSON为复杂对象:TypeToken
需求 通过Gson,将JSON字符串,解析为复杂类型。 比如,解析成如下类型: Map<String, List<Bean>> 依赖(Gson) <dependency><groupId>com.google.code.gson</groupId><art…...
伪彩色处理及算法
伪色彩(false color)是指将真实世界的中无法被肉眼观察到的色彩通过计算机或其他技术转换为可见光,从而使人们能够看到这些原本无法看到的色彩。这种技术被广泛应用于军事、医学、科研等领域。 在医学领域,伪色彩技术被用于医学影像诊断。例如,通过将不同灰度的图像映射到…...
Gradle-02:问题Plugin with id ‘maven‘ not found
1. 背景 在一次使用 Gradle 构建自己项目,完事,需要上传到本地 Maven 仓库,因为事先并不清楚 apply plugin: maven 插件已经被 Gradle 移除,找了一圈,才找到解决方案。 2. 原因 apply plugin: maven def localRepo f…...
jupyter lab环境配置
1.jupyterlab 使用虚拟环境 conda install ipykernelpython -m ipykernel install --user --name tf --display-name "tf" #例:环境名称tf2. jupyter lab kernel管理 show kernel list jupyter kernelspec listremove kernel jupyter kernelspec re…...
Unity Sort Group(排序组)
** Unity 中的Sort Group组组件允许让Sprite Renderer(精灵渲染器)重新决定渲染顺序. ** 作为组件存在 组件内容: Unity 使用Sort Group 组件的Sort layer 和Order in layer的值来确定排序组在渲染队列内相对与场景内其他排序组和游戏对象的优先级。 属性功能So…...
基于总线加锁和缓存锁(CPU实现原子操作的两种方式)
总线锁 总线锁就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被阻塞住,那么该处理器可以独占共享内存。 CPU和内存之间的通信被锁!! 如果多个处理器同时对共享变量进行读写…...
MybatisPlus存在 sql 注入漏洞(CVE-2023-25330)解决办法
首先我们了解下这个漏洞是什么? MyBatis-Plus TenantPlugin 是 MyBatis-Plus 的一个为多租户场景而设计的插件,可以在 SQL 中自动添加租户 ID 来实现数据隔离功能。 MyBatis-Plus TenantPlugin 3.5.3.1及之前版本由于 TenantHandler#getTenantId 方法在…...
【java】使用maven完成一个servlet项目
一、创建项目 创建一个maven项目 maven是一个管理java项目的工具,根据maven的pom.xml可以引入各种依赖,插件。 步骤 打开idea,点击新建项目 点击创建项目,项目创建就完成了 进入时会自动打开pom.xml文件。 pom是项目的配置文件…...
前端Vue入门-day07-Vuex入门
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 自定义创建项目 vuex概述 构建 vuex [多组件数据共享] 环境 创建一个空仓库 state 状态 1. 提供数据&…...
2023再谈前端状态管理
目录 什么是状态管理? 状态 常见模式 要解决的问题 心智模型 React Context Context 的问题 优点 缺点 React 外部状态管理库 概览 Class 时代 Redux 单向数据流 三大原则 如何处理异步 如何处理数据间联动 优点 缺点 Dva icestore Mobx 设…...
ffmpeg SDL播放器--播放udp组播流
c调用ffmpeg api及SDL库播放播放udp组播流。 代码及工程见https://download.csdn.net/download/daqinzl/88168574 参考文档:https://blog.csdn.net/a53818742/article/details/109312740 开发工具:visual studio 2019 记得推送udp流,可采…...
__attribute__((noreturn))
GNU C 的一大特色就是__attribute__ 机制,__attribute__ 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 语法格式为: __attribute__((att…...
遮挡边界处的深度补全和双曲面外推
论文地址:Depth Completion with Twin Surface Extrapolation at Occlusion Boundaries 论文代码:https://github.com/imransai/TWISE 深度补全是从稀疏的已知深度值开始,为其余图像像素估计未知深度。 大多数方法将其建模为深度插值&#x…...
LK-99室温超导激发万万亿市场,将对我们的生活产生哪些影响?
7月下旬,韩国量子能源研究中心公司相关研究团队在预印本网站上陆续公布两篇类似的论文,宣称一种命名为LK-99的铜掺杂铅磷灰石材料拥有“室温常压”超导能力,系全世界首款室温常压超导材料。 它们的实验方法比较简单,就是把铅、铜、…...
子集——力扣78
文章目录 题目描述法一 迭代法实现子集枚举题目描述 法一 迭代法实现子集枚举 class Solution {public:vector<int> t;vector<vector<...
【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(8 月 2 日论文合集)
文章目录 一、检测相关(8篇)1.1 Explainable Cost-Sensitive Deep Neural Networks for Brain Tumor Detection from Brain MRI Images considering Data Imbalance1.2 MonoNext: A 3D Monocular Object Detection with ConvNext1.3 Detecting Cloud Presence in Satellite Ima…...
JDK中「SPI」原理分析
基于【JDK1.8】 一、SPI简介 1、概念 SPI即service-provider-interface的简写; JDK内置的服务提供加载机制,可以为服务接口加载实现类,解耦是其核心思想,也是很多框架和组件的常用手段; 2、入门案例 2.1 定义接口 …...
YimMenu技术深度探索:现代GTA V菜单框架的安全架构与扩展机制
YimMenu技术深度探索:现代GTA V菜单框架的安全架构与扩展机制 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/…...
STM32F407 HAL库驱动42步进电机:从CubeMX配置到代码调试的完整避坑指南
STM32F407 HAL库驱动42步进电机:从CubeMX配置到代码调试的完整避坑指南 在嵌入式开发领域,步进电机控制一直是工业自动化、3D打印和机器人控制等应用中的核心技术。对于刚接触STM32系列微控制器的开发者来说,使用HAL库驱动42步进电机可能会遇…...
序列近似整数规划导向的通用高性能离散变量拓扑优化新方法【附算法】
✨ 长期致力于拓扑优化、整数规划、序列近似规划、信赖域、拓扑不变量研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)正则松弛算法求解大规模可分离整…...
Logisim新手避坑指南:手把手搞定头歌平台偶校验解码电路(附完整data.circ文件配置)
Logisim新手避坑指南:手把手搞定头歌平台偶校验解码电路 第一次打开Logisim时,那个简陋的界面和密密麻麻的逻辑门可能会让你望而生畏。更不用说还要在头歌平台上完成偶校验解码电路的评测——光是看到"找不到GB2312ROM.circ"的报错就足以让大多…...
TVBOX最新电视直播软件tv版下载与安装教程
如何安装最新版电视直播软件tv版TVBOX?先讲清楚:TVBox 是开源播放器,本身不带影视资源,装好后必须配置 “数据源 / 接口” 才能用。下面分「下载 → 安装 → 配置 → 常见问题」一步步来。(如果不会配置,可…...
告别网页版!用Alist+RaiDrive把阿里云盘、百度网盘变成电脑本地文件夹(保姆级教程)
一键打造云端硬盘:AlistRaiDrive实现本地化文件管理全攻略 你是否经常在多个云盘平台间频繁切换,忍受着网页端上传下载的龟速?每次想修改云盘里的文档,都得先下载到本地,编辑完再重新上传?今天我要分享的这…...
日语语音识别终极指南:5个技巧让Faster-Whisper-GUI准确率提升300%
日语语音识别终极指南:5个技巧让Faster-Whisper-GUI准确率提升300% 【免费下载链接】faster-whisper-GUI faster_whisper GUI with PySide6 项目地址: https://gitcode.com/gh_mirrors/fa/faster-whisper-GUI 想要在本地高效处理日语音频转写和字幕生成吗&am…...
C# 零基础到精通教程 - 第六章:方法——让代码“模块化“
6.1 为什么需要方法?6.1.1 没有方法的问题csharp// 没有方法:代码重复、臃肿、难以维护 static void Main() {// 第一次计算两个数的和int a1 10, b1 20;int sum1 a1 b1;Console.WriteLine($"{a1} {b1} {sum1}");// 第二次计算两个数的和…...
手把手教你创建CST自定义材料:以吸波材料为例,导入厂家S参数曲线
手把手教你创建CST自定义材料:以吸波材料为例,导入厂家S参数曲线 在电磁仿真领域,材料参数的精确建模往往是决定仿真结果可靠性的关键因素。当我们需要模拟特殊频段的吸波材料、频率色散介质或各向异性材料时,仅依赖CST内置材料库…...
4种颠覆性组合:重构Pixelle-Video的模块化潜能
4种颠覆性组合:重构Pixelle-Video的模块化潜能 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 想象一下:输入&qu…...
