IVY DOM


 

人生就像一副复杂拼图
每个人总有属於自己的记忆碎片
优质美国空间-老薛主机|IVY DOM|Flowline|

联系我

RSS




十一月 11, 2016

centOS下docker容器自动扩容方案

说明

近期在做容器云,碰到了自动扩容的问题,研究了一下,写了个node脚本供大家使用。

项目已开源在Github:https://github.com/leinue/docker-expansion

使用方法(需安装node):

git clone https://github.com/leinue/docker-expansion

cd docker-expansion && npm install

./extend.js -c [docker container name] -s [expansion size]

extend.js包含两个参数:

  1. -c,容器名称
  2. -s,分配后的容器大小(字节)

方案

注意,此方案只适用文件系统是devicemapper的docker,不支持缩小

使用的命令包括:

  1. dmsetup
  2. xfs_growfs(ubuntu下使用resize2fs)
  3. docker inspect

1、docker的挂载文件在/dev/mapper

$ ls /dev/mapper
...
docker-253:1-1051817-4b5863972719954a77b237ac6999f66e6fffc782734efea61798a5462ead75e0
...
docker-253:1-1051817-4b586397是容器的存储文件名

2、使用dmsetup查看该docker的扇区信息

$ dmsetup table docker-253:1-1051817-4b5863972719954a77b237ac6999f66e6fffc782734efea61798a5462ead75e0
0 20971520 thin 252:0 9

3、写入新的扇区大小(扇区计算方法为:GB x 1024 x 1024 x 1024 / 512)

echo 0 41943040 thin 252:0 9 | dmsetup load docker-253:1-1051817-4b5863972719954a77b237ac6999f66e6fffc782734efea61798a5462ead75e0

4、激活后的容器文件

dmsetup resume docker-253:1-1051817-4b5863972719954a77b237ac6999f66e6fffc782734efea61798a5462ead75e0

5、重新查看扇区信息

$ dmsetup table docker-253:1-1051817-4b5863972719954a77b237ac6999f66e6fffc782734efea61798a5462ead75e0
0 41943040 thin 252:0 9

6、使变更生效

resize2fs docker-253:1-1051817-4b5863972719954a77b237ac6999f66e6fffc782734efea61798a5462ead75e0

觉得过程麻烦的同学直接用上面的脚本就好啦

相关文章

返回
  1. 暂无评论。

  1. 暂无 Trackback

You must be logged in to post a comment.