Skip to content
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

add doc explaining locations #1050

Merged
merged 1 commit into from
Nov 14, 2018
Merged

Conversation

skriss
Copy link
Contributor

@skriss skriss commented Nov 9, 2018

Signed-off-by: Steve Kriss [email protected]

Still a WIP but dumped as much as I could for today. Is this a useful document? What's missing or unclear?

If we all like this then I'd like to link to it prominently, in the release notes, probably the blog post, etc., so that folks can read it and get the background before diving into upgrading.

cc @Bradamant3 @nrb @wwitzel3 @carlisia @jrnt30

ark backup create full-cluster-backup
```

## Limitations / Caveats
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a helpful item and would be good to throw before the examples to provide context.

An additional limitation that is somewhat implied here but may be useful to call out explicitly is that there are no cross-provider snapshots supported either. When there are multiple VSLs for a given provider that will only be used for the volumes which are compatible.

@skriss
Copy link
Contributor Author

skriss commented Nov 13, 2018

I rearranged based on @jrnt30's feedback, and added some more color to the overview. Still need to fill out some details in the additional use cases section. PTAL if anyone has time!

@skriss skriss mentioned this pull request Nov 13, 2018
10 tasks
@skriss skriss changed the title [WIP] add doc explaining locations add doc explaining locations Nov 13, 2018
Copy link
Contributor

@wwitzel3 wwitzel3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Thank you for writing this up. I wouldn't consider any of my comments blocking. Just took some notes about things I noticed as I read through it.


## Motivations

In Ark prior to v0.10, the configuration for where to store backups & volume snapshots was stored in a `Config` custom resource. The `backupStorageProvider` section captured the place where all Ark backups should be stored. This was defined by a **provider** (e.g. `aws`, `azure`, `gcp`, `minio`, etc.), a **bucket**, and possibly some additional provider-specific settings (e.g. `region`). Similarly, the `persistentVolumeProvider` section captured the place where all persistent volume snapshots taken as part of Ark backups should be stored, and was defined by a **provider** and additional provider-specific settings (e.g. `region`).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder about changing the tense here? Don't have a strong opinion, the paragraph just reads a little weird to me, prior versions still exist and store things that way. The past tense maybe right here, but something about how it read felt off to me.

In Ark versions prior to v0.10, the configuration for backup and volume snapshot locations is stored in a `Config` custom resource.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @wwitzel3 on the tense. Because that version is not deprecated, it would sound more natural to talk about it in the present term because it is still in use.

- Have some Ark backups go to a bucket in an eastern USA region, and others go to a bucket in a western USA region
- For volume providers that support it (e.g. Portworx), have some snapshots be stored locally on the cluster and have others be stored in the cloud

Additionally, as we looked ahead to a major feature on our roadmap, backup replication, we knew that we'd need Ark to be able to support multiple possible storage locations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe reword the very last part? Something like ...

Additionally, as we look ahead to the backup replication feature, we know that we want to support having multiple storage locations.


## Limitations / Caveats

- For volume snapshots, you are still limited by where your provider allows you to create snapshots. For example, AWS and Azure do not allow you to create a volume snapshot in a different region than where the volume is. If you try to take an Ark backup using a volume snapshot location with a different region than where your cluster's volumes are, the backup will fail.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion

Volume snapshots are still limited by where the provider allows you to create snapshots.


- Cross-provider snapshots are not supported. If you have a cluster with more than one type of volume (e.g. EBS and Portworx), but you only have a `VolumeSnapshotLocation` configured for EBS, then Ark will **only** snapshot the EBS volumes.

- If you're using Ark's restic integration, restic data is now stored under a prefix/subdirectory of the main Ark bucket, and will go into the bucket corresponding to the `BackupStorageLocation` selected by the user at backup creation time.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this needs to be qualified.

Restic data is now stored under a prefix/subdirectory of the main Ark bucket, and will go into the bucket corresponding to the `BackupStorageLocation` selected by the user at backup creation time.

Copy link
Contributor

@wwitzel3 wwitzel3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Thank you for writing this up. I wouldn't consider any of my comments blocking. Just took some notes about things I noticed as I read through it.


- For volume snapshots, you are still limited by where your provider allows you to create snapshots. For example, AWS and Azure do not allow you to create a volume snapshot in a different region than where the volume is. If you try to take an Ark backup using a volume snapshot location with a different region than where your cluster's volumes are, the backup will fail.

- Each Ark backup has one `BackupStorageLocation`, and one `VolumeSnapshotLocation` per volume provider. It is not possible (yet) to send a single Ark backup to multiple backup storage locations simultaneously, and similarly for volume snapshots. However, you can always set up multiple scheduled backups that differ only in the storage locations used if redundancy of backups across locations is important.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand the current implication, it may be worth expanding on the and similarly for volume snapshots. to indicate that it is simply not possible to have multiple VSLs for the same provider.

Suggested change
- Each Ark backup has one `BackupStorageLocation`, and one `VolumeSnapshotLocation` per volume provider. It is not possible (yet) to send a single Ark backup to multiple backup storage locations simultaneously, and similarly for volume snapshots. However, you can always set up multiple scheduled backups that differ only in the storage locations used if redundancy of backups across locations is important.
- Each Ark backup has one `BackupStorageLocation`, and one `VolumeSnapshotLocation` per volume provider. It is not possible (yet) to send a single Ark backup to multiple backup storage locations simultaneously, and for volume snapshots you are limited to a single volume snapshot per Provider/Location. You can set up multiple scheduled backups that differ only in the backup storage location used if redundancy of backups across locations is important.


- Each Ark backup has one `BackupStorageLocation`, and one `VolumeSnapshotLocation` per volume provider. It is not possible (yet) to send a single Ark backup to multiple backup storage locations simultaneously, and similarly for volume snapshots. However, you can always set up multiple scheduled backups that differ only in the storage locations used if redundancy of backups across locations is important.

- Cross-provider snapshots are not supported. If you have a cluster with more than one type of volume (e.g. EBS and Portworx), but you only have a `VolumeSnapshotLocation` configured for EBS, then Ark will **only** snapshot the EBS volumes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trying to clear up a bit to my current understanding (which may be off) which is that you can have a backup span multiple VSLs, they are just constrained by the volume's underlying provider.

Suggested change
- Cross-provider snapshots are not supported. If you have a cluster with more than one type of volume (e.g. EBS and Portworx), but you only have a `VolumeSnapshotLocation` configured for EBS, then Ark will **only** snapshot the EBS volumes.
- Cross-provider snapshots are not supported. If you have a cluster with more than one type of volume then Ark will **only** snapshot the volumes for their underlying provider. As an example, if we had a cluster with Portworx and EBS volumes, and a `VolumeStorageLocation` defined for each provider, the EBS volumes would only be snapshot by the EBS `VolumeStorageLocation` and the Portworx would only be snapshot by the Portworx `VolumeStorageLocation`.

During backup creation:

```shell
# Note that since in this example we have two possible volume snapshot locations for the Portworx
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it worth calling out anywhere that the server also has some additional flags now to indicate which of these VSL (provider/location tuple) should be the default?

@skriss
Copy link
Contributor Author

skriss commented Nov 14, 2018

more updates based on feedback.

Copy link
Contributor

@carlisia carlisia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the locations document is going to be super useful.

I made a super minor suggestion, see if it makes sense. Thanks for putting this together, it really is super clear! 👍


## Motivations

In Ark versions prior to v0.10, the configuration for where to store backups & volume snapshots is stored in a `Config` custom resource. The `backupStorageProvider` section captures the place where all Ark backups should be stored. This is defined by a **provider** (e.g. `aws`, `azure`, `gcp`, `minio`, etc.), a **bucket**, and possibly some additional provider-specific settings (e.g. `region`). Similarly, the `persistentVolumeProvider` section captures the place where all persistent volume snapshots taken as part of Ark backups should be stored, and is defined by a **provider** and additional provider-specific settings (e.g. `region`).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In Ark versions prior to v0.10, the configuration for where to store backups & volume snapshots is stored in a `Config` custom resource. The `backupStorageProvider` section captures the place where all Ark backups should be stored. This is defined by a **provider** (e.g. `aws`, `azure`, `gcp`, `minio`, etc.), a **bucket**, and possibly some additional provider-specific settings (e.g. `region`). Similarly, the `persistentVolumeProvider` section captures the place where all persistent volume snapshots taken as part of Ark backups should be stored, and is defined by a **provider** and additional provider-specific settings (e.g. `region`).
In Ark versions prior to v0.10, the configuration for where to store backups & volume snapshots is specified in a `Config` custom resource. The `backupStorageProvider` section captures the place where all Ark backups should be stored. This is defined by a **provider** (e.g. `aws`, `azure`, `gcp`, `minio`, etc.), a **bucket**, and possibly some additional provider-specific settings (e.g. `region`). Similarly, the `persistentVolumeProvider` section captures the place where all persistent volume snapshots taken as part of Ark backups should be stored, and is defined by a **provider** and additional provider-specific settings (e.g. `region`).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super minor change just to avoid repeating the concept of "storage" and perhaps avoid confusion.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, updated!

Signed-off-by: Steve Kriss <[email protected]>
@skriss
Copy link
Contributor Author

skriss commented Nov 14, 2018

@carlisia @wwitzel3 if y'all are happy with this, let's get it merged. we can refine going fwd as we field user questions post-v0.10 release.

@carlisia carlisia merged commit 25590a8 into vmware-tanzu:master Nov 14, 2018
@skriss skriss deleted the explain-locations branch November 14, 2018 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants