一 软删除
微信聊天时如果不小心说错话了,两分钟内可以立马撤回消息,并不明觉厉地向对方扔一个对方撤回了一条消息。不小心误删虚拟机时,你是否也会在心里想如果可以撤回刚刚的操作该多好!
值得庆幸的是,OpenStack原生支持软删除操作。开启了软删除功能后,删除的虚拟机不会立刻清除,而是会保留一段时间(比如一天),在虚拟机保留期内你可以随时restore恢复。
开启办法是修改Nova配置文件/etc/nova/nova.conf,在DEFAULT配置组下设置reclaim_instance_interval值,该值表示删除虚拟机后保留的时间,单位为秒。
我们简单验证下:
我们首先创建了一个虚拟机,uuid为c6fd7a92-bf51-4000-b9e1-18850090ab47:
$ nova list | grep c6fd7a92-bf51-4000-b9e1-18850090ab47
| c6fd7a92-bf51-4000-b9e1-18850090ab47 | int32bit-test-3 | ACTIVE | - | Running | rally-shared-net=10.168.0.18 |
然后执行删除操作:
nova delete c6fd7a92-bf51-4000-b9e1-18850090ab47
查看虚拟机状态,注意--deleted选项,否则看不到已经删除的虚拟机:
$ nova list --deleted | grep c6fd7a92-bf51-4000-b9e1-18850090ab47
| c6fd7a92-bf51-4000-b9e1-18850090ab47 | int32bit-test-3| SOFT_DELETED | - |Shutdown| rally-shared-net=10.168.0.18|
可见虚拟机此时为SOFT_DELETED状态,此时我们可以使用nova restore操作恢复:
nova restore c6fd7a92-bf51-4000-b9e1-18850090ab47
再次使用nova list可发现虚拟机已经回来了。
二 虚拟机备份
nova提供backup虚机的功能,似乎可以周期性的(daily/weekly)备份某个虚拟机,并且可以指定最多保存备份的数目。
1. nova list 命令找到备份的虚拟机
2 . 备份命令:nova backup Metasploitable_ubuntu Metasploitable_ubuntu_backup daily 1
只保留一个备份
3. 从备份的镜像生成虚拟机(地址可能跟以前的不一样,需要进行调整)
nova boot --image Metasploitable_ubuntu_backup --flavor 4cpu4G-disk50G --security-groups default --availability-zone nova:computer1 --nic net-name=test192.168.5.0 Metasploitable_ubuntu_backup
4 根据测试的情况,在使用备份的命令时,网络有中断的情况,虚拟机不会重启。所以使用上述命令需要在业务不繁忙的情况下。我使用的版本是newton。
5 可以把备份生成的镜像上传到另外一台机器(比如另外一台机器运行了另外一套openstack),生成相关的虚拟机。命令如下:
下载镜像
glance image-download --file /root/ubuntubackup.qcow2 17c9c9f0-2254-4dd7-90dd-6fb16dd659fd
上述17c9c9f0-2254-4dd7-90dd-6fb16dd659fd是使用nova backup命令生成的镜像。
scp 命令拷贝到另外一台机器
生成镜像
glance image-create --name ubuntubackup --disk-format=qcow2 --container-format=bare --visibility=public --file=/root/ubuntubackup.qcow2
生成虚拟机
nova boot --image ubuntubackup --flavor 4cpu4G50G --security-groups default --nic net-name=vlan18 ubuntu_backup