公司要自己開發私有雲管理平台,我這邊負責vmware部分的後台介面編寫。
主要基於vmware官方的 python 介面 pyvmomi進行二次封裝,
主要實現有虛擬機器開關機登出;
虛擬機器增刪磁碟;
虛擬機器快照增刪還原;
虛擬機器 html5的console介面
虛擬機器網路管理
zabbix 監控 esxi的磁碟使用率
zabbix 接受**esxi的報警資訊
本文展示快照功能,快照其實是乙個很小的功能,主要是讓大家了解下vmware快照的介面,網上沒有幹過我這個事情,中間有個遍歷的演算法
先上圖1實際效果
2、實際的資料
**如下
from pyvmomi import vim
from pyvim.connect import smartconnect, disconnect
import atexit
import argparse
import getpass
import ssl
import random
import cgi, cgitb
import sys
import json
def wait_for_task(task):
""" wait for a vcenter task to finish """
task_done = false
while not task_done:
if task.info.state == 'success':
return task.info.result
if task.info.state == 'error':
print ("there was an error")
task_done = true
form = cgi.fieldstorage()
vmnames= form.getvalue('ip')
si = none
context = ssl.sslcontext(ssl.protocol_tlsv1)
context.verify_mode = ssl.cert_none
si = smartconnect(host="10.20.11.3",
user="root",
pwd="vmware",
port=443,
sslcontext=context)
atexit.register(disconnect, si)
content = si.retrievecontent()
container = content.viewmanager.createcontainerview(content.rootfolder, [vim.virtualmachine], true)
for c in container.view:
if c.name == vmnames:
obj = c
break
try:
obj.name
except exception as e:
res=
body = json.dumps(res)
print ("status: 200 ok")
print ("content-length: %d" % (len(body)))
print ("")
print (res)
sys.exit()
output=
#遍歷快照的樹狀結構 注意要設定為全域性變數
def showlist(snapshot):
global output
for i in snapshot.childsnapshotlist:
showlist(i)
磁碟快照管理
作用 進行資料備份和恢復。分類 映象快照 對資料進行完全備份。對系統壓力大,需要占用很大的磁碟空間。原資料損壞不會造成影響。指標型快照 只是記錄當時資料塊的指標位置。之後的操作在新的塊上進行。速度快,占用空間小,原資料損壞無法恢復。建立snapshot的命令 qemu img snapshot c ...
kvm實踐 3 快照管理
ps raw 不支援做快照,qcow2 支援快照,並且快照就儲存在 qcow2 的磁碟檔案中。操作命令 建立快照 virsh snapshot create as 虛擬機器名稱 name 快照名稱 description this is a test snapshot 刪除快照 virsh snap...
Linux中KVM的安裝及快照管理
一 linux中kvm的安裝及狀態檢視 1 安裝軟體yum y install kvm virt manager libvirt 3 新建ifcfg br0配置檔案device br0 nm controlled yes type bridge bootproto none ipaddr 192.1...