KVM 搭建以及使用

KVM 搭建

一、准备环境

操作系统:Centos7
磁盘:100G

二、部署操作

2.1、关闭selinux 和 firewalld

cp /etc/selinux/config /etc/selinux/config.bak

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

systemctl disable firewalld

systemctl stop firewalld

2.1、查询vmx或svm关键字就代表支持虚拟化,vmx是Intel的CPU,svm是AMD的CPU

grep -Ei 'vmx|svm' /proc/cpuinfo

三、按照kvm

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

四、添加网卡

4.1、拷贝新的网卡

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak

4.2、编辑本地网卡信息

添加BRIDGE=br0 网卡

vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7e104a12-eab3-4945-b16b-a4b32285c50c
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

4.3、编辑新添加的网卡信息

vi /etc/sysconfig/network-scripts/ifcfg-br0 
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes

4.5、重启网络

systemctl restart network

五、启动kvm

5.1、查询是否加载kvm

[root@localhost ~]#  lsmod |grep kvm 
kvm_intel             294912  9 
kvm                   790528  1 kvm_intel
irqbypass              16384  7 kvm

5.2、启动libvirtd服务

systemctl start libvirtd # 启动libvirtd
systemctl enable libvirtd # 开机启动libvirtd

[root@localhost ~]#  ps aux |grep libvirtd # 查询libvirtd 进程
root       1153  0.0  0.0 1601224  240 ?        Ssl  Feb23   0:13 /usr/sbin/libvirtd
root       9073  0.0  0.1 112832  2356 pts/2    S+   00:04   0:00 grep --color=auto libvirtd

[root@localhost ~]# brctl show # 两个网卡
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c29c030ab       no              ens33
                                                        vnet0
                                                        vnet1
                                                        vnet2
virbr0          8000.52540053cd44       yes             virbr0-nic

六、创建虚拟机

6.1、上传centos7镜像

[root@localhost tmp]# ll
total 4415492
-rw-r--r-- 1 qemu qemu 4521459712 Feb 10 11:19 CentOS-7-x86_64-DVD-1708.iso

#创建kvm虚拟机路径
mkdir /kvm_data/ -p 
#创建虚拟机命令
virt-install --name=centos_k8s_master  --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1708.iso --disk path=/kvm_data/centos_k8s_master.img,size=50 --bridge=br0 --graphics=none --console=pty,target_type=serial  --extra-args="console=tty0 console=ttyS0"

命令说明:

· --name 指定虚拟机的名称
· --memory 指定分配给虚拟机的内存资源大小
· maxmemory 指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源
· --vcpus 指定分配给虚拟机的CPU核心数量
· maxvcpus 指定可调节的最大CPU核心数量
· --os-type 指定虚拟机安装的操作系统类型
· --os-variant 指定系统的发行版本
· --location 指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL
· --disk path 指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可用大小,单位是G
· --bridge 指定使用哪一个桥接网卡,也就是说使用桥接的网络模式
· --graphics 指定是否开启图形
· --console 定义终端的属性,target_type 则是定义终端的类型
· --extra-args 定义终端额外的参数

参考连接:
https://blog.51cto.com/zero01/2083896
创建好虚拟机登录进去

#**备份selinux配置文件,修改为disable状态**
cp /etc/selinux/config /etc/selinux/config.bak
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#**关闭防火墙**
systemctl disable firewalld
systemctl stop firewalld
#**备份网卡配置文件**
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
#**修改为知道的IP信息**
sed -i 's/BOOTPROTO=dhcp/#BOOTPROTO=dhcp/g' /etc/sysconfig/network-scripts/ifcfg-eth0 
sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-eth0 
sed -i '$aIPADDR=128.196.126.130' /etc/sysconfig/network-scripts/ifcfg-eth0 
sed -i '$aNETMASK=255.255.255.0' /etc/sysconfig/network-scripts/ifcfg-eth0 
sed -i '$aGATEWAY=128.196.126.2' /etc/sysconfig/network-scripts/ifcfg-eth0 
sed -i '$aDNS1=128.196.126.2' /etc/sysconfig/network-scripts/ifcfg-eth0 
#**重启启动网络**
systemctl restart network
yum install -y net-tools
#**重启虚拟机**
reboot

七、kvm命令

查询虚拟机列表

virsh list --all

进入虚拟机

virsh console test1

启动虚拟机

virsh start test1

关闭虚拟机

virsh shutdown test1

开机启动虚拟机

virsh autostart test1

取消开机启动虚拟机

virsh autostart --disable test1

删除虚拟机

virsh destroy test1

销毁虚拟机

virsh undefine test1

挂载虚拟机

virsh suspend test1

恢复挂载虚拟机

virsh resume test1

kvm克隆命令
虚拟机名称:

[root@localhost ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 3     centos_k8s_node2               running
 5     centos_k8s_node1               running
 7     centos_k8s_master              running

创建自定义快照

virsh snapshot-create-as centos_k8s_node2 centos_k8s_node2.bak

查询快照

virsh snapshot-list centos_k8s_node2

删除快照

virsh snapshot-delete centos_k8s_node2 centos_k8s_node2.bak

恢复快照

virsh snapshot-revert centos_k8s_node2 centos_k8s_node2.bak
原文地址:https://www.cnblogs.com/pythonx/p/14437302.html