-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Atomic: Docker Storage
Managing Docker storage is an important feature for Atomic.
- We want sane best practice and tools
- https://trello.com/c/sBJogVoU/27-new-partitioning-defaults-for-atomic
- http://www.projectatomic.io/docs/docker-storage-recommendation/
- "it is not recommended to use Atomic Host before attaching an external volume"
- Do you need to restart all over if you setup storage wrong?
- Atomic needs better partitioning defaults
- It has now https://lists.projectatomic.io/projectatomic-archives/atomic-devel/2014-September/msg00033.html
- Perhaps by default use a VG which we can add volumes too?
- Can we remove volumes from a VG?
- How do we manage Docker data volumes?
- http://docs.docker.com/userguide/dockervolumes/
Tasks:
- Grow var/lib/docker quota 💥
- Create storage pool 💥
- Detach storage permanently 💥
- Allocate storage from pool 💥
- Detach storage for re-use 💥
- Container quotas
- Monitor storage utilization 💥
Need to build the user stories and workflows that will drive design.
User stories:
Robert works at a small IT shop. For one reason or another, he got tossed the sysadmin hat at the company. They have a server running Atomic, acting as a file server. If the container is running short on space, he needs to know sooner than later and allocate more storage, possibly from a second disk.
Sarah works at a company where they have a machine running Atomic and 5 main services served by containers. The server has 4 disks set up in a pool. The five main services are: Database server, AD server, Print server, Web server, Owncloud. There have been complains that the database data transfer is not fast enough. Sarah identified the bottleneck is not in the network, but in the spinning hard drive. She therefore wants to add a SSD disk to the machine and use that as the storage for the database container instead.
David is a freelance web developer. He's using docker a lot under Atomic to develop different websites for his customers. The default size of 8.5Gb is getting way too small for him. His hard drive has the space, but he needs to allocate it to Atomic.
Workflows::
Robert:
- Robert gets informed that the file server is running low on disk space.
- He tells his colleagues that the file server will be down during lunch since he's going to fix the storage space issue that they are running into. He takes an early lunch himself.
- Back at the office when everyone else have left for lunch he turns off the server and pops in a new hard drive.
- He starts up the server again and logs in to it with Cockpit from his laptop.
- He identifies the new disk. Provisions it and adds it to the container volume group.
- The system informs him that the volume now has a lot more space and most importantly, more free space.
- He tries to access the samba share from his laptop. He confirms it works fine and logs out of Cockpit again.
- When his colleagues comes back from lunch, they ask if all went well with the disk upgrade. He confirms it did.
Sarah:
- Runs a performance test on the database. Identifies that the slowness is in the disk and not the network.
- Sarah orders a new big SSD disk and gets it delivered the next day.
- She pops in the new disk in the machine.
- Opens Cockpit. Identifies and provisions the disk.
- She Migrates the container with the database from the old disk the new disk.
- As a positive side-effect, since the database is now on the SSD disk, there is more space left for the other containers to use.
- She runs a performance test against the database. The numbers are much better now.
David:
- Since the default container volume is too small for all his containers, he needs to allocate more storage to it. He has plenty of space on the hard drive to spare.
- He logs in to Cockpit. The system informs him that he's indeed low on space for containers.
- He stops the containers running and changes the size of the volume from 8,5 to 30 GB.
- The system informs him of the new size and that he now have over 20GB free for containers.
Please give feedback on the above!