-
Notifications
You must be signed in to change notification settings - Fork 86
add workflow to use cnv qcow2 cbt #2055
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: oadp-dev
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,46 @@ | ||||||||||||||||||||||
| # get this party started | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 1. ensure you have a default storage class selected | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| ocs-storagecluster-ceph-rbd (default) openshift-storage.rbd.csi.ceph.com Delete Immediate true 7h50m | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 2. Create the VM's | ||||||||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Before creating the VMs, ensure you already have the NS created for e.g. |
||||||||||||||||||||||
| Note.. these vm's already have the label for changeBlockTracking: true | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| oc create -f cirros-test-1.yaml , can also include test-2,3 | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 3. Create the pv/pvc that will store the qocw2 snapshots | ||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Typo: "qocw2" should be "qcow2". -3. Create the pv/pvc that will store the qocw2 snapshots
+3. Create the pv/pvc that will store the qcow2 snapshots📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| oc create -f pushBackupPV.yaml | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 4. Create an optional filebrowsers container to inspect files on the above pv/pvc | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| oc create -f filebrowser.yaml | ||||||||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Use our own quay image to avoid getting into docker rate limiting issues: oc set image deployment/pvc-browser browser=quay.io/konveyor/oadp-vmfr-access-filebrowser:latest |
||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 5. Create the virtualMachineBackupTracker instance | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| oc create -f virtualMachineBackupTracker.yaml | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| 6. Take a full andn incremental backup | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Full: the first backup will always be a full backup | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| oc create -f virtualMachineBackupFull.yaml | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| Incremetnal: any new backup using the same tracker will be incremental | ||||||||||||||||||||||
|
Comment on lines
+33
to
+39
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Typos in backup section. Suggested fixes-6. Take a full andn incremental backup
+6. Take a full and incremental backup-Incremetnal: any new backup using the same tracker will be incremental
+Incremental: any new backup using the same tracker will be incremental📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~33-~33: Ensure spelling is correct (QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1) 🪛 markdownlint-cli2 (0.18.1)36-36: Fenced code blocks should have a language specified (MD040, fenced-code-language) 🤖 Prompt for AI Agents |
||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
| oc create -f virtualMachineBackupInc1.yaml | ||||||||||||||||||||||
| ``` | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| See my results in RESULTS | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Notes | ||
|
|
||
| After downloading the qcow2 files to my laptop.. check the size of files | ||
|
|
||
| ``` | ||
| -rw-r--r--. 1 whayutin whayutin 896K Jan 14 09:28 vmbackup-cirros-test-cont-1-inc-1-volume0.qcow2 | ||
| -rw-r--r--. 1 whayutin whayutin 151M Jan 14 09:29 vmbackup-cirros-test-cont-1-volume0.qcow2 | ||
| ``` | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| oc -n cirros-test-cont get virtualmachineBackup vmbackup-cirros-test-cont-1 -o yaml | ||
| apiVersion: backup.kubevirt.io/v1alpha1 | ||
| kind: VirtualMachineBackup | ||
| metadata: | ||
| creationTimestamp: "2026-01-14T15:40:55Z" | ||
| finalizers: | ||
| - backup.kubevirt.io/vmbackup-protection | ||
| generation: 1 | ||
| name: vmbackup-cirros-test-cont-1 | ||
| namespace: cirros-test-cont | ||
| resourceVersion: "392611" | ||
| uid: 649409e7-84e7-47af-a12f-6cd6356e6fd7 | ||
| spec: | ||
| pvcName: pushbackup-pv | ||
| source: | ||
| apiGroup: backup.kubevirt.io | ||
| kind: VirtualMachineBackupTracker | ||
| name: vmbackuptracker-cirros-test-cont-1 | ||
| status: | ||
| checkpointName: vmbackup-cirros-test-cont-1-2026-01-14_15-40-55 | ||
| conditions: | ||
| - lastProbeTime: null | ||
| lastTransitionTime: "2026-01-14T15:41:04Z" | ||
| reason: 'Completed VirtualMachineBackup, warning: Failed freezing guest filesystem: | ||
| virError(Code=86, Domain=10, Message=''Guest agent is not responding: QEMU guest | ||
| agent is not connected'')' | ||
| status: "False" | ||
| type: Progressing | ||
| - lastProbeTime: null | ||
| lastTransitionTime: "2026-01-14T15:41:04Z" | ||
| reason: 'Completed VirtualMachineBackup, warning: Failed freezing guest filesystem: | ||
| virError(Code=86, Domain=10, Message=''Guest agent is not responding: QEMU guest | ||
| agent is not connected'')' | ||
| status: "True" | ||
| type: Done | ||
| type: Full | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| oc -n cirros-test-cont get virtualmachineBackup vmbackup-cirros-test-cont-1-inc-1 -o yaml | ||
| apiVersion: backup.kubevirt.io/v1alpha1 | ||
| kind: VirtualMachineBackup | ||
| metadata: | ||
| creationTimestamp: "2026-01-14T15:45:26Z" | ||
| finalizers: | ||
| - backup.kubevirt.io/vmbackup-protection | ||
| generation: 1 | ||
| name: vmbackup-cirros-test-cont-1-inc-1 | ||
| namespace: cirros-test-cont | ||
| resourceVersion: "396946" | ||
| uid: e5415790-5fad-4077-8d5a-8ea7003abfec | ||
| spec: | ||
| pvcName: pushbackup-pv | ||
| source: | ||
| apiGroup: backup.kubevirt.io | ||
| kind: VirtualMachineBackupTracker | ||
| name: vmbackuptracker-cirros-test-cont-1 | ||
| status: | ||
| checkpointName: vmbackup-cirros-test-cont-1-inc-1-2026-01-14_15-45-26 | ||
| conditions: | ||
| - lastProbeTime: null | ||
| lastTransitionTime: "2026-01-14T15:45:30Z" | ||
| reason: 'Completed VirtualMachineBackup, warning: Failed freezing guest filesystem: | ||
| virError(Code=86, Domain=10, Message=''Guest agent is not responding: QEMU guest | ||
| agent is not connected'')' | ||
| status: "False" | ||
| type: Progressing | ||
| - lastProbeTime: null | ||
| lastTransitionTime: "2026-01-14T15:45:30Z" | ||
| reason: 'Completed VirtualMachineBackup, warning: Failed freezing guest filesystem: | ||
| virError(Code=86, Domain=10, Message=''Guest agent is not responding: QEMU guest | ||
| agent is not connected'')' | ||
| status: "True" | ||
| type: Done | ||
| type: Incremental |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| apiVersion: backup.kubevirt.io/v1alpha1 | ||
| kind: VirtualMachineBackupTracker | ||
| metadata: | ||
| creationTimestamp: "2026-01-14T15:37:52Z" | ||
| generation: 1 | ||
| name: vmbackuptracker-cirros-test-cont-1 | ||
| namespace: cirros-test-cont | ||
| resourceVersion: "396932" | ||
| uid: 41db29e7-412a-40c5-9a37-c044594febf2 | ||
| spec: | ||
| source: | ||
| apiGroup: kubevirt.io | ||
| kind: VirtualMachine | ||
| name: cirros-test-cont-1 | ||
| status: | ||
| latestCheckpoint: | ||
| creationTime: "2026-01-14T15:45:30Z" | ||
| name: vmbackup-cirros-test-cont-1-inc-1-2026-01-14_15-45-26 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| apiVersion: kubevirt.io/v1 | ||
| kind: VirtualMachine | ||
| metadata: | ||
| annotations: | ||
| generation: 1 | ||
| labels: | ||
| app: cirros-test-cont-1 | ||
| changedBlockTracking: "true" | ||
| name: cirros-test-cont-1 | ||
| namespace: cirros-test-cont | ||
| spec: | ||
| dataVolumeTemplates: | ||
| - metadata: | ||
| annotations: | ||
| cdi.kubevirt.io/storage.deleteAfterCompletion: "false" | ||
| creationTimestamp: null | ||
| name: cirros-test-cont-1-dv | ||
| spec: | ||
| pvc: | ||
| accessModes: | ||
| - ReadWriteOnce | ||
| resources: | ||
| requests: | ||
| storage: 150Mi | ||
| volumeMode: Block | ||
| source: | ||
| registry: | ||
| pullMethod: node | ||
| url: docker://quay.io/kubevirt/cirros-container-disk-demo | ||
| running: true | ||
| template: | ||
| metadata: | ||
| creationTimestamp: null | ||
| name: cirros-test-cont-1 | ||
| spec: | ||
| architecture: amd64 | ||
| domain: | ||
| devices: | ||
| disks: | ||
| - disk: | ||
| bus: virtio | ||
| name: volume0 | ||
| interfaces: | ||
| - masquerade: {} | ||
| name: default | ||
| rng: {} | ||
| machine: | ||
| type: q35 | ||
| resources: | ||
| requests: | ||
| memory: 256M | ||
| networks: | ||
| - name: default | ||
| pod: {} | ||
| terminationGracePeriodSeconds: 0 | ||
| volumes: | ||
| - dataVolume: | ||
| name: cirros-test-cont-1-dv | ||
| name: volume0 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| apiVersion: kubevirt.io/v1 | ||
| kind: VirtualMachine | ||
| metadata: | ||
| annotations: | ||
| generation: 1 | ||
| labels: | ||
| app: cirros-test-cont-2 | ||
| changedBlockTracking: "true" | ||
| name: cirros-test-cont-2 | ||
| namespace: cirros-test-cont | ||
| spec: | ||
| dataVolumeTemplates: | ||
| - metadata: | ||
| annotations: | ||
| cdi.kubevirt.io/storage.deleteAfterCompletion: "false" | ||
| creationTimestamp: null | ||
| name: cirros-test-cont-2-dv | ||
| spec: | ||
| pvc: | ||
| accessModes: | ||
| - ReadWriteOnce | ||
| resources: | ||
| requests: | ||
| storage: 150Mi | ||
| volumeMode: Block | ||
| source: | ||
| registry: | ||
| pullMethod: node | ||
| url: docker://quay.io/kubevirt/cirros-container-disk-demo | ||
| - metadata: | ||
| annotations: | ||
| cdi.kubevirt.io/storage.deleteAfterCompletion: "false" | ||
| name: cirros-test-cont-2-home-dv | ||
| spec: | ||
| pvc: | ||
| accessModes: | ||
| - ReadWriteOnce | ||
| resources: | ||
| requests: | ||
| storage: 150Mi | ||
| volumeMode: Block | ||
| source: | ||
| blank: {} | ||
| running: true | ||
| template: | ||
| metadata: | ||
| creationTimestamp: null | ||
| name: cirros-test-cont-2 | ||
| spec: | ||
| architecture: amd64 | ||
| domain: | ||
| devices: | ||
| disks: | ||
| - disk: | ||
| bus: virtio | ||
| name: volume0 | ||
| - disk: | ||
| bus: virtio | ||
| name: volume1 | ||
| interfaces: | ||
| - masquerade: {} | ||
| name: default | ||
| rng: {} | ||
| machine: | ||
| type: q35 | ||
| resources: | ||
| requests: | ||
| memory: 256M | ||
| networks: | ||
| - name: default | ||
| pod: {} | ||
| terminationGracePeriodSeconds: 0 | ||
| volumes: | ||
| - dataVolume: | ||
| name: cirros-test-cont-2-dv | ||
| name: volume0 | ||
| - dataVolume: | ||
| name: cirros-test-cont-2-home-dv | ||
| name: volume1 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| apiVersion: kubevirt.io/v1 | ||
| kind: VirtualMachine | ||
| metadata: | ||
| annotations: | ||
| generation: 1 | ||
| labels: | ||
| app: cirros-test-cont-3 | ||
| changedBlockTracking: "true" | ||
| name: cirros-test-cont-3 | ||
| namespace: cirros-test-cont | ||
| spec: | ||
| dataVolumeTemplates: | ||
| - metadata: | ||
| annotations: | ||
| cdi.kubevirt.io/storage.deleteAfterCompletion: "false" | ||
| creationTimestamp: null | ||
| name: cirros-test-cont-3-dv | ||
| spec: | ||
| pvc: | ||
| accessModes: | ||
| - ReadWriteOnce | ||
| resources: | ||
| requests: | ||
| storage: 150Mi | ||
| volumeMode: Block | ||
| source: | ||
| registry: | ||
| pullMethod: node | ||
| url: docker://quay.io/kubevirt/cirros-container-disk-demo | ||
| running: true | ||
| template: | ||
| metadata: | ||
| creationTimestamp: null | ||
| name: cirros-test-cont-3 | ||
| spec: | ||
| architecture: amd64 | ||
| domain: | ||
| devices: | ||
| disks: | ||
| - disk: | ||
| bus: virtio | ||
| name: volume0 | ||
| interfaces: | ||
| - masquerade: {} | ||
| name: default | ||
| rng: {} | ||
| machine: | ||
| type: q35 | ||
| resources: | ||
| requests: | ||
| memory: 256M | ||
| networks: | ||
| - name: default | ||
| pod: {} | ||
| terminationGracePeriodSeconds: 0 | ||
| volumes: | ||
| - dataVolume: | ||
| name: cirros-test-cont-3-dv | ||
| name: volume0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: command to set rbd as default is as follows:
oc patch storageclass ocs-storagecluster-ceph-rbd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'