SlideShare a Scribd company logo
1 of 30
Download to read offline
The Ceph RGW archive zone feature
2
Who?
● Javier
● Computer Engineer and Software Developer
● Cloud and Virtualization team @ Igalia
@javimunhoz
linkedin.com/in/javiermunhoz
3
www.igalia.com
4
This talk
● The new archive zone feature
● The RGW/S3 archive zone in action
5
The new archive zone feature
6
The new archive zone feature
● The new archive zone federation feature enables full
preservation of all objects (including history) in a separate
zone
● Available since Ceph Nautilus (v14.2.0)
7
The new archive zone feature
● Context
● Use Cases
● Requirements
● Open feature
8
The new archive zone feature
● Backup
– “… copy of your current and active data which can be used for
operational recoveries in the event that your data is lost or corrupted in
some way ...”
● Archives
– “… to be used as repositories for data which needs to be kept for a long
period of time but is not necessarily important for operational
activities ...”
● Some comments on …
– location, speed, searchability, duration ...
9
The new archive zone feature
● RGW/S3 Object Versioning
10
The new archive zone feature
● Replication
– Many ways
– Unidirectional vs Bi-directional
– Synchronous vs Asynchronous
– Data collisions
– Latency
– Restore time (“down time”)
11
The new archive zone feature
● Restore time (“down time”)
– hardware repair time + system recovery time
● Recovery time (RTO)
● Data loss (RPO)
source: http://tiny.cc/qjiu4y
12
The new archive zone feature
● The RGW federation model
13
The new archive zone feature
● The RGW multi-site replication
14
The new archive zone feature
● The RGW multi-site replication
– Global object storage
– Namespaces support
– Active-Active support
– Metadata sync is synchronous
– Data sync is asynchronous (co-routines)
– Locally immediately consistent, remote eventually consistent
– Failover / Failback
15
The new archive zone feature
16
The new archive zone feature
● Extending the RGW federation model
– Mechanism vs Policy
● replication framework + plugins
● RGW Sync modules
– Implementation
● archive module + framework modifications
● special care with the handling of empty buckets and the replication of
metadata that required atomic bucket renaming
● the configuration and handling of the archive zone takes place through the
tool 'radosgw-admin' and the endpoint/s associated with the archive zone
● ...
17
The RGW/S3 archive zone in action
18
The RGW/S3 archive zone in action
19
The RGW/S3 archive zone in action
20
The RGW/S3 archive zone in action
# set up archive zone
$ radosgw-admin zone modify --rgw-zone=mad --tier-type=archive
$ radosgw-admin zone modify bcn --sync-from-all=false
$ radosgw-admin period update --commit
http://docs.ceph.com/docs/nautilus/radosgw/multisite/
2
1
21
The RGW/S3 archive zone in action
$ aws --endpoint=$BCN s3api create-bucket 
--bucket test-bucket-1
$ aws --endpoint=$BCN s3api put-object 
--bucket test-bucket-1 
--key test-file-1-in 
--body /tmp/test-1.file
{
"ETag": ""f7d53f25b67715fd4959eb7787de7902""
}
$ aws --endpoint=$BCN s3api put-object 
--bucket test-bucket-1 
--key test-file-1-in 
--body /tmp/test-2.file
{
"ETag": ""931606baaa7a2b4ef61198406f8fc3f4""
}
22
The RGW/S3 archive zone in action
$ aws --endpoint=$BCN s3api list-object-versions 
--bucket test-bucket-1
{
"Versions": [
{
"LastModified": "2019-04-09T20:12:40.354Z",
"VersionId": "null",
"ETag": ""931606baaa7a2b4ef61198406f8fc3f4"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": true,
"Size": 133792
}
]
}
$ aws --endpoint=$MAD s3api list-object-versions 
--bucket test-bucket-1
{
"Versions": [
{
"LastModified": "2019-04-09T20:12:40.354Z",
"VersionId": "fTIW43biJSe6kOZsB8SlUYp7Aesghbz",
"ETag": ""931606baaa7a2b4ef61198406f8fc3f4"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": true,
"Size": 133792
},
{
"LastModified": "2019-04-09T20:12:30.008Z",
"VersionId": "WJdcKZqWvWC2mPDqu4AiwZG2ivYx.QQ",
"ETag": ""f7d53f25b67715fd4959eb7787de7902"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": false,
"Size": 141528
}
]
}
23
The RGW/S3 archive zone in action
$ aws --endpoint=$BCN s3api delete-object 
--bucket test-bucket-1 
--key test-file-1-in
$ aws --endpoint=$BCN s3api delete-bucket 
--bucket test-bucket-1
$ aws --endpoint=$BCN s3api list-buckets
{
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"Buckets": []
}
$ aws --endpoint=$MAD s3api list-buckets
{
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"Buckets": [
{
"CreationDate": "2019-04-09T20:11:59.137Z",
"Name": "test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc"
}
]
}
24
The RGW/S3 archive zone in action
$ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc
{
"Versions": [
{
"LastModified": "2019-04-09T20:12:40.354Z",
"VersionId": "fTIW43biJSe6kOZsB8SlUYp7Aesghbz",
"ETag": ""931606baaa7a2b4ef61198406f8fc3f4"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": true,
"Size": 133792
},
{
"LastModified": "2019-04-09T20:12:30.008Z",
"VersionId": "WJdcKZqWvWC2mPDqu4AiwZG2ivYx.QQ",
"ETag": ""f7d53f25b67715fd4959eb7787de7902"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": false,
"Size": 141528
}
]
}
25
The RGW/S3 archive zone in action
$ aws --endpoint=$BCN s3api create-bucket --bucket test-bucket-1
$ aws --endpoint=$BCN s3api put-object --bucket test-bucket-1 --key test-file-1-in --body /tmp/test-3.file
{
"ETag": ""b89143b082f931507c92d5be5dfae035""
}
$ aws --endpoint=$BCN s3api list-object-versions --bucket test-bucket-1
{
"Versions": [
{
"LastModified": "2019-04-09T20:16:36.381Z",
"VersionId": "null",
"ETag": ""b89143b082f931507c92d5be5dfae035"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": true,
"Size": 63704
}
]
}
26
The RGW/S3 archive zone in action
$ aws --endpoint=$MAD s3api list-buckets
{
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"Buckets": [
{
"CreationDate": "2019-04-09T20:15:51.668Z",
"Name": "test-bucket-1"
},
{
"CreationDate": "2019-04-09T20:11:59.137Z",
"Name": "test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc"
}
]
}
$ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1
{
"Versions": [
{
"LastModified": "2019-04-09T20:16:36.381Z",
"VersionId": "3dP4-A0JSVXoQ8ICrlnhEksKz8DDpTT",
"ETag": ""b89143b082f931507c92d5be5dfae035"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": true,
"Size": 63704
}
]
}
27
The RGW/S3 archive zone in action
$ aws --endpoint=$BCN s3api delete-object --bucket test-bucket-1 --key test-file-1-in
$ aws --endpoint=$BCN s3api list-object-versions --bucket test-bucket-1
$ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1
{
"Versions": [
{
"LastModified": "2019-04-09T20:16:36.381Z",
"VersionId": "3dP4-A0JSVXoQ8ICrlnhEksKz8DDpTT",
"ETag": ""b89143b082f931507c92d5be5dfae035"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": true,
"Size": 63704
}
]
}
28
The RGW/S3 archive zone in action
$ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc
{
"Versions": [
{
"LastModified": "2019-04-09T20:12:40.354Z",
"VersionId": "fTIW43biJSe6kOZsB8SlUYp7Aesghbz",
"ETag": ""931606baaa7a2b4ef61198406f8fc3f4"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": true,
"Size": 133792
},
{
"LastModified": "2019-04-09T20:12:30.008Z",
"VersionId": "WJdcKZqWvWC2mPDqu4AiwZG2ivYx.QQ",
"ETag": ""f7d53f25b67715fd4959eb7787de7902"",
"StorageClass": "STANDARD",
"Key": "test-file-1-in",
"Owner": {
"DisplayName": "Test User",
"ID": "testuser1"
},
"IsLatest": false,
"Size": 141528
}
]
}
29
Community
● ceph.com
● ceph.com/community
● ceph.com/get-involved
Cephalocon 2018 APAC @ceph
Thanks!
Q+A
@javimunhoz

More Related Content

What's hot

Prometheus on NKS
Prometheus on NKSPrometheus on NKS
Prometheus on NKSJo Hoon
 
Enable Authentication and Authorization with Azure Active Directory and Sprin...
Enable Authentication and Authorization with Azure Active Directory and Sprin...Enable Authentication and Authorization with Azure Active Directory and Sprin...
Enable Authentication and Authorization with Azure Active Directory and Sprin...VMware Tanzu
 
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...Christian Posta
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQLI Goo Lee
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisWeaveworks
 
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...NETWAYS
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLOlivier DASINI
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesSreenivas Makam
 
NATS vs HTTP
NATS vs HTTPNATS vs HTTP
NATS vs HTTPApcera
 
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...Amazon Web Services Korea
 
OpenStack Backup, Restore, DR (Freezer)
OpenStack Backup, Restore, DR (Freezer)OpenStack Backup, Restore, DR (Freezer)
OpenStack Backup, Restore, DR (Freezer)Saad Zaher
 
Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...clintongormley
 
Optimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceOptimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceMariaDB plc
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubLuca Milanesio
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기NAVER D2
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflixaspyker
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveLINE Corporation
 

What's hot (20)

Prometheus on NKS
Prometheus on NKSPrometheus on NKS
Prometheus on NKS
 
Enable Authentication and Authorization with Azure Active Directory and Sprin...
Enable Authentication and Authorization with Azure Active Directory and Sprin...Enable Authentication and Authorization with Azure Active Directory and Sprin...
Enable Authentication and Authorization with Azure Active Directory and Sprin...
 
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
 
Databases in the Cloud
Databases in the CloudDatabases in the Cloud
Databases in the Cloud
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan Budris
 
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
OSMC 2022 | VictoriaMetrics: scaling to 100 million metrics per second by Ali...
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
 
NATS vs HTTP
NATS vs HTTPNATS vs HTTP
NATS vs HTTP
 
Bases de Datos en Kubernetes
Bases de Datos en KubernetesBases de Datos en Kubernetes
Bases de Datos en Kubernetes
 
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
 
Masterclass - Redshift
Masterclass - RedshiftMasterclass - Redshift
Masterclass - Redshift
 
OpenStack Backup, Restore, DR (Freezer)
OpenStack Backup, Restore, DR (Freezer)OpenStack Backup, Restore, DR (Freezer)
OpenStack Backup, Restore, DR (Freezer)
 
Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...Elasticsearch Query DSL - Not just for wizards...
Elasticsearch Query DSL - Not just for wizards...
 
Optimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceOptimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performance
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHub
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
 

Similar to The Ceph RGW archive zone feature (Ceph Days 2019)

Pdf tech deep dive 42 paris
Pdf tech deep dive 42 parisPdf tech deep dive 42 paris
Pdf tech deep dive 42 parisLaure Vergeron
 
Distributed Storage and Compute With Ceph's librados (Vault 2015)
Distributed Storage and Compute With Ceph's librados (Vault 2015)Distributed Storage and Compute With Ceph's librados (Vault 2015)
Distributed Storage and Compute With Ceph's librados (Vault 2015)Sage Weil
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleWhere is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleRafał Leszko
 
Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...
Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...
Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...DataStax
 
Rook - cloud-native storage
Rook - cloud-native storageRook - cloud-native storage
Rook - cloud-native storageKarol Chrapek
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introductionkanedafromparis
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewLei (Harry) Zhang
 
Airflow at lyft
Airflow at lyftAirflow at lyft
Airflow at lyftTao Feng
 
gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”Ruggero Citton
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephSage Weil
 
Elasticsearch on Kubernetes
Elasticsearch on KubernetesElasticsearch on Kubernetes
Elasticsearch on KubernetesJoerg Henning
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephSage Weil
 
Ceph Tech Talk: Bluestore
Ceph Tech Talk: BluestoreCeph Tech Talk: Bluestore
Ceph Tech Talk: BluestoreCeph Community
 
Introduction to rook
Introduction to rookIntroduction to rook
Introduction to rookRohan Gupta
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINXKevin Jones
 
Dok Talks #124 - Intro to Druid on Kubernetes
Dok Talks #124 - Intro to Druid on KubernetesDok Talks #124 - Intro to Druid on Kubernetes
Dok Talks #124 - Intro to Druid on KubernetesDoKC
 
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH Ceph Community
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINXNGINX, Inc.
 
Hosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRHosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRWoonsan Ko
 
Quick-and-Easy Deployment of a Ceph Storage Cluster
Quick-and-Easy Deployment of a Ceph Storage ClusterQuick-and-Easy Deployment of a Ceph Storage Cluster
Quick-and-Easy Deployment of a Ceph Storage ClusterPatrick Quairoli
 

Similar to The Ceph RGW archive zone feature (Ceph Days 2019) (20)

Pdf tech deep dive 42 paris
Pdf tech deep dive 42 parisPdf tech deep dive 42 paris
Pdf tech deep dive 42 paris
 
Distributed Storage and Compute With Ceph's librados (Vault 2015)
Distributed Storage and Compute With Ceph's librados (Vault 2015)Distributed Storage and Compute With Ceph's librados (Vault 2015)
Distributed Storage and Compute With Ceph's librados (Vault 2015)
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleWhere is my cache architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by example
 
Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...
Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...
Lessons Learned on Java Tuning for Our Cassandra Clusters (Carlos Monroy, Kne...
 
Rook - cloud-native storage
Rook - cloud-native storageRook - cloud-native storage
Rook - cloud-native storage
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
Kubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical ViewKubernetes Walk Through from Technical View
Kubernetes Walk Through from Technical View
 
Airflow at lyft
Airflow at lyftAirflow at lyft
Airflow at lyft
 
gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”gDBClone - Database Clone “onecommand Automation Tool”
gDBClone - Database Clone “onecommand Automation Tool”
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for Ceph
 
Elasticsearch on Kubernetes
Elasticsearch on KubernetesElasticsearch on Kubernetes
Elasticsearch on Kubernetes
 
BlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for CephBlueStore: a new, faster storage backend for Ceph
BlueStore: a new, faster storage backend for Ceph
 
Ceph Tech Talk: Bluestore
Ceph Tech Talk: BluestoreCeph Tech Talk: Bluestore
Ceph Tech Talk: Bluestore
 
Introduction to rook
Introduction to rookIntroduction to rook
Introduction to rook
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
Dok Talks #124 - Intro to Druid on Kubernetes
Dok Talks #124 - Intro to Druid on KubernetesDok Talks #124 - Intro to Druid on Kubernetes
Dok Talks #124 - Intro to Druid on Kubernetes
 
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH CEPH DAY BERLIN - WHAT'S NEW IN CEPH
CEPH DAY BERLIN - WHAT'S NEW IN CEPH
 
High Availability Content Caching with NGINX
High Availability Content Caching with NGINXHigh Availability Content Caching with NGINX
High Availability Content Caching with NGINX
 
Hosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCRHosting huge amount of binaries in JCR
Hosting huge amount of binaries in JCR
 
Quick-and-Easy Deployment of a Ceph Storage Cluster
Quick-and-Easy Deployment of a Ceph Storage ClusterQuick-and-Easy Deployment of a Ceph Storage Cluster
Quick-and-Easy Deployment of a Ceph Storage Cluster
 

More from Igalia

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEIgalia
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesIgalia
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceIgalia
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfIgalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JITIgalia
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!Igalia
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerIgalia
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in MesaIgalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIgalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera LinuxIgalia
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVMIgalia
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsIgalia
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesIgalia
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSIgalia
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webIgalia
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersIgalia
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...Igalia
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on RaspberryIgalia
 

More from Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

The Ceph RGW archive zone feature (Ceph Days 2019)

  • 1. The Ceph RGW archive zone feature
  • 2. 2 Who? ● Javier ● Computer Engineer and Software Developer ● Cloud and Virtualization team @ Igalia @javimunhoz linkedin.com/in/javiermunhoz
  • 4. 4 This talk ● The new archive zone feature ● The RGW/S3 archive zone in action
  • 5. 5 The new archive zone feature
  • 6. 6 The new archive zone feature ● The new archive zone federation feature enables full preservation of all objects (including history) in a separate zone ● Available since Ceph Nautilus (v14.2.0)
  • 7. 7 The new archive zone feature ● Context ● Use Cases ● Requirements ● Open feature
  • 8. 8 The new archive zone feature ● Backup – “… copy of your current and active data which can be used for operational recoveries in the event that your data is lost or corrupted in some way ...” ● Archives – “… to be used as repositories for data which needs to be kept for a long period of time but is not necessarily important for operational activities ...” ● Some comments on … – location, speed, searchability, duration ...
  • 9. 9 The new archive zone feature ● RGW/S3 Object Versioning
  • 10. 10 The new archive zone feature ● Replication – Many ways – Unidirectional vs Bi-directional – Synchronous vs Asynchronous – Data collisions – Latency – Restore time (“down time”)
  • 11. 11 The new archive zone feature ● Restore time (“down time”) – hardware repair time + system recovery time ● Recovery time (RTO) ● Data loss (RPO) source: http://tiny.cc/qjiu4y
  • 12. 12 The new archive zone feature ● The RGW federation model
  • 13. 13 The new archive zone feature ● The RGW multi-site replication
  • 14. 14 The new archive zone feature ● The RGW multi-site replication – Global object storage – Namespaces support – Active-Active support – Metadata sync is synchronous – Data sync is asynchronous (co-routines) – Locally immediately consistent, remote eventually consistent – Failover / Failback
  • 15. 15 The new archive zone feature
  • 16. 16 The new archive zone feature ● Extending the RGW federation model – Mechanism vs Policy ● replication framework + plugins ● RGW Sync modules – Implementation ● archive module + framework modifications ● special care with the handling of empty buckets and the replication of metadata that required atomic bucket renaming ● the configuration and handling of the archive zone takes place through the tool 'radosgw-admin' and the endpoint/s associated with the archive zone ● ...
  • 17. 17 The RGW/S3 archive zone in action
  • 18. 18 The RGW/S3 archive zone in action
  • 19. 19 The RGW/S3 archive zone in action
  • 20. 20 The RGW/S3 archive zone in action # set up archive zone $ radosgw-admin zone modify --rgw-zone=mad --tier-type=archive $ radosgw-admin zone modify bcn --sync-from-all=false $ radosgw-admin period update --commit http://docs.ceph.com/docs/nautilus/radosgw/multisite/ 2 1
  • 21. 21 The RGW/S3 archive zone in action $ aws --endpoint=$BCN s3api create-bucket --bucket test-bucket-1 $ aws --endpoint=$BCN s3api put-object --bucket test-bucket-1 --key test-file-1-in --body /tmp/test-1.file { "ETag": ""f7d53f25b67715fd4959eb7787de7902"" } $ aws --endpoint=$BCN s3api put-object --bucket test-bucket-1 --key test-file-1-in --body /tmp/test-2.file { "ETag": ""931606baaa7a2b4ef61198406f8fc3f4"" }
  • 22. 22 The RGW/S3 archive zone in action $ aws --endpoint=$BCN s3api list-object-versions --bucket test-bucket-1 { "Versions": [ { "LastModified": "2019-04-09T20:12:40.354Z", "VersionId": "null", "ETag": ""931606baaa7a2b4ef61198406f8fc3f4"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": true, "Size": 133792 } ] } $ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1 { "Versions": [ { "LastModified": "2019-04-09T20:12:40.354Z", "VersionId": "fTIW43biJSe6kOZsB8SlUYp7Aesghbz", "ETag": ""931606baaa7a2b4ef61198406f8fc3f4"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": true, "Size": 133792 }, { "LastModified": "2019-04-09T20:12:30.008Z", "VersionId": "WJdcKZqWvWC2mPDqu4AiwZG2ivYx.QQ", "ETag": ""f7d53f25b67715fd4959eb7787de7902"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": false, "Size": 141528 } ] }
  • 23. 23 The RGW/S3 archive zone in action $ aws --endpoint=$BCN s3api delete-object --bucket test-bucket-1 --key test-file-1-in $ aws --endpoint=$BCN s3api delete-bucket --bucket test-bucket-1 $ aws --endpoint=$BCN s3api list-buckets { "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "Buckets": [] } $ aws --endpoint=$MAD s3api list-buckets { "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "Buckets": [ { "CreationDate": "2019-04-09T20:11:59.137Z", "Name": "test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc" } ] }
  • 24. 24 The RGW/S3 archive zone in action $ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc { "Versions": [ { "LastModified": "2019-04-09T20:12:40.354Z", "VersionId": "fTIW43biJSe6kOZsB8SlUYp7Aesghbz", "ETag": ""931606baaa7a2b4ef61198406f8fc3f4"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": true, "Size": 133792 }, { "LastModified": "2019-04-09T20:12:30.008Z", "VersionId": "WJdcKZqWvWC2mPDqu4AiwZG2ivYx.QQ", "ETag": ""f7d53f25b67715fd4959eb7787de7902"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": false, "Size": 141528 } ] }
  • 25. 25 The RGW/S3 archive zone in action $ aws --endpoint=$BCN s3api create-bucket --bucket test-bucket-1 $ aws --endpoint=$BCN s3api put-object --bucket test-bucket-1 --key test-file-1-in --body /tmp/test-3.file { "ETag": ""b89143b082f931507c92d5be5dfae035"" } $ aws --endpoint=$BCN s3api list-object-versions --bucket test-bucket-1 { "Versions": [ { "LastModified": "2019-04-09T20:16:36.381Z", "VersionId": "null", "ETag": ""b89143b082f931507c92d5be5dfae035"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": true, "Size": 63704 } ] }
  • 26. 26 The RGW/S3 archive zone in action $ aws --endpoint=$MAD s3api list-buckets { "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "Buckets": [ { "CreationDate": "2019-04-09T20:15:51.668Z", "Name": "test-bucket-1" }, { "CreationDate": "2019-04-09T20:11:59.137Z", "Name": "test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc" } ] } $ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1 { "Versions": [ { "LastModified": "2019-04-09T20:16:36.381Z", "VersionId": "3dP4-A0JSVXoQ8ICrlnhEksKz8DDpTT", "ETag": ""b89143b082f931507c92d5be5dfae035"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": true, "Size": 63704 } ] }
  • 27. 27 The RGW/S3 archive zone in action $ aws --endpoint=$BCN s3api delete-object --bucket test-bucket-1 --key test-file-1-in $ aws --endpoint=$BCN s3api list-object-versions --bucket test-bucket-1 $ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1 { "Versions": [ { "LastModified": "2019-04-09T20:16:36.381Z", "VersionId": "3dP4-A0JSVXoQ8ICrlnhEksKz8DDpTT", "ETag": ""b89143b082f931507c92d5be5dfae035"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": true, "Size": 63704 } ] }
  • 28. 28 The RGW/S3 archive zone in action $ aws --endpoint=$MAD s3api list-object-versions --bucket test-bucket-1-deleted-d5d4071b41e69cd7bbf6207037b416dc { "Versions": [ { "LastModified": "2019-04-09T20:12:40.354Z", "VersionId": "fTIW43biJSe6kOZsB8SlUYp7Aesghbz", "ETag": ""931606baaa7a2b4ef61198406f8fc3f4"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": true, "Size": 133792 }, { "LastModified": "2019-04-09T20:12:30.008Z", "VersionId": "WJdcKZqWvWC2mPDqu4AiwZG2ivYx.QQ", "ETag": ""f7d53f25b67715fd4959eb7787de7902"", "StorageClass": "STANDARD", "Key": "test-file-1-in", "Owner": { "DisplayName": "Test User", "ID": "testuser1" }, "IsLatest": false, "Size": 141528 } ] }
  • 29. 29 Community ● ceph.com ● ceph.com/community ● ceph.com/get-involved Cephalocon 2018 APAC @ceph