zl程序教程

您现在的位置是:首页 >  工具

当前栏目

以Docker容器方式安装Ceph

Docker安装容器 方式 ceph
2023-09-27 14:28:42 时间
获取Ceph的Docker镜像

因为公司对于网络环境的限制,安装ceph时使用ceph-deploy反而很不方便,且ssh免密码方式也不适用,所以使用docker方式安装。

Git地址

https://github.com/ceph/ceph-docker/tree/master/ceph-releases/luminous

DockerHub地址

https://hub.docker.com/r/ceph/daemon/

通过DaoCloud加速器后下载的地址

docker pull ceph/daemon

指定最新的tag

推荐最新的版本:tag-build-master-luminous-centos-7

 

将镜像导入Harbor仓库供使用

docker tag  [old]  harborip/ceph/daemon:luminous

docker  login -u xxx -p xxx http://harborip

docker push harborip/ceph/daemon:luminous

 

 

安装前约定

/etc/ceph/                 主要为配置

/var/lib/ceph/           主要为数据


Ceph的MON是一个集群映射图的“主副本”,客户端只需通过连接到MON就可以了解Ceph-MON、Ceph的OSD守护进程,和Ceph的元数据服务器的位置。

安装首节点MON

docker run \

-d --net=host  \

--name=mon \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph \

-e MON_IP=1.2.3.4 \

-e CEPH_PUBLIC_NETWORK=1.2.3.0/24 \

harborip/ceph/daemon:luminous \

Mon

编辑/etc/ceph.conf配置文件

注意调整下表中红色部份的值。


将相关ceph目录cp到各个节点

按需操作,一种思路:非root帐号先scp到目标机器/tmp下,再挪到指定位置。

涉及目录:/etc/ceph/和/var/lib/ceph/

安装第二及第三节点

docker run \

-d --net=host  \

--name=mon \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph \

-e MON_IP=1.2.3.5 \

-e CEPH_PUBLIC_NETWORK=1.2.3.0/24 \

harborip/ceph/daemon:luminous \

mon

docker run \

-d --net=host  \

--name=mon \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph \

-e MON_IP=1.2.3.6 \

-e CEPH_PUBLIC_NETWORK=1.2.3.0/24 \

harborip/ceph/daemon:luminous \

mon

检查mon是否成功启动

可通过以下命令检查:

docker ps|grep ceph|grep mon

ps aux|grep ceph|grep mon

docker logs -f mon

docker exec mon ceph –s

 

 

Ceph OSD节点安装

Ceph OSD:Ceph Object Storage Device 主要功能包括:存储数据,副本数据处理,数据恢复,数据回补,平衡数据分布,并将数据相关的一些儿监控信息提供给至少2个Ceph OSD,才能有效保存两份数据.

OSD节点安装有两种方案,一种是在节点上挂载全新的硬盘设备,第二种是将已安装好的系统的指定目录作为OSD。

我们这里选用第二种方式,只是因为方便。

在所有需要提供OSD存储的节点上运行如下命令:

docker run \

-d --net=host \

--name=osd \

--privileged=true \

--pid=host \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph/ \

-v /dev/:/dev/ \

-e OSD_FORCE_ZAP=1 \

-e OSD_TYPE=directory   \

harborip/ceph/daemon:luminous \

Osd

检查OSD是否启动成功

参考MON的检查,相关关键字替换为osd。

一,可以用JOURNAL_DIR 参数将日志目录移出

二,OSD_TYPE参数在使用新硬盘时为disk

三,OSD_FORCE_ZAP=1强制清空目录,这里为必要

四,这种方式生成的OSD指定目录为/var/lib/ceph/osd/

五,如果此处安装有问题,可能是不能自动建立相关pool池,可以考虑登陆docker手工执行一次./entrypoint.sh osd命令

Ceph RGW节点安装

RGW为Rados Gateway的缩写,ceph通过RGW为互联网云服务提供商提供对象存储服务。RGW在librados之上向应用提供访问ceph集群的RestAPI, 支持Amazon S3和openstack swift两种接口。对RGW最直接的理解就是一个协议转换层,把从上层应用符合S3或Swift协议的请求转换成rados的请求, 将数据保存在rados集群中。

命令

在c383上执行如下命令:

docker run \

-d --net=host \

--name=rgw \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph  \

harborip/ceph/daemon:luminous \

rgw

 

检查RGW是否成功启动

参考MON的检查,相关关键字替换为rgw。

 

 

Ceph MDS节点安装

Ceph文件系统(CEPH FS)是一个POSIX兼容的文件系统,使用Ceph的存储集群来存储其数据。

使用Ceph的文件系统,在你的Ceph的存储集群里至少需要存在一个Ceph的元数据服务器。(MDS)

在c382节点上运行:

docker run \

-d --net=host \

--name=mds \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph \

-e CEPHFS_CREATE=1 \

harborip/ceph/daemon:luminous \

mds

检查MDS是否成功启动

参考MON的检查,相关关键字替换为mds。

 

 

 

Ceph Mgr节点安装

ceph-mgr 作为 Ceph 集群的管理进程,未来会负责整个集群的管理操作和监控。现在的部分 Monitor 功能会迁移到 ceph-mgr 中,使得 Monitor 更专注于集群的数据面控制,降低集群对于 Monitor 的要求。

在luminous版本上,mgr已成为标配,不安装成功的话,集群状态会WARN。

在所有mon安装过的节点上运行以下命令:

docker run \

-d --net=host  \

--name=mgr \

-v /etc/ceph:/etc/ceph \

-v /var/lib/ceph/:/var/lib/ceph \

harborip/ceph/daemon:luminous \

mgr

检查Mgr是否成功启动

参考MON的检查,相关关键字替换为mgr。

 

一,如果这里安装异常,或是7000端口未启用,要启用dashboard组件功能。

docker exec mon ceph mgr dump

 

docker exec mgr ceph mgr module enable dashboard

 

二,最终系统状态和WEB(7000端口)截图如下

 

        

 

挂载cephfs目录 内核支持挂载

一,明文挂载

mount -t ceph 1.2.3.4:6789:/ /mnt/mycephfs \

-o name=admin,secret=3545wgdsgsgfsgf

二,文件挂载

mount -t ceph 192.168.1.111:6789:/ /mnt/mycephfs –o \

name=admin,secretfile=/etc/ceph/admin.secret

三,卸载目录

umount /mnt/mycephfs

 

FUSE挂载

 

在k8s中将cephfs作为volumes挂载

一,获取admin的密文

docker exec mon ceph-authtool --print-key /etc/ceph/ceph.client.admin.keyring

二,将之用base64编码

echo "sdfdsadfasdfasdf=" | base64

三,生成并应用k8s secret文件


联网安装Docker容器 Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的​ ​Linux​​​机器、windows机器),也可以实现​ ​虚拟化​​​。容器是完全使用​ ​沙箱​​机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。
Docker容器安装 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 Docker支持在主流的操作系统平台上使用,包括 Windows系统、Linux系统及MacOS系统等。目前最新的 RedHat . CentOS、Ubuntu等操作系统官方软件源中都已经默认自带了Docker包,可以直接安装使用,也可以用Docker白己的YUM源进行配置。
Docker容器实战【一】安装Docker 容器,就是一种轻量级的虚拟化技术,目的和虚拟机一样,都是为了创造“隔离环境”。 一句话理解Docker:以前各程序都睡大厅,有了Docker后都睡小房子里面