设为首页 收藏本站
查看: 2164|回复: 0

[经验分享] 以Docker容器方式安装Ceph

[复制链接]

尚未签到

发表于 2017-12-7 09:54:43 | 显示全部楼层 |阅读模式
获取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/           主要为数据
对应关系
  宿主机
  Docker容器
  /etc/ceph/
  /etc/ceph/
  /etc/ceph/
  /var/lib/ceph/
  /var/lib/ceph/
  /var/lib/ceph/
机器列表
  机器名
  IP地址
  role
  C 381
  1.2.3.4
  Mon,osd
  C 382
  1.2.3.5
  Mon,osd,mds
  C 383
  1.2.3.6
  Mon,osd, rgw

Ceph Mon多节点安装
说明
  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配置文件
  注意调整下表中红色部份的值。
[global]

  fsid =695b3afb-f560-434f-a90a-f611e1f23638
  mon initial members = c381
  mon host = 1.2.3.4
  auth cluster required =cephx
  auth service required =cephx
  auth client required =cephx

  • osd pool defaultsize = 2
  public network =1.2.3.0/24
  cluster network= 1.2.3.0/24

  • osd journal size= 100
  osd pool default pg num = 100

  • osd pool defaultpgp num = 100
将相关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为RadosGateway的缩写,ceph通过RGW为互联网云服务提供商提供对象存储服务。RGW在librados之上向应用提供访问ceph集群的RestAPI, 支持Amazon S3和openstackswift两种接口。对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文件
  apiVersion: v1
  kind: Secret
  metadata:
  name: ceph-secret
  data:
  key: QVsdfsadfsadfPQo=
  kubectl apply -f ceph-secret
  四,编辑deploy文件,挂载cephfs
  volumes:
  - name: applog
  hostPath:
  path: / apache/applogs
  - name: nfs4app
  nfs:
  server: 1.2.3.181
  path: /app/BB
  - name: ceph-vol
  cephfs:
  monitors:
  - 1.2.3.4:6789
  user: admin
  secretRef:
  name: ceph-secret
  readOnly: false
  五,测试文件生成
  在POD操作文件,在cephfs中会同步操作相应文件。
  六,未完
在k8s中将cephfs作为PVC挂载[未完]
将harbor中的镜像目录用cephfs来挂载[未完]

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-421594-1-1.html 上篇帖子: docker创建ceph集群 下篇帖子: ceph hadoop spark 大数据处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表