kvm虛擬機使用說明

一:kvm虛擬化應用場景

場景1:只有一臺服務器,但是要運行多個版本的軟件,不同版本之間還相互衝突
場景2:機房的遷移,物理機在運輸過程中容易損壞,導致數據丟失
場景3:openstack部署太難!步驟太繁瑣,如何體驗最新版的openstack
場景4:開發環境和測試環境經常損壞,運維重複裝系統
場景5:業務的擴張,需要快速部署10個一模一樣的集羣

二:kvm虛擬機安裝及使用

1:首先關閉selinux和防火牆
setenforce 0
systemctl stop firewalld.service或者 /etc/init.d/iptables stop
2:安裝kvm
yum install libvirt virt-install qemu-kvm -y
libvirt:管理kvm的生命週期
virt-install:創建虛擬機的工具
qemu-kvm:使用qemu-img爲虛擬機提供硬盤
3:啓動kvm
systemctl start libvirtd.service
4:創建虛擬機
建議虛擬機內存不要低於1024M,否則安裝系統特別慢!
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
參數介紹
--virt-type:指定虛擬機類型
--os-type:指定系統類型
--name:虛擬機名字
--memory:內存,這個參數在centos7安裝的kvm裏邊使用
--ram: 內存,這個參數在centos6安裝的kvm裏邊使用
--vcpus:指定cpu個數
--disk /opt/centos2.raw,format=raw,size=10:指定磁盤位置,類型,大小
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso:指定鏡像文件所在位置
--boot hd:如果不安裝系統就把上一條命令換成這個
--network network=default:網絡類型
--network bridge=br0:橋接網絡使用這個參數

三:虛擬機console登錄

1:爲什麼要使用console連接?
1):常規情況下,安裝完 KVM 之後,可能都會通過 VNC 連接到 KVM 虛擬機裏面去修改 IP 等信息。但是一旦虛擬機比較多的話,打開過多的端口會造成安全問題
2):很多時候,我們是通過跳板機連接的宿主機,你的window和kvm宿主機沒有直達的路由,這時候vnc都用不了,如何快速進入到 KVM 虛擬機裏面去排查問題呢?
2:配置
在centos7的kvm虛擬機中執行:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"

reboot重啓生效
3:登錄
virsh console centos7

四:kvm虛擬機磁盤格式

1:kvm常見磁盤格式有兩張
raw:裸格式,佔用空間比較大,不適合遠程傳輸,不支持快照功能,性能較好
qcow2:cow(copy on write)佔用空間小,適合傳輸,支持快照,性能比raw差一點點
2:創建磁盤,查看,修改,格式轉換
創建磁盤
qemu-img create -f qcow2 test.qcow2 10G
-f參數指定磁盤類型,默認是raw
查看磁盤信息
qemu-img info test.qcow2

修改磁盤大小
qemu-img resize test.qcow2 +5G
磁盤格式轉換
qemu-img convert -f raw -O qcow2 test.raw test.qcow2

五:kvm虛擬機日常管理

1:列表,開機,關機,重啓
列表
virsh list:顯示處於運行狀態的虛擬機
virsh list --all:顯示所有的虛擬機
開機
virsh start centos7(虛擬機名稱)
重啓
virsh reboot centos7
關機(正常關機)
virsh shutdown centos7
關機(拔電源)
virsh destroy centos7
2:導出虛擬機配置,刪除虛擬機,恢復虛擬機,修改虛擬機配置,重命名
導出虛擬機配置
virsh dumpxml centos7 >centos7.xml
(只要磁盤文件沒有被破壞,就能恢復虛擬機)
刪除虛擬機
virsh undefine centos7
恢復虛擬機
virsh define centos7.xml
修改虛擬機配置
1)直接修改配置文件/etc/libvirt/qemu/centos7.xml
2)使用virsh edit centos7,這種方法有報錯提醒
重命名虛擬機
virsh domrename centos7 centos8,這個命令低版本不適用
3:掛起,恢復,開機啓動,查看vnc端口號
掛起
virsh suspend centos7
恢復
virsh resume centos7
讓虛擬機開機啓動
首先必須得讓libvirtd服務開機自啓動
然後virsh sutostart centos7
查看vnc端口號
virsh vncdisplay centos7

六:虛擬機快照

只有qcow2的磁盤類型支持快照,raw不支持
創建快照
virsh snapshot-create centos7
查看快照
virsh snapshot-list centos7
還原快照
virsh snapshot-revert centos7 --snapshotname 1516574134
刪除快照
virsh snapshot-devel centos7 --snapshotname 1516574134

七:kvm虛擬機克隆

1:完整克隆
1)方法一:virt-clone -o web01 --auto-clone
2)方法二
1:克隆虛擬磁盤文件
cp centos7.qcow2 web03.qcow2
2:修改虛擬機備份的配置文件
name修改
uuid刪掉
disk路徑/opt/web03.qcow2
mac地址刪除
3:測試啓動
virsh define web01.xml
2:鏈接克隆
1:
qemu-img create -f qcow2 -b cetnos7.qcow2 web04.qcow2
2:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web02 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

八:創建橋接網絡

1:新創建虛擬機
1):創建橋接網絡
virsh iface-bridge eth0 br0
2):基於橋接網絡創建虛擬機
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
2:修改現有虛擬機
1):創建橋接網絡
virsh iface-bridge eth0 br0
2):修改配置文件
virsh edit centos7
<interface type='bridge'>
<mac address='52:54:00:55:aa:fa'/>
<source bridge='br0’/>
3):修改虛擬機ip地址
/etc/sysconfig/network-scripts/ifcfg-eth0

九:kvm虛擬機熱添加技術

熱添加技術就是不停機的情況下,在線熱添加硬盤,內存,cpu,網卡等設備,熱添加技術一般都是在虛擬機資源不夠了,又不能停機的情況下使用的,熱添加技術是虛擬機相對於物理機的一個很大的優勢,它讓資源分配變得更靈活!

1.熱添加硬盤
創建硬盤
qemu-img create -f qcow2 centos7-add01.qcow2 5G
熱添加硬盤
virsh attach-disk web01 /opt/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
如果添加的磁盤大小不夠使用了怎麼辦
方法
1:先卸載硬盤
umount /data
2:在主機上卸掉這個硬盤
virsh detach-disk centos7.1 /tmp/test.qcow2
3:擴充容量
qemu-img resize /tmp/test.qcow2 +5G
4:重新添加硬盤
virsh attach-disk centos7.1 /tmp/test.qcow2 vdb --live --cache=none --subdriver=qcow2
5:在虛擬機上掛載之前的分區
mount /dev/vdb1 /data
6:重新分區
fdisk /dev/vdb
7:分區後保存,執行
partprobe /dev/vdb(如果執行報錯,可以先卸載了,執行完再掛載)
xfs_growfs /data(如果不是xfs格式化的,使用ext4,則使用resize2fs /data)
成功擴容

2:熱添加網卡
添加網卡
virsh attach-interface web04 --type bridge --model virtio --source br0
--model virtio 虛擬網卡驅動,如果不是virtio,網卡名則不是eth0,1,2,而且性能低
這個是臨時生效,永久生效要修改配置文件,複製粘貼下邊四行在配置文件裏

<interface type='bridge'>
<source bridge='br1'/>
<model type='virtio'/>
</interface>

3:熱添加cpu
熱添加cpu需要在安裝虛擬機的時候加上這個參數 maxvcpus=4,最大cpu數量
安裝參數:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1,maxvcpus=4 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
熱添加cpu
virsh setvcpus web04 --count=2

4:熱添加內存
熱添加內存需要在安裝虛擬機的時候加上這個參數maxmemory=2048,最大內存
安裝參數
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus=1,maxvcpus=2 --disk /opt/web04.qcow2,format=qcow2,size=10 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

熱添加內存
virsh setmem web04 1G

十:kvm虛擬機熱遷移

virsh migrate –live –verbose oldboy qemu+ssh://10.0.0.12/system –unsafe
#參數
virsh migrate –live      熱遷移
verbose oldboy       熱遷移的主機oldboy       
qemu+ssh://10.0.0.12/system  使用qemu加ssh協議,遷移到12的主機上,system固定格式
–unsafe           使用不安全規範

最後virsh list –all 查看遷移的主機是否運行,登陸VNC查看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章