Docker生产环境配置——设置direct-lvm模式

CentOS/RHEL 的用户需要注意的事项

来源:https://yeasy.gitbooks.io/docker_practice/image/rm.html

在 Ubuntu/Debian 上有 UnionFS 可以使用,如 aufs 或者 overlay2,而 CentOS 和 RHEL 的内核中没有相关驱动。因此对于这类系统,一般使用 devicemapper 驱动利用 LVM 的一些机制来模拟分层存储。这样的做法除了性能比较差外,稳定性一般也不好,而且配置相对复杂。Docker 安装在 CentOS/RHEL 上后,会默认选择 devicemapper,但是为了简化配置,其 devicemapper 是跑在一个稀疏文件模拟的块设备上,也被称为 loop-lvm。这样的选择是因为不需要额外配置就可以运行 Docker,这是自动配置唯一能做到的事情。但是 loop-lvm 的做法非常不好,其稳定性、性能更差,无论是日志还是 docker info 中都会看到警告信息。官方文档有明确的文章讲解了如何配置块设备给 devicemapper 驱动做存储层的做法,这类做法也被称为配置 direct-lvm

除了前面说到的问题外,devicemapper + loop-lvm 还有一个缺陷,因为它是稀疏文件,所以它会不断增长。用户在使用过程中会注意到 /var/lib/docker/devicemapper/devicemapper/data 不断增长,而且无法控制。很多人会希望删除镜像或者可以解决这个问题,结果发现效果并不明显。原因就是这个稀疏文件的空间释放后基本不进行垃圾回收的问题。因此往往会出现即使删除了文件内容,空间却无法回收,随着使用这个稀疏文件一直在不断增长。

所以对于 CentOS/RHEL 的用户来说,在没有办法使用 UnionFS 的情况下,一定要配置 direct-lvm 给 devicemapper,无论是为了性能、稳定性还是空间利用率。

或许有人注意到了 CentOS 7 中存在被 backports 回来的 overlay 驱动,不过 CentOS 里的这个驱动达不到生产环境使用的稳定程度,所以不推荐使用。

以下是配置direct-lvm模式的方法

https://docs.docker.com/storage/storagedriver/device-mapper-driver/#configure-loop-lvm-mode-for-testing

原文地址:https://www.cnblogs.com/lzyang121/p/10082224.html

时间: 2024-09-29 09:36:26

Docker生产环境配置——设置direct-lvm模式的相关文章

虚拟机上Centos6.5/6.6系统配置动态方式上网及生产环境配置公网的方式

在VMware Workstation虚拟机上安装Centos系统,当系统无法上网的时候,我们可以通过常用配置的方式,如下: TYPE=Ethernet DEVICE=eth0  #网络虚拟接口名HWADDR=00:0C:29:60:FF:8B  #网卡mac地址ONBOOT=yes  #启动系统时就激活 NM_CONTROLLED=yes  #实时生效,修改后无需要重启网卡立即生效. BOOTPROTO=dhcp #使用自动分配IP地址 注意:虚拟机网络连接方式选择NAT 当我们使用服务器上安

SQL Server 黑盒跟踪 -- 如何在生产环境配置?

SQL Server 黑盒跟踪 -- 如何在生产环境配置? 如果遇到间歇性故障,为了充分利用黑盒跟踪,就要确保当服务器运行时它也一直出于运行状态(包括计划中的或计划外重启之后).为达到这个要求,可以将黑盒跟踪设置为在SQL Server启动时自动启动.首先,将跟踪定义封装在主数据库的一个存储过程中: USE master GO CREATE PROCEDURE StartBlackBoxTrace AS BEGIN DECLARE @TraceId int DECLARE @maxfilesiz

rabbitmq 生产环境配置

目录 一 rabbitmq 生产部署 1.1 rabbitmq.conf 1.2 advanced.config 1.3 rabbitmq-env.conf 1.4 在生产环境中不适用的策略. 一 rabbitmq 生产部署 RabbitMQ 常用的三种自定义服务器的通用方法: 配置文件 rabbitmq.conf 环境变量文件 rabbitmq-env.conf 补充配置文件 advanced.config rabbitmq.conf和rabbitmq-env.conf的位置 在二进制安装中路

webpack开发与生产环境配置

前言 作者去年就开始使用webpack, 最早的接触就来自于vue-cli.那个时候工作重点主要也是 vue 的使用,对webpack的配置是知之甚少,期间有问题也是询问大牛 @吕大豹.顺便说一句,对于前端知识体系迷茫的童鞋可以关注豹哥的微信公众号,<大豹杂说>.豹哥对于刚开始小白的自己(虽然现在也白)知无不谈,而且回复超快超认真.这里真的很感谢豹哥.前段时间工作不忙,自己就啃了啃webpack的官方文档,毕竟知识还是在自己脑袋里踏实.然后根据vue-cli的配置文件丰富了一点新的东西,发布出

hbase centOS生产环境配置笔记 (1 NameNode, 1 ResourceManager, 3 DataNode)

本次是第一次在生产环境部署HBase,本文若有配置上的不妥之处还请高手指正. hadoop版本:hadoop-2.4.1 HBase版本:hbase-0.98.6.1-hadoop2 JDK:1.6 操作系统:centOS6.3 64bit 1. 安装snappy #yum install snappyInstalled: snappy.x86_64 0:1.1.0-1.el6 #yum install snappy-devel 记录一下,当前GCC版本4.4.7 2. 由于hadoop官网下载

搭建vsftp服务器生产环境配置

生产环境:操作系统:CentOS release 6.9 (Final)软件:vsftpd-2.2.2-24.el6.x86_64实战任务:给定账号,让开发商上传站群代码到服务器的指定目录,可以读写:操作过程如下:一.配置防火墙,开启FTP服务器需要的端口[[email protected] /]# vi /etc/sysconfig/iptables    #添加端口号-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEP

[django]Django的css、image和js静态文件生产环境配置

前言:在Django中HTML文件如果采用外联的方式引入css,js文件或者image图片,一般采用<link rel="stylesheet" href="../css/lstyle.css">这个格式,但是django中需要配置一下,才能如此使用. 关键词:django静态文件 django生产环境 django1.8 正文: 第一步,在django工程目录下建立static文件夹,同时在static文件夹下建立css img js三个不同名称的文件

nodejs 生产环境配置

1.node 默认为development(开发)模式 启动node 时可以设置模式为生产模式 set NODE_ENV=production node app.js 2.设置node监听的端口 var port = normalizePort(process.env.PORT || '5000');//程序中这样设置,默认为5000端口 当命令台启动程序时如下设置,则端口配置为1234. set PORT=1234 node app.js  

samba基于虚拟用户的生产环境配置

前段时间,加入了学校的一个实验室.后来学长让我们小组在5天之内搭建出一个基于虚拟用户的samba共享服务.要求是实验室三个小组的成员能够访问所有共享资料,但不能上传和删除.每个组的组长可以上传和删除本组资料.另外需要使用虚拟用户实现.一开始,大家都有点懵,然后就在网上找资料,最后基本确定了一个实现方案. 刚开始给了一台服务器装机,乍一看,这服务器有年头了,大箱子似的,是浪潮的一款比较老的机器,04年进的学校,古董级别的,哈哈.于是,我们小组的人开始装机了,但是中间遇到了许多问题.仔细一研究,这东