2021.3.19 KVM虚拟化

本文详述了在Linux环境下安装和管理KVM虚拟机的全过程,包括安装KVM、配置网卡、启动libvirtd服务、安装CentOS 7、虚拟机管理和磁盘管理等关键步骤,以及调整虚拟机的内存、CPU和网卡设置。
摘要由CSDN通过智能技术生成

安装KVM

调整虚拟机

  1. 修改虚拟机内存,至少设置成2 GB
  2. 在“硬件”选项卡中单击“处理器”, 在虚拟化引擎中勾选
  3. 添加硬盘,将最大磁盘大小修改为“50”
  4. 至此,虚拟机设置完成

检查CPU参数

启动虚拟机,我们查看以下,内存是否更改成功 [root@kvm ~]# free
检查CPU是否开启虚拟化支持[root@kvm ~]# grep -Ei 'vmx|svm' /proc/cpuinfo

如果显示为空,就要检查你虚拟机设置,是否打“√”

挂载新磁盘

使用lsblk命令,检查虚拟机是否新增一块50 GB的磁盘 [root@kvm ~]# lsblk
接下来格式化这块磁盘,格式化成ext4格式 [root@kvm ~]# mkfs.ext4 /dev/sdb格式化完成后,我们挂载磁盘,先创建挂载目录/kvm_data,然后进行挂载

[root@kvm ~]# mkdir /kvm_data
[root@kvm ~]# mount /dev/sdb /kvm_data/

这种方式挂载,重启虚拟机后,需要再次重新挂载,我们为了方便开机后可以自动挂载,编写/etc/fstab文件,添加文件最末一行[root@kvm ~]# vi /etc/fstab

/dev/sdb     /kvm_data           ext4      defaults    0 0

关闭防火墙和selinux

关闭防火墙并设置开机不自启

[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# systemctl disable firewalld

关闭SELinux,编辑/etc/selinux/config,将enforcing修改为disabled[root@kvm ~]# vi /etc/selinux/config

SELINUX=disabled 

修改完成后,重启虚拟机,使其生效,使用getenforce查看[root@kvm ~]# getenforce

安装KVM

上述操作完成后,我们使用Yum进行安装KVM[root@kvm ~]# yum install -y virt-* libvirt bridge-utils qemu-img

启动KVM

配置网卡

增加桥接网卡ifcfg-br0

[root@kvm ~]# cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# cp ifcfg-ens33 ifcfg-br0

修改桥接网卡ifcfg-br0的内容

[root@kvm network-scripts]# vi ifcfg-br0 
[root@kvm network-scripts]# cat ifcfg-br0 
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.16.5
NETMASK=255.255.255.0
GATEWAY=192.168.16.2
DNS1=114.114.114.114
DNS2=8.8.8.8

修改NAT网卡ifcfg-eno16777736

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

修改完成网卡内容后,重新启动网卡服务并查看网卡信息[root@kvm network-scripts]# service network restart

启动libvirtd服务

首先检查KVM模块是否加载[root@kvm network-scripts]# lsmod|grep kvm
启动libvirtd并检查是否成功启动

[root@kvm network-scripts]# systemctl start libvirtd
[root@kvm network-scripts]# ps -ef |grep libvirt

启动成功后,使用brctl命令可以看到两个网卡

[root@kvm ~]# cd
[root@kvm ~]# brctl show

命令行安装CentOS 7

CentOS7镜像下载地址:

http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso

首先,通过SCRT上传CentOS 7镜像到/tmp目录下,如果没有镜像的可以自行下载。上传后,使用ll命令查看/tmp目录下是否存在CentOS 7镜像文件[root@kvm ~]# ll /tmp/

镜像存在,接下来使用virt-install进行CentOS 7的安装

[root@kvm ~]# 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-1511.iso
--disk path=/kvm_data/test.img,size=10 
--bridge=br0
--graphics=none
--console=pty,target_type=serial 
--extra-args="console=tty0 console=ttyS0"

接下来我们开始配置“Timezone settings”,输入“2”,按Enter键

  1. 输入2,进行时区设置
    “Timezone settings”时区设置选择 5) Asia亚洲,再选择城市 62) Shanghai上海 输入完毕后,可以发现2的[!]变成了[x],证明配置完毕。
  2. 接下来我们配置“Software selection”,选择“4”,在选择“c”,因为默认就是minimalinstall,按Enter键
  3. 接下来我们配置“Installation Destination”,选择“5”,其余的依次选择“c”,按Enter键
  4. 接下来配置“Root password”,选择8,按Enter键
  5. 依次输入两次密码,密码相同,我设置的为123456
  6. 配置完成,选择“b”,按Enter键后,开始安装
  7. [root@localhost ~]#
    //按“Ctrl+]”键,退出终端,回到宿主机。
    [root@kvm ~]#

虚拟机管理

KVM基本管理

查看虚拟机列表[root@kvm ~]# virsh list
进入指定的虚拟[root@kvm ~]# virsh console test
关闭虚拟机 virsh shutdown test
开启虚拟机 virsh start test
类似stop,这个是强制停止 virsh destroy test
彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到virsh undefine test
宿主机开机该虚拟机也开机 virsh autostart test
解除开机启动 virsh autostart --disable test
挂起 virsh suspend test
恢复 virsh resume test

克隆虚拟机

关闭虚拟机后,再次进行克隆[root@kvm ~]# virsh shutdown test
查看虚拟机配置文件/etc/libvirt/qemu/,看是否增加test02.xml文件 [root@kvm ~]# ls /etc/libvirt/qemu/
启动刚刚克隆的虚拟机test02,首先查看虚拟机列表,然后启动克隆的虚拟机test02[root@kvm ~]# virsh list --all

快照管理

创建快照 [root@kvm ~]# virsh snapshot-create test
查看test.img信息 [root@kvm ~]# qemu-img info /kvm_data/test.img
列出所有快照[root@kvm ~]# virsh snapshot-list test
查看当前快照详细信息[root@kvm ~]# virsh snapshot-current test
查看所有快照配置文件[root@kvm ~]# ls /var/lib/libvirt/qemu/snapshot/test/
恢复指定快照[root@kvm ~]# virsh snapshot-revert test 1588485687
删除指定快照 [root@kvm ~]# virsh snapshot-delete test 1588485687

磁盘格式

查看虚拟磁盘格式[root@kvm ~]# qemu-img info /kvm_data/test.img
创建2 GB的RAW格式磁盘 [root@kvm ~]# qemu-img create -f raw /kvm_data/test_1.img 2G
RAW格式的磁盘转换为qcow2格式[root@kvm ~]# qemu-img convert -O qcow2 /kvm_data/test_1.img
查看test1.img大小[root@kvm ~]# ls -lh /kvm_data/test_1.img
将test02转成raw格式 [root@kvm ~]# qemu-img convert -O raw /kvm_data/test02.img /kvm_data/test02_2.img
更改磁盘格式和文件路径,然后启动test02虚拟机[root@kvm ~]# virsh edit test02
查看磁盘所属用户和组[root@kvm ~]# ls -l /kvm_data/
启动虚拟机test02,然后再次查看磁盘所属用户和组 [root@kvm ~]# virsh start test02

磁盘扩容

首先扩容RAW格式[root@kvm ~]# qemu-img resize /kvm_data/test02_2.img +2G
查看test02_2.raw信息[root@kvm ~]# qemu-img info /kvm_data/test02_2.img
进入虚拟机test02,使用fdisk -l查看磁盘

[root@kvm ~]# virsh console test02
[root@localhost ~]# fdisk -l

退出终端,关闭test02虚拟机,重新启动,然后再次进入虚拟机test02,使用fdisk -l查看磁盘

[root@kvm ~]# virsh destroy test02
Domain test02 destroyed

[root@kvm ~]# virsh start test02
Domain test02 started

[root@kvm ~]# virsh console test02
[root@localhost ~]# fdisk -l

使用新增加的这2 GB磁盘,分区

[root@localhost ~]# fdisk /dev/vda
Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (3,4, default 3):
//按Enter键 
First sector (20971520-25165823, default 20971520): 
//按Enter键 
Using default value 20971520
Last sector, +sectors or +size{K,M,G} (20971520-25165823, default 25165823):
//按Enter键
Command (m for help): w
//保存退出并退出终端

除了对已有磁盘扩容外,还可以额外增加磁盘[root@kvm ~]# qemu-img create -f raw /kvm_data/test02_3.raw 5G
使用virsh edit编辑test02虚拟机,将新磁盘增加到test02虚拟机[root@kvm ~]# virsh edit test02

  <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/kvm_data/test02_2.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' 
function='0x0'/>
</disk>
//找到这一部分内容,在下面增加以下内容
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/kvm_data/test02_3.raw'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' 
function='0x0'/>
</disk>

调整CPU内存、网卡

查看虚拟机配置信息[root@kvm ~]# virsh dominfo test
编辑虚拟机内存

[root@kvm ~]# virsh edit test
…………
<memory unit='KiB'>1048576</memory>
//最大内存
  <currentMemory unit='KiB'>524288</currentMemory>
//可用内存
  <vcpu placement='static' current='1'>2</vcpu>
//最大cpu
………………
//将以上内容修改为如下内容
…………
<memory unit='KiB'>1048576</memory>  
  <currentMemory unit='KiB'>624288</currentMemory>
  <vcpu placement='static' current='1'>2</vcpu>

关闭虚拟机,重启动虚拟机

[root@kvm ~]# virsh destroy test
Domain test destroyed
[root@kvm ~]# virsh start test
Domain test started

查看虚拟机配置信息[root@kvm ~]# virsh dominfo test
查看网卡列表[root@kvm ~]# virsh domiflist test
把配置文件做备份[root@kvm ~]# virsh dumpxml test > /etc/libvirt/qemu/test.xml
进入test虚拟机,查看网卡信息[root@kvm ~]# virsh console test

迁移虚拟机

首先关闭虚拟机[root@kvm ~]# virsh shutdown test
查看虚拟机磁盘所在目录[root@kvm ~]# virsh domblklist test
因为是迁移到本机,配置文件用的是test子机的配置,不改会有冲突,所以需要修改该文件。
定义新虚拟机[root@kvm ~]# virsh define /etc/libvirt/qemu/test03.xml
查看虚拟机列表[root@kvm ~]# virsh list --all

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值