Kurma: Secure Geo-distributed Multi-cloud Storage Gateways
Stony Brook University File Systems and Storage Lab (FSL)
Ming Chen and Erez Zadok
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways Ming - - PowerPoint PPT Presentation
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways Ming Chen and Erez Zadok Stony Brook University File Systems and Storage Lab (FSL) Cloud Storage Gateways l Benefits of cloud gateways Public NAS u Combine advantages of both Cloud
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways
Stony Brook University File Systems and Storage Lab (FSL)
Ming Chen and Erez Zadok
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 31 SYSTOR’2019
Cloud Storage Gateways
Public Cloud NAS (NFS)
Consistency Rich Semantics Performance Security Scalability Economy Availability Accessibility
l Benefits of cloud gateways
u Combine advantages of both
clouds and traditional NAS
u High security without relying on
trusted third parties
u Allow clients to use public
clouds using network-attached storage (NAS) protocols but still share across regions
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 32 SYSTOR’2019
Kurma Design Goals
u Use clouds to store only encrypted blocks u Share metadata directly among gateways
u Use multiple public clouds u Each gateway is highly available (ZooKeeper)
u Extensive caching for data and metadata u Asynchronous replication of metadata
u Replication, erasure coding, and secret sharing
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 33 SYSTOR’2019
Region 1 Clients Region 2
metadata metadata metadata
Region 3
Azure S3 Google
Untrusted
Kurma Gateway
Public Clouds
Rackspace storage
Kurma Architecture
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 34 SYSTOR’2019
Region 1 Clients Region 2
metadata metadata metadata
Region 3
Azure S3 Google
Untrusted
Kurma Gateway
Public Clouds
Rackspace storage
Kurma Architecture
Multiple clouds
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 35 SYSTOR’2019
Region 1 Clients Region 2
metadata metadata metadata
Region 3
Azure S3 Google
Untrusted
Kurma Gateway
Public Clouds
Rackspace storage
Kurma Architecture
Multiple clouds Replicate metadata (versions)
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 36 SYSTOR’2019
Region 1 Clients Region 2
metadata metadata metadata
Region 3
Azure S3 Google
Untrusted
Kurma Gateway
Public Clouds
Rackspace storage
Kurma Architecture
Multiple clouds Replicate metadata (versions) Distributed gateways
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 37 SYSTOR’2019
Background
l ZooKeeper: A distributed coordination service
u Coordinate Kurma servers u Store Kurma FS metadata u Execute transactions of metadata changes
l Hedwig: A publish-subscribe system
u Provide guaranteed delivery u Replicate Kurma metadata
l Thrift: A RPC framework
u Define FS metadata format u RPC among Kurma servers
a b znode zpath:/a/b
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 38 SYSTOR’2019
Components
1 2 3
Clients
Azure S3 Google
Public Clouds Other Gateways Kurma Gateway
Rackspace
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 39 SYSTOR’2019
Components
1 2 3
Clients
Azure S3 Google
Public Clouds Other Gateways Kurma Gateway
Rackspace
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 40 SYSTOR’2019
Components
1 2 3
Clients
Azure S3 Google
Public Clouds Other Gateways Kurma Gateway
Rackspace
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 41 SYSTOR’2019
Components
1 2 3
Clients
Azure S3 Google
Public Clouds Other Gateways Kurma Gateway
Rackspace
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 42 SYSTOR’2019
Components
1 2 3
Clients
Azure S3 Google
Public Clouds Other Gateways Kurma Gateway
Rackspace
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 43 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 44 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 45 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 46 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 47 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 48 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 49 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 50 SYSTOR’2019
Metadata Management
l Defined using Thrift l Stored in ZooKeeper l Replicated cross-regions using Hedwig
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 51 SYSTOR’2019
Kurma Security
l Only file data blocks are saved in clouds l Blocks are authenticated and encrypted l Per-file secret key protected by gateway master keys l Detect swap and replay attacks
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 52 SYSTOR’2019
Multi-Cloud Redundancy
Replication Erasure Coding Secret Sharing Parameters (e.g., 4 clouds) n=4 k=3, m=1 n=4, k=3, r=2 Apply to a block n identical 1MB blocks k+m non-identical 1/k MB block n non-identical 1/k MB block Write a block n × 1MB (k+m) × 1/k MB (k+m) × 1/k MB Read a block any 1 cloud any k clouds any k clouds Tolerate failure of clouds n=f+1 m=f n-k=f Write amplifications f+1 (f+1)/k (f+1)/k Example 2 × 1MB blocks 4 × 340KB blocks 4 × 340KB blocks
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 53 SYSTOR’2019
Hybrid Consistency Model
l FIFO consistency across gateways
u Updates made by a single gateway are seen
by other gateways in the order they occur, but updates from different gateways may be seen in any interleaved order
u FS metadata is asynchronously replicated
among all regions using Hedwig which does not order message across gateways
u Resolves inter-gateway conflicts as needed
l Region-level NFS consistency
u Same as traditional NFS u Data freshness in the same region
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 54 SYSTOR’2019
Implementation
l NFS Servers built on top of NFS-Ganesha
u FSAL_PCACHE u FSAL_KURMA
l Gateway Servers
u File-System Module uses Thrift u Metadata Module uses Apache Curator (ZooKeeper) u Security Module uses Java 8 standard cryptographic library u Cloud Module uses cloud Java drivers u Redundancy uses Jerasure and CAONS-RS secret sharing
Components Language LoC Kurma NFS Server C/C++ 15,802 Kurma Gateway Server Java 27,976 Secret Sharing JNI C/C++ 2,480 RPC & Metadata Definition Thrift 668
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 55 SYSTOR’2019
Optimizations
u Batch metadata changes using transactions u Use in-memory cache for hot znodes
u Sort clouds online every N seconds
u Compress file-system metadata u Use large block sizes
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 56 SYSTOR’2019
Evaluation
l Experimental setup
u Two regions with a network RTT of 100ms u Each region contains VMs for
§ 3 Metadata Servers running ZooKeeper and Hedwig § 1 Gateway Server § 1 NFS Server with persistent cache on an Intel SSD § 1 NFS client § Each VM has two cores and 4GB of RAM running Fedora
25 with Linux 4.8.10 kernel
u Baseline: traditional NFS server
§ Runs NFS-Ganesha FSAL_VFS § Uses an Intel SSD formatted with Ext4
l Security tests
u Availability test u Integrity tests: swapping and replay attacks
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 57 SYSTOR’2019
32 64 128 256 512 1024 2048 4096 8192 16KB 64KB 256KB 1MB 4MB
Latency (ms, log2) Cloud Object Size
AWS Azure Google Rackspace
Cloud Read Latency
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 58 SYSTOR’2019
32 64 128 256 512 1024 2048 4096 8192 16KB 64KB 256KB 1MB 4MB
Latency (ms, log2) Cloud Object Size
AWS Azure Google Rackspace
Cloud Read Latency
1.1✕
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 59 SYSTOR’2019
32 64 128 256 512 1024 2048 4096 8192 16KB 64KB 256KB 1MB 4MB
Latency (ms, log2) Cloud Object Size
AWS Azure Google Rackspace
Cloud Read Latency
3.1✕ 1.3✕
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 60 SYSTOR’2019
32 64 128 256 512 1024 2048 4096 8192 16KB 64KB 256KB 1MB 4MB
Latency (ms, log2) Cloud Object Size
AWS Azure Google Rackspace
Cloud Read Latency
43✕
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 61 SYSTOR’2019
32 64 128 256 512 1024 2048 4096 8192 16KB 64KB 256KB 1MB 4MB
Latency (ms, log2) Cloud Object Size
AWS Azure Google Rackspace
Cloud Read Latency
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 62 SYSTOR’2019
Multi-Cloud Redundancy
l N-replica: Save N identical replicas in N clouds l Erasure coding: Reed-Solomon (k = 3, m = 1) l Secret sharing: CAONS-RS (n = 4, k =3, r = 2)
1 2 3 4 5 6 7
Latency (sec) Multi-Cloud Redundancy
1 replica
1.6
2 replicas
1.4
3 replicas
1.7
4 replicas
1.5
Erasure coding
2.2
Secret sharing
2.5
10 20 30 40 50 60 70
Latency (sec) Multi-Cloud Redundancy
1.8 4.9 4.6 57.4 20.8 20.8
(a) Read a 16MB file (b) Write a 16MB file
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 63 SYSTOR’2019
Multi-Cloud Redundancy
l N-replica: Save N identical replicas in N clouds l Erasure coding: Reed-Solomon (k = 3, m = 1) l Secret sharing: CAONS-RS (n = 4, k =3, r = 2)
1 2 3 4 5 6 7
Latency (sec) Multi-Cloud Redundancy
1 replica
1.6
2 replicas
1.4
3 replicas
1.7
4 replicas
1.5
Erasure coding
2.2
Secret sharing
2.5
10 20 30 40 50 60 70
Latency (sec) Multi-Cloud Redundancy
1.8 4.9 4.6 57.4 20.8 20.8
(a) Read a 16MB file (b) Write a 16MB file
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 64 SYSTOR’2019
Multi-Cloud Redundancy
l N-replica: Save N identical replicas in N clouds l Erasure coding: Reed-Solomon (k = 3, m = 1) l Secret sharing: CAONS-RS (n = 4, k =3, r = 2)
1 2 3 4 5 6 7
Latency (sec) Multi-Cloud Redundancy
1 replica
1.6
2 replicas
1.4
3 replicas
1.7
4 replicas
1.5
Erasure coding
2.2
Secret sharing
2.5
10 20 30 40 50 60 70
Latency (sec) Multi-Cloud Redundancy
1.8 4.9 4.6 57.4 20.8 20.8
(a) Read a 16MB file (b) Write a 16MB file
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 65 SYSTOR’2019
Multi-Cloud Redundancy
l N-replica: Save N identical replicas in N clouds l Erasure coding: Reed-Solomon (k = 3, m = 1) l Secret sharing: CAONS-RS (n = 4, k =3, r = 2)
1 2 3 4 5 6 7
Latency (sec) Multi-Cloud Redundancy
1 replica
1.6
2 replicas
1.4
3 replicas
1.7
4 replicas
1.5
Erasure coding
2.2
Secret sharing
2.5
10 20 30 40 50 60 70
Latency (sec) Multi-Cloud Redundancy
1.8 4.9 4.6 57.4 20.8 20.8
(a) Read a 16MB file (b) Write a 16MB file
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 66 SYSTOR’2019
Multi-Cloud Redundancy
l N-replica: Save N identical replicas in N clouds l Erasure coding: Reed-Solomon (k = 3, m = 1) l Secret sharing: CAONS-RS (n = 4, k =3, r = 2)
1 2 3 4 5 6 7
Latency (sec) Multi-Cloud Redundancy
1 replica
1.6
2 replicas
1.4
3 replicas
1.7
4 replicas
1.5
Erasure coding
2.2
Secret sharing
2.5
10 20 30 40 50 60 70
Latency (sec) Multi-Cloud Redundancy
1.8 4.9 4.6 57.4 20.8 20.8
(a) Read a 16MB file (b) Write a 16MB file
64 256 1024 4096 16384 65536 262144 1048576 16KB 64KB 256KB 1MB 4MB
Latency (ms, log2) Cloud Object Size
AWS Azure Google Rackspace
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 67 SYSTOR’2019
Multi-Cloud Redundancy
l N-replica: Save N identical replicas in N clouds l Erasure coding: Reed-Solomon (k = 3, m = 1) l Secret sharing: CAONS-RS (n = 4, k =3, r = 2)
1 2 3 4 5 6 7
Latency (sec) Multi-Cloud Redundancy
1 replica
1.6
2 replicas
1.4
3 replicas
1.7
4 replicas
1.5
Erasure coding
2.2
Secret sharing
2.5
10 20 30 40 50 60 70
Latency (sec) Multi-Cloud Redundancy
1.8 4.9 4.6 57.4 20.8 20.8
(a) Read a 16MB file (b) Write a 16MB file
64 256 1024 4096 16384 65536 262144 1048576 16KB 64KB 256KB 1MB 4MB
Latency (ms, log2) Cloud Object Size
AWS Azure Google Rackspace
3X
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 68 SYSTOR’2019
Cross-Gateway Replication
l Create a file in one gateway and read it
in another gateway
20 40 60 80 100 10 20 30 40 50 60
Replication Latency (sec) Cache Write−Back Wait Time (s)
64K−file 1M−file 16M−file
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 69 SYSTOR’2019
Cross-Gateway Replication
l Create a file in one gateway and read it
in another gateway
20 40 60 80 100 10 20 30 40 50 60
Replication Latency (sec) Cache Write−Back Wait Time (s)
64K−file 1M−file 16M−file
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 70 SYSTOR’2019
Data Operations
l Read and write files with a hot cache
0.1 0.2 0.3 0.4 64K 256K 1M 4M 16M
Latency (sec) File Size (log4)
NFS Read Kurma Read NFS Write Kurma Write
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 71 SYSTOR’2019
Data Operations
l Read and write files with a hot cache
0.1 0.2 0.3 0.4 64K 256K 1M 4M 16M
Latency (sec) File Size (log4)
NFS Read Kurma Read NFS Write Kurma Write
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 72 SYSTOR’2019
Metadata Operations
l Kurma metadata operations are slower than the baseline
u A metadata operation requires changes to multiple ZooKeeper
nodes (znodes). For example, create a file: 1.
create file znode
2.
create keymap znode
3.
update parent directory’s znode
u Each ZooKeeper change incurs multiple network hops.
200 400 600 800 1000 1200 create delete
Throughput (ops/sec) Operation
NFS
1059 519
Kurma
545 278
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 73 SYSTOR’2019
Metadata Operations
l Kurma metadata operations are slower than the baseline
u A metadata operation requires changes to multiple ZooKeeper
nodes (znodes). For example, create a file: 1.
create file znode
2.
create keymap znode
3.
update parent directory’s znode
u Each ZooKeeper change incurs multiple network hops.
200 400 600 800 1000 1200 create delete
Throughput (ops/sec) Operation
NFS
1059 519
Kurma
545 278
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 74 SYSTOR’2019
Metadata Operations
l Kurma metadata operations are slower than the baseline
u A metadata operation requires changes to multiple ZooKeeper
nodes (znodes). For example, create a file: 1.
create file znode
2.
create keymap znode
3.
update parent directory’s znode
u Each ZooKeeper change incurs multiple network hops.
200 400 600 800 1000 1200 create delete
Throughput (ops/sec) Operation
NFS
1059 519
Kurma
545 278
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 75 SYSTOR’2019
Filebench Workloads
500 1000 1500 2000 2500 NFS Server File Server Mail Server
Throughput (ops/sec) Filebench Workload
NFS
610 2196 1606
Kurma
554 1145 950
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 76 SYSTOR’2019
Filebench Workloads
500 1000 1500 2000 2500 NFS Server File Server Mail Server
Throughput (ops/sec) Filebench Workload
NFS
610 2196 1606
Kurma
554 1145 950 91%
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 77 SYSTOR’2019
Filebench Workloads
500 1000 1500 2000 2500 NFS Server File Server Mail Server
Throughput (ops/sec) Filebench Workload
NFS
610 2196 1606
Kurma
554 1145 950 91% 52%
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 78 SYSTOR’2019
Filebench Workloads
500 1000 1500 2000 2500 NFS Server File Server Mail Server
Throughput (ops/sec) Filebench Workload
NFS
610 2196 1606
Kurma
554 1145 950 91% 52% 59%
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 79 SYSTOR’2019
Conclusions
l Kurma: secure distributed multi-cloud gateways
u Protect file data with authenticated encryption u Store file metadata on-premises ZooKeeper u Securely share data across regions u Multi-cloud: replication, erasure coding, secret sharing
l Implementation and evaluation
u Data operations are as fast as traditional NFS u Metadata performance: 51-54% u Filebench workloads: 52-91% u http://github.com/sbu-fsl/kurma
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways 80 SYSTOR’2019
Kurma: Secure Geo-distributed Multi-cloud Storage Gateways