【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

CentOS 下修改 Devicemapper 存储驱动为 Direct-lvm 模式

  • 2020-04-12
  • 本文字数:1647 字

    阅读完需:约 5 分钟

CentOS下修改Devicemapper存储驱动为Direct-lvm模式

Device Mapper 是基于内核的框架,支持 Linux 上的许多高级卷管理技术。Docker 的 devicemapper 存储驱动程序利用此框架的精简配置和快照功能进行映像和容器管理。本文将 Device Mapper 存储驱动程序称为 devicemapper,并将内核框架称为 Device Mapper。


对于支持它的系统,Linux 内核中包含支持。但是,Docker 需要使用特定的配置。例如,在 RHEL 或 CentOS 操作系统中,Docker 将默认为 overlay,overlay 官方不建议在生产中使用。


该 devicemapper 驱动程序使用专用于 Docker 的块设备,并在块级而非文件级进行操作。这些设备可以通过将物理存储添加到 Docker 主机来扩展,并且比在操作系统级别使用文件系统性能更好。

配置用于生产的 direct-lvm 驱动模式

CentOS 安装好 Docker 后,默认 Storage Driver 为 devicemapper 的 loop-lvm 模式,这种模式从性能和稳定性上都不可靠,此模式仅适用于测试环境。

配置 direct-lvm 模式

生产环境使用 devicemapper 存储驱动程序的主机必须使用 direct-lvm 模式。此模式使用块设备来创建精简池。这比使用 loop-lvm 设备更快,更有效地使用系统资源,并且块设备可以根据需要扩增。


在 Docker 17.06 及更高版本中,Docker 可以为您管理块设备,简化 direct-lvm 模式的配置。这仅适用于新的 Docker 设置,并且只能使用一个块设备。


注:如果您需要使用多个块设备,需要手动配置 direct-lvm 模式。



编辑 daemon.json 文件并设置适当的选项,然后重新启动 Docker 以使更改生效。以下 daemon.json 设置了上表中的所有选项。


手动配置 DIRECT-LVM 模式

假定有一块 100G 空闲块设备 /dev/sdb 。设备标识符和音量大小在您的环境中可能不同,您应该在整个过程中替换您自己的值。

停止 docker

sudo systemctl stop docker
复制代码

安装依赖

RHEL / CentOS的:device-mapper-persistent-data,lvm2,和所有的依赖
复制代码

把整块硬盘创建物理卷(PV)

sudo pvcreate /dev/sdb
复制代码

创建 dockervg 卷组(VG)

sudo vgcreate dockervg /dev/sdb
复制代码

划分两个逻辑卷(LV)

划分两个逻辑卷(LV),分别用于:docker_data,docker_metadata。


sudo lvcreate --wipesignatures y -n data dockervg -L 35Gsudo lvcreate --wipesignatures y -n metadata dockervg -L 1G
复制代码

转换为 thin pool

sudo lvconvert -y --zero n -c 512K --thinpool dockervg/data --poolmetadata dockervg/metadata
复制代码

配置自动扩展

cat>>/etc/lvm/profile/dockervg-data.profile<<EOFactivation {   thin_pool_autoextend_threshold=80   thin_pool_autoextend_percent=20}EOF
复制代码

划分逻辑卷(LV):docker_dir

docker_dir 主要是用于存储容器运行时产生的数据卷等文件。


sudo lvcreate --wipesignatures y -n dockerdir dockervg -l+100%FREE
复制代码

应用以上配置

lvchange --metadataprofile dockervg-data dockervg/data
复制代码

启用磁盘空间监控

lvs -o+seg_monitor
复制代码

映射相应目录

mkfs -t xfs /dev/dockervg/dockerdirmkdir /var/lib/dockermount/dev/dockervg/dockerdir/var/lib/docker
cat>> /etc/fstab <<EOF/dev/dockervg/dockerdir /var/lib/docker xfs defaults 0 0EOF
复制代码


设置 Docker 启动参数


存储池扩容

假定现在新增一块 100G 的块设备 /dev/sdc

通过 pvdisplay 查看卷组与物理卷/块设备的对应关系

sudo pvdisplay |grep dockerPV Name               /dev/sdbVG Name               docker
复制代码

通过 vgextend 命令进行卷组扩容

sudo vgextend docker /dev/sdcinfo: Physical volume "/dev/sdc" successfully created.info: Volume group "docker" successfully extended
复制代码

给逻辑卷(LV)扩容

sudo lvextend -l+100%FREE  -n docker/dockerresize2fs /dev/docker/docker-l+100%FREE: 表示使用全部空闲空间,改为-L 10G指定扩展大小;-n docker/thinpool: 指定逻辑卷名(卷组/逻辑卷名)
复制代码

激活逻辑卷(LV)

# LV扩容重启后,可能会出现“Non existing device" 的提示,需要对LV卷进行激活操作:
sudo lvchange -ay docker/thinpool
复制代码


更多详情亦可参照 Docker 官方文档:


https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/


2020-04-12 20:39811

评论

发布
暂无评论
发现更多内容

探索前端开发趋势:2023年的新兴技术与发展方向

不在线第一只蜗牛

前端 Web 前端开发

低代码:拒绝重复、低价值的工单循环开发

互联网工科生

软件开发 造轮子 JNPF

云计算与低代码:加速创新与开发的完美结合

快乐非自愿限量之名

云计算 低代码 创新

阿里云OpenSearch-LLM智能问答故障的一天

WizInfo

AIGC LLM

揭秘淘宝商品详情API接口(app、h5端)获取新途径

tbapi

淘宝API接口 天猫商品详情数据接口 淘宝商品详情接口 淘宝商品详情API接口 天猫商品详情接口

1.4亿人都在用|伊对APP x 阿里云PolarDB:这一对,天生配

阿里云瑶池数据库

数据库 阿里云 云原生 Servless

springboot智慧导诊系统源码:根据患者症状匹配挂号科室

源码星辰

源码 Java、 智慧导诊 智能导诊 医院导诊

Keepalived 高可用详解

快乐非自愿限量之名

nginx Linux 源码分析

如何创建海外美区Apple ID,并绑定信用卡,十分钟学会

跨境

VISA appleID

软件测试/测试开发|测试用例设计和评审应该怎么做,一篇文章告诉你?

霍格沃兹测试开发学社

IPQ5018+QCN9024 card-what High-performance processor with dual and quad Ethernet?

wifi6-yiyi

ipq5018 QCN9024

公有云与私有云的区别在哪?选择公有云是否真的会泄露隐私?

Finovy Cloud

公有云 私有云 私有云平台

运用ETL快速拉取吉客云平台订单信息

RestCloud

数据同步 ETL 吉客云

Poe会员开通保姆级教程

跨境

PoE ChatGPT

申请虚拟VISA卡Fomepay保姆级教程来了!

跨境

VISA

释放潜力:BRC-20代币综合指南

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

软件测试/测试开发|一文告诉你什么是测试用例

霍格沃兹测试开发学社

初见 Amazon Q

亚马逊云科技 (Amazon Web Services)

re:Invent 亚马逊云科技 生成式人工智能 Amazon Q

跨境电商测评攻略及其工具海外云手机的介绍

Ogcloud

电商 跨境电商

软件测试/测试开发丨cookie 复用 学习笔记

测试人

软件测试

低代码选型注意事项

高端章鱼哥

低代码 选型

EMQ 与 Confluent 建立全球合作伙伴关系:推动 MQTT 与 Kafka 无缝集成

新消费日报

美区PayPal注册教程

跨境

PayPal VISA

深入云原生:基于 KubeWharf 的深度剖析

小王撤了

KubeWharf

阿里巴巴中国站1688商品评论API:实时数据获取与应用的探索

Noah

【代码混淆】react-native 代码混淆

雪奈椰子

IPQ9574 vs IPQ9554 vs IPQ9514 How to choose a CPU for Industrial use?|WiFi7

wallyslilly

ipq9554 ipq9574

软件测试/测试开发|软件测试基础概念

霍格沃兹测试开发学社

2023 IoTDB Summit:美国国家工程院院士 Prof. C. Mohan《物联网时代的数据库挑战、技术与方向》

Apache IoTDB

onlyfan怎么绑卡??

跨境

VISA only

程序员视角体验快速搭建智能客服中心

亚马逊云科技 (Amazon Web Services)

AIGC

CentOS下修改Devicemapper存储驱动为Direct-lvm模式_文化 & 方法_Rancher_InfoQ精选文章