LEP for Azure Blob Storage Backup Store Support
Ref: 1309 Signed-off-by: James Lu <james.lu@suse.com>
This commit is contained in:
parent
e454db847d
commit
7cc3351ff8
@ -0,0 +1,68 @@
|
||||
# Azure Blob Storage Backup Store Support
|
||||
|
||||
## Summary
|
||||
|
||||
Longhorn supports Azure Blob Storage as a backup storage.
|
||||
|
||||
### Related Issues
|
||||
|
||||
https://github.com/longhorn/longhorn/issues/1309
|
||||
|
||||
## Motivation
|
||||
|
||||
### Goals
|
||||
|
||||
- Support Azure Blob Storage as a backup storage.
|
||||
|
||||
## Proposal
|
||||
|
||||
- Introduce Azure Blob Storage client for supporting Azure Blob Storage as a backup storage.
|
||||
|
||||
## User Stories
|
||||
|
||||
Longhorn already supports NFSv4, CIFS and S3 servers as backup storage. However, certain users may still want to be able to utilize Azure blob storage to push/pull backups to/from.
|
||||
|
||||
### User Experience In Details
|
||||
|
||||
- Users can configure a Azure Blob Storage as a backup storage
|
||||
- Set **Backup Target**. The path to a Azure Blob Storage is like
|
||||
|
||||
```bash
|
||||
azblob://${container}@blob.core.windows.net/${path name}
|
||||
```
|
||||
|
||||
- Set **Backup Target Credential Secret**
|
||||
- Create a secret and deploy it
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: azblob-secret
|
||||
namespace: longhorn-system
|
||||
type: Opaque
|
||||
data:
|
||||
AZBLOB_ACCOUNT_NAME: ${AZBLOB_ACCOUNT_NAME}
|
||||
AZBLOB_ACCOUNT_KEY: ${AZBLOB_ACCOUNT_KEY}
|
||||
```
|
||||
|
||||
- Set the setting **Backup Target Credential Secret** to `azblob-secret`
|
||||
|
||||
## Design
|
||||
|
||||
### Implementation Overview
|
||||
|
||||
- longhorn-manager
|
||||
- Introduce the fields `AZBLOB_ACCOUNT_NAME` and `AZBLOB_ACCOUNT_KEY` in credentials. The two fields are passed to engine and replica processes for volume backup and restore operations.
|
||||
- backupstore
|
||||
- Implement Azure Blob Storage register/unregister and basic CRUD functions.
|
||||
|
||||
## Test Plan
|
||||
|
||||
### Integration Tests
|
||||
|
||||
1. Set a Azure Blob Storage as backup storage.
|
||||
2. Create volumes and write some data.
|
||||
3. Back up volumes to the backup storage and the operation should succeed.
|
||||
4. Restore backups and operations should succeed.
|
||||
5. All data is not corrupted.
|
Loading…
Reference in New Issue
Block a user