KVM虛擬化

kvm實(shí)驗(yàn)

環(huán)境準(zhǔn)備,我這里使用虛擬機(jī)進(jìn)行模擬,先設(shè)定好虛擬化


image.png

進(jìn)入系統(tǒng)查看是否支持虛擬化

[root@kvm ~]# lsmod |grep kvm
kvm_intel             174841  0 
kvm                   578518  1 kvm_intel
irqbypass              13503  1 kvm

KVM:Kernel-based Virtual Machine

安裝需要的軟件和下載鏡像:

yum install libvirt virt-install qemu-kvm -y 

libvirt 作用:虛擬機(jī)的管理軟件
virt virt-install virt-clone 作用:虛擬機(jī)的安裝工具和克隆工具
qemu-kvm qemu-img (qcow2,raw)作用:管理虛擬機(jī)的虛擬磁盤

自行下載一個(gè)centos7的鏡像,我本地有鏡像所以不需要下載

[root@kvm opt]# ll
total 171008
-rw-r--r-- 1 root root 175112192 Nov 25  2018 CentOS-7-x86_64-DVD-1804.iso

因?yàn)槲业膶?shí)驗(yàn)機(jī)是最小化安裝的,要想實(shí)現(xiàn)圖形化界面需要安裝桌面,如果不想安裝桌面可以下載vnc到windows桌面上待會(huì)備用

先啟動(dòng)一個(gè)虛擬機(jī)

[root@kvm opt]# 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-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
[root@kvm opt]# ps -ef |grep 5900
root       5151   1940  0 20:46 pts/0    00:00:00 grep --color=auto 5900

命令詳解:
--virt-type kvm 虛擬化的類型(qemu)
--os-type=linux 系統(tǒng)類型
--os-variant rhel7 系統(tǒng)版本
--name centos7 虛擬機(jī)的名字
--memory 1024 虛擬機(jī)的內(nèi)存
--vcpus 1 虛擬cpu的核數(shù)
--disk /opt/centos2.raw,format=raw,size=10
--cdrom /opt/CentOS-7-x86_64-DVD-1804.iso
--network network=default 使用默認(rèn)NAT的網(wǎng)絡(luò)
--graphics vnc,listen=0.0.0.0 圖形界面用vnc輸出
--noautoconsole

這樣可以直接連接vnc


image.png

kvm虛擬機(jī)的virsh日常管理和配置命令

列表list(--all)
開機(jī)start
關(guān)機(jī)shutdown
拔電源關(guān)機(jī)destroy
重命名domrename (低版本不支持)
掛起suspend
恢復(fù)resume
查詢vnc端口號(hào)vncdisplay
導(dǎo)出配置dumpxml 例子:virsh dumpxml centos7 >centos7-off.xml
刪除undefine 推薦:先destroy,在undefine
導(dǎo)入配置define
修改配置edit(自帶語法檢查)

低版本修改虛擬機(jī)名字操作流程

先停掉虛擬機(jī) virsh shutdwon centos7
備份配置文件 virsh dumpxml centos7 >web01.xml
刪除虛擬機(jī) virsh undefine centos7
修改配置文件 vim web01.xml <name>web01</name>,刪掉uuid
導(dǎo)入虛擬機(jī) virsh define web01.xml

虛擬機(jī)優(yōu)化

當(dāng)虛擬機(jī)掛起或者恢復(fù)后時(shí)間后出現(xiàn)不一致,所以需要做好時(shí)間同步
創(chuàng)建虛擬機(jī)系統(tǒng)時(shí)取消swap節(jié)省內(nèi)存

虛擬機(jī)開機(jī)自啟

開機(jī)啟動(dòng)autostart,前提:systemctl enable libvirtd;
取消開機(jī)啟動(dòng)autostart --disable
查看哪些虛擬機(jī)設(shè)置了開機(jī)自啟:
當(dāng)設(shè)置了開啟自啟后在/etc/libvirt/qemu/autostart/下會(huì)存在一個(gè)軟連接

[root@kvm opt]# ll /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 29 Apr  3 22:28 centos7.xml -> /etc/libvirt/qemu/centos7.xml

qemu下命令

查看虛擬磁盤信息
qemu-img info test.qcow2
創(chuàng)建一塊qcow2格式的虛擬硬盤:
qemu-img create -f qcow2 test.qcow2 2G
調(diào)整磁盤磁盤容量
qemu-img resize test.qcow2 +20G

把raw格式轉(zhuǎn)換為qcow2格式

raw: 裸格式,占用空間比較大,不支持快照功能,性能較好,不方便傳輸 總50G 占用2G
qcow2:cow (copy on write)占用空間小,支持快照,性能比raw差一點(diǎn),方便傳輸 總50G 占用2G

  • 1.先關(guān)閉要修改的虛擬機(jī)web01
virsh destroy web01
  • 2.查看虛擬機(jī)運(yùn)行狀態(tài)
virsh list --all
  • 3.確定關(guān)閉后執(zhí)行轉(zhuǎn)換命令
qemu-img convert -f raw -O qcow2 /data/web01.raw /data/web01.qcow2
 >格式示例qemu-img convert [-f fmt]   [-O output_fmt]    filename     output_filename
  • 4.修改web01配置文件
virsh edit web01

[root@oldboy data]# virsh dumpxml web01|grep 'qcow2'
      <driver name='qemu' type='qcow2'/>
      <source file='/data/web01.qcow2'/>
  • 5.重新啟動(dòng)web01,看是否可正常啟動(dòng)
virsh start web01 

快照

raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盤文件中

  • 創(chuàng)建快照virsh snapshot-create-as centos7 --name install_ok

--name 指定快照名字

  • 查看快照virsh snapshot-list centos7

  • 還原快照virsh snapshot-revert centos7 --snapshotname 1516574134

  • 刪除快照virsh snapshot-delete centos7 --snapshotname 1516636570

虛擬機(jī)克隆

kvm虛擬機(jī):磁盤文件 + 配置文件

  • 完整克隆
    克隆命令:virt-clone --auto-clone -o web01 -n web02(完整克隆)

參數(shù)解釋:
-o 指定要克隆的機(jī)器
-n 被克隆的機(jī)器

  • kvm鏈接克隆
    a.基于源磁盤文件,創(chuàng)建鏈接磁盤文件
    qemu-img create -f qcow2 -b web02.qcow2 web03.qcow2
    b:生成虛擬機(jī)的配置文件
    virsh dumpxml web02 >web03.xml
    virsh define web03.xml
    virsh start web03
    c:導(dǎo)入虛擬機(jī)并進(jìn)行啟動(dòng)測(cè)試
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
    全自動(dòng)鏈接克隆方法:強(qiáng)哥博客

kvm虛擬機(jī)網(wǎng)絡(luò)

默認(rèn)的虛擬機(jī)網(wǎng)絡(luò)是NAT模式,網(wǎng)段192.168.122.0/24,但是只能被內(nèi)網(wǎng)訪問,要想被外網(wǎng)也訪問到,要使用橋接模式

  • 默認(rèn)NAT模式
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
  • 橋接模式
    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

kvm虛擬機(jī)實(shí)現(xiàn)橋接模式

1:創(chuàng)建橋接網(wǎng)卡
virsh iface-bridge eth0 br0
在使用此命令后會(huì)生成新的網(wǎng)卡信息,原eth0網(wǎng)卡信息也同時(shí)變更

取消橋接網(wǎng)卡
virsh iface-unbridge br0
2:測(cè)試虛擬機(jī)網(wǎng)絡(luò)
創(chuàng)建一臺(tái)使用橋接模式的虛擬機(jī)進(jìn)行測(cè)試是否可以正常連接外網(wǎng)

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name test --memory 1024 --vcpus 1 --disk /data/test.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

修改已創(chuàng)建的虛擬機(jī)的網(wǎng)絡(luò)模式,需要修改配置文件內(nèi)的網(wǎng)絡(luò)類型記名稱

virsh edit centos7

    <interface type='bridge'>
      <mac address='52:54:00:55:aa:fa'/>
      <source bridge='br0'/>

在宿主機(jī)上,重啟虛擬機(jī)生效

熱添加技術(shù)

kvm虛擬機(jī)在線熱添加硬盤
先創(chuàng)建一塊準(zhǔn)備添加的硬盤
qemu-img create -f qcow2 add01.qcow2 5G
臨時(shí)生效
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --subdriver=qcow2

永久生效
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --subdriver qcow2 --config

作業(yè)3:擴(kuò)容kvm虛擬機(jī)的根分區(qū)

kvm虛擬機(jī)在線熱添加網(wǎng)卡
kvm虛擬機(jī)在線熱添加內(nèi)存
kvm虛擬機(jī)在線熱添加cpu

虛擬機(jī)磁盤擴(kuò)容:
在kvm虛擬機(jī),卸載
virsh detach-disk centos7 vdb
qemu-img resize /data/centos7-add01.qcow2 +5G
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2

在虛擬機(jī)中:xfs_growfs /dev/vdb

根分區(qū)擴(kuò)容:
1)在宿主機(jī)上關(guān)閉虛擬機(jī)并調(diào)整虛擬機(jī)磁盤大小
qemu-img resize oldboy.qcow2 +10G

2)虛擬機(jī)中fdisk重新分區(qū)
fdisk /dev/vda

3)重啟之后,執(zhí)行xfs_growfs /dev/vda1,
如果虛擬機(jī)磁盤文件系統(tǒng)是ext4:resize2fs /dev/vda1

kvm虛擬機(jī)在線熱添加網(wǎng)卡

virsh attach-interface web04 --type bridge --source br0 --model virtio
detach-interface web04 --type bridge --mac 52:54:00:35:d3:71

kvm虛擬機(jī)在線熱添加內(nèi)存

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

臨時(shí)熱添加內(nèi)存
setmem web04 1024M --live
永久增大內(nèi)存
setmem web04 1024M --config

kvm虛擬機(jī)在線熱添加cpu

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
熱添加cpu核數(shù)
setvcpus web04 4 --live
永久添加cpu核數(shù)
setvcpus web04 4 --config

11:virt-manager和kvm虛擬機(jī)熱遷移(共享的網(wǎng)絡(luò)文件系統(tǒng))

冷遷移kvm虛擬機(jī):配置文件,磁盤文件
熱遷移kvm虛擬機(jī):配置文件,nfs共享

1):
yum groupinstall "GNOME Desktop" -y
yum install openssh-askpass -y

yum install tigervnc-server -y

vncpasswd
vncserver :1
vncserver -kill :1

2):kvm虛擬機(jī)熱遷移
1:兩邊的環(huán)境(橋接網(wǎng)卡)
2:實(shí)現(xiàn)共享存儲(chǔ)(nfs)
3:虛擬機(jī)橋接網(wǎng)絡(luò)
4:在線熱遷移

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一.虛擬機(jī)的創(chuàng)建 1.添加鏡像到本地(利用rz命令) mkdir /iso上傳鏡像到/iso下,PS:虛擬機(jī)創(chuàng)建鏡...
    平_方閱讀 2,369評(píng)論 0 0
  • 以下使用都基于Centos7.2進(jìn)行的操作 流程: 1、開啟虛擬化技術(shù) 2、下載KVM相關(guān)組件 3、建立(系統(tǒng)安裝...
    天夭夭閱讀 1,996評(píng)論 0 2
  • CentOS6.5 安裝KVM虛擬機(jī) vnc安裝 因?yàn)榘惭b系統(tǒng)還是需要圖形界面去進(jìn)行相關(guān)操作的,所以我們先配置一個(gè)...
    Evil_cosey閱讀 913評(píng)論 0 1
  • KVM 維護(hù)常用命令 kvm虛擬機(jī)的配置文件位置:/etc/libvirt/qemu 修改虛擬機(jī)的相關(guān)配置sudo...
    Kim9501閱讀 1,697評(píng)論 0 0
  • 相信大家的身邊肯定遇到過老實(shí)人吧,老實(shí)是什么呢?很多人都會(huì)把老實(shí)和木訥,懦弱,自卑,沒心眼,不聰明,只會(huì)...
    啞然x失笑閱讀 458評(píng)論 4 0

友情鏈接更多精彩內(nèi)容