kvm教程
kvm教程
虚拟化的定义
虚拟化技术最早出现在60年代的IBM大型机系统,这些机器通过Hypervisor(又称虚拟机监控器)的程序在一台物理的服务器上可以跑多台虚拟机(VirtualMachine,VM),虚拟机共享物理机的CPU、内存、10 等硬件资源,但逻辑上虚拟机之间是相互隔离的。
常见的Hypervisor类型
类型1-裸机型: 直接运行在硬件设备上的,这种架构搭建的虚拟化环境称为裸机虚拟化环境,例如:VMware ESXl
类型I1-主机托管型: 运行在具有虚拟化功能的操作系统上的,这种架构构建的是主机虚拟化环境,例
如: VMware Workstation.VirtualBox、KVM、xen等。
虚拟化的类型
服务器虚拟化: 可在一台物理机上运行多个虚拟机,各虚拟机之间相互隔离互不影响,虚拟机的完整状态保存到文件中,移动和复制虚拟机就像移动和复制文件一样轻松,可将任意虚拟机调配或迁移到其他理服务器上。
容器虚技术: 典型的就是docker、Linux Container(LXC)等
网络虚拟化: 通过软件定义网络,即网络的创建不再依赖于物理设备,如公有云厂商允许用户自己创建新的网络,在kubernetes、openstack中都会使用到网络虚拟化。
虚拟化技术分类
全虚拟化: Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行,Hypervisor 实现方式一般是一个特殊定制的 Linux 系统,例如: Xen和VMWare ESXi 都属于这个类型。(适用于企业私有)**
硬件辅助虚拟化: KVM是硬件辅助的虚拟化技术,主要负责比较繁琐的CPU和内存虚拟化,而Qemu则负责I/0虚拟化。(适用于公有云)
虚拟化模拟器: Qemu 模拟器在生产环境中,大多数的做法都是配合KVM来完成虚拟化工作,KVM完成复杂及要求比较高的CPU和内存的虚拟化,而Qemu完成像硬盘、鼠标、键盘等设备的虚拟化。(适用于公有云)
KVM虚拟化介绍
KVM 是Kernel-based Virtual Machine(基于内核的虚拟机)的简称,是一个开源的Linux系统内核虚拟化模块,自Linux2.6之后集成在Linux的各个主要发行版本中,KVM目前已成为学术界主流的hypervisor。
虚拟机常用的管理工具
libvirt: 是调用KVM创建虚拟机的工具,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、virtualBox等虚拟化方案。
virsh: 是一个常用的管理KVM虚拟化的命令行工具。
virt-manager: virt-manager是一个虚拟化管理图形软件,包括虚拟机的创建、删除、启动、停止以及一些简单的监控功能等。(很少使用不安装)
openstack: openstack是一个开源的虚拟化集群统一管理的平台,常用于构建大规模的虚拟化环境,用于管理成千上万虚拟机的创建、启动、删除等整个生命周期
生产环境中 创建虚拟机一律使用此命令(下方两参数根据宿主机cpu mem实际合理范围更改)
- maxmemory=2048 最大支持的内存核心数
- maxvcpus=4 最大支持的CPU核心数
1
2
3
4
5
6
7
8 # 创建虚拟机
virt-install --virt-type kvm \
--os-type=linux \
--os-variant rhel7 \
--name web04 \
--memory 1024,maxmemory=2048 \
--vcpus 1,maxvcpus=4 --disk /kvm/web04-vda.qcow2,format=qcow2,size=10 \
--cdrom /opt/CentOS-7-x86_64-Minimal-2009.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
二. 安装kvm虚拟化管理工具(本教程环境workstdtion)
主机名称 | IP地址 | 系统环境 | 硬件环境 |
---|---|---|---|
kvm01 | 10.0.0.10 | centos7.9 | 4C8G50G |
虚拟机CPU开启虚拟化功能
开机后检测CPU是否支持嵌套虚拟化
1 | [root@localhost ~]# egrep -o 'vmx|svm' /proc/cpuinfo |
安装KVM相关软件包
准备工作 本文执行初始化脚本本项目不执行(可选)
1 | rm /etc/yum.repos.d |
libvirt: 用于创建虚拟机
virt-install:虚拟机的安装工具和克隆工具(非常重要的功能)
qemu-kvm: 管理虚拟机的磁盘
1 | # 检测源 |
创建KVM虚拟机(选择轻量镜像方便实验上传下载)
提前将centos镜像上传到系统内用于给kvm虚拟机安装系统
1 | # 提前将centos7镜像传到系统内用于给KVM虚拟机安装系统 |
翻译:安装完成后需要去控制台完成安装 电脑安装一个或者使用mobaxterm连接完成安装
虚拟机vnc暴露端口5900
1 | [root@kvm opt]# ss -ntulp |
连接过来之后便在此安装页面
此时按照正常安装流程即可 安装完成后点击重启此时不会重启 需要我们手动打开(通过 ss -ntulp 查看 qemo-kvm 端口 通过 vnc 连接虚拟机查看虚拟机 IP 地址)其实此时我们 可以通过宿主机 使用此虚拟机 IP:192.168.122.39 连上虚拟机 并且由于此此虚拟机网络是 NAT 模式 是可以借助宿主机去访问 外网 的。
三. kvm常用命令使用
一. virsh常用命令概览
练习命令之前安装
yum install -y bash-*
用于命令补全
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 # 查看刚通过镜像启动的虚拟机虚拟机 / 查看--os-variant支持的类型
virsh list # 列出正在运行的虚拟机
osinfo-query os # 查看支持的类型
# virt-install常用命令
virsh list --all # 列出所有虚机
virsh start web01 # 启动指定虚机
virsh reboot web01 # 重启指定虚机(关闭状态无法重启)
virsh console name # 连接虚拟机
virsh destroy name # 拔掉电源(很少用)
virsh undefine web01 # 删除虚机文件即删除虚拟机(不会删除磁盘文件)
virsh domblklist web01 # 查看虚拟机磁盘信息
virsh dominfo web01 # 查看虚拟机配置信息
virsh domiflist web01 # 查看虚拟网卡信息
virsh dumpxml web01 # 以 xml格式查看虚拟机
virsh define file-name # 导入虚拟机
virsh edit name # 编辑虚拟机配置(一般是在刚定义完虚拟机之后)自带语法检测
virsh domrename old-name new-name # 虚拟机重命名
virsh vncdisplay web01 # 查看vnc端口
virsh autostart name # 虚拟机随机重启
virsh autostart --disable name # 取消虚拟机随机重启
# 图形界面:
通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚拟机,还可以直接控制虚拟机的桌面。
# 命令行:
virsh list # 显示本地活动虚拟机
virsh list –all # 显示本地所有的虚拟机(活动的+不活动的)
virsh define ubuntu.xml # 通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
virsh start ubuntu # 启动名字为ubuntu的非活动虚拟机
virsh create ubuntu.xml # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend ubuntu # 暂停虚拟机
virsh resume ubuntu # 启动暂停的虚拟机
virsh shutdown web01 # 正常关闭虚拟机
virsh destroy ubuntu # 强制拔掉电源关闭虚拟机(很少使用)
virsh domname 2 # 显示id号为2的虚拟机名
virsh domid ubuntu # 显示虚拟机id号
virsh domuuid ubuntu # 显示虚拟机的uuid
virsh domstate ubuntu # 显示虚拟机的当前状态
virsh dumpxml ubuntu # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给# 虚拟机分配id号、uuid、vnc端口号等等)
virsh setmem ubuntu 512000 # 给不活动虚拟机设置内存大小
virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数二. 备份恢复虚拟机
备份虚拟机
1
2
3 # 导出虚拟机配置文件
virsh dumpxml web01 > web01_bak.xml
# 此时我们模拟一下恢复虚拟机先删除虚拟机删除虚拟机(先关机再删除) 此时磁盘文件仍然是被保留的
备注:此步骤为模拟恢复虚拟机执行
1
2
3 virsh shutdown web01
virsh undefine web01
virsh list --all恢复虚拟机(以刚才的备份文件导入虚拟机)
1
2
3
4
5
6
7
8 # 从备份文件导入虚拟机
virsh define web01_bak.xml
# 此时再看刚才的虚拟机又回来了
virsh list --all
Id Name State
-----------------------------------------
- web01 shut off为什么又回来了呢 因为我们使用virsh undefine 删除的是 /etc/libvirt/qemu 路径下对应的虚拟机配置文件
三. 虚拟机磁盘文件迁移
备注:我们创建虚拟机时会 生成了一个raw格式的磁盘文件 web01-vda.raw
创建kvm路径,将虚拟机磁盘文件移动到该目录
1
2 # 创建kvm路径,将虚拟机磁盘文件移动到该目录
mkdir /kvm && mv /opt/web01-vda.raw /kvm && cd /kvm && ls编辑虚拟机配置(自带语法检测)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 # 备份虚拟机配置(编辑前先备份)
virsh dumpxml web01 > web01_bak.xml
# 编辑虚拟机配置
virsh edit web01
# 修改路径 /opt/web01-vda.raw >> /kvm/web01-vda.raw(修改前)
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/web01-vda.raw'/> # 此路径
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
# 修改后
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/kvm/web01-vda.raw'/> # 此路径
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
# 此时启动虚拟机
virsh start web01
[root@kvm kvm]# virsh start web01
Domain web01 started
[root@kvm kvm]# virsh list --all
Id Name State
----------------------------------------------------
5 web01 running四. 虚拟机重命名(只能在关机状态改名)
1
2
3
4 # 关机
virsh shutdown web01
# 改名
virsh domrename web01 centos-web01五. 查看虚拟机 vnc 端口(虚拟机太多之后 VNC 端口就会不一样)只有启动状态才会有 VNC 端口
1
2
3
4
5
6 # 启动
virsh start web01
# 查看vnc端口
virsh vncdisplay web01
// 返回
:0**备注:单台虚拟机时返回 其实此 **0 代表默认端口 5900 多台时便会网上增加 如两台时 显示 1 即 从 5900 往上加 1 即 5901
六. 虚拟机随机自启( 为了宿主机重启后虚拟机也会重启 )否则宿主机重启 虚拟机不会自启动
1
2
3
4
5
6
7 # 设置与宿主机一起随机自启
virsh autostart web01
# 查看那些虚拟机设置了随机自启(一个都没有设置的话此目录不会生成与虚拟机相同名字的文件)
cd /etc/libvirt/qemu/autostart && ls
web01.xml
# 取消随机自启(此时此/etc/libvirt/qemu/autostart目录对应文件已消失)
virsh autostart web01 --disable七. 通过
console
登录kvm
1
2
3
4
5 # 通过console登录虚拟机控制台
virsh console web01
// 返回
Connected to domain web01
Escape character is ^] # ctrl + ] 退出,默认无法登录虚拟机配置允许
console
登录进入 KVM 虚拟机修改内核参数允许 console 登录,先通过 VNC 查看虚拟机 IP 地址,在通过宿主机 ssh 方式登录到 KVM 内部增加该配置项: grubby-update-kernel=ALL-args=”console=ttyS0,115200n8”
1
2
3
4
5
6 # 进入kvm虚拟机
ssh -p22 root@192.168.122.39
# 修改内核参数
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
# 重启虚拟机生效
reboot验证 console 登录
1
2
3
4
5
6
7
8
9
10 # console 登录虚拟机
virsh console web01
// 返回
Connected to domain web01
Escape character is ^] # 回车
CentOS Linux 7 (Core)
Kernel 3.10.0-1160.el7.x86_64 on an x86_64
localhost login: # 此时出现登录选项
四. KVM
磁盘管理
kvm磁盘格式介绍
raw: 老牌格式,用一个字来说就是裸,也就是赤裸裸,指定多大空间就创建多大空间,直接占用指定大小的空间分 50G 占用 50G ,性能上来说的话还是不错的,不支持快照功能。
cow: 曾经 qemu 的写时拷贝的镜像格式(用户在修改数据时,系统会拷贝一份源文件副本到内存中让其修改,等到数据真正被修改时才分配空间)目前由于历史遗留原因不支持窗口模式。从某种意义上来说是个弃婴,还没等它成熟就死在腹中,后来被 qcow 格式所取代。 qcow: 一代的 qemu 的 cow 格式,刚刚出现的时候有比较好的特性,但其性能和 raw 格式对比还是有很大的差距,目前已经被新版本的qcow2 取代。
qcow2: 是 openstack 默认也是比较推荐的格式,文件比较小而且做快照也比较小,空间是动态增长(用多少占多少 但不会超过定义的容量),是目前比较主流的一种虚拟化镜像格式,经过一代的优化,目前 qcow2 的性能上接近 raw 裸格式的性能。
我们创建时就是使用 raw 格式创建的
查看虚拟机磁盘
1 | # 查看虚拟机磁盘 |
查看磁盘详细信息
1 | # 查看磁盘详细信息 |
1.
创建 qcow2 格式磁盘的虚拟机
1 | # 创建 qcow2 格式磁盘的虚拟机 |
查看 VNC 端口 可见端口是 5901
1 | [root@kvm kvm]# virsh vncdisplay web02 |
VNC 连接
2. qcow2
格式磁盘虚拟机使用
查看磁盘格式
1 | # 查看磁盘格式 |
操作:
- 开机虚拟机宿主机重启虚拟机自启动
virsh autostart web01
- 登录:
ssh -p22 root@192.168.122.46
- 虚拟机配置允许 console 登录:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
- 生效(
virsh shutdown web02 && virsh start web02
) - 通过console登录:
virsh console web02
五. kvm
磁盘虚拟机快照管理
raw 磁盘格式虚拟机****不支持做快照,qcow2 支持快照,并且快照就保存在 qcow2 的磁盘文件中。
1.
创建快照
格式: virsh snapshot-create-as –name 快照名称 虚拟机名称
解释:
virsh snapshot-create-as 创建快照 –name 快照名称 web02 虚拟机名称
为 web02 虚拟机创建快照(开关机都可以做快照)
1 | # 为 web02 虚拟机创建快照 |
验证快照
1 | # 登录虚拟机 |
2.
还原快照
格式: virsh snapshot-revert 虚拟机名称 –snapshotname 快照名称
1 | # 执行恢复快照 |
备注:查看创建的文件还存在不 (不存在 此时验证成功)
提示:别删除虚拟机,删除虚拟机后没有虚拟机配置文件无法还原
3.
删除快照
格式: virsh snapshot-delete 虚拟机名称 –snapshotname 快照名称
1 | 删除快照 |
六. kvm
虚拟机克隆
虚拟机的克隆方式分为完整克隆与链接克隆,下图是VMware虚拟机对完整克隆与链接克隆的解释
1.
KVM完整克隆(虚拟机必须为关闭状态)
格式: virt-clone –auto-c1one -o 虚拟机名称 -n 克隆名称
1 | virt-clone --auto-clone -o web01 -n web01-clone |
virt-clone 这个命令是基于全克隆的,也就是拷贝虚拟磁盘文件和虚拟配置文件来实现的完整克隆,速度慢,占用空间多,克隆后磁盘文件位于虚拟机磁盘文件存放处 克隆后虚拟机配置文件位于 /etc/libvirt/qemu 。
验证克隆后的虚拟机 (成功)
1 | # 启动克隆后的虚拟机 |
此时可以看到IP地址是不一样的 克隆以后我们不需要去手动更改别的例如IP等配置
1.
KVM链接克隆(虚拟机必须为关闭状态)
kvm并没有提供链接克隆的命令或工具,只能手动实现,实现方式是通过创建一个磁盘链接文件来实现的链接克隆。格式: qemu-img create -f qcow2 -b 源磁盘文件 链接磁盘文件 (磁盘格式需要保持一致)
- -f 指定磁盘文件格式
- -b 指定基于源磁盘文件创建一个链接磁盘文件
1 | # 创建链接克隆(此时光有磁盘文件我们无法基于这个磁盘文件去创建虚拟机 还得修改磁盘文件配置) |
backing file: /kvm/web02-vda.qcow2 (源磁盘文件)
1 | # 导出原始机的配置文件,并修改磁盘文件路径 |
七. KVM虚拟机网络配置
kvm虚拟机网络介绍
libvirt 服务安装后,默认会安装一块 virbr0 的虚拟网卡,libvirt 在创建 KVM 虚拟机后,默认使用了一个名为default的nat网络,地址段为 192.168.122.0/24,这个网络默认使用virbr0(虚拟交换机)作为桥接接口,为虚拟机提供网络转发服务,默认网段 192.168.122.0/24,使用dnsmasq 来为使用 nat 网络的虚拟机提供 dns 及 dhcp 服务。
virbr0网卡 默认占用.1这个地址虚拟机地址从 .2 开始配置
1 | virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 |
dhcp分配到虚拟机的ip列表在以下文件查看: /var/lib/libvirt/dnsmasq/default.conf (IP地址段可以使用,默认的也可以自行修改)
1 | # dhcp分配到虚拟机的ip列表 |
1.
kvm虚拟机nat网络配置
修改virbr0地址段
可以修改网段,也可以用默认网段,如需修改通过如下方式:
1 | # 修改地址段 (mac地址不更改 修改如下两段即可) |
重新定义网络,default网络的配置文件: /etc/libvirt/qemu/networks/default.xml
1 | # 使用此命令重新定义配置文件 (刷新) |
删除网络(关闭运行的虚拟机)
1 | # 停止网卡(关闭运行的虚拟机) |
启动网卡
1 | # 启动网卡 |
重启libvirtd
1 | # 重启libvirtd |
验证
1 | # 宿主机执行 |
从现在开始使用的 default 网络就是 10 段了
2.
kvm 虚拟机配置固定 IP
启动一个KVM并登录并配置固定IP地址
1 | virsh start web02 |
kvm 配置固定 IP 地址(与传统物理机一样修改网卡配置文件就可以了)
1 | TYPE=Ethernet |
修改后重启网卡生效:systemctl restart network
**提示: **KVM 虚拟机访问外部网络记住 iptables SNAT 模式进行了源地址转换,如果外部网络需要访问到 KVM 虚拟机中,需要在宿主机通过 iptables 添加端口映射来实现,如果不希望通过端口映射来实现,可以使用 KVM的桥接网络 更加方便。
九. kvm 创建桥接网络
在KVM虚拟机中,Bridge(桥接)模式可以让 KVM 虚拟机和宿主机共享一个物理网络设备来连接网络,这样 KVM 虚拟机可以访问外部网络,而外部网络也可以直接访问 KVM 虚拟机,Bridge桥接模式使用非常方便,应用也非常广泛。
创建桥接网卡(执行创建后需要重启系统才能看到) 将宿主机工作的网卡绑定到 br0 桥接网卡上 (br0现在不存在)
- 格式: virsh iface-bridge ens32 br0
- ens33 为宿主机网卡
- br0 为桥接网卡
1.
创建桥接网卡
1 | # 将宿主机工作的网卡绑定到 br0 桥接网卡 |
备注:此时宿主机 ens33 网卡没有自己的 IP 地址,网卡寄生在它身上,网桥与物理网口 MAC 地址相同
十. 创建 kvm
虚拟机使用桥接网络
创建 kvm 虚拟机使用桥接网卡(安装完成系统)
1 | # 创建 kvm 虚拟机使用桥接网卡 |
配置静态地址 地址为与宿主机同一个网段 且没有被占用的网段
验证
1 | # 等待相当一段时间 |
十一. 修改kvm
虚拟机使用桥接模式
1 | # 查看状态 |
查看虚拟机网卡信息 格式: virsh domiflist 虚拟机名称
1 | # 查看虚拟机web03网卡 |
关机状态下 修改网络模式为 bridge
1 | # 修改虚拟机配置 |
配置完成后 ssh 远程连接测试 >> 成功。
十二. kvm
网络原理
每台 KVM 启动后,都会在 宿主机 创建一个以 vnet 开头的网卡(从 vnet0 开始),用于打通 虚拟机 与 宿主机 之间的网络。
0.
网络模式拖布图
1.
宿主机网卡配置
通过 brctl show 可以看到 vnet 网卡使用的宿主机网卡
1 | [root@kvm ~]# brctl show |
十三. kvm虚拟机硬件热添加技术
1.
热添加磁盘
案例: 为 web03 虚拟机添加一块新 qcow2 硬盘,并对硬盘空间进行扩容 (KVM虚拟机默认磁盘名称: vda、vdb、vdc依次类推,可进入KVM内部查看)
添加之前 (只有一块10G的硬盘)
1 | [root@web03 ~]# lsblk |
在 kvm 目录创建一块 qcow2 格式的虚拟硬盘,容量为 10G
1 | 创建一块qcow2格式的虚拟硬盘,容量为10G |
永久添加磁盘
- –live 在线添加
- –config 永久保存配置 (不加临时生效 虚拟机一重启就没了)
1 | # 永久添加磁盘(给web03 添加10G磁盘 指定添加后虚拟机磁盘名称为 vdb 格式为 qcow2 格式) |
web03虚拟机验证(成功添加一块10G vdb磁盘)
1 | 登录虚拟机 |
永久剥离 (需要提前卸载)
1 | 虚拟机先卸载磁盘 |
2.
对刚才剥离的qcow2磁盘空间扩容 (无法在线扩容,必须先剥离)
1 | 给创建的磁盘扩容5G |
添加磁盘到虚拟机(宿主机执行)
1 | 永久添加磁盘(给web03 添加10G磁盘 指定添加后虚拟机磁盘名称为 vdb 格式为 qcow2 格式) |
先前已经格式化过磁盘 此时切记不能再格式化 否则会导致数据丢失。
十四. 热添加网卡
1.
热添加网卡
案例: 为KVM虚拟机 web03 添加一块网卡
格式: virsh attach-interface 虚拟机名称 –type bridge–source 网桥名 –model virtio
- –type 用于指定网卡类型
- –source 宿主机网桥名
- –model virtio 驱动模式(用于指定网卡类型以eth开头)
- –live 在线添加
- –config 永久保存配置(不加临时生效)
1 | 给 web03 热添加一块bridge类型网卡 |
虚拟机验证: ip a s
成功添加了一块 eth1 网卡 并且网卡自动获取为10.0.0.186
若要 配置成固定地址时需要新建一个网卡配置文件 配置 IP 或者使用 nmtui 设置网卡
网卡不想要了怎么办呢 热删除即可。
2.
热删除虚拟机网卡(宿主机执行)
- –mac +通过mac地址删除 (指定网卡mac地址删除)
- 虚拟机使用 ip a / ifconfig 查看,mac地址
1 | 热删除虚拟机 web03 网卡 (成功剥离) |
十五. 热添加内存
1.
创建时指定cpu 内存最大数量
热添加内存与CPU 前提是创建KVM虚拟机时设置maxmemory与maxvcpus参数 也可创建完成后通过命令定义
- maxmemory 定义虚机最大可以分配内存的大小
- maxvcpus 定义虚拟机最大可以使用的CPU核数
创建KVM虚拟机,并设置maxmemory与maxvcpus的值
1 | 创建虚拟机 |
2.
创建后通过命令指定 cpu 内存最大数量
命令创建时没有指定最大内存 则需要先设置一下最大内存 否则无法添加
1 | 设置最大内存,需要关机 |
验证(添加成功)
十六. 热添加cpu
1.
创建虚拟机时指定 CPU 最大数时 热添加CPU
1 | 临时热添加cpu核数 |
2.
创建完成后热添加虚拟机CPU(需要关机 且设置的 CPU 最大数不能超过宿主机 CPU 数)
1 | 查看虚拟机当前最大支持的核心数 |
本文热添加内存及cpu部分参考如下链接
https://www.cnblogs.com/yinzhengjie/p/18127842 https://blog.csdn.net/m0_46180357/article/details/108935979