shell之KVM虛擬機器管理

2021-07-15 04:43:31 字數 2147 閱讀 5277

關於kvm虛擬機器管理的指令碼主要是通過virsh命令展開實現,在使用指令碼之前需要封裝母映象及建立好第乙個虛擬機器。

在啟動虛擬機器時,我們通常通過start、shutdown、reboot等命令來進行,但是實際情況下,有時會發現使用shutdown、reboot命令進行關閉和重啟虛擬機器時無任何反應,而且利用狀態返回值也是ok的。這時,我們在毫無辦法的情況下就會想到暴力(destroy)關機。但是暴力關機這種方法我們也是不得已而為之,在網上查了一波資料後發現在使用shutdown、reboot時,虛擬機器必須開啟acpi服務。其中,acpi表示高階配置和電源管理介面(advanced configuration and power management inte***ce),其原理是host通過傳送acpi指令來控制虛擬機器的電源,如果虛擬機器系統沒有安裝acpi服務或該服務沒有啟動,那麼虛擬機器將不會重啟或關閉,也就只有使用destroy 來強制關閉。以下是實現指令碼

#!/bin/bash

#[ -f /etc/init.d/functions ] && . /etc/init.d/functions || exit 1

images=/var/lib/libvirt/images

case $1 in

reset)

virsh destroy $2

rm -f $images/$2

qemu-img create -f qcow2 -b $images/rhel6.5.img $images/$2

virsh start $2

;;create)

qemu-img create -f qcow2 -b $images/rhel6.5.img $images/"$2" &> /dev/null  || exit 1

cd /etc/libvirt/qemu

[ $? -eq 0 ] || exit 1

[ -f "$.xml" ] &&  echo "$.xml already exists.. "  && exit 1 || .xml

sed -i  -e "s/vm1/$2/g" \

-e 's/.*<\/uuid>//g' \

-e 's///g' $.xml

virsh define $.xml >/dev/null 2>&1

action "$2 will be running.." /bin/true

$0 start $2 #&> /dev/null};;

delete)

virsh destroy $2 >/dev/null 2>&1

rm -f $images/$2 && \

virsh undefine $2 &>/dev/null && \

action "$2 delete successful." /bin/true || \

action "$2 delete failed." /bin/false

;;start)

virsh start $2 >/dev/null 2>&1 && \

action  "$2 is started." /bin/true || \

action  "$2 start failed." /bin/false

;;view)

virt-viewer $2  &> /dev/null &

;;stop)

virsh shutdown $2 >/dev/null 2>&1 && \

action  "$2 is stop." /bin/true || \

action  "$2 stop failed." /bin/false

;;reboot)

virsh reboot $2 >/dev/null && \

action "$2 is restarting" /bin/true || \

action "$2 is restarting" /bin/  false     

;;enabled)

virsh autostart $2

;;*)

echo "usages:$0 create|delete|reset|start|view|stop|reboot|enabled vm<==> vm create vm1"

;;esac

在沒有提供acpi服務時,關機使用destroy,這是reboot也就不可用了。

kvm虛擬機器管理

原創博文 安裝配置kvm web管理kvm kvm系統安裝 kvm轉殖 快照 kvm虛擬機器管理 系統自動化安裝 kvm自動化安裝centos例項 使用本地iso映象,使用本地ks自動化安裝指令碼 centos7 mini,ks kvname centos7.3 qemu img create f ...

KVM虛擬機器管理

定義新的儲存池 virsh pool define as spool4lj dir home lj spool4lj virsh pool build spool4lj 建立池子 virsh pool list all 檢視池子列表 virsh pool start spool4lj 開啟池子 vi...

kvm虛擬機器儲存管理

1 kvm 的儲存虛擬化是通過儲存池 storage pool 和卷volume 來管理的。2 storage pool 是宿主機上可以看到的一片儲存空間,可以是多種型 3 volume 是在 storage pool 中劃分出的一塊空間,宿主機將 volume 分配給虛擬機器,volume 在虛擬...