Uploaded by vladimir.petrov

CloudStack Volume encryption

advertisement
Apache CloudStack
Volume encryption
Vladimir Petrov
About me

Living in Sofia, father of two boys

Software engineer in test @ShapeBlue

20+ years professional experience in the IT field

Almost 3 years working with CloudStack on a daily basis
Agenda

Introduction

Requirements

Details

Supported and unsupported operations

Hosts preparation

Service and disk offerings

Q&A
Introduction

Coming in the next ACS LTS release 4.18

Created by Marcus Sorensen from Apple and Suresh Anaparti

Transparent to the guest OS

Both root and data volumes can be encrypted

Two parts implementation:


API/UI changes

Storage driver
First implementation phase
Requirements

Currently only KVM hypervisor is supported

QEMU-EV v2.6+ is required

Supported storage types:

Local storage

NFS

PowerFlex/ScaleIO

Shared mountpoint
Details





Simplifies the process of keys management
The passphrase is stored in the database, encrypted with the
CloudStack’s standard configured DB encryption.
qcow2 based storage – qemu-img is used to setup the file with
LUKS encryption
Block based storages (currently just ScaleIO) – cryptsetup utility
is used to format the block device as LUKS for data disks but
qemu-img is used for template copy
The used cipher is XTS-AES 256 which is a leading industry
standard
VM operations

Supported VM operations:

Start/Stop

Reboot

Reinstall

Expunge/recover

Scale up

Migrate running instance to another host
VM operations

Unsupported VM operations:

VM Snapshot

Volume snapshot

Recurring snapshot
Volume operations

Supported volume operations:

Attach/detach encrypted volume

Volume snapshot (stopped VM)

Revert to snapshot

Resize

Delete
Volume operations

Unsupported volume operations:

Download volume

Migrate volume

Recurring snapshots

Create template from encrypted volume snapshot

Create volume from encrypted volume snapshot
Hosts preparation

Install qemu-ev:
#yum install -y qemu-kvm-common-ev-2.10.0 qemu-kvm-
ev-2.10.0 qemu-img-ev-2.10.0 qemu-kvm-tools-ev-2.10.0

Install cryptsetup:
#yum install cryptsetup

Optional:
rngd (EL) or rng-tools (Ubuntu)
package for better entropy

Restart the agent
Host encryption support

Verify the host is properly configured
Service offerings

Adding encryption to service offerings
Disk offerings

Adding encryption to disk offerings
Future?

Add support for other hypervisors

Support more VM/volume operations

More storage types support – CEPH, Linbit, StorPool?

Show volume encryption status

Support LUKS2 encryption
Q&A
Questions?
Thank you!


Email: vladimir.petrov@shapeblue.com
LinkedIn: https://www.linkedin.com/in/vladimir/
Download