Right size storage
Another example of the great community shared by the libStorage project, the talented people at FittedCloud have provided a driver for their EBS optimizer.
The FittedCloud EBS Optimizer driver registers a storage driver named
fittedcloud with the libStorage service registry and provides the ability to
connect and manage thin-provisioned EBS volumes for EC2 instances.
This version of the FittedCloud driver only supports configurations where client and server are on the same host. The libStorage server must be running on each node along side with the FittedCloud Agent.
This version of the FittedCloud driver does not support co-existing with the ebs driver on the same host. As a result it also doesn't support optimizing existing EBS volumes. See the Examples section below for a running example.
The FittedCloud driver does not yet support snapshots or tags.
This driver has the following requirements:
- AWS account
- VPC - EBS can be accessed within VPC
- AWS Credentials
- FittedCloud Agent software
Before starting, please make sure to register as a user by visiting the FittedCloud customer website. Once an account is activated it will be assigned a user ID, which can be found on the Settings page after logging into the web site.
The following commands will download and install the latest FittedCloud Agent
software. The flags
-o S -m enable new thin volumes to be created via the
docker command instead of optimizing existing EBS volumes.
Please replace the
<User ID> with a FittedCloud user ID.
$ curl -skSL 'https://customer.fittedcloud.com/downloadsoftware?ver=latest' \ -o fcagent.run $ sudo bash ./fcagent.run -- -o S -m -d <User ID>
Please refer to FittedCloud website for more details.
The following is an example with all possible fields configured. For a running example see the Examples section.
ebs: accessKey: XXXXXXXXXX secretKey: XXXXXXXXXX kmsKeyID: abcd1234-a123-456a-a12b-a123b4cd56ef statusMaxAttempts: 10 statusInitialDelay: 100ms statusTimeout: 2m
- FittedCloud driver shares the ebs driver's configuration parameters.
secretKeyconfiguration parameters are optional and should be used when explicit AWS credentials configuration needs to be provided. FittedCloud driver uses official golang AWS SDK library and supports all other ways of providing access credentials, like environment variables or instance profile IAM permissions.
- If the
kmsKeyIDfield is specified it will be used as the encryption key for all volumes that are created with a truthy encryption request field.
statusMaxAttemptsis the number of times the status of a volume will be queried before giving up when waiting on a status change
statusInitialDelayspecifies a time duration used to wait when polling volume status. This duration is used in exponential backoff, such that the first wait will be for this duration, the second for 2x, the third for 4x, etc. The units of the duration must be given (e.g. "100ms" or "1s").
statusTimeoutis a maximum length of time that polling for volume status can occur. This serves as a backstop against a stuck request of malfunctioning API that never returns.
The following example illustrates how to configured the FittedCloud driver:
libstorage: # The libstorage.service property directs a libStorage client to direct its # requests to the given service by default. It is not used by the server. service: fittedcloud server: services: fittedcloud: driver: fittedcloud ebs: accessKey: XXXXXXXXXX secretKey: XXXXXXXXXX
Additional information on configuring the FittedCloud driver may be found at this location.