[CentOS] Backup KVM Guest VM in OVA or VMDK format

Wed Sep 14 14:07:09 UTC 2022
Kaushal Shriyan <kaushalshriyan at gmail.com>

On Fri, Sep 2, 2022 at 5:41 PM Fabian Arrotin <arrfab at centos.org> wrote:

> On 01/09/2022 18:14, Kaushal Shriyan wrote:
> > Hi,
> >
> > Is there a way to backup KVM Guest VM running CentOS Linux release
> 7.9.2009
> > (Core) OS in kvmguestosimage.ova or kvmguestosimage.vmdk format as I am
> > trying to restore it in AWS by referring to
> > https://aws.amazon.com/ec2/vm-import/ article as per the below supported
> > file format.
> >
> > [1] Open Virtualization Archive (OVA)
> > [2] Virtual Machine Disk (VMDK)
> > [3] Virtual Hard Disk (VHD/VHDX)
> > [4] raw
> >
> > Also any method to take full and incremental backup of KVM Guest VM.
> >
> > Any help will be highly appreciated. I look forward to hearing from you.
> > Thanks in Advance.
> >
> > Best Regards,
> >
> > Kaushal
>
> Stop the vm
> qemu-img convert -f raw origin.qcow2 dest.raw
>
> You can then import but while we use this to create official centos
> image, don't forget to ensure that you node is ready to be imported, so
> cloud-init, etc, etc
>
> It's usually easier/better/faster to have automation in place to
> configure an application and so replay it on a new node, and then
> replicate data
>
> I guess only option why you'd want to not do this is that it's a running
> machine that was configured "by hands" by someone who left the company
> (and so without automation in place)
>
> --
> Fabian Arrotin
> The CentOS Project | https://www.centos.org
> gpg key: 17F3B7A1 | twitter: @arrfab
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> https://lists.centos.org/mailman/listinfo/centos


Thanks Fabian for the detailed email. I followed the below steps by
referring to
https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html
.

# qemu-img -h | grep Supported
Supported formats: blkdebug blklogwrites blkverify compress
copy-before-write copy-on-read file ftp ftps gluster host_cdrom host_device
http https iscsi iser luks nbd null-aio null-co nvme preallocate qcow2
quorum raw rbd ssh throttle vhdx vmdk vpc

# qemu-img --version
qemu-img version 6.2.0 (qemu-kvm-6.2.0-12.module_el8.7.0+1140+ff0772f9)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
#

*Step No. 1*
#qemu-img convert -O vmdk openapibox.img openapibox.vmdk -p

*Step No. 2*
#aws ec2 import-image --disk-containers
Format=vmdk,UserBucket="{S3Bucket=daclabservers,S3Key=openapidbox.vmdk}"
{
    "ImportTaskId": "import-ami-0232f452194f6efe0",
    "Progress": "1",
    "SnapshotDetails": [
        {
            "DiskImageSize": 0.0,
            "Format": "VMDK",
            "UserBucket": {
                "S3Bucket": "daclabservers",
                "S3Key": "openapibox.vmdk"
            }
        }
    ],
    "Status": "active",
    "StatusMessage": "pending"
}

*Step No. 3*
#aws ec2 describe-import-image-tasks --import-task-ids
import-ami-0232f452194f6efe0
{
    "ImportImageTasks": [
        {
            "ImportTaskId": "import-ami-0232f452194f6efe0",
            "SnapshotDetails": [
                {
                    "DiskImageSize": 0.0,
                    "Status": "completed"
                }
            ],
            "Status": "deleted",
            "StatusMessage": "ClientError: Disk validation failed
[Unsupported VMDK File Format]",
            "Tags": []
        }
    ]
}

Please guide me. Am I missing anything? Thanks in advance.

Best Regards,

Kaushal