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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM