Commit Graph

62 Commits

Author SHA1 Message Date
ae2b7fc016 Reduce debugf frequency to avoid terminal freeze
Upstream-commit: 78d2e2dc373a30eed2bd9f9bb140aa1e153c00f0
Component: engine
2013-11-25 12:06:16 -08:00
b1b08f39e6 Rename dummy in driver.go to vfs
Upstream-commit: 8b0b10b6f9fa152346e62b5dad1f4d430ae0e4d1
Component: engine
2013-11-25 10:28:17 -08:00
a54274e072 Rename dummy driver to vfs
Upstream-commit: cee0a292d0b9afe96a1b4a2c66910f2485af2482
Component: engine
2013-11-25 09:04:04 -08:00
a1d40e81ca Use variable to call functions in devmapper_wrapper + some formatting
Upstream-commit: 79e2b33ede415736f9124089a61f4512c16ddddd
Component: engine
2013-11-22 12:25:37 -08:00
6ea3214afa Merge pull request #62 from shykes/devmapper-unit-tests
Devmapper unit tests
Upstream-commit: 437bdeee5901daa9d73db393767b1c5030c15143
Component: engine
2013-11-21 16:54:50 -08:00
26fbc2e027 Forbid syscalls in tests, add 2 new unit tests
Upstream-commit: bc82940a575944e4686db203356a8a3fb3a75217
Component: engine
2013-11-21 16:32:16 -08:00
50d7661c9b Devmapper: test driver initialization and its interaction with libdevmapper
Upstream-commit: df258f5861794057c303a33c000bf830bc543631
Component: engine
2013-11-21 02:17:03 +00:00
fe06edbbd1 Devmapper: wrap calls to os/exec for easier mocking
Upstream-commit: 60f728b170f550262b22b7905dfb280a405df4a7
Component: engine
2013-11-21 02:16:26 +00:00
840cf279cf devmapper: skip test which are not unit tests
Upstream-commit: 2b7c63b1b5d62515cd876f189dea6e5a5257cd49
Component: engine
2013-11-21 02:12:51 +00:00
2cabd3e833 Add more aufs tests and implement Status
Upstream-commit: 5306053e21cb2a22884d2d281c2cc855cf22fc69
Component: engine
2013-11-20 15:41:37 -08:00
91acb2bfd6 Devmapper: mock all calls to libdevmapper in the unit tests, and deny them by default
Upstream-commit: e2390318bb4cc98886777bdad3fbb860942b8e65
Component: engine
2013-11-20 23:39:02 +00:00
f3353c818b Devmapper: remove deprecated test helpers
Upstream-commit: da514223d1e441e2bab82bf3b30e1a1e0e222ac6
Component: engine
2013-11-20 23:25:27 +00:00
d1d0a44d0f devmapper: fix typo
Upstream-commit: 023ff36704ef5ad8d6fc8d0c07f718fec2ec5ff0
Component: engine
2013-11-20 23:12:19 +00:00
099a15779c Add devmapper struct doc
Upstream-commit: d233894c25e2b1b7124d69bddece94c88fb44452
Component: engine
2013-11-20 14:09:46 -08:00
3bd981cb53 Remove os from devmapper
Upstream-commit: a39bd656622c7dbea534fe34710ed6cb21dd5a90
Component: engine
2013-11-20 13:05:17 -08:00
8380e89daf Remove all syscall calls from devicemapper
Upstream-commit: 5690139785fc2bfaa2f233ed41d5f927a8b28dbf
Component: engine
2013-11-20 12:49:01 -08:00
495a0f953c Mock calls to system functions to facilitate unit testing
Upstream-commit: 92f94f06ae2fb4cddace5b817d6a6e326f3c9b33
Component: engine
2013-11-20 20:05:10 +00:00
f6524ff456 Handle image metadata when drivers are switched
Upstream-commit: 1b28cdc7f977f265d0d8de53e8ec1d773ed54db1
Component: engine
2013-11-20 10:31:51 -08:00
127023e5bb Merge pull request #53 from shykes/improve_cleanup
Improve aufs cleanup and debugging
Upstream-commit: d4ef551d654b6b3b91aed68152789fc2869d83fd
Component: engine
2013-11-19 17:16:36 -08:00
f762c896a3 Merge pull request #39 from crosbymichael/add-driver-flag
Add flag to set default graph driver
Upstream-commit: 76f54f3a28437c445c3ea216d7efd6a9a0ff0d25
Component: engine
2013-11-19 17:16:25 -08:00
32bf4b495f improve aufs cleanup and debugging
Upstream-commit: 43899a77bf638d4baa42291c1988bcb2a75e8ef5
Component: engine
2013-11-19 17:12:37 -08:00
cdf4bbcde9 Merge pull request #41 from alexlarsson/dm-plugin-device-tool
Update docker-device-tool
Upstream-commit: 3e0a5ac48bfc65950b31bc7311d2662816cbe475
Component: engine
2013-11-19 15:38:47 -08:00
e7eec12a53 Fix unit-tests
Upstream-commit: 12e993549df025d072add1a0bcb9bfcc7fe5bdb5
Component: engine
2013-11-19 15:24:14 -08:00
58c3812d34 Merge pull request #43 from alexlarsson/dm-plugin-use-root-subdir
devmapper: Use a "root" subdirectory in the devmapper volume
Upstream-commit: 5a4113140e4a9f00a2f3d97205fe7e146f955b4b
Component: engine
2013-11-19 13:51:04 -08:00
0bc401d12d Merge pull request #44 from crosbymichael/container-migration
Container and Image migration for aufs
Upstream-commit: 85b5062502deed324f3e44ae5c46de1aefe61bbf
Component: engine
2013-11-19 13:47:23 -08:00
a68204dea9 Merge pull request #45 from alexlarsson/dm-plugin-diff-size
Implement fallback for getting the size of a container
Upstream-commit: 4c2624a277195c9a0d6fabca29cf3a769e1e6482
Component: engine
2013-11-19 10:25:31 -08:00
3f203284a9 Merge pull request #47 from alexlarsson/dm-plugin-ummount-when-removing
Devicemapper: Unmount when removing device
Upstream-commit: f4b3b7c0553dbd474e258dc1fa01d7b96c900887
Component: engine
2013-11-19 10:24:44 -08:00
f13b8265b6 devicemapper: Unmount when removing device
Without this the remove will fail due to a busy device.
Upstream-commit: 0ed762f2d2ff613052b81d06509dac06b13fc0c9
Component: engine
2013-11-19 14:40:15 +01:00
5e0d1fa18e dummy driver: Use cp --reflink=auto to copy directories
On systems that supports reflinking (i.e. btrfs) this means the dummy
backend is much faster at copying files and will be sharing file data in
a CoW fashion.

On my (btrfs) system this makes "docker run ubuntu echo hello world" go
from about 3 seconds to about 1 second. Not instant, but clearly better.

cp --reflink=auto is availible since coreutils 7.5 (around 2009), so this
seems pretty ok to rely on.

cp is also better at preserving file metadata than tar, so for instance
it will copy xattrs.
Upstream-commit: 242fd4b3ef32b5a20135d6031040bcf099b5df4e
Component: engine
2013-11-19 13:09:36 +01:00
a07b5796a9 Rename AufsDriver to Driver to be consistent
Upstream-commit: 51a972f38d0b6e2e7a4b27509b58fc7a6e92679f
Component: engine
2013-11-19 03:27:59 -08:00
2a2c0a4cdc Check env var for setting driver in tests
Upstream-commit: aea6001baf0cd0fb20a607e37e4379bf644b28fd
Component: engine
2013-11-19 03:13:22 -08:00
c8cec50adf Add flag to set default graph driver
Remove the env var DOCKER_DRIVER
Upstream-commit: 6dbeed89c061b85551ab638f93282d87de8ab929
Component: engine
2013-11-19 02:37:44 -08:00
99bee9426b Implement fallback for getting the size of a container
This moves Driver.Size() to Differ.DiffSize(), removing the empty
implementations in devmapper and dummy, and renaming the one in aufs.

Then we fall back to a container.Changes() implementation in the non-aufs
case.
Upstream-commit: 5d76681c3d0cbb744205a397420603ce029ce754
Component: engine
2013-11-19 10:36:54 +01:00
339d427535 Move docker-device-tool to contrib
Upstream-commit: 9415c2b1f08ecd168ab5a620a80a5bed34df8adb
Component: engine
2013-11-19 10:03:04 +01:00
90396dc0fc devicemapper tool: Add support for pool resizing
Upstream-commit: a0224e61b48e1dd1378cb955596fba1937e99068
Component: engine
2013-11-19 09:59:13 +01:00
08c42330ce devmapper: Update device-mapper-tool
This makes the device mapper tool work again and adds new features
to get pool status, device status and to list all devices.
Upstream-commit: 80aecc70141f3e7b3138752bf3f0c33b9a273714
Component: engine
2013-11-19 09:44:19 +01:00
8ad4e865dc devmapper: Use a "rootfs" subdirectory in the devmapper volume
We place the actual image/containers in the "rootfs" directory, which
allows us to have other data in the toplevel directory in the mount.

For starters, this means the "lost+found" directory from mkfs will
not always be in your container/image.

Secondly, we can create a file "id" in the toplevel dir which is not
visible from the container. This is useful because it allows us to map
back from the device fs to the container if something goes wrong with
the devicemapper metadata.
Upstream-commit: 00401a30b73d897255b7b99996d7c6a53fe2d4af
Component: engine
2013-11-19 09:29:42 +01:00
9820e0b026 Retry moving dirs on every daemon startup
This will try to move the directories that were
previously symlinked until a full migration is complete.
Upstream-commit: 5ee8e41e43892694f66b4d6d01ed95f4ca2e7cb6
Component: engine
2013-11-18 23:28:45 -08:00
2d65b723cd Add container migration to aufs driver
Upstream-commit: 29f07f854497571db570be79c8df878624f5b41c
Component: engine
2013-11-18 18:39:21 -08:00
3688213d04 Migrate images with parent relationship
Upstream-commit: f88b760809677109a723f25399f738d756f14c13
Component: engine
2013-11-18 16:17:43 -08:00
80e02fbc62 Use tryRelocate to fall back to symlink if rename fails
Upstream-commit: 94e854823f3549eeddaafa24835093966d9aaeeb
Component: engine
2013-11-18 13:16:28 -08:00
9d193b1c00 WIP
Upstream-commit: a518b847511f034d9bfd4166e17f8f0eac61d021
Component: engine
2013-11-15 17:16:30 -08:00
052ebaaf52 Move all drivers to the same subdir graphdriver
Upstream-commit: 035c1442424ee502118cdbf2ee2dddafcc0f01cd
Component: engine
2013-11-15 15:48:24 -08:00
c579e87812 Merge pull request #33 from alexlarsson/dm-plugin-status
Add driver plugin status
Upstream-commit: 7cad77b1e2d0b8af5dcadce0599fc83cbe1970f4
Component: engine
2013-11-15 10:15:59 -08:00
faff941ade Use dummy driver for volumes
It makes no sense to use the aufs or devicemapper drivers for volumes.
The aufs one is perhaps not a big problem, but the devicemapper one
certainly is. It will be unnecessarily using a dm
blockdevice-over-loopback with a limited size base FS.

This just hardcodes the driver to be the dummy, perhaps in the future
we can have other drivers that make sense for the volumes.
Upstream-commit: 10f23a94f6daaf03c684937daea67d10205b4b89
Component: engine
2013-11-15 11:30:28 +01:00
fa730d3073 Print devicemapper status details in docker info
This adds a generic Status call in the Driver api and
implements if for the devicemapper backend.

The status is an array of key/value strings rather than a map so that
we can guarantee some static order of the docker info output.
Upstream-commit: 243843c0787ce2b56c8bbf72a2d4bd7604e84b2e
Component: engine
2013-11-15 11:04:02 +01:00
fb91dc2f0c Show active driver in docker info output
Upstream-commit: 062810caedba973e76a3dd7eb9e45b56511eefc6
Component: engine
2013-11-15 10:24:48 +01:00
084cb15f1a Allow drivers to implement ApplyDiff in Differ interface
Upstream-commit: 5d9723002bc764e2c768e5184994d7949f55fc49
Component: engine
2013-11-11 19:09:57 -08:00
86d455035f Remove Differ and Changer interfaces
Add the methods to the Driver interface
to force the drivers to implement the methods
Upstream-commit: 4d1a537433ede2bbc75b0a4817e8121f9e03fd86
Component: engine
2013-11-11 12:10:53 -08:00
122fd6b9c2 Implement fallback operation for driver.Diff()
This moves the Diff() operation to a separate Differ interface and
implements a fallback that uses the Changes() results to encode
a diff tar.
Upstream-commit: e82f8c1661f3fa18e4dc6ca3aebe4dcc46e8961b
Component: engine
2013-11-11 17:46:07 +01:00