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