diff --git a/scripts/vm/hypervisor/kvm/nasbackup.sh b/scripts/vm/hypervisor/kvm/nasbackup.sh new file mode 100755 index 00000000000..053c97243cc --- /dev/null +++ b/scripts/vm/hypervisor/kvm/nasbackup.sh @@ -0,0 +1,45 @@ +#!/bin/bash +## Licensed to the Apache Software Foundation (ASF) under one +## or more contributor license agreements. See the NOTICE file +## distributed with this work for additional information +## regarding copyright ownership. The ASF licenses this file +## to you under the Apache License, Version 2.0 (the +## "License"); you may not use this file except in compliance +## with the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, +## software distributed under the License is distributed on an +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +## KIND, either express or implied. See the License for the +## specific language governing permissions and limitations +## under the License. + +# CloudStack B&R NAS (KVM) Backup and Recovery Tool + +# TODO: do libvirt version & other dependency checks + +# TODO: logging & args/opts handling + +backup_domain() { + domain=$1 # TODO: get as opt? + # TODO: santiy checks on domain + # get domblklist + # gather external snapshot diskspec/target + # ensure the target nas is mounted / path is known or available + # virsh snapshot-create-as -> snapshot domain with --no-metadata--atomic --quiesce (?) --disk-only + # merge/commit target -> domblklist; blockcommit + # backup this domain & its disks, xml completely + # cleanup snapshot(s) +} + +restore_all_volumes() { + # check and mount nas target & copy files + # check and restore all volumes +} + +restore_volume() { + # check and mount nas target & copy files + # check and restore specific volume (qcow2) +}