kvm虚拟化, 安装, 管理, 克隆, 快照, 磁盘管理, 调整配置, 迁移

虚拟化介绍

  • VMware Workstation就是虚拟化
  • 虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,这样就可以充分利用硬件资源
  • 关键词Hypervisor(VMM) 虚拟机管理器
  • 虚拟化技术分为全虚拟化和半虚拟化

早期的CPU硬件不支持虚拟化,虚拟机上的操作系统(guestos)要想使用cpu资源,需要通过VMM来翻译指令,这个过程比较耗费资源,这种虚拟化技术叫做全虚拟化(VMware Workstation)

半虚拟化技术通过修改guestos内核,让guestos可以直接使用CPU资源,而不需要翻译指令了,从而节省了资源,但修改内核比较鸡肋(XEN)

后续cpu厂商直接支持虚拟化,不需要通过VMM翻译指令了,无所谓半虚拟化和全虚拟化

  • 参考 http://www.cnblogs.com/xusongwei/archive/2012/07/30/2615592.html http://itoedr.lofter.com/post/1472ba_69c62fa

常见虚拟化软件

  • VMware系列
    VMware workstation、VMware vsphere(VMware esxi)、VMware Fusion(Mac)
  • Xen 开源 半虚拟化
    XenServer 商业,厂商Ctirx,基于Xen的
  • KVM 开源 基于linux内核模块
  • Hyper-V 商业,厂商微软
  • Openvz 开源 基于linux 虚拟机和宿主机共用一个内核
  • VirtualBox 开源 Sun公司开发 Oracle收购Sun
  • http://developer.huawei.com/ict/forum/thread-23385-1-1.html

虚拟化架构

在这里插入图片描述

  • 参考 http://developer.huawei.com/ict/forum/thread-23385-1-1.html

KVM介绍

  • KVM是以色列初创公司Qumranet开发,2008年9月RedHat公司收购了Qumranet
  • KVM是Linux内核的一个模块,它把Linux内核变成了一个Hypervisor
  • KVM是完全开源的,RedHat基于KVM的虚拟化解决方案叫做RHEV
  • KVM在Linux操作系统里面以进程的形式出现,由标准的Linux调度程序进行调度,这使得KVM能够使用Linux内核的已有功能
    只有一个KVM内核模块还不能实现虚拟化的全部功能,就好比操作系统只有内核还不能成为一个完整的操作系统一样
  • QEMU是一个开源的虚拟化软件,纯软件,可以虚拟化所以的硬件,性能不强
  • KVM基于QEMU开发了一个能够运行在用户空间的工具QEMU-KVM
  • 磁盘、网络设备等都是通过QEMU-KVM这个工具模拟出来的
  • KVM和QEMU-KVM通信是通过/dev/kvm实现的
  • libvirt是用来管理KVM虚拟机的API,其命令为virsh

KVM架构图

在这里插入图片描述

Centos7上安装KVM

  • 前提是CPU支持虚拟化
  • 虚拟机设置内存2G,增加一个50G的虚拟磁盘,处理器2核,虚拟化引擎两个虚拟化相关的选项打上对勾
  • 修改后可以做一个快照,安装使用KVM有什么问题,可以利用快照恢复
  • 关闭iptables或者firewalld
  • 关闭selinux
  • 格式化新磁盘,挂载到/kvm_data
<root@linux0 ~>$ fdisk -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c71d6

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     4605951     2097152   82  Linux swap / Solaris
/dev/sda3         4605952    41943039    18668544   83  Linux

磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

<root@linux0 ~>$ mkfs.xfs /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
<root@linux0 ~>$ fdisk -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c71d6

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     4605951     2097152   82  Linux swap / Solaris
/dev/sda3         4605952    41943039    18668544   83  Linux

磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
<root@linux0 ~>$ mkdir /kvm_data
<root@linux0 ~>$ mount /dev/sdb /kvm_data   #挂载;
<root@linux0 ~>$ vim /etc/fstab  #修改配置文件;
<root@linux0 ~>$ cat /etc/fstab |tail -1   #增加一行;
/dev/sdb /kvm_data xfs defaults 0 0
  • 下载一个centos7的镜像文件
<root@linux0 ~>$ ls /kvm_data/  #下载一个镜像到系统里;
CentOS-7-x86_64-DVD-1810.iso
  • 检查cpu参数是否支持虚拟化
    grep -Ei ‘vmx|svm’ /proc/cpuinfo
<root@linux0 ~>$ grep -Ei 'vmx|svm' /proc/cpuinfo   #有这些信息才能使用kvm;
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt arat spec_ctrl intel_stibp flush_l1d arch_capabilities
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt arat spec_ctrl intel_stibp flush_l1d arch_capabilities
  • 安装kvm
<root@linux0 ~>$ yum install -y  virt-*  libvirt  bridge-utils qemu-img   #安装kvm;

配置网卡并安装centos7

  • 配置网卡,增加桥接网卡
    设置一个br0网卡,TYPE为Bridge,IP地址设置为ens33的ip
<root@linux0 /etc/sysconfig/network-scripts>$ cat ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
<root@linux0 /etc/sysconfig/network-scripts>$ cat ifcfg-br0 
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.3.16
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
DNS1=192.168.3.16
<root@linux0 ~>$ systemctl restart network
<root@linux0 ~>$ ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.16  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 fe80::20c:29ff:febd:e903  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:bd:e9:03  txqueuelen 1000  (Ethernet)
        RX packets 105  bytes 9100 (8.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 848 (848.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:bd:e9:03  txqueuelen 1000  (Ethernet)
        RX packets 313  bytes 40662 (39.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 920 (920.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  • 检查KVM模块是否加载
<root@linux0 ~>$  lsmod|grep kvm
kvm_intel             183621  0 
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm
  • 启动libvirtd服务
 systemctl start  libvirtd
  • brctl show可以看到两个网卡br0和virbr0
<root@linux0 ~>$ brctl show   #查看虚拟机网卡的两个模式;安装过程需要选择;
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c29bde903	no		ens33	    #bridge
virbr0		8000.525400ccfe5d	yes		virbr0-nic   #nat
  • 命令行安装centos7
<root@linux0 ~>$  virt-install --name=vir01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/kvm_data/CentOS-7-x86_64-DVD-1810.iso --disk path=/kvm_data/vir01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial  --extra-args="console=tty0 console=ttyS0"

里面一些选择跟vmware安装linux是一样的,分区是自动的;

虚拟机管理

<root@linux0 ~>$ virsh list --all   #查看初始状态;
 Id    名称                         状态
----------------------------------------------------
 -     vir01                          关闭

<root@linux0 ~>$ virsh start vir01   #启动虚拟机;
域 vir01 已开始

<root@linux0 ~>$ virsh list --all   
 Id    名称                         状态
----------------------------------------------------
 3     vir01                          running

<root@linux0 ~>$ virsh shutdown vir01  #关闭虚拟机;
域 vir01 被关闭 

<root@linux0 ~>$ virsh console vir01  #进入虚拟机;
连接到域 vir01
换码符为 ^]   #退出方式;


CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64  #按一下回车,输入密码;

[root@vir01 ~]# dhclient
[root@vir01 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:75:b7:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.31/24 brd 192.168.3.255 scope global dynamic eth0   #获得了宿主机同级IP,可以连网;安装时选择了br0;
       valid_lft 86398sec preferred_lft 86398sec 
[root@vir01 ~]# free -h  #内存跟安装设置一样;
              total        used        free      shared  buff/cache   available
Mem:           479M         88M        272M        6.6M        117M        247M
Swap:          1.0G          0B        1.0G

[root@vir01 ~]# cat /proc/cpuinfo |grep processor  #1核,多少核心多少行;
processor	: 0
[root@vir01 ~]# df -h  #磁盘10G;安装命令里设定;
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3       8.0G  997M  7.1G  13% /
devtmpfs        486M     0  486M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M  6.7M  489M   2% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda1      1014M  126M  889M  13% /boot
tmpfs            48M     0   48M   0% /run/user/0

[root@vir01 ~]# virsh destroy vir01  #强制关闭;
[root@vir01 ~]# virsh undefine vir01 #删除登记,即删除配置文件,不能再被list;
<root@linux0 ~>$ ls /etc/libvirt/qemu/   #xml就是配置文件;
networks  vir01.xml
<root@linux0 ~>$ virsh suspend vir01
域 vir01 被挂起
<root@linux0 ~>$ virsh resume vir01
域 vir01 被重新恢复

克隆

virt-clone --original vir01 --name vir02 --file /kvm_data/vir02.img  #clone命令;
virsh list --all   #可以查看到多了一个虚拟机;

快照管理

<root@linux0 ~>$ virsh snapshot-create vir01  #创建快照;
已生成域快照 1582378677
<root@linux0 ~>$ qemu-img info /kvm_data/vir01.img   #查看快照信息;
image: /kvm_data/vir01.img
file format: qcow2   #可以做快照的格式,raw格式不能做快照;
virtual size: 10G (10737418240 bytes)
disk size: 1.3G
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         1582378677                0 2020-02-22 21:37:57   00:00:00.000
Format specific information:
    compat: 1.1
    lazy refcounts: true
<root@linux0 ~>$ du -sh /kvm_data/*   #qcow2格式文件实际大小;
4.3G	/kvm_data/CentOS-7-x86_64-DVD-1810.iso
1.4G	/kvm_data/vir01.img
1.4G	/kvm_data/vir02.img
<root@linux0 ~>$ ls -lh !$   #
ls -lh /kvm_data/*
-rw-r--r-- 1 qemu qemu 4.3G 8月   6 2019 /kvm_data/CentOS-7-x86_64-DVD-1810.iso
-rw------- 1 root root  11G 2月  22 21:37 /kvm_data/vir01.img  #源显示更大;
-rw------- 1 root root 1.4G 2月  22 21:37 /kvm_data/vir02.img

<root@linux0 ~>$ virsh snapshot-list vir01  #查看所有快照; 
 名称               生成时间              状态
------------------------------------------------------------
 1582378677           2020-02-22 21:37:57 +0800 shutoff


<root@linux0 ~>$ virsh snapshot-current vir01 |grep name |head -1  #目前在用的快照;
  <name>1582378677</name>
<root@linux0 ~>$ ls /var/lib/libvirt/qemu/snapshot/vir01/  #每个快照都有一个配置文件;
1582378677.xml
virsh snapshot-revert vir01 1582378677;  #使用快照恢复;
virsh snapshot-delete vir01 1582378677;  #删除快照;

磁盘格式

<root@linux0 ~>$ qemu-img create -f raw /kvm_data/vir02.img 2G  #创建一个raw的磁盘文件;
Formatting '/kvm_data/vir02.img', fmt=raw size=2147483648 
<root@linux0 ~>$ ls /kvm_data/
CentOS-7-x86_64-DVD-1810.iso  vir01.img  vir02.img
<root@linux0 ~>$ qemu-img info /kvm_data/vir02.img   
image: /kvm_data/vir02.img
file format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 0

<root@linux0 ~>$ qemu-img convert -O qcow2 /kvm_data/vir02.img /kvm_data/vir02-2.img  #将raw文件换成qcow2格式;-O目标格式,会生成一个新文件;
<root@linux0 ~>$ qemu-img info /kvm_data/vir02-2.img 
image: /kvm_data/vir02-2.img
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 644K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
<root@linux0 ~>$ du -sh /kvm_data/*
1.4G	/kvm_data/vir01.img   
644K	/kvm_data/vir02-2.img   #文件大小统一;
36K	/kvm_data/vir02.img     
<root@linux0 ~>$ ll -lh !$
ll -lh /kvm_data/*
-rw------- 1 root root  11G 2月  22 21:37 /kvm_data/vir01.img
-rw-r--r-- 1 root root 640K 2月  22 22:13 /kvm_data/vir02-2.img
-rw------- 1 qemu qemu 2.0G 2月  22 22:07 /kvm_data/vir02.img   

 <root@linux0 ~>$ qemu-img convert -O raw /kvm_data/vir01.img /kvm_data/vir01-2.img   #将qcow2格式转为raw格式;
- 使用raw这个文件启动系统
<root@linux0 /kvm_data>$ virsh edit vir01   #编缉配置文件;
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>   #修改成raw;
      <source file='/kvm_data/vir01-2.img'/>   #修改文件路径;
<root@linux0 /kvm_data>$ ll
总用量 7228912
-rw-r--r-- 1 qemu qemu  4588568576 8月   6 2019 CentOS-7-x86_64-DVD-1810.iso
-rw-r--r-- 1 qemu qemu 10737418240 2月  22 22:24 vir01-2.img   #使用中属主属组,原来是root;
  • raw 启动的虚拟机会比 QCOW2 启动的虚拟机 I/O 效率更高一些(25%)
  • qcow2是一种当下比较主流的虚拟化磁盘格式,具有占用空间小,支持加密,支持压缩,支持快照的特点

磁盘扩容 - raw格式

<root@linux0 /kvm_data>$ qemu-img resize vir01-2.img +2G
Image resized.
<root@linux0 /kvm_data>$ qemu-img info vir01-2.img 
image: vir01-2.img
file format: raw
virtual size: 12G (12884901888 bytes)
disk size: 1.3G
<root@linux0 /kvm_data>$ virsh shutdown vir01  #virsh重启后resize才会更新;
域 vir01 被关闭

<root@linux0 /kvm_data>$ virsh start  vir01
域 vir01 已开始

<root@linux0 /kvm_data>$ virsh console vir01

[root@vir01 ~]# fdisk -l   #更新后的大小; 原来是普通分区,需要重新分区使用;LVM可以扩充逻辑卷;

Disk /dev/vda: 12.9 GB, 12884901888 bytes, 25165824 sectors

<root@linux0 /kvm_data>$ qemu-img create -f raw virext.raw 5G  #新建一个raw 文件;
Formatting 'virext.raw', fmt=raw size=5368709120 
<root@linux0 /kvm_data>$ virsh edit vir01    #修改配置文件;
没有更改域 vir01 XML 配置。  
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/kvm_data/vir01-2.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>    #在上面一段增加一段,使用磁盘virext.raw;
      <driver name='qemu' type='raw'/>
      <source file='/kvm_data/virext.raw'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>  #slot需要在这个文件里不能重复;
    </disk>
[root@vir01 ~]# fdisk -l |grep vdb
Disk /dev/vdb: 5368 MB, 5368709120 bytes, 10485760 sectors  #增加了一个磁盘;

磁盘扩容 - qcow2

<root@linux0 /kvm_data>$ qemu-img resize vir01.img +2G
qemu-img: Can't resize an image which has snapshots
qemu-img: This image does not support resize   #删除所有快照后才可以resize, 另外img文件要在绑定配置文件的情况下,不然删除快照的操作只完成一半,不能resize;
#增加一块磁盘的操作和添加到虚拟机中的操作跟上面类似;
qemu-img create -f qcow2 /kvm_data/aminglinux01_2.img 5G  

调整CPU、内存、网卡

  • 调整cpu, 内存;
<root@linux0 /kvm_data>$ virsh dominfo vir01
Id:             9
名称:       vir01
UUID:           aa71bf54-3c8c-4d92-9838-e134367552bc
OS 类型:    hvm
状态:       running
CPU:          1
CPU 时间:   36.9s
最大内存: 1048576 KiB
使用的内存: 524288 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 0
<root@linux0 /kvm_data>$ virsh edit vir01  #修改配置文件可修改cpu和内存,需要重启;
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>824288</currentMemory>
  <vcpu placement='static'>2</vcpu>

<root@linux0 /kvm_data>$ virsh setmem vir01 800m  #动态调整内存;不用重启;

<root@linux0 /kvm_data>$ virsh dominfo vir01 |grep KiB
最大内存: 1048576 KiB
使用的内存: 819200 KiB

<root@linux0 /kvm_data>$ virsh setvcpus vir01 2  #动态调整vcpus;
<root@linux0 /kvm_data>$ virsh dumpxml vir01 > /etc/libvirt/qemu/vir01.xml   #将动态调整保存到配置文件;
<root@linux0 /kvm_data>$ vim /etc/libvirt/qemu/vir01.xml  #需要使用vim查看,edit查看没改变;

  • 添加网卡
<root@linux0 /kvm_data>$ virsh attach-interface vir01 --type bridge --source virbr0   #附加nat网卡;
成功附加接口
<root@linux0 /kvm_data>$ virsh attach-interface vir01 --type bridge --source br0   #附加桥接网卡;
成功附加接口
<root@linux0 /kvm_data>$ virsh domiflist vir01  #查看网卡情况;
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet1      bridge     br0        virtio      52:54:00:75:b7:cf
vnet2      bridge     virbr0     rtl8139     52:54:00:95:23:05
vnet3      bridge     br0        rtl8139     52:54:00:09:84:e2

[root@vir01 ~]# ip addr |grep "inet "  #虚拟机网卡情况;
    inet 127.0.0.1/8 scope host lo
    inet 192.168.3.34/24 brd 192.168.3.255 scope global dynamic eth0
    inet 192.168.122.103/24 brd 192.168.122.255 scope global noprefixroute dynamic ens9
    inet 192.168.3.33/24 brd 192.168.3.255 scope global noprefixroute dynamic ens10

- 要保存网卡设置需要使用dump命令;

迁移虚拟机

  • 需要迁移虚拟磁盘文件
  • 迁移配置文件
  • 迁移到非机地不需要改名字,路径按回原来设置,可直接启动;
  • 迁移到本机,需要修改domname: aminglinux03, uuid
  • 定义新虚拟机
<root@linux0 /kvm_data>$ virsh domblklist vir01     #查看虚拟机的磁盘文件;
目标     源
------------------------------------------------
vda        /kvm_data/vir01.img
hda        -
<root@linux0 /kvm_data>$ virsh define /etc/libvirt/qemu/vir01.xml

CPU核心与分配

  • 举例宿主机CPU双核四线程2.2mhz,指一个CPU,两个核心,四线程是使用HT超线程技术提升核心多任务处理能力,一般一个核心一个线程(线程是操作系统进行资源(包括CPU,内存,磁盘IO)分配的最小单位),HT模拟出两个逻辑核心,即有两个核心四个线程,差不多相当于可以同时做四件事情;
  • 四个线程并不等于四个核心,只是一种技术,提高了CPU的利用率;
  • 每个核心的主频是2.2,是代表其单核时计算能力的一个指标,一般主频高能力强;
  • 虚拟机设置核心数时,应该不超过2核,因为主机就只是两核,超过了提示影响性能;
  • 4核CPU,每个虚拟机都是单核,那虚拟机应该是不多于4个;
  • 8G的内存,每个虚拟机都是1G,那最多应该是可以有8个虚拟机;
  • 综合上面两条,那1核1G的虚拟机,只能是四个;(指同时使用,并使用率也不低的情况)
  • 当然某一个虚拟机可以加多点内存;或者减少一个虚拟机,提升某一个的性能;
  • 实验之初是1G1核的虚拟机,因为要在虚拟的linux上使用kvm再虚拟出机器,所以把最初的虚拟机提升到2核2G加了50G硬盘;这样才能在这个虚拟机上分出1核512G的虚拟机(一开始资源太少,就没法分了);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值