Docker Community Forums

Share and learn in the Docker community.

Configure Docker with the devicemapper - HA design - Docker fails to start


(Jeremeywise) #1

I need help. I have been stuck now for several weeks. I am building out a docker cluster I just need docker to install and start. I have 3 master+proxy nodes 3 workers (with a fourth built to add / remove).

This will be wrapped up as part of a demo environment so others can play with it.

But I have an issue … with the disk side of it. I can’t believe I am the first one to have this kind of design requirement of a high performance and NSPOF cluster that can scale.

The failure comes in the method to create https://docs.docker.com/storage/storagedriver/device-mapper-driver/

I am using 25Gb iSCSI to an Storage array. 1 x 1TB LUN all nodes see and can do read write to… and MPIO working fine;

[root@icpmaster01 ~]# multipath -l
mpathc (3600507680c808191e0000000000000f6) dm-3 IBM ,2145
size=1.0T features=‘1 queue_if_no_path’ hwhandler=‘0’ wp=rw
|-± policy=‘service-time 0’ prio=0 status=active
| - 35:0:0:0 sde 8:64 active undef unknown-± policy=‘service-time 0’ prio=0 status=enabled
- 36:0:0:0 sdf 8:80 active undef unknown mpathb (36005076810810013d00000000000003a) dm-2 IBM ,2145 size=1.0T features='1 queue_if_no_path' hwhandler='0' wp=rw-± policy=‘service-time 0’ prio=0 status=active
|- 33:0:0:0 sdc 8:32 active undef unknown
`- 34:0:0:0 sdd 8:48 active undef unknown
[root@icpmaster01 ~]#

Two parts to this:

  1. How to referance a large shared LUN that all cluster nodes can use, that has a uniform name. In this example I am refering to the common multipath name /dev/mapper/mpatha

Define drive by disk UUID for Docker use on nodes

vi /etc/docker/daemon.json

{

"storage-opts": [

"dm.directlvm_device=/dev/mapper/mpatha",

"dm.thinp_percent=95",

"dm.thinp_metapercent=1",

"dm.thinp_autoextend_threshold=80",

"dm.thinp_autoextend_percent=20",

"dm.directlvm_device_force=false"

]

}

  1. How can I add or use a second disk, such as in this example where I have a second 1TB LUN which is higher performance, or say, I want better performance than 1 lun could give me… Can I add this to the .jason file and how would that work?

Can anyone provide examples. All the examples I google and find are /dev/sdb etc… but that is not functional in NSPOF designs where you need mpio… and so /dev/mapper/mpath#