成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Linux 中導出和導入 KVM 虛擬機

譯文 精選
系統 Linux
本文將介紹導出 KVM 虛擬機磁盤和配置的步驟,然后將它們導入同一臺機器或不同的機器中。我還將向您展示如何使用 Bash 腳本導出和導入 KVM 虛擬機。

譯者 | 趙青窕

本文將介紹導出 KVM 虛擬機磁盤和配置的步驟,然后將它們導入同一臺機器或不同的機器中。我還將向您展示如何使用 Bash 腳本導出和導入 KVM 虛擬機。

1.前言

最近,我將我的虛擬機管理程序從 Oracle VirtualBox 切換到了 KVM,因為它具有原生特性和性能。我實測發現,與 Virtualbox VM 相比,KVM 虛擬機運行得更快。

定期備份您的虛擬機是非常有必要的。假如我們的KVM出現任何異常情況,我們就可以使用備份的KVM來恢復虛擬機。導出和導入 KVM 虛擬機是不同的兩個過程。

首先,您必須檢查磁盤映像的存儲位置并將磁盤映像復制到備份位置。

其次,導出機器配置,以便以后用于創建域。

2.虛擬機的配置

有兩種獲取虛擬機配置信息的方法。你可以使用“Virsh”或者“Virt-manager”。

你可以使用Virt-manager或執行命令virsh獲取虛擬機的名稱。

$ virsh list --all
Id Name State
------------------------------------
Linux_Mint_20 shut off
mxlinux shut off
popos_21_10 shut off
rocky_linux_8 shut off
ubuntu20.04 shut off
ubuntu20.04-clone shut off

當需要查看某個虛擬機的整個信息(即虛擬機配置)時,可以執行以下命令。該命令會以XML的格式來顯示結果。

$ virsh dumpxml vm_name | less
$ virsh dumpxml ubuntu20.04-clone | less

您還可以通過管道連接到grep命令來獲取特定的機器配置。假設您想查看內存分配情況,那么可以運行以下命令。

$ virsh dumpxml ubuntu20.04-clone | grep -i "MEMORY"
<memory unit='KiB'>5632000</memory>
<currentMemory unit='KiB'>5632000</currentMemory>

如果您更喜歡使用Virt-manager工具,那么您可以通過“虛擬硬件詳細信息窗口(show virtual hardware)”選項中的XML子選項來獲取以XML格式顯示的虛擬機配置信息。

3.虛擬機磁盤位置

虛擬機的磁盤以 qcow2 格式創建。默認情況下,虛擬機磁盤存儲在 /var/lib/libvirt/images/ 目錄中,除非您明確指定了磁盤路徑。

運行以下命令獲取磁盤目錄路徑。

$ virsh dumpxml ubuntu20.04-clone | grep -i "source"
<source file='/var/lib/libvirt/images/ubuntu20.04-clone.qcow2'/>

如果您使用的是Virt-manager工具,可以通過上圖中的disk選項來查看虛擬機磁盤信息。

您使用了不同的路徑來存儲磁盤映像,并且希望知道所有VM磁盤路徑,那么您可以在終端或shell腳本內運行以下代碼片段:

$ virsh dumpxml ubuntu20.04-clone | grep -i "source"
<source file='/var/lib/libvirt/images/ubuntu20.04-clone.qcow2'/>

4.導出配置信息并備份磁盤鏡像

現在您已經知道了如何獲取磁盤路徑和虛擬機的配置信息,接下來就可以導出VM的配置信息并將磁盤鏡像復制到不同的位置。

要導出虛擬機信息,可以運行以下“virsh dumpxml”并將輸出存儲在XML文件中。

$ virsh dumpxml vm-name > /path/to/xm_file.xml
$ virsh dumpxml ubuntu20.04-clone > ~/Documents/ubuntu.xml

接下來,我們使用下面的命令將磁盤映像復制到其他位置,以便以后使用。

$ sudo cp /var/lib/libvirt/images/ubuntu20.04-clone.qcow2 ~/Documents/

這樣,導出KVM已經完成了。

注意:您應該使用 sudo 或使用 root 用戶復制磁盤,因為磁盤歸 root 用戶所有。

5.導入虛擬機

要導入KVM虛擬機,您必須運行以下命令,利用導出的 XML 文件重新定義一個虛擬機。

$ virsh define --file <path-to-xml-file>
$ virsh define –file ~/Documents/ubuntu.xml

現在,您可以檢查 Virt-manager 或執行virsh命令,成功創建域。同時您必須將磁盤映像復制到 XML 文件中定義的目錄路徑。在我的環境中,它是默認位置 /var/lib/libvirt/images/,因此我使用下面的命令進行復制。

sudo cp ~/Documents/ubuntu20.04-clone.qcow2 /var/lib/libvirt/images/

導入KVM到此就完成了。

6.導出和導入KVM虛擬機的Bash腳本

我已經創建了一個bash腳本,用于導出所有配置和磁盤映像。如果你感興趣,你可以在我的GitHub庫中查看這個腳本。同時希望您能提供改進腳本的建議。

#!/usr/bin/env bash

# ----------------------------------------------------------------------------------------------------

# AUTHOR : KARTHICK S

# PURPOSE : THIS SCRIPT WILL EXPORT/IMPORT THE CONFIG AND VM DISK.

#

# usage:

# export function will take care of exporting the necessary for all VM. Run as "<scriptname.sh> export"

# import function will take care of importing the necessary for all VM. Run as "<scriptname.sh> import"

#

# NOTE: Do not add trailing / for the directory when giving export and import path.

#------------------------------------------------------------------------------------------------------
# Trigger the script with root user or exit.

if [[ ${UID} -ne 0 ]]; then

echo -e "[EXIT] - Run the script as root user or with sudo privilege..."

exit
fi
function export_vm(){
# Get the export location.
read -p "Provide the directory path where disk and config files to be exported: " EXPORT_LOCATION
# Create the destination directory if not exists.

[[ -d ${EXPORT_LOCATION} ]] || mkdir -p ${EXPORT_LOCATION}

# Exporting the config using virsh dumpxml command.

VM_NAMES=($(virsh list --all| awk '(NR>2)' | awk '{ print $2 }'))

for VM in ${VM_NAMES[@]}; do

virsh dumpxml ${VM} > ${EXPORT_LOCATION}/${VM}.xml

done

# Using rsync copy the entire directory from default location.

echo -e "\n[ Copying disk images ]\n" && sudo rsync -avxp --progress /var/lib/libvirt/images ${EXPORT_LOCATION}

echo -e "\n[ Exported Files ] \n" && ls -lR ${EXPORT_LOCATION}

}

function import_vm(){
# Get the source location.

read -p "Provide the directory path where disk and config files are stored: " SOURCE_LOCATION
# Throws error if directory is not available and exit.

[[ -d ${SOURCE_LOCATION} ]] || { echo "Directory not available"; exit 1 ; }
# Copy all the files to default disk location.

echo -e "[ Copying disk images ]\n" && sudo rsync -avxp --progress ${SOURCE_LOCATION}/images /var/lib/libvirt/

if [[ $? -eq 0 ]]; then

# Define VM

echo -e "\n[ Defining VM ]\n"

for XML_FILE in ${SOURCE_LOCATION}/*.xml; do

virsh define --file ${XML_FILE}

done

echo -e "\n[ Imported VM List ]\n" && virsh list --all

fi
}
case $1 in

export ) export_vm ;;

import ) import_vm ;;

*) echo -e "USAGE :

kvm_export_import.sh export - Export config and disk

kvm_export_import.sh import - Define VM and copy the disk"; exit

esac

該腳本的用法如下。

您可以運行以下命令從 GitHub中克隆 gist。

$ git clone https://gist.github.com/d6c671597592fe5634a39b7974bc8029.git

該腳本執行備份(即導出)和恢復(即導出)。

讓我們使用如下腳本導出 KVM 虛擬機。

$ sudo bash kvm_export_import.sh export

您必須提供要導出XML文件和磁盤映像的目錄路徑。給出導出目錄時,不要在路徑后面添加斜杠(’ / ‘)。它將首先復制磁盤映像(.qcow2)并運行“virsh dumpxml”命令以導出所有的虛擬機配置。

下圖顯示了導出的工作原理。

當您將“import”作為參數傳遞時,它將首先將磁盤映像復制到默認位置 /var/lib/libvirt/ 并針對所有已導出的XML文件運行“virsh define”命令。

$ sudo bash kvm_export_import.sh import

7.總結

在本文中,我向您展示了如何導出 KVM 虛擬機并將它們導入相同或不同的機器。從頭開始構建虛擬機是一項耗時的任務。因此,使用適當的策略來保護我們的虛擬機環境不會因任何情況而損害。

譯者介紹

趙青窕,51CTO社區編輯,從事多年驅動開發。研究興趣包含安全OS和網絡安全領域,發表過網絡相關專利。

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2021-01-18 08:00:00

Linux虛擬機磁盤

2014-06-16 10:17:42

KVM虛擬機集群

2017-02-08 14:30:08

Chrome密碼瀏覽器

2020-07-14 07:00:47

Virt-ManageKVM虛擬機

2020-06-18 16:39:10

KVM虛擬化虛擬機

2012-03-19 21:19:14

vmwarekvm

2022-10-27 08:13:51

管理虛擬機Cockpit

2014-02-21 11:20:34

KVMXen虛擬機

2012-05-18 10:22:23

2013-08-16 11:17:35

虛擬桌面虛擬快照

2009-06-29 19:36:07

虛擬機備份虛擬環境

2009-11-24 09:15:54

Linux內核虛擬機KVM架構

2018-08-08 15:00:44

Kvm虛擬機Linux

2011-05-05 09:32:59

CentOS 5.6KVM

2010-08-30 10:11:25

XenKVM虛擬機遷移

2020-02-24 08:00:20

云的計算解決方案虛擬機

2013-07-17 09:32:58

2010-07-26 09:02:38

2009-08-14 13:18:41

配置linux虛擬機s

2009-08-14 13:30:44

配置linux虛擬機s
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧洲国产精品视频 | 毛片链接| 九九综合| 最新中文字幕久久 | 亚洲综合一区二区三区 | 538在线精品 | 国产一区二区三区久久久久久久久 | 91精品国产一区二区三区 | 欧美性区 | 久久久www成人免费无遮挡大片 | 亚洲成人一区 | 91免费在线| 综合色站导航 | 男人天堂手机在线视频 | 亚洲精品二区 | 一级一级一级毛片 | 久久国内精品 | 成人在线一区二区 | 欧美一区在线视频 | 极品销魂美女一区二区 | 久久久久久久久久一区 | 亚洲欧美激情四射 | 天天综合操 | 国产精品久久7777777 | 日韩精品一区二区三区在线播放 | 日韩精品一区在线 | 久久久高清 | 成人在线免费视频 | 国产一级电影在线观看 | 中文字幕一区二区三区四区 | 一本在线| 欧美日韩国产综合在线 | 黄网免费看 | 欧美一级欧美一级在线播放 | 99reav| 国产精品高清一区二区三区 | 黄网站色大毛片 | 人人干视频在线 | 亚洲精品乱码久久久久久蜜桃 | 成人黄视频在线观看 | 欧美激情精品久久久久久变态 |