From 3a28c09efb81a2c8e836d9cc415e3ad0017728f1 Mon Sep 17 00:00:00 2001 From: Cindy Wang Date: Thu, 1 Sep 2016 14:04:55 -0700 Subject: [PATCH] Snapshotting design doc minor edits, changing prefix on annotations update-munge-docs --- docs/design/volume-snapshotting.md | 552 ++++++++++++++++++++++++++++ docs/design/volume-snapshotting.png | Bin 0 -> 49261 bytes 2 files changed, 552 insertions(+) create mode 100644 docs/design/volume-snapshotting.md create mode 100644 docs/design/volume-snapshotting.png diff --git a/docs/design/volume-snapshotting.md b/docs/design/volume-snapshotting.md new file mode 100644 index 0000000000000..641e247def847 --- /dev/null +++ b/docs/design/volume-snapshotting.md @@ -0,0 +1,552 @@ + + + + +WARNING +WARNING +WARNING +WARNING +WARNING + +

PLEASE NOTE: This document applies to the HEAD of the source tree

+ +If you are using a released version of Kubernetes, you should +refer to the docs that go with that version. + +Documentation for other releases can be found at +[releases.k8s.io](http://releases.k8s.io). + +-- + + + + + +Kubernetes Snapshotting Proposal +================================ + +**Authors:** [Cindy Wang](https://github.com/ciwang) + +## Background + +Many storage systems (GCE PD, Amazon EBS, etc.) provide the ability to create "snapshots" of a persistent volumes to protect against data loss. Snapshots can be used in place of a traditional backup system to back up and restore primary and critical data. Snapshots allow for quick data backup (for example, it takes a fraction of a second to create a GCE PD snapshot) and offer fast recovery time objectives (RTOs) and recovery point objectives (RPOs). + +Typical existing backup solutions offer on demand or scheduled snapshots. + +An application developer using a storage may want to create a snapshot before an update or other major event. Kubernetes does not currently offer a standardized snapshot API for creating, listing, deleting, and restoring snapshots on an arbitrary volume. + +Existing solutions for scheduled snapshotting include [cron jobs](https://forums.aws.amazon.com/message.jspa?messageID=570265) and [external storage drivers](http://rancher.com/introducing-convoy-a-docker-volume-driver-for-backup-and-recovery-of-persistent-data/). Some cloud storage volumes can be configured to take automatic snapshots, but this is specified on the volumes themselves. + +## Objectives + +For the first version of snapshotting support in Kubernetes, only on-demand snapshots will be supported. Features listed in the roadmap for future versions are also nongoals. + +* Goal 1: Enable *on-demand* snapshots of Kubernetes persistent volumes by application developers. + + * Nongoal: Enable *automatic* periodic snapshotting for direct volumes in pods. + +* Goal 2: Expose standardized snapshotting operations Create and List in Kubernetes REST API. + + * Nongoal: Support Delete and Restore snapshot operations in API. + +* Goal 3: Implement snapshotting interface for GCE PDs. + + * Nongoal: Implement snapshotting interface for non GCE PD volumes. + +### Feature Roadmap + +Major features, in order of priority (bold features are priorities for v1): + +* **On demand snapshots** + + * **API to create new snapshots and list existing snapshots** + + * API to restore a disk from a snapshot and delete old snapshots + +* Scheduled snapshots + +* Support snapshots for non-cloud storage volumes (i.e. plugins that require actions to be triggered from the node) + +## Requirements + +### Performance + +* Time SLA from issuing a snapshot to completion: + +* The period we are interested is the time between the scheduled snapshot time and the time the snapshot is finishes uploading to its storage location. + +* This should be on the order of a few minutes. + +### Reliability + +* Data corruption + + * Though it is generally recommended to stop application writes before executing the snapshot command, we will not do this for several reasons: + + * GCE and Amazon can create snapshots while the application is running. + + * Stopping application writes cannot be done from the master and varies by application, so doing so will introduce unnecessary complexity and permission issues in the code. + + * Most file systems and server applications are (and should be) able to restore inconsistent snapshots the same way as a disk that underwent an unclean shutdown. + +* Snapshot failure + + * Case: Failure during external process, such as during API call or upload + + * Log error, retry until success (indefinitely) + + * Case: Failure within Kubernetes, such as controller restarts + + * If the master restarts in the middle of a snapshot operation, then the controller does not know whether or not the operation succeeded. However, since the annotation has not been deleted, the controller will retry, which may result in a crash loop if the first operation has not yet completed. This issue will not be addressed in the alpha version, but future versions will need to address it by persisting state. + +## Solution Overview + +Snapshot operations will be triggered by [annotations](http://kubernetes.io/docs/user-guide/annotations/) on PVC API objects. + +* **Create:** + + * Key: create.snapshot.volume.alpha.kubernetes.io + + * Value: [snapshot name] + +* **List:** + + * Key: snapshot.volume.alpha.kubernetes.io/[snapshot name] + + * Value: [snapshot timestamp] + +A new controller responsible solely for snapshot operations will be added to the controllermanager on the master. This controller will watch the API server for new annotations on PVCs. When a create snapshot annotation is added, it will trigger the appropriate snapshot creation logic for the underlying persistent volume type. The list annotation will be populated by the controller and only identify all snapshots created for that PVC by Kubernetes. + +The snapshot operation is a no-op for volume plugins that do not support snapshots via an API call (i.e. non-cloud storage). + +## Detailed Design + +### API + +* Create snapshot + + * Usage: + + * Users create annotation with key "create.snapshot.volume.alpha.kubernetes.io", value does not matter + + * When the annotation is deleted, the operation has succeeded. The snapshot will be listed in the value of snapshot-list. + + * API is declarative and guarantees only that it will begin attempting to create the snapshot once the annotation is created and will complete eventually. + + * PVC control loop in master + + * If annotation on new PVC, search for PV of volume type that implements SnapshottableVolumePlugin. If one is available, use it. Otherwise, reject the claim and post an event to the PV. + + * If annotation on existing PVC, if PV type implements SnapshottableVolumePlugin, continue to SnapshotController logic. Otherwise, delete the annotation and post an event to the PV. + +* List existing snapshots + + * Only displayed as annotations on PVC object. + + * Only lists unique names and timestamps of snapshots taken using the Kubernetes API. + + * Usage: + + * Get the PVC object + + * Snapshots are listed as key-value pairs within the PVC annotations + +### SnapshotController + +![Snapshot Controller Diagram](volume-snapshotting.png?raw=true "Snapshot controller diagram") + +**PVC Informer:** A shared informer that stores (references to) PVC objects, populated by the API server. The annotations on the PVC objects are used to add items to SnapshotRequests. + +**SnapshotRequests:** An in-memory cache of incomplete snapshot requests that is populated by the PVC informer. This maps unique volume IDs to PVC objects. Volumes are added when the create snapshot annotation is added, and deleted when snapshot requests are completed successfully. + +**Reconciler:** Simple loop that triggers asynchronous snapshots via the OperationExecutor. Deletes create snapshot annotation if successful. + +The controller will have a loop that does the following: + +* Fetch State + + * Fetch all PVC objects from the API server. + +* Act + + * Trigger snapshot: + + * Loop through SnapshotRequests and trigger create snapshot logic (see below) for any PVCs that have the create snapshot annotation. + +* Persist State + + * Once a snapshot operation completes, write the snapshot ID/timestamp to the PVC Annotations and delete the create snapshot annotation in the PVC object via the API server. + +Snapshot operations can take a long time to complete, so the primary controller loop should not block on these operations. Instead the reconciler should spawn separate threads for these operations via the operation executor. + +The controller will reject snapshot requests if the unique volume ID already exists in the SnapshotRequests. Concurrent operations on the same volume will be prevented by the operation executor. + +### Create Snapshot Logic + +To create a snapshot: + +* Acquire operation lock for volume so that no other attach or detach operations can be started for volume. + + * Abort if there is already a pending operation for the specified volume (main loop will retry, if needed). + +* Spawn a new thread: + + * Execute the volume-specific logic to create a snapshot of the persistent volume reference by the PVC. + + * For any errors, log the error, and terminate the thread (the main controller will retry as needed). + + * Once a snapshot is created successfully: + + * Make a call to the API server to delete the create snapshot annotation in the PVC object. + + * Make a call to the API server to add the new snapshot ID/timestamp to the PVC Annotations. + +*Brainstorming notes below, read at your own risk!* + +* * * + + +Open questions: + +* What has more value: scheduled snapshotting or exposing snapshotting/backups as a standardized API? + + * It seems that the API route is a bit more feasible in implementation and can also be fully utilized. + + * Can the API call methods on VolumePlugins? Yeah via controller + + * The scheduler gives users functionality that doesn’t already exist, but required adding an entirely new controller + +* Should the list and restore operations be part of v1? + +* Do we call them snapshots or backups? + + * From the SIG email: "The snapshot should not be suggested to be a backup in any documentation, because in practice is is necessary, but not sufficient, when conducting a backup of a stateful application." + +* At what minimum granularity should snapshots be allowed? + +* How do we store information about the most recent snapshot in case the controller restarts? + +* In case of error, do we err on the side of fewer or more snapshots? + +Snapshot Scheduler + +1. PVC API Object + +A new field, backupSchedule, will be added to the PVC API Object. The value of this field must be a cron expression. + +* CRUD operations on snapshot schedules + + * Create: Specify a snapshot within a PVC spec as a [cron expression](http://crontab-generator.org/) + + * The cron expression provides flexibility to decrease the interval between snapshots in future versions + + * Read: Display snapshot schedule to user via kubectl get pvc + + * Update: Do not support changing the snapshot schedule for an existing PVC + + * Delete: Do not support deleting the snapshot schedule for an existing PVC + + * In v1, the snapshot schedule is tied to the lifecycle of the PVC. Update and delete operations are therefore not supported. In future versions, this may be done using kubectl edit pvc/name + +* Validation + + * Cron expressions must have a 0 in the minutes place and use exact, not interval syntax + + * [EBS](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/TakeScheduledSnapshot.html) appears to be able to take snapshots at the granularity of minutes, GCE PD takes at most minutes. Therefore for v1, we ensure that snapshots are taken at most hourly and at exact times (rather than at time intervals). + + * If Kubernetes cannot find a PV that supports snapshotting via its API, reject the PVC and display an error message to the user + + Objective + +Goal: Enable automatic periodic snapshotting (NOTE: A snapshot is a read-only copy of a disk.) for all kubernetes volume plugins. + +Goal: Implement snapshotting interface for GCE PDs. + +Goal: Protect against data loss by allowing users to restore snapshots of their disks. + +Nongoal: Implement snapshotting support on Kubernetes for non GCE PD volumes. + +Nongoal: Use snapshotting to provide additional features such as migration. + + Background + +Many storage systems (GCE PD, Amazon EBS, NFS, etc.) provide the ability to create "snapshots" of a persistent volumes to protect against data loss. Snapshots can be used in place of a traditional backup system to back up and restore primary and critical data. Snapshots allow for quick data backup (for example, it takes a fraction of a second to create a GCE PD snapshot) and offer fast recovery time objectives (RTOs) and recovery point objectives (RPOs). + +Currently, no container orchestration software (i.e. Kubernetes and its competitors) provide snapshot scheduling for application storage. + +Existing solutions for automatic snapshotting include [cron jobs](https://forums.aws.amazon.com/message.jspa?messageID=570265)/shell scripts. Some volumes can be configured to take automatic snapshots, but this is specified on the volumes themselves, not via their associated applications. Snapshotting support gives Kubernetes clear competitive advantage for users who want automatic snapshotting on their volumes, and particularly those who want to configure application-specific schedules. + + what is the value case? Who wants this? What do we enable by implementing this? + +I think it introduces a lot of complexity, so what is the pay off? That should be clear in the document. Do mesos, or swarm or our competition implement this? AWS? Just curious. + +Requirements + +Functionality + +Should this support PVs, direct volumes, or both? + +Should we support deletion? + +Should we support restores? + +Automated schedule -- times or intervals? Before major event? + +Performance + +Snapshots are supposed to provide timely state freezing. What is the SLA from issuing one to it completing? + +* GCE: The snapshot operation takes [a fraction of a second](https://cloudplatform.googleblog.com/2013/10/persistent-disk-backups-using-snapshots.html). If file writes can be paused, they should be paused until the snapshot is created (but can be restarted while it is pending). If file writes cannot be paused, the volume should be unmounted before snapshotting then remounted afterwards. + + * Pending = uploading to GCE + +* EBS is the same, but if the volume is the root device the instance should be stopped before snapshotting + +Reliability + +How do we ascertain that deletions happen when we want them to? + +For the same reasons that Kubernetes should not expose a direct create-snapshot command, it should also not allow users to delete snapshots for arbitrary volumes from Kubernetes. + +We may, however, want to allow users to set a snapshotExpiryPeriod and delete snapshots once they have reached certain age. At this point we do not see an immediate need to implement automatic deletion (re:Saad) but may want to revisit this. + +What happens when the snapshot fails as these are async operations? + +Retry (for some time period? indefinitely?) and log the error + +Other + +What is the UI for seeing the list of snapshots? + +In the case of GCE PD, the snapshots are uploaded to cloud storage. They are visible and manageable from the GCE console. The same applies for other cloud storage providers (i.e. Amazon). Otherwise, users may need to ssh into the device and access a ./snapshot or similar directory. In other words, users will continue to access snapshots in the same way as they have been while creating manual snapshots. + +Overview + +There are several design options for the design of each layer of implementation as follows. + +1. **Public API:** + +Users will specify a snapshotting schedule for particular volumes, which Kubernetes will then execute automatically. There are several options for where this specification can happen. In order from most to least invasive: + + 1. New Volume API object + + 1. Currently, pods, PVs, and PVCs are API objects, but Volume is not. A volume is represented as a field within pod/PV objects and its details are lost upon destruction of its enclosing object. + + 2. We define Volume to be a brand new API object, with a snapshot schedule attribute that specifies the time at which Kubernetes should call out to the volume plugin to create a snapshot. + + 3. The Volume API object will be referenced by the pod/PV API objects. The new Volume object exists entirely independently of the Pod object. + + 4. Pros + + 1. Snapshot schedule conflicts: Since a single Volume API object ideally refers to a single volume, each volume has a single unique snapshot schedule. In the case where the same underlying PD is used by different pods which specify different snapshot schedules, we have a straightforward way of identifying and resolving the conflicts. Instead of using extra space to create duplicate snapshots, we can decide to, for example, use the most frequent snapshot schedule. + + 5. Cons + + 2. Heavyweight codewise; involves changing and touching a lot of existing code. + + 3. Potentially bad UX: How is the Volume API object created? + + 1. By the user independently of the pod (i.e. with something like my-volume.yaml). In order to create 1 pod with a volume, the user needs to create 2 yaml files and run 2 commands. + + 2. When a unique volume is specified in a pod or PV spec. + + 2. Directly in volume definition in the pod/PV object + + 6. When specifying a volume as part of the pod or PV spec, users have the option to include an extra attribute, e.g. ssTimes, to denote the snapshot schedule. + + 7. Pros + + 4. Easy for users to implement and understand + + 8. Cons + + 5. The same underlying PD may be used by different pods. In this case, we need to resolve when and how often to take snapshots. If two pods specify the same snapshot time for the same PD, we should not perform two snapshots at that time. However, there is no unique global identifier for a volume defined in a pod definition--its identifying details are particular to the volume plugin used. + + 6. Replica sets have the same pod spec and support needs to be added so that underlying volume used does not create new snapshots for each member of the set. + + 3. Only in PV object + + 9. When specifying a volume as part of the PV spec, users have the option to include an extra attribute, e.g. ssTimes, to denote the snapshot schedule. + + 10. Pros + + 7. Slightly cleaner than (b). It logically makes more sense to specify snapshotting at the time of the persistent volume definition (as opposed to in the pod definition) since the snapshot schedule is a volume property. + + 11. Cons + + 8. No support for direct volumes + + 9. Only useful for PVs that do not already have automatic snapshotting tools (e.g. Schedule Snapshot Wizard for iSCSI) -- many do and the same can be achieved with a simple cron job + + 10. Same problems as (b) with respect to non-unique resources. We may have 2 PV API objects for the same underlying disk and need to resolve conflicting/duplicated schedules. + + 4. Annotations: key value pairs on API object + + 12. User experience is the same as (b) + + 13. Instead of storing the snapshot attribute on the pod/PV API object, save this information in an annotation. For instance, if we define a pod with two volumes we might have {"ssTimes-vol1": [1,5], “ssTimes-vol2”: [2,17]} where the values are slices of integer values representing UTC hours. + + 14. Pros + + 11. Less invasive to the codebase than (a-c) + + 15. Cons + + 12. Same problems as (b-c) with non-unique resources. The only difference here is the API object representation. + +2. **Business logic:** + + 5. Does this go on the master, node, or both? + + 16. Where the snapshot is stored + + 13. GCE, Amazon: cloud storage + + 14. Others stored on volume itself (gluster) or external drive (iSCSI) + + 17. Requirements for snapshot operation + + 15. Application flush, sync, and fsfreeze before creating snapshot + + 6. Suggestion: + + 18. New SnapshotController on master + + 16. Controller keeps a list of active pods/volumes, schedule for each, last snapshot + + 17. If controller restarts and we miss a snapshot in the process, just skip it + + 3. Alternatively, try creating the snapshot up to the time + retryPeriod (see 5) + + 18. If snapshotting call fails, retry for an amount of time specified in retryPeriod + + 19. Timekeeping mechanism: something similar to [cron](http://stackoverflow.com/questions/3982957/how-does-cron-internally-schedule-jobs); keep list of snapshot times, calculate time until next snapshot, and sleep for that period + + 19. Logic to prepare the disk for snapshotting on node + + 20. Application I/Os need to be flushed and the filesystem should be frozen before snapshotting (on GCE PD) + + 7. Alternatives: login entirely on node + + 20. Problems: + + 21. If pod moves from one node to another + + 4. A different node is in now in charge of snapshotting + + 5. If the volume plugin requires external memory for snapshots, we need to move the existing data + + 22. If the same pod exists on two different nodes, which node is in charge + +3. **Volume plugin interface/internal API:** + + 8. Allow VolumePlugins to implement the SnapshottableVolumePlugin interface (structure similar to AttachableVolumePlugin) + + 9. When logic is triggered for a snapshot by the SnapshotController, the SnapshottableVolumePlugin calls out to volume plugin API to create snapshot + + 10. Similar to volume.attach call + +4. **Other questions:** + + 11. Snapshot period + + 12. Time or period + + 13. What is our SLO around time accuracy? + + 21. Best effort, but no guarantees (depends on time or period) -- if going with time. + + 14. What if we miss a snapshot? + + 22. We will retry (assuming this means that we failed) -- take at the nearest next opportunity + + 15. Will we know when an operation has failed? How do we report that? + + 23. Get response from volume plugin API, log in kubelet log, generate Kube event in success and failure cases + + 16. Will we be responsible for GCing old snapshots? + + 24. Maybe this can be explicit non-goal, in the future can automate garbage collection + + 17. If the pod dies do we continue creating snapshots? + + 18. How to communicate errors (PD doesn’t support snapshotting, time period unsupported) + + 19. Off schedule snapshotting like before an application upgrade + + 20. We may want to take snapshots of encrypted disks. For instance, for GCE PDs, the encryption key must be passed to gcloud to snapshot an encrypted disk. Should Kubernetes handle this? + +Options, pros, cons, suggestion/recommendation + +Example 1b + +During pod creation, a user can specify a pod definition in a yaml file. As part of this specification, users should be able to denote a [list of] times at which an existing snapshot command can be executed on the pod’s associated volume. + +For a simple example, take the definition of a [pod using a GCE PD](http://kubernetes.io/docs/user-guide/volumes/#example-pod-2): + +apiVersion: v1 +kind: Pod +metadata: + name: test-pd +spec: + containers: + - image: gcr.io/google_containers/test-webserver + name: test-container + volumeMounts: + - mountPath: /test-pd + name: test-volume + volumes: + - name: test-volume + # This GCE PD must already exist. + gcePersistentDisk: + pdName: my-data-disk + fsType: ext4 + +Introduce a new field into the volume spec: + +apiVersion: v1 +kind: Pod +metadata: + name: test-pd +spec: + containers: + - image: gcr.io/google_containers/test-webserver + name: test-container + volumeMounts: + - mountPath: /test-pd + name: test-volume + volumes: + - name: test-volume + # This GCE PD must already exist. + gcePersistentDisk: + pdName: my-data-disk + fsType: ext4 + +** ssTimes: ****[1, 5]** + + Caveats + +* Snapshotting should not be exposed to the user through the Kubernetes API (via an operation such as create-snapshot) because + + * this does not provide value to the user and only adds an extra layer of indirection/complexity. + + * ? + + Dependencies + +* Kubernetes + +* Persistent volume snapshot support through API + + * POST https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/disks/example-disk/createSnapshot + + + + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/design/volume-snapshotting.md?pixel)]() + diff --git a/docs/design/volume-snapshotting.png b/docs/design/volume-snapshotting.png new file mode 100644 index 0000000000000000000000000000000000000000..1b1ea7486ea238262966c31ff53c756d89fae98c GIT binary patch literal 49261 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 VUU+Bxb{N^Op7zzh^DbVy`#+=q8U6qO literal 0 HcmV?d00001