0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

KVM虛擬機管理和基本使用

網(wǎng)絡技術(shù)干貨圈 ? 來源:網(wǎng)絡技術(shù)干貨圈 ? 2023-02-07 09:20 ? 次閱讀

ID:wljsghq

KVM 虛擬化環(huán)境部署和管理方法

KVM 簡介
KVM — 全稱是基于內(nèi)核的虛擬機(Kernel-based Virtual Machine)是一個開源軟件,基于內(nèi)核的虛擬化技術(shù),實際是嵌入系統(tǒng)的一個虛擬化模塊,通過優(yōu)化內(nèi)核來使用虛擬技術(shù),該內(nèi)核模塊使得Linux 變成了一個Hypervisor,虛擬機使用Linux自身的調(diào)度器進行管理。

KVM 是基于虛擬化擴展(Intel VT 或者AMD-V)的X86 硬件的開源的Linux 原生的全虛擬化解決方案。KVM 中,虛擬機被實現(xiàn)為常規(guī)的Linux 進程,由標準Linux 調(diào)度程序進行調(diào)度;虛機的每個虛擬CPU 被實現(xiàn)為一個常規(guī)的Linux 進程。這使得KVM 能
夠使用Linux 內(nèi)核的已有功能。但是,KVM 本身不執(zhí)行任何硬件模擬,需要客戶空間程序通過/dev/kvm 接口設置一個客戶機虛擬服務器的地址空間,向它提供模擬的I/O,并將它的視頻顯示映射回宿主的顯示屏。目前這個應用程序是QEMU。

QEMU 是一套由Fabrice Bellard 所編寫的模擬處理器的自由軟件。它與Bochs,PearPC 近似,但其具有某些后兩者所不具備的特性,如高速度及跨平臺的特性。經(jīng)由kqemu 這個開源的加速器,QEMU 能模擬至接近真實電腦的速度。

libvirt 是管理虛擬機和其他虛擬化功能的軟件,比如存儲管理,網(wǎng)絡管理的軟件集合。它包括一個API 庫,一個守護程序(libvirtd)和一個命令行工具(virsh);libvirt 本身構(gòu)建于一種抽象的概念之上。它為受支持的虛擬機監(jiān)控程序?qū)崿F(xiàn)的常用功能提供通用的API。libvirt的主要目標是為各種虛擬化工具提供一套方便、可靠的編程接口,用一種單一的方式管理多種不同的虛擬化提供方式。

注意:我們通常所說和使用的KVM 虛擬機,實際上是這三個軟件的結(jié)合

安裝kvm、qemu、libvirtd:
查看和打開CPU 虛擬化支持:

egrep"(svm|vmx)"/proc/cpuinfo#查看cpu是否支持虛擬化
注:
?vmx對應inter的cpu
?svm對應amd的cpu
?需在主板bios打開虛擬化選項,多數(shù)計算機默認處于打開狀態(tài)

查看內(nèi)核kvm 支持

lsmod|grepkvm

安裝所需軟件包

apt-getinstalllibvirt0libvirt-daemonqemuvirt-managerbridge-utilslibvirt-clients
python-libvirtqemu-efiuml-utilitiesvirtinstqemu-system

#安裝KVM 和相關(guān)虛擬化工具
啟動libvirtd

systemctlrestartlibvirtd.service#啟動libvirtd
systemctlstatuslibvirtd.service#查看啟動狀態(tài)

兩種管理虛擬機的方法:
?virt-manager 是圖形化方式,相對直觀。
?virsh 是命令行方式

KVM 配置與應用

virsh 命令行管理工具詳解

virsh(虛擬shell),基于命令行的管理工具,可以實現(xiàn)簡單的資源管理。支持交互模式
virshshutdowndeepin1#正常關(guān)閉vm虛擬機
virshstartdeepin1#啟動kvm虛擬機
virshdestroydeepin1#強制關(guān)閉kvm虛擬機
virshlist#顯示本地活動虛擬機
virshlist--all#查看所有虛擬機
virshsuspenddeepin1#掛起kvm虛擬機
virshresumedeepin1#恢復被掛起虛擬機
virshdominfodeepin1#查看指定虛擬機的配置摘要信息
virshundefinedeepin1#刪除kvm虛擬機(如果虛擬機處于runing,一旦關(guān)閉就會消失)
virshdumpxmldeepin1#顯示虛擬機的當前配置文件
virshdefinedeepin2.xml#通過配置文件定義一個虛擬機(這個虛擬機還不是活動的)
virshautostartdeepin1#虛擬機設為自動啟動(成/etc/libvirt/qemu/autostart/)
virshautostart--disabledeepin1#取消自動啟動
virsheditdeepin1#編輯配置文件(一般是在剛定義完虛擬機之后)
virshsetmemdeepin1512000#給虛擬機設置內(nèi)存大小
virshsetvcpusdeepin14#給虛擬機設置cpu個數(shù)

qemu-img 是一個功能強制磁盤鏡像管理工具

qemu-img--help包括以下功能
?check檢查完整性
?create創(chuàng)建鏡像
?commit提交更改
?compare比較
?convert轉(zhuǎn)換
?info獲得信息
?map映射
?snapshot快照管理
?rebase在已有的鏡像的基礎上創(chuàng)建新的鏡像
?resize調(diào)整大小
?amend修訂鏡像格式選

KVM 虛擬機的xml 配置文件說明

xml 配置文件也就是通常所說的虛擬機的描述文件,主要用來定義一個虛擬機的名稱、UUID、CPU、內(nèi)存、虛擬磁盤、網(wǎng)卡等各種參數(shù)設置
/etc/libvirt/qemu/ #配置文件默認路徑

deepin.xml 配置文件說明:


deepin#虛擬機的名字
16e9cb49-8b05-4b34-9325-3bcf169dd32e#uuid值
4194304#虛擬機的最大內(nèi)存
4194304#虛擬機當前的內(nèi)存
4#該虛擬機的cpu數(shù)

hvm#hvm表示全虛擬化
#hd表示從硬盤啟動

。。。。。。。。。。
/usr/bin/qemu-system-x86_64#二進制模擬器設備的完整路徑
#disk是用來描述磁盤的主要容器

#指定磁盤上文件的絕對路徑


#MAC地址






KVM 虛擬機重命名技術(shù)

生成新的UUID 字串,并復制備用
uuidgen

76d5dc2c-5eef-4e30-8b6c-e58851814f84

virsh edit deepin #編輯虛擬機配置


deepin2#新名稱
76d5dc2c-5eef-4e30-8b6c-e58851814f84#新UUID值

virsh list --all #確認導入的新配置

IdNameState
-----------------------
-deepin1shutoff
-deepin2shutoff#新名稱的虛擬機

virsh undefine deepin1 #刪除舊名稱的虛擬機
virsh list --all #確認結(jié)果

IdNameState
-----------------------
-deepin2shutoff

KVM 虛擬機的復制技術(shù)

生成新UUID,并復制備用
uuidgen

7b292992-a86e-4386-951f-a577365cc721

導出配置

virshdumpxmldeepin2>/etc/libvirt/qemu/deepin3.xml

修改導出后的配置
vim /etc/libvirt/qemu/deepin3.xml

vim/etc/libvirt/qemu/deepin3.xml

deepin3#新名稱
3d7f2197-8dad-473c-99af-0570cd02ae5c#新UUID值
4194304#內(nèi)存大小,單位KB
4194304#虛擬機分配的內(nèi)存大
小,單位KB
2#虛擬CPU核數(shù)
.......


#新磁盤路徑



.......
#虛擬機網(wǎng)絡連接方式
#修改MAC地址
#當前主機網(wǎng)橋的名稱


.......

確認結(jié)果
virsh list --all

定義新虛擬機
virsh define deepin3.xml

IdNameState
-----------------------
-deepin2shutoff
-deepin3shutoff#新虛擬機

虛擬機快照建立的方式

快照(raw 格式的磁盤無法創(chuàng)建快照)

#qemu-imgsnapshot-l/kvm/img/test12.qcow2#查看磁盤快照
virshsnapshot-listtest12#查看快照
virshsnapshot-createtest12#生成快照
virshsnapshot-create-astest12snap1#自定義快照名
virshsnapshot-reverttest12snap1#快照恢復虛擬機
virshsnapshot-deletetest12snapname#刪除指定快照
virshsnapshot-currenttest12

項目實戰(zhàn)

1. 使用命令行工具創(chuàng)建虛擬機
用法: virt-install --name NAME --memory MB STORAGE INSTALL [options]
用途:從指定安裝源創(chuàng)建新虛擬機。
示例
創(chuàng)建鏡像文件

qemu-imgcreate-fqcow2-osize=20G/data/kvm/deepin-server3.qcow2

通過cdrom 鏡相引導安裝系統(tǒng):

virt-install-ndeepin-server3--vcpus2-r4096-c
/home/yanght/ISO/uniontechos-desktop-20-professional-1021_amd64.iso--disk
/data/kvm/deepin-server3.qcow2,bus=virtio,size=20--graphicsvnc,listen=0.0.0.0--network
bridge=virbr0,model=virtio

2. 利用已有的虛擬機配置文件創(chuàng)建新的虛擬機
把deepin2 當做模板機,提取deepin2 的虛擬機磁盤、xml 配置文件

qemu-imginfo/var/lib/libvirt/images/deepin2.qcow2

輸出:

image:/var/lib/libvirt/images/deepin.qcow2
fileformat:qcow2
virtualsize:64G(68719476736bytes)#虛擬機磁盤容量
disksize:8.1G#在KVM服務器占用容量
cluster_size:65536
Formatspecificinformation:
compat:1.1
lazyrefcounts:true
refcountbits:16
corrupt:false

復用deepin2 模板機的磁盤數(shù)據(jù)

qemu-imgcreate-fqcow2-b/var/lib/libvirt/images/deepin2.qcow2
/var/lib/libvirt/images/deepin4.qcow2

復制配置

cd/etc/libvirt/qemu/
cpdeepin2.xmldeepin4.xml

修改配置文件
vim deepin4.xml

deepin4#新虛擬機名稱
da2478f0-abf0-11ea-a912-6f46e76df6b1#新UUID值
#文件類型
#磁盤類型
#新虛擬卷位置




#虛擬機的網(wǎng)絡接口類型
#刪除MAC地址
#虛擬機的網(wǎng)卡的源網(wǎng)絡名稱

根據(jù)配置文件定義虛擬機

virshdefine/etc/libvirt/qemu/deepin4.xml

查看所有虛擬主機
virsh list --all

IdNameState
-----------------------
-deepin2shutoff
-deepin4shutoff

開啟deepin 虛擬機

virshstartdeepin4

3. 使用命令行工具完成磁盤設備的熱插拔
virsh attach-disk (添加磁盤設備)
用法:

attach-disk[--targetbus][--driver]
[--subdriver][--iothread][--cache][--io][--type]
[--mode][--sourcetype][--serial][--wwn][--alias]
[--rawio][--address][--multifunction][--print-xml][--persistent][--config][--live]
[--current]

示例:
1、用qemu-img 創(chuàng)建一塊100G 的qcow2 硬盤

SOURCEFILE=/data/kvm/deepin-server1-disk1.qcow2
qemu-imgcreate-fqcow2$SOURCEFILE20G

2、附加磁盤到指定虛擬機

DOMAIN=deepin-server1
TARGET=sdb
virshattach-disk--domain$DOMAIN--source$SOURCEFILE--target$TARGET
--subdriverqcow2--config--live

TARGET:一般為vdb,vdc…
–subdriver:這一項是必須的,如果不加的話,虛擬機不知道鏡像文件的格式,掛載
就會失敗。
Virsh detach-disk (刪除磁盤設備)
用法:

detach-disk[--persistent][--config][--live][--current][--print-xml]

示例:

virshdetach-diskdeepinserver1sdb

輸出:

Diskdetachedsuccessfully

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開源軟件
    +關(guān)注

    關(guān)注

    0

    文章

    208

    瀏覽量

    15849
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1344

    瀏覽量

    40152
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11158

    瀏覽量

    208459
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    897

    瀏覽量

    27960
  • KVM
    KVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    12900

原文標題:KVM 虛擬機管理和基本使用

文章出處:【微信號:網(wǎng)絡技術(shù)干貨圈,微信公眾號:網(wǎng)絡技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何在KVM上使用CCA RME虛擬機?

    之前介紹了CCA設計的一個目的是讓hypervisor可以創(chuàng)建和調(diào)度RME虛擬機和vCPU,并且給它分配內(nèi)存等資源,但是一旦這些資源分配給RME虛擬機之后,hypervisor就失去了訪問這些RME所有的內(nèi)存內(nèi)容的權(quán)限。
    的頭像 發(fā)表于 09-11 14:59 ?1458次閱讀
    如何在<b class='flag-5'>KVM</b>上使用CCA RME<b class='flag-5'>虛擬機</b>?

    什么是虛擬機?虛擬機真的那么好用嗎?

    在日新月異的科技世界中,虛擬化技術(shù)如同一座橋梁,連接著現(xiàn)實與數(shù)字的鴻溝,為我們打開了全新的計算維度。虛擬機,這一概念,自其誕生以來,就以其獨特的魅力和強大的功能,深深地影響了軟件開發(fā)、系統(tǒng)測試和云
    的頭像 發(fā)表于 07-06 08:05 ?463次閱讀
    什么是<b class='flag-5'>虛擬機</b>?<b class='flag-5'>虛擬機</b>真的那么好用嗎?

    VM虛擬機管理程序上的NVIDIA GRID vGPU有適當?shù)臏y試計劃來協(xié)助測試嗎?

    你好,我搜索了這些論壇,我發(fā)現(xiàn)了一些關(guān)于在基于KVM虛擬機管理程序(RHEL / CentOS)下使用NVIDIA GRID vGPU功能的問題。這仍在開發(fā)中嗎?如果是,是否有適當?shù)臏y試計劃來協(xié)助
    發(fā)表于 09-18 16:14

    Java虛擬機向ARM平臺的移植

    介紹Java 虛擬機的概念,以常用的KVM 為例,講述了將Java 虛擬機移植到ARM 平臺的方法,重點介紹了移植過程中的編譯選項。
    發(fā)表于 09-23 11:54 ?38次下載

    Java虛擬機向ARM平臺的移植

    介紹Java 虛擬機的概念,以常用的KVM 為例,講述了將Java 虛擬機移植到ARM 平臺的方法,重點介紹了移植過程中的編譯選項。
    發(fā)表于 09-23 11:54 ?22次下載

    誤刪除KVM虛擬機的數(shù)據(jù)恢復案例

    服務器上的KVM虛擬機被誤操作刪除,每臺虛擬機包含一個qcow2格式的磁盤文件和一個raw格式的磁盤文件,需要恢復raw格式的磁盤文件,虛擬機里面存放的是數(shù)據(jù)庫和程序代碼。
    的頭像 發(fā)表于 04-12 13:56 ?650次閱讀
    誤刪除<b class='flag-5'>KVM</b><b class='flag-5'>虛擬機</b>的數(shù)據(jù)恢復案例

    【服務器數(shù)據(jù)恢復】服務器誤刪除KVM虛擬機數(shù)據(jù)恢復案例

    服務器中有3臺KVM虛擬機:一臺運行Mysql數(shù)據(jù)庫,一臺存放數(shù)據(jù)庫備份,一臺存放程序代碼文件。
    的頭像 發(fā)表于 05-09 14:39 ?539次閱讀
    【服務器數(shù)據(jù)恢復】服務器誤刪除<b class='flag-5'>KVM</b><b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復案例

    Linux下誤刪除KVM虛擬機的數(shù)據(jù)恢復案例

    Linux操作系統(tǒng)服務器,EXT4文件系統(tǒng)。服務器上部署3臺KVM虛擬機
    的頭像 發(fā)表于 06-27 13:36 ?501次閱讀
    Linux下誤刪除<b class='flag-5'>KVM</b><b class='flag-5'>虛擬機</b>的數(shù)據(jù)恢復案例

    linux虛擬機系統(tǒng)基本指令

    Linux虛擬機系統(tǒng)是一種通過虛擬化技術(shù)在物理服務器上部署多個獨立的虛擬機實例的操作系統(tǒng)。它可以幫助用戶更有效地利用硬件資源,并方便地部署和管理多個操作系統(tǒng)環(huán)境。本文將介紹一些常用的L
    的頭像 發(fā)表于 11-17 10:04 ?1365次閱讀

    Docker與虛擬機的區(qū)別

    的操作系統(tǒng)實例來實現(xiàn)虛擬化的技術(shù)。其實現(xiàn)方式是通過Hypervisor來實現(xiàn)的。Hypervisor是一個運行在物理機上的軟件或硬件,負責管理和分配虛擬機的硬件資源。 1.2 Docker Docker是一種容器化技術(shù),它利用L
    的頭像 發(fā)表于 11-23 09:37 ?8302次閱讀

    虛擬機ubuntu怎么聯(lián)網(wǎng)

    虛擬機ubuntu怎么聯(lián)網(wǎng)? 虛擬機(Virtual Machine)是運行在物理(Host Machine)上的虛擬操作系統(tǒng)環(huán)境。在虛擬機
    的頭像 發(fā)表于 12-27 16:51 ?863次閱讀

    虛擬機數(shù)據(jù)恢復—EXT4文件系統(tǒng)下KVM虛擬機數(shù)據(jù)恢復案例

    發(fā)行版本中。KVM使用Linux自身的調(diào)度器進行管理。 本案例中的服務器操作系統(tǒng)為Linux,文件系統(tǒng)為EXT4。操作系統(tǒng)上的部署的幾臺KVM虛擬機被刪除,每臺
    的頭像 發(fā)表于 04-17 14:22 ?307次閱讀
    <b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復—EXT4文件系統(tǒng)下<b class='flag-5'>KVM</b><b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復案例

    服務器數(shù)據(jù)恢復—KVM虛擬機raw格式磁盤文件數(shù)據(jù)恢復案例

    服務器數(shù)據(jù)恢復環(huán)境: 一臺服務器安裝Linux操作系統(tǒng)+EXT4文件系統(tǒng)。服務器上運行數(shù)臺KVM虛擬機,每臺虛擬機包含一個qcow2格式的磁盤文件和一個raw格式的磁盤文件。 服務器故障
    的頭像 發(fā)表于 05-17 13:33 ?353次閱讀
    服務器數(shù)據(jù)恢復—<b class='flag-5'>KVM</b><b class='flag-5'>虛擬機</b>raw格式磁盤文件數(shù)據(jù)恢復案例

    服務器數(shù)據(jù)恢復—誤刪除KVM虛擬機的數(shù)據(jù)恢復案例

    1臺服務器,Linux操作系統(tǒng)+EXT4文件系統(tǒng),部署了數(shù)臺KVM虛擬機,每臺虛擬機包含一個qcow2格式的磁盤文件,和一個raw格式的磁盤文件。 工作人員操作失誤刪除了3臺服務器上的KVM
    的頭像 發(fā)表于 06-17 15:10 ?267次閱讀
    服務器數(shù)據(jù)恢復—誤刪除<b class='flag-5'>KVM</b><b class='flag-5'>虛擬機</b>的數(shù)據(jù)恢復案例

    虛擬機數(shù)據(jù)恢復—KVM虛擬機被誤刪除的數(shù)據(jù)恢復案例

    虛擬機數(shù)據(jù)恢復環(huán)境: Linux操作系統(tǒng)服務器,EXT4文件系統(tǒng)。服務器中有數(shù)臺KVM虛擬機。 虛擬機1:主數(shù)據(jù)庫服務器 虛擬磁盤
    的頭像 發(fā)表于 08-07 13:33 ?290次閱讀
    <b class='flag-5'>虛擬機</b>數(shù)據(jù)恢復—<b class='flag-5'>KVM</b><b class='flag-5'>虛擬機</b>被誤刪除的數(shù)據(jù)恢復案例