以Docker容器方式安装Ceph
因为公司对于网络环境的限制,安装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的元数据服务器的位置。
安装首节点MONdocker 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后都睡小房子里面
相关文章
- docker容器内安装yum,vim等应用
- docker到底能在哪些平台安装?
- docker收藏
- Windows Docker第一时间揭秘
- Linux有问必答:如何在Ubuntu中升级Docker
- [转]docker离线安装并导入镜像(从可联网机器导出镜像方法)
- 在docker中安装代理服务器 SQUID | Linux代理服务器
- Win7安装Docker
- docker-compose安装xxl-job
- Docker容器------安装+镜像加速
- Docker - docker的安装部署 - docker常用命令 - 底层隔离机制
- docker清理缓存
- 如何在docker容器中安装yum、wget等软件、CentOS下yum的$releasever和$basearch的取值
- Docker(一):Docker的安装与常用命令
- Docker(三):镜像导入与导出、保存与加载、在Docker容器中安装软件
- Docker的安装和Redis容器
- Docker的简单介绍与安装(Windows10)
- Linux下yum安装jenkins、docker安装jenkins
- 通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇
- 运维笔记:docker容器安装与部署,以及常用命令、容器卷、dockerfile使用,详细教程
- 【网盘聚合神器】支持百度(不限速)、阿里、天翼、迅雷、蓝奏、谷歌等29款网盘,使用Docker部署Alist网盘直链程序,给电脑整个80亿GB硬盘
- docker出现GPG error: At least one invalid signature was encountered 相关问题及解决方法
- docker安装/镜像/容器操作
- docker容器中安装Maria数据库
- Linux系统安装Docker