docker devicemapper thin pool with stripped volumes
Для скорости докер приложений можно использовать не SSD, а полосатый волум - 2 винчестера с поочерёдной записью / чтением. Возмём за основу оригинальную документацию и слегка изменим создание тонкого пула. vgdisplay
1
2
3
4
5
--- Volume group ---
VG Name userspace
System ID
Format lvm2
...
– я имею одну волум группу, и рекомендую использовать только одну. в ней и создаём волумы:
1
2
lvcreate --wipesignatures y -n thinpool userspace -L 50G --stripes 2
lvcreate --wipesignatures y -n thinpoolmeta userspace -L 3G --stripes 2 # 3GB это с большим запасом, но это полезно
lvdisplay --maps userspace
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
--- Logical volume ---
LV Path /dev/userspace/thinpool
LV Name thinpool
VG Name userspace
LV UUID ipfaNa-Cpzi-z1bO-1oNa-CL7o-xJ5j-gXO4aS
LV Write Access read/write
LV Creation host, time flyPlate, 2018-02-11 19:04:06 +0200
LV Status available
# open 0
LV Size 50.00 GiB
Current LE 1600
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 512
Block device 252:6
--- Segments ---
Logical extents 0 to 1599:
Type striped
Stripes 2
Stripe size 64.00 KiB
Stripe 0:
Physical volume /dev/sdc1
Physical extents 12800 to 13599
Stripe 1:
Physical volume /dev/sdb3
Physical extents 0 to 799
--- Logical volume ---
LV Path /dev/userspace/thinpoolmeta
LV Name thinpoolmeta
VG Name userspace
LV UUID DV82wS-2lt8-8vWd-fo9G-3Hf4-awP7-lFQiJ5
LV Write Access read/write
LV Creation host, time flyPlate, 2018-02-11 19:09:09 +0200
dm.basesize=2G - чем меньше, тем быстрее работает, но тем больше шансов, что будет какой-то контейнер, который не сможет поместиться в 2 гига. В будущем можно будет увеличить (изменить значение в файле, перезагрузить докер), но не уменьшить. "dm.mountopt=discard" - на самом деле тормознутая вещь, но очищает место. Я в итоге ихменил на "dm.mountopt=nodiscard"