KVM虛擬化配置
KVM虛擬化
虛擬化概念
虛擬化配置
- 首先開啟虛擬化的支持 並且增加一個50g的硬盤
-
free
查看內存 -
grep -Ei 'vmx|svm' /proc/cpuinfo
查看虛擬機是支持虛擬化
lsblk
查看是否增加了一塊新的磁盤 這裡我們看到新增了一塊50g的內存
- 接下來我們格式化硬盤格式化為ext4格式
mkfs.ext4 /dev/sdb
blkid /dev/sdb
查看磁盤信息
- 創建掛載目錄
mkdir /kvm_data
mount /dev/sdb /kvm_data
掛載到/kvm_data- 為使
/kvm_data
開機自動掛載 需要修改『/etc/fstab』
- 添加
/dev/sdb /kvm_data ext4 defaults 0 0
- 添加
- 關閉防火牆 和
seLinux
安裝KVM
yum install -y virt-* libvirt bridge-utils qemu-img
啟動KVM
-
配置網卡 首先複製原先的網卡
-
接下來修改
ifcfg-bro
-
TYPE="Bridge" BOOTPROTO="none" DEFROUTE="yes" NAME="bro" DEVICE="bro" ONBOOT="yes" IPADDR="192.168.207.143" NETMASK="255.255.255.0" GATEWAY="192.168.207.2" DNS1=114.114.114.114 DNS2=8.8.8.8
-
-
修改
ifcfg-ens33
-
TYPE="Ethernet" NAME="ens33" DEVICE="ens33" ONBOOT="yes" BOOTPROTO="none" BRIDGE="bro"
-
-
systemctl restart network
重啟網卡
啟動libvirtd服務
首先檢查KVM模塊是否加載,命令如下(lsmod命令用於顯示已載入系統的模塊):
-
lsmod|grep kvm
-
systemctl start libvirtd
開啟libvirtd
-
brctl show
查看有兩個網卡 -
上傳Centos7到
/tmp/
目錄下 -
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"
-
輸入上面的命令開始安裝虛擬機
-
命令解釋:
--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:定義終端額外的參數。
-
開機後進入設置界面 對時區 root密碼等進行設置
虛擬機管理
virsh list
查看虛擬機列表 只能看見已經開啟的虛擬機
virsh list --all
查看所有的虛擬機virsh console test
進入指定的虛擬機
vrish常用命令,命令如下:
virsh shutdown test
//關閉虛擬機
virsh start test
//開啟虛擬機
virsh destroy test
//類似stop,這個是強制停止
virsh undefine test
//徹底銷毀虛擬機,會刪除虛擬機配置文件,virsh list --all就看不到
virsh autostart test
//宿主機開機該虛擬機也開機
virsh autostart --disable test
//解除開機啟動
virsh suspend test
//掛起
virsh resume test
//恢復
克隆虛擬機
-
克隆虛擬機之前必須要關閉虛擬機
-
virt-clone --original test --name test02 --file
--original:指定克隆源虛擬機。
--name:指定克隆後的虛擬機名字。
--file:指定目標虛擬機的虛擬磁盤文件
- 查看虛擬機是否增加
test02
ls /etc/libvirt/qemu/
快照
快照是在我們使用Vmware的時候,很常用的一個功能。它可以回到之前的某一狀態。在KVM中RAW格式的虛擬磁盤不支持做快照,qcow2支持。
-
創建快照
virsh snapshot-create test
-
qemu-img info /kvm_data/test.img
查看test.img信息 並且同時查看 快照列表 -
virsh snapshot-list test
列出所有快照 -
virsh snapshot-current test
查看當前快照詳細信息 -
ls /var/lib/libvirt/qemu/snapshot/test/
查看所有快照配置文件 -
恢復指定快照
virsh snapshot-revert test 1588485687
-
刪除指定快照
virsh snapshot-delete test 1588485687
磁盤格式
-
qemu-img info /kvm_data/test.img
查看磁盤格式信息 -
創建2 GB的RAW格式磁盤
qemu-img create -f raw /kvm_data/test_1.img 2G
- -f 指定磁盤類型 後面跟3個參數 磁盤類型、磁盤文件、大小
-
qemu-img convert -O qcow2 /kvm_data/test_1.img /kvm_data/test_1.qcow2
將磁盤轉換為qcow2格式- convert -O 進行格式轉換
-
ls -lh /kvm_data/test_1.img
可以看到qcow2文件比較小,raw文件大小和我們指定空間大小一樣是2G raw格式的磁盤性能比qcow2要好,但是raw格式的磁盤無法做快照
-
qemu-img convert -O raw /kvm_data/test02.img /kvm_data/test02_2.img
將test02轉換為raw格式 -
更改磁盤格式和文件路徑,然後啟動test02虛擬機,命令如下:
virsh edit test02
- /找到上面這部分將qcow修改為raw,/kvm_data/test02.img改為
磁盤擴容
- 首先擴容RAW格式,命令如下:
qemu-img resize /kvm_data/test02_2.img +2G
qemu-img info /kvm_data/test02_2.img
查看磁盤信息 大小增加了2g
- 進入虛擬機
virsh console test02
使用fdisk -l
查看磁盤列表
- 發現這時虛擬機的磁盤大小還是10g 所以我們需要重新啟動虛擬機後 再進行測試
-
這樣我們看到已經變為12g了 接下來對該磁盤進行分區
fdisk /dev/vda
-
分區完成後 使用p查看磁盤列表:
- 除了對已有磁盤擴容外,還可以額外增加磁盤,命令如下:
qemu-img create -f raw /kvm_data/test02_3.raw 5G
創建一塊新的5g的磁盤
virsh edit test02
編輯虛擬機test02- 主要修改source file名稱為/kvm_data/test02_3.raw,target dev改為vdb,slot改為0x09,不與0x06衝突即可。
- 關閉虛擬機進行測試:
接下來,我們擴容qcow2格式的磁盤,命令如下:
-
qemu-img resize /kvm_data/test.img +2G
若提示qemu-img:Can't resize an image which has snapshots
,需要刪除快照 -
使用命令
qemu-img info test.img
查看虛擬機信息
- 重啟虛擬機 進行查看
fdisk -l
調整CPU內存、網卡
- 查看虛擬機配置信息
virsh dominfo test
- 修改配置文件
virsh edit test
- 再次查看配置信息
virsh dominfo test
- 還可以動態修改 內存和cpu信息 動態修改重啟後失效
virsh setmem test 800m
修改動態內存virsh setvcpus test 2
修改cpu數 只能增加不能減少
- 再次查看虛擬機配置信息
virsh dumpxml test > /etc/libvirt/qemu/test.xml
把配置寫到配置文件中
配置網卡
virsh domiflist test
列出網卡列表
- 增加一塊新的網卡,並設置為NAT網絡模式(virbr0類似VMware的VMnet8),這裡如果寫–source br0,則網絡模式為橋接,命令如下:
virsh attach-interface test --type bridge --source virbr0
virsh domiflist test
-
virsh dumpxml test > /etc/libvirt/qemu/test.xml
把配置文件進行備份 -
進入虛擬機查看網卡信息
ip a
- 此方法在重啟虛擬機後 網卡自動消失 如果想要網卡永久存在 需要將網卡添加到配置文件中
遷移虛擬機
- 遷移虛擬機必須要先關閉
virsh domblklist test
查看虛擬磁盤所在目錄
virsh dumpxml test > /etc/libvirt/qemu/test03.xml
如果是遠程虛擬機需要把該文件拷貝到遠程上去rsync -av /kvm_data/test.img /kvm_data/test03.img
如果是遷移到遠程,則需要把該磁盤文件拷貝到遠程機器上
-
因為是遷移到本機,配置文件用的是test子機的配置,不改會有衝突,所以需要修改該文件。如果是遠程機器不用修改,命令如下:
vi /etc/libvirt/qemu/test03.xml
-
virsh define /etc/libvirt/qemu/test03.xml
定義新的虛擬機 -
virsh list --all
查看所有的虛擬機