kvm虚拟机学习笔记4-虚拟机cpu,内存的扩展

kvm虚拟机学习笔记4-虚拟机cpu,内存的扩展

调整虚拟机vcpu数量

  • 在virt-install中可以在创建虚拟机的时候就指定vcpu的个数,也可以之后通过修改xml文件修改.
  • 配置cpu的个数可是是一个固定的值或者是在一定范围。从而实现cpu的热拔插。
    virt-install的vcpu设置命令
virt-install --help |grep cpu
  --vcpus VCPUS         Number of vcpus to configure for your guest. Ex:
                        --vcpus 5
                        --vcpus 5,maxcpus=10,cpuset=1-4,6,8
                        --vcpus sockets=2,cores=4,threads=2,

正式开始

首先先要将虚拟机关机。
使用virsh edit 命令编辑 虚拟机xml配置文件
编辑虚拟机的配置文件将修改vcpu配置项 如下

原配置
<vcpu placement='static'>1</vcpu>
修改成(固定vcpu个数)
<vcpu placement='static'>4</vcpu>
或者修改为动态的(二选一)
<vcpu placement='auto' currrent="1">4</vcpu>

修改后需要就可以使用命令了
virsh setvcpus

virsh # setvcpus --help
  NAME
    setvcpus - change number of virtual CPUs

  SYNOPSIS
    setvcpus <domain> <count> [--maximum] [--config] [--live] [--current] [--guest]

  DESCRIPTION
    Change the number of virtual CPUs in the guest domain.

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    [--count] <number>  number of virtual CPUs
    --maximum        set maximum limit on next boot
    --config         affect next boot
    --live           affect running domain
    --current        affect current domain
    --guest          modify cpu state in the guest

当然也可以通过纯修改命令修改
修改后的cpu 默认就是工作的通过命令查看

cat /sys/devices/system/cpu/cpu1/online
#查看返回的数值 1 就是工作中

验证方法
修改完成后可以通过两种方法查看结果

  1. 登入虚拟机 通过查看 /proc/cpuinfo 信息
  2. virsh vcpuinfo + 虚拟机名字 获取cpu信息

注意

配置文件的参数
在通过命令改变vcpu个数时即便配置文件内容是

<vcpu placement='static'>2</vcpu>

还是可以通过命令改变如

setvcpus Centos-6.7-x86_64 1 --live

此时配置文件将会变成

<vcpu placement='auto'>2</vcpu>

重启虚拟机后vcpu恢复配置文件中的配置
总结
配置文件中定义的vcpu个数代表这最大值。通过命令配置时不会改变这个参数的数值。通过命令改变时会更改一些配置文件的内容。如下
1 当令设置的vcpu 小于配置最大 并且参数是 –live 或者 –current 时 如上实验
2 当命令设置的vcpu 大于 配置最大时配置失败。
3 当命令设置的vcpu 小于配置最大 并且配置参数是 –config 生效并且会修改配置文件

#命令示例
setvcpus Centos-6.7-x86_64 1 --config
#配置文件将会变成
<vcpu placement='auto' current='1'>2</vcpu>

4 当命令设置的vcpu 大于配置最大 并且参数是–maximum 会报错

setvcpus Centos-6.7-x86_64 1 --maximum
error: --maximum must be used with --config only

5当命令设置的vcpu 大于配置最大 并且参数是–maximum –config 配置生效并且会修改配置文件

#命令样例
setvcpus Centos-6.7-x86_64 4 --maximum --config
#配置文件将会变成
<vcpu placement='auto' current='1'>4</vcpu>

调整kvm虚拟机的内存

内存在xml配置文件的是这样定义的

<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>

方法一 通过setmem修改

virsh # setmem --help
  NAME
    setmem - change memory allocation

  SYNOPSIS
    setmem <domain> <size> [--config] [--live] [--current]

  DESCRIPTION
    Change the current memory allocation in the guest domain.

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    [--size] <number>  new memory size, as scaled integer (default KiB)
    --config         affect next boot
    --live           affect running domain
    --current        affect current domain

修改命令:

setmem Centos-6.7-x86_64 --size 512M  --live

至于命令的其它参数基本和setvpus差不多。
方法二 通过qemu-monitor-command 修改

#qemu-monitor-command 虚拟机名称 --hmp  --cmd balloon 内存大小(mb)
#例子如下
virsh qemu-monitor-command Centos-6.7-x86_64 --hmp  --cmd balloon 512

总结

  • 虚拟机的配置无论这么调整都不会超过物理机的配置。
  • 即使云计算也目前也不能创建超大的虚拟机

发表评论

电子邮件地址不会被公开。 必填项已用*标注