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