VirtBKP
从3.5 版 开始,我就一直在使用 oVirt 作为主要的虚拟化平台,从第一天起,我就在寻找一种基于快照创建VM备份的工具,就像许多解决方案都使用 VMWARE一样,经过一番研究,我发现没有一个工具可以满足要求我的要求,所以我 决定使用oVirt python API 创建一个。
要求
- oVirt > = 4.0
- 安装了此工具的装有CentOS 7的虚拟机,我们将其称为VM bkpvm
- bkpvm 应该在 我们要备份的VM 的同一 oVirt数据中心上
- bkpvm 应该有足够的空间来存储备份
- 存储域 应有足够的 空间来拍摄快照
它是如何工作的?
该脚本应在bkpvm上运行, 并连接到 oVirt API 以执行以下操作:
- 创建快照
- 将磁盘附加到 bkpvm
- 创建虚拟 机磁盘的 qcow2 文件
- 删除快照
完成后,它将 为每个虚拟机的磁盘创建一个 qcow2 文件
安装方式
先决条件
在bkpvm上安装所需的存储库 :
yum install -y epel-release yum install -y http://resources.ovirt.org/pub/yum-repo/ovirt-release41.rpm
从配置的存储库中安装所需的软件包:
yum install -y qemu-img python-ovirt-engine-sdk4 python-requests git ovirt-guest-agent
下载
cd /opt git clone https://github.com/vacosta94/VirtBKP.git
我们需要获取oVirt的 CA,以便建立与oVirt API的安全连接
cd /opt/VirtBKP curl --insecure "https://ovirt.infratic.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA" -o ca.crt
用法
配置
有一个配置文件 default.conf 内 VirtBKP 文件夹,该文件都被工具所需要的参数。应根据您的环境修改此文件,如下所示:
vi /opt/VirtBKP/default.conf
[bkp] url = https://ovirt.example.com/ovirt-engine/api user = [email protected] password = password ca_file = ca.crt bkpvm = bkpvm bckdir = /mnt/ [restore] url = https://ovirt.example.com/ovirt-engine/api user = [email protected] password = password ca_file = ca.crt storage = gfs_pool0 proxy = ovirt.example.com proxyport = 54323
- url : oVirt API URL(写完整ovirt-engineFQDN主机名,不可以使用IP)
- 用户名: 用户名
- 密码: 用户密码
- ca_file:ca.crt的路径
- bkpvm:我们的bkpvm的名称
- bckdir:以.qcow2 格式存储备份的路径
- storage :我们将在其中还原备份的存储域
- 代理: ovirt -image代理FQDN主机名(默认值:ovirt-engine,不可以使用IP)
- proxyport:ovirt -image-proxy的TCP端口 (默认:54323)
创建备份
为了创建虚拟机的备份,您应该使用以下语法:
/opt/VirtBKP/backup_vm.py <configuration_file> <vm_name>
例:
/opt/VirtBKP/backup_vm.py /opt/VirtBKP/default.conf webserver
恢复备份
为了还原现有备份,您应该使用以下语法:
/opt/VirtBKP/upload_disk.py <configuration_file> <qcow2_file>
例
/opt/VirtBKP/upload_disk.py /opt/VirtBKP/default.conf /mnt/webserver_2017-04-28-00h.qcow2
upload_disk.py测试发现传输1GB数据就断开问题,后使用ovirt-engine界面直接上传qcow2成功
关机的虚拟机磁盘可以从此界面下载:
上传完成后,新建虚拟机,将上传的 磁盘挂载上就可以使用该磁盘。