KVM虛擬化

kvm實驗

環境準備,我這里使用虛擬機進行模擬,先設定好虛擬化


image.png

進入系統查看是否支持虛擬化

[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 作用:虛擬機的管理軟件
virt virt-install virt-clone 作用:虛擬機的安裝工具和克隆工具
qemu-kvm qemu-img (qcow2,raw)作用:管理虛擬機的虛擬磁盤

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

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

因為我的實驗機是最小化安裝的,要想實現圖形化界面需要安裝桌面,如果不想安裝桌面可以下載vnc到windows桌面上待會備用

先啟動一個虛擬機

[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 系統類型
--os-variant rhel7 系統版本
--name centos7 虛擬機的名字
--memory 1024 虛擬機的內存
--vcpus 1 虛擬cpu的核數
--disk /opt/centos2.raw,format=raw,size=10
--cdrom /opt/CentOS-7-x86_64-DVD-1804.iso
--network network=default 使用默認NAT的網絡
--graphics vnc,listen=0.0.0.0 圖形界面用vnc輸出
--noautoconsole

這樣可以直接連接vnc


image.png

kvm虛擬機的virsh日常管理和配置命令

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

低版本修改虛擬機名字操作流程

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

虛擬機優化

當虛擬機掛起或者恢復后時間后出現不一致,所以需要做好時間同步
創建虛擬機系統時取消swap節省內存

虛擬機開機自啟

開機啟動autostart,前提:systemctl enable libvirtd;
取消開機啟動autostart --disable
查看哪些虛擬機設置了開機自啟:
當設置了開啟自啟后在/etc/libvirt/qemu/autostart/下會存在一個軟連接

[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
創建一塊qcow2格式的虛擬硬盤:
qemu-img create -f qcow2 test.qcow2 2G
調整磁盤磁盤容量
qemu-img resize test.qcow2 +20G

把raw格式轉換為qcow2格式

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

  • 1.先關閉要修改的虛擬機web01
virsh destroy web01
  • 2.查看虛擬機運行狀態
virsh list --all
  • 3.確定關閉后執行轉換命令
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.重新啟動web01,看是否可正常啟動
virsh start web01 

快照

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

  • 創建快照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

虛擬機克隆

kvm虛擬機:磁盤文件 + 配置文件

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

參數解釋:
-o 指定要克隆的機器
-n 被克隆的機器

  • kvm鏈接克隆
    a.基于源磁盤文件,創建鏈接磁盤文件
    qemu-img create -f qcow2 -b web02.qcow2 web03.qcow2
    b:生成虛擬機的配置文件
    virsh dumpxml web02 >web03.xml
    virsh define web03.xml
    virsh start web03
    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
    全自動鏈接克隆方法:強哥博客

kvm虛擬機網絡

默認的虛擬機網絡是NAT模式,網段192.168.122.0/24,但是只能被內網訪問,要想被外網也訪問到,要使用橋接模式

  • 默認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虛擬機實現橋接模式

1:創建橋接網卡
virsh iface-bridge eth0 br0
在使用此命令后會生成新的網卡信息,原eth0網卡信息也同時變更

取消橋接網卡
virsh iface-unbridge br0
2:測試虛擬機網絡
創建一臺使用橋接模式的虛擬機進行測試是否可以正常連接外網

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

修改已創建的虛擬機的網絡模式,需要修改配置文件內的網絡類型記名稱

virsh edit centos7

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

在宿主機上,重啟虛擬機生效

熱添加技術

kvm虛擬機在線熱添加硬盤
先創建一塊準備添加的硬盤
qemu-img create -f qcow2 add01.qcow2 5G
臨時生效
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --subdriver=qcow2

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

作業3:擴容kvm虛擬機的根分區

kvm虛擬機在線熱添加網卡
kvm虛擬機在線熱添加內存
kvm虛擬機在線熱添加cpu

虛擬機磁盤擴容:
在kvm虛擬機,卸載
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

在虛擬機中:xfs_growfs /dev/vdb

根分區擴容:
1)在宿主機上關閉虛擬機并調整虛擬機磁盤大小
qemu-img resize oldboy.qcow2 +10G

2)虛擬機中fdisk重新分區
fdisk /dev/vda

3)重啟之后,執行xfs_growfs /dev/vda1,
如果虛擬機磁盤文件系統是ext4:resize2fs /dev/vda1

kvm虛擬機在線熱添加網卡

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

kvm虛擬機在線熱添加內存

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

臨時熱添加內存
setmem web04 1024M --live
永久增大內存
setmem web04 1024M --config

kvm虛擬機在線熱添加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核數
setvcpus web04 4 --live
永久添加cpu核數
setvcpus web04 4 --config

11:virt-manager和kvm虛擬機熱遷移(共享的網絡文件系統)

冷遷移kvm虛擬機:配置文件,磁盤文件
熱遷移kvm虛擬機:配置文件,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虛擬機熱遷移
1:兩邊的環境(橋接網卡)
2:實現共享存儲(nfs)
3:虛擬機橋接網絡
4:在線熱遷移

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,401評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,069評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,635評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,128評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,365評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,881評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,733評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,935評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,172評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,595評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,908評論 2 372

推薦閱讀更多精彩內容

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