kvm


1.1 检查是否支持虚拟化

[root@localhost ~]# grep -Ei 'vmx|svm' /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 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 invpcid_single ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat md_clear 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 ht 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 invpcid_single ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat md_clear 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 ht 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 invpcid_single ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat md_clear 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 ht 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 invpcid_single ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities

1.2 安装KVM

 yum install -y  virt-*  libvirt  bridge-utils qemu-img

1.3 添加一块新磁盘并挂载

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 36.5G  0 lvm  /
  ├─centos-swap 253:1    0  4.8G  0 lvm  [SWAP]
  └─centos-home 253:2    0 17.8G  0 lvm  /home
sdb               8:16   0   50G  0 disk 
sr0              11:0    1  4.4G  0 rom  
[root@localhost ~]# mkdir /kvm_data
[root@localhost ~]# mount /dev/sd
sda   sda1  sda2  sdb   
[root@localhost ~]# mount /dev/sdb /kvm_data/
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 2.3G     0  2.3G    0% /dev
tmpfs                    2.3G     0  2.3G    0% /dev/shm
tmpfs                    2.3G   12M  2.3G    1% /run
tmpfs                    2.3G     0  2.3G    0% /sys/fs/cgroup
/dev/mapper/centos-root   37G  1.8G   35G    5% /
/dev/mapper/centos-home   18G   33M   18G    1% /home
/dev/sda1               1014M  152M  863M   15% /boot
tmpfs                    466M     0  466M    0% /run/user/0
/dev/sdb                  50G   53M   47G    1% /kvm_data

1.4 配置网卡

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo     ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown       ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep  ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth   ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib    ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp  ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6  ifdown-tunnel    ifup-isdn     ifup-TeamPort
[root@localhost network-scripts]# cp ifcfg-ens33  ifcfg-br0
[root@localhost network-scripts]# ls
ifcfg-br0    ifdown-ipv6      ifdown-tunnel  ifup-isdn    ifup-TeamPort
ifcfg-ens33  ifdown-isdn      ifup           ifup-plip    ifup-tunnel
ifcfg-lo     ifdown-post      ifup-aliases   ifup-plusb   ifup-wireless
ifdown       ifdown-ppp       ifup-bnep      ifup-post    init.ipv6-global
ifdown-bnep  ifdown-routes    ifup-eth       ifup-ppp     network-functions
ifdown-eth   ifdown-sit       ifup-ib        ifup-routes  network-functions-ipv6
ifdown-ib    ifdown-Team      ifup-ippp      ifup-sit
ifdown-ippp  ifdown-TeamPort  ifup-ipv6      ifup-Team
[root@localhost network-scripts]# cat ifcfg-br0 
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=IP
NETMASK=255.255.255.0
GATEWAY=网关
DNS1=114.114.114.114
DNS2=8.8.8.8

[root@localhost network-scripts]# cat ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

1.6 启动libvirtd服务

[root@localhost network-scripts]# lsmod|grep kvm
kvm_intel             188740  0 
kvm                   637289  1 kvm_intel
irqbypass              13503  1 kvm
[root@localhost network-scripts]# systemctl start libvirtd
[root@localhost network-scripts]# ps -ef |grep libvirt
root       1155      1  0 18:33 ?        00:00:00 /usr/sbin/libvirtd
nobody     1991      1  0 18:33 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       1992   1991  0 18:33 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       9179   8553  0 18:44 pts/0    00:00:00 grep --color=auto libvirt
[root@localhost network-scripts]# brctl show
bridge name    bridge id        STP enabled    interfaces
br0        8000.000c291eeb98    no        ens33
virbr0        8000.52540076af68    yes        virbr0-nic

1.7准备镜像上传到tmp目录下

[root@localhost network-scripts]# cd /tmp
[root@localhost tmp]# ll
总用量 4601860
-rw-r--r--. 1 root root 4712300544 12月 20 18:47 CentOS-7-x86_64-DVD-2009.iso
-rwx------. 1 root root        836 12月 20 15:17 ks-script-uJJd_6
drwx------. 3 root root         17 12月 20 18:33 systemd-private-3a2c856a3a624b8887a63a5cce18c83a-chronyd.service-alPbvy
drwx------. 2 root root          6 12月 20 18:27 vmware-root_723-4282236435
drwx------. 2 root root          6 12月 20 18:25 vmware-root_750-2957714542
drwx------. 2 root root          6 12月 20 18:33 vmware-root_762-2998936571
-rw-------. 1 root root          0 12月 20 2021 yum.log
[root@localhost tmp]# ls
CentOS-7-x86_64-DVD-2009.iso
ks-script-uJJd_6
systemd-private-3a2c856a3a624b8887a63a5cce18c83a-chronyd.service-alPbvy
vmware-root_723-4282236435
vmware-root_750-2957714542
vmware-root_762-2998936571
yum.log

1.8使用virt-install进行CentOS 7的安装

virt-install --name=test --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-2009.iso --disk path=/kvm_data/study01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial  --extra-args="console=tty0 console=ttyS0"
================================================================================
================================================================================
Installation

 1) [x] Language settings                 2) [x] Time settings
        (English (United States))                (Asia/Shanghai timezone)
 3) [x] Installation source               4) [x] Software selection
        (Local media)                            (Minimal Install)
 5) [x] Installation Destination          6) [x] Kdump
        (Automatic partitioning                  (Kdump is enabled)
        selected)                         8) [x] Root password
 7) [ ] Network configuration                    (Password is set.)
        (Not connected)
 9) [ ] User creation
        (No user will be created)
  Please make your choice from above ['q' to quit | 'b' to begin installation |
  'r' to refresh]: b #"b"安装
[anaconda] 1:main* 2:shell  3:log  4:storage-lo> Switch tab: Alt+Tab | Help: F1 

2.1KVM登录

[root@kvm ~]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     test                           running

[root@kvm ~]# virsh console test
连接到域 test
换码符为 ^]


[root@localhost ~]# 

2.2克隆

[root@kvm ~]# virsh shutdown test #克隆需要关闭虚拟机
域 test 被关闭

[root@kvm ~]# virt-clone --original test --name test02 --file /kvm_data/test02.img
正在分配 'test02.img'                                             |  10 GB  00:00:17     

成功克隆 'test02'。
[root@kvm ~]# virsh list
 Id    名称                         状态
----------------------------------------------------

[root@kvm ~]# virsh start test
域 test 已开始

[root@kvm ~]# virsh start test02
域 test02 已开始

[root@kvm ~]# virsh list
 Id    名称                         状态
----------------------------------------------------
 3     test                           running
 4     test02                         running
[root@kvm ~]# ls /etc/libvirt/qemu/
networks  test02.xml  test.xml

2.3快照管理

[root@kvm ~]# virsh snapshot-create test #创建快照
已生成域快照 1639998942
[root@kvm ~]# virsh snapshot-list test
 名称               生成时间              状态
------------------------------------------------------------
 1639998877           2021-12-20 19:14:37 +0800 running
 1639998942           2021-12-20 19:15:42 +0800 running
[root@kvm ~]# virsh snapshot-revert test  1639998877 #恢复快照
[root@kvm ~]# virsh snapshot-list test
 名称               生成时间              状态
------------------------------------------------------------
 1639998877           2021-12-20 19:14:37 +0800 running
 1639998942           2021-12-20 19:15:42 +0800 running

[root@kvm ~]# virsh snapshot-delete test 1639998942 #删除快照
已删除域快照 1639998942

[root@kvm ~]# virsh snapshot-list test
 名称               生成时间              状态
------------------------------------------------------------
 1639998877           2021-12-20 19:14:37 +0800 running

2.4 磁管理

[root@kvm kvm_data]# qemu-img create -f raw /kvm_data/study01.img 2G #创建2G磁盘
Formatting '/kvm_data/study01.img', fmt=raw size=2147483648 
[root@kvm kvm_data]# qemu-img info study01.img
image: study01.img
file format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 0
[root@kvm kvm_data]# ls
lost+found  study01_1.img  study01.img  test02.img
[root@kvm kvm_data]# qemu-img convert -O qcow2 /kvm_data/study01_1.img /kvm_data/study01_1.qcow2 #RAW格式的磁盘转换为qcow2格式
[root@kvm kvm_data]# ls
lost+found  study01_1.img  study01_1.qcow2  study01.img  test02.img
[root@kvm kvm_data]# qemu-img convert -O raw /kvm_data/test02.img  /kvm_data/test02_2.raw #将test02转成raw格式
[root@kvm kvm_data]# ls
lost+found  study01_1.img  study01_1.qcow2  study01.img  test02_2.raw  test02.img

2.5 更改磁盘格式和文件路径,然后启动test02虚拟机

[root@kvm ~]# virsh edit test02
.... 
<disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/kvm_data/test02_2.raw'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
....
[root@kvm ~]#  virsh start test02
域 test02 已开始

[root@kvm ~]# ls -l /kvm_data/
总用量 3360136
drwx------. 2 root root       16384 12月 20 18:35 lost+found
-rw-r--r--. 1 root root  2147483648 12月 20 19:21 study01_1.img
-rw-r--r--. 1 root root      197120 12月 20 19:25 study01_1.qcow2
-rw-------. 1 qemu qemu 11008081920 12月 20 19:27 study01.img
-rw-r--r--. 1 qemu qemu 10737418240 12月 20 19:27 test02_2.raw
-rw-------. 1 root root  1752694784 12月 20 19:32 test02.img

2.6 磁盘扩容

[root@kvm ~]# qemu-img info /kvm_data/test02_2.raw 
image: /kvm_data/test02_2.raw
file format: raw
virtual size: 12G (12884901888 bytes)
disk size: 1.6G
[root@kvm ~]# qemu-img resize /kvm_data/test02_2.raw +2G
Image resized.
[root@kvm ~]# qemu-img info /kvm_data/test02_2.raw 
image: /kvm_data/test02_2.raw
file format: raw
virtual size: 14G (15032385536 bytes)
disk size: 1.6G

 

[root@localhost ~]# fdisk -l

Disk /dev/vda: 17.2 GB, 17179869184 bytes, 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a50d3

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    20971519     9436160   8e  Linux LVM

Disk /dev/mapper/centos-root: 8585 MB, 8585740288 bytes, 16769024 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@localhost ~]# fdisk /dev/vda #使用磁盘
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): 
Command (m for help): p

Disk /dev/vda: 17.2 GB, 17179869184 bytes, 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a50d3

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    20971519     9436160   8e  Linux LVM
/dev/vda3        20971520    25165823     2097152   83  Linux

2.6

[root@kvm ~]# qemu-img create -f qcow2 /kvm_data/test_2.img 5G
Formatting '/kvm_data/test_2.img', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=of
[root@kvm ~]# virsh edit test
....
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/kvm_data/test_2.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
....
[root@kvm ~]# virsh destroy test #重新启动虚拟机
域 test 被删除

[root@kvm ~]#  virsh list
 Id    名称                         状态
----------------------------------------------------
 8     test02                         running

[root@kvm ~]# virsh start test 
域 test 已开始

[root@kvm ~]#  virsh list
 Id    名称                         状态
----------------------------------------------------
 8     test02                         running
 9     test                           running

[root@kvm ~]#

 3.1 调整CPU 内存 网卡

[root@kvm kvm_data]# virsh dominfo gezi
Id:             6
名称:       gezi
UUID:           4b6a172d-0937-4b17-940a-e7449953765c
OS 类型:    hvm
状态:       running
CPU:          1
CPU 时间:   15.8s
最大内存: 1048576 KiB
使用的内存: 524288 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: selinux
安全性 DOI: 0
安全性标签: system_u:system_r:svirt_t:s0:c522,c745 (enforcing)

[root@kvm kvm_data]# virsh edit gezi
....
  <name>gezi</name>
  <uuid>4b6a172d-0937-4b17-940a-e7449953765c</uuid>
  <memory unit='KiB'>100000</memory>
  <currentMemory unit='KiB'>100000</currentMemory>
  <vcpu placement='static' current='1'>2</vcpu>
....

[root@kvm kvm_data]# virsh edit gezi
编辑了域 gezi XML 配置。

[root@kvm kvm_data]# virsh destroy gezi
域 gezi 被删除

[root@kvm kvm_data]# virsh start gezi
域 gezi 已开始

[root@kvm kvm_data]# virsh dominfo gezi
Id:             7
名称:       gezi
UUID:           4b6a172d-0937-4b17-940a-e7449953765c
OS 类型:    hvm
状态:       running
CPU:          1
CPU 时间:   5.3s
最大内存: 100352 KiB
使用的内存: 100352 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: selinux
安全性 DOI: 0
安全性标签: system_u:system_r:svirt_t:s0:c176,c365 (enforcing)
[root@kvm kvm_data]#  virsh attach-interface gezi --type bridge  --source virbr0 #增加网卡
成功附加接口
[root@kvm kvm_data]# virsh domiflist gezi
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet1      bridge     br0        virtio      52:54:00:a0:4d:f9
vnet2      bridge     virbr0     rtl8139     52:54:00:54:3a:bc

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM