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

[经验分享] 使用ceph

[复制链接]

尚未签到

发表于 2019-2-2 07:08:34 | 显示全部楼层 |阅读模式
  

  一:CEPH简介
  

  OSDs: Ceph的OSD守护进程(OSD)存储数据,处理数据复制,恢复,回填,重新调整,并通过检查其它Ceph OSD守护程序作为一个心跳 向Ceph的监视器报告一些检测信息。Ceph的存储集群需要至少2个OSD守护进程来保持一个 active + clean状态.(Ceph默认制作2个备份,但你可以调整它)
  

  Monitors:Ceph的监控保持集群状态映射,包括OSD(守护进程)映射,分组(PG)映射,和CRUSH映射。 Ceph 保持一个在Ceph监视器, Ceph OSD 守护进程和 PG的每个状态改变的历史(称之为“epoch”).
  

  MDS: MDS是Ceph的元数据服务器,代表存储元数据的Ceph文件系统(即Ceph的块设备和Ceph的对象存储不使用MDS)。Ceph的元数据服务器使用POSIX文件系统,用户可以执行基本命令如 ls, find,等,并且不需要在Ceph的存储集群上造成巨大的负载.
  

  Ceph把客户端的数据以对象的形式存储到了存储池里。利用CRUSH算法,Ceph可以计算出安置组所包含的对象,并能进一步计算出Ceph OSD集合所存储的安置组。CRUSH算法能够使Ceph存储集群拥有动态改变大小、再平衡和数据恢复的能力。
  

  二:Ceph 特点
  Object:有原生的API,而且也兼容Swift和S3的API
  Block:支持精简配置、快照、克隆
  File:Posix接口,支持快照
  Ceph也是分布式存储系统,它的特点是:
  

  高扩展性:使用普通x86服务器,支持10~1000台服务器,支持TB到PB级的扩展。
  高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
  高性能:数据分布均衡,并行化度高。对于objects storage和block storage,不需要元数据服务器。
  无论你想提供 Ceph对象存储和/或Ceph块设备服务至云平台 ,部署Ceph文件系统或者为了其他目的而使用Ceph,所有的 Ceph存储集群部署都是从设置每个Ceph节点,你的网络和Ceph存储集群开始的。
  一个Ceph存储集群要求至少有一个Ceph监视器和两个Ceph OSD守护进程。当运行Ceph文件系统客户端时,必须要有Ceph元数据服务器。
  

  

  三:ceph集群硬件的选择
  http://michaelkang.blog.运维网.com/1553154/1669841
  

  四:集群安装配置环境介绍
  

  1:系统:
  CentOS release 6.6 (Final)
  

  2:内核:
  2.6.32-504.12.2.el6.x86_64 #1 SMP Wed Mar 11 22:03:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
  

  3:ceph版本:
  ceph -v
  ceph version 0.87.2 (87a7cec9ab11c677de2ab23a7668a77d2f5b955e)
  

  

  4:安装部署主机(ceph-deploy)
  

  dn-5-221
  

  5:主机列表清单:
  ll /workspace/ceph/cephlist.txt
  -rw-r--r-- 1 root root 81 Jun 29 20:52 /workspace/ceph/cephlist.txt
  

  5:集群主机名:
  [root@dn-5-221 ~]# more  /workspace/ceph/cephlist.txt
  dn-5-221
  dn-5-222
  dn-5-232
  dn-5-224
  dn-5-225
  dn-5-226
  dn-5-227
  dn-5-228
  dn-5-229
  

  6:集群服务部署分配:
  dn-5-221   ceph-deploy  install
  dn-5-222   osd0   osd1     mds
  dn-5-232   osd2   osd3
  dn-5-224   osd4   osd5
  dn-5-225   osd6   osd7   mon
  dn-5-226   osd8   osd9             mds
  dn-5-227   osd10  osd11  mon
  dn-5-228   osd12  osd13            mds
  dn-5-229   osd14  osd15  mon
  

  

  

  五:集群安装前准备工作
  

  1)规范系统主机名;
  

  2)添加hosts文件实现集群主机名与主机名之间相互能够解析(host 文件添加主机名不要使用fqdn方式)
  

  3)每台 ssh-copy-id 完成这些服务器之间免ssh密码登录;
  

  4)关闭防火墙或者开放 6789/6800~6900端口、关闭SELINUX;
  

  5)配置ntp服务,开启时间服务,保证集群服务器时间统一;
  

  以下操作推荐在ceph-deploy节点操作:
  6)添加ceph集群安装yum源文件;
  

  使用路径/etc/yum.repos.d/ceph.repo,祥如下:
  vim /etc/yum.repos.d/ceph.repo
  

  用一个稳定的Ceph发行版替换{ceph-stable-release}(如  dumpling等).R用你的Linux发行版替换{distro}(如el6 for CentOS 6, rhel6 for Red Hat 6, fc18 or fc19 for Fedora 18 or Fedora 19和sles11 for SLES 11)。
  最后,保存文件至/etc/yum.repos.d/ceph.repo。
  

  [ceph]
  name=Ceph packages for $basearch
  baseurl=http://ceph.com/rpm/rhel6/$basearch
  enabled=1
  gpgcheck=1
  type=rpm-md
  gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
  

  [ceph-noarch]
  name=Ceph noarch packages
  baseurl=http://ceph.com/rpm/rhel6/noarch
  enabled=1
  gpgcheck=1
  type=rpm-md
  gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
  

  [ceph-source]
  name=Ceph source packages
  baseurl=http://ceph.com/rpm/rhel6/SRPMS
  enabled=0
  gpgcheck=1
  type=rpm-md
  gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
  

  

  传输yum源文件到其它节点服务器
  --delete 删除那些DST中SRC没有的文件
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;rsync -avp --delete /etc/yum.repos.d $ip:/etc/;done
  

  7)创建集群配置目录
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip mkdir -p  /etc/ceph ;done
  

  #########################集群安装配置###################
  

  1:提前填坑,根据以往配置部署经验,安装配置部署过程中会有不断报错,部分是因为个别依赖软件包没有安装导致,提前安装避免不必要的错误;
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip yum install *argparse* redhat-lsb xfs* -y;done
  

  2:ceph-deploy 节点安装部署(dn-5-221 安装部署节点)
  cd /etc/ceph/
  

  升级系统的软件包,安装ceph-deploy工具
  yum update -y && yum install ceph-deploy -y
  

  ##################以下操作在ceph-deploy节点操作:###########
  如果以前安装过ceph,在此机器上运行
  sudo stop ceph-all                                                     停止所有ceph进程
  ceph-deploy uninstall  [{ceph-node}]                                   卸载所有ceph程序
  ceph-deploy purge   [[ceph-node} [{ceph-node}]                         删除ceph相关的包
  ceph-deploy purgedata {ceph-node} [{ceph-node}]                        删除ceph相关的包
  ceph-deploy forgetkeys                                                 删除key
  

  另外清理一下配置文件,重建一下安装配置目录
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip rm -rf /etc/ceph/* ;done
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip mkdir -p  /etc/ceph ;done
  ###############################################################
  

  一:创建mon节点:
  

  1:在安装部署节使用ceph-deploy创建,生成MON信息:
  

  命令格式:
  cd /etc/ceph/
  

  ceph-deploy new monnode
  

  ceph-deploy new dn-5-225 dn-5-227 dn-5-229
  

  2:安装部署报错:
  

  [root@dn-5-221 yum.repos.d]# ceph-deploy new dn-5-225.ptfuture.com dn-5-227.ptfuture.com dn-5-229.ptfuture.com
  Traceback (most recent call last):
  File "/usr/bin/ceph-deploy", line 18, in
  from ceph_deploy.cli import main
  ImportError: No module named ceph_deploy.cli
  

  解决办法:
  系统python问题,注意检查系统使用python版本2.6;
  

  3:再次执行 :
  cd /etc/ceph/
  

  ceph-deploy new dn-5-225 dn-5-227 dn-5-229
  

  执行成功后该目录下会增加三个文件
  [root@dn-5-221 ceph]# ll
  total 12
  -rw-r--r-- 1 root root  276 Jun 26 22:01 ceph.conf
  -rw-r--r-- 1 root root 3142 Jun 26 22:01 ceph.log
  -rw------- 1 root root   73 Jun 26 22:01 ceph.mon.keyring
  

  4:安装部署集群软件包:
  

  在所有节点安装ceph软件包 ceph-deploy install{ceph-node}[{ceph-node}...]
  (注:如果已经用yum在每台机器上安装了ceph,这步可省略)
  

  ceph-deploy install  dn-5-22{1..2}
  ceph-deploy install  dn-5-232
  ceph-deploy install  dn-5-22{4..9}
  

  

  

  5:添加初始monitor节点和收集秘钥 ceph-deploy mon create-initial {node}
  

  ceph-deploy --overwrite-conf mon create-initial  dn-5-225 dn-5-227 dn-5-229
  

  如果提示文件存在,但是不匹配,可以先删除该ceph.conf,然后执行此操作。
  

  6:收集密钥
  ceph-deploy gatherkeys dn-5-225 dn-5-227 dn-5-229
  收集到密钥,在本地目录下可看到如下密钥环文件:
  

  1. {cluster-name}.client.admin.keyring
  2. {cluster-name}.bootstrap-osd.keyring
  3. {cluster-name}.bootstrap-mds.keyring
  

  7:传输key 配置文件到其它节点服务器
  

  for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;rsync -avp --delete /etc/ceph $ip:/etc/;done
  --delete 删除那些DST中SRC没有的文件
  

  至此mon节点配置基本告一段落;
  8:验证集群mon节点安装成功
  ceph -s
  cluster c7ee9e13-af6f-475e-80ce-ecb4ba463540
  health HEALTH_ERR
  64 pgs stuck inactive
  64 pgs stuck unclean
  no osds
  monmap e1: 3 mons at {dn-5-225=172.17.5.225:6789/0,dn-5-227=172.17.5.227:6789/0,dn-5-229=172.17.5.229:6789/0}
  election epoch 8, quorum 0,1,2 dn-5-225,dn-5-227,dn-5-229
  osdmap e1: 0 osds: 0 up, 0 in
  pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
  0 kB used, 0 kB / 0 kB avail
  64 creating
  

  9:登录mon节点查看进程已启动
  ps -ef|grep ceph
  root     27966     1  0 15:57 ?        00:00:00 /usr/bin/ceph-mon -i dn-5-227 --pid-file /var/run/ceph/mon.dn-5-227.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     28599 25753  0 15
  

  

  

  

  二:安装集群osd服务
  

  1:执行osd初始化命令
  每台有两块磁盘,分别为 、/dev/sdk /dev/sdl
  

  for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;ceph-deploy --overwrite-conf osd prepare $ip:/dev/sdk $ip:/dev/sdl;done
  

  2:安装报错:
  报错:
  [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
  [ceph_deploy.cli][INFO  ] Invoked (1.5.25): /usr/bin/ceph-deploy osd prepare dn-5-221:/dev/sdk
  [ceph_deploy.osd][DEBUG ] Preparing cluster ceph disks dn-5-221:/dev/sdk:
  [dn-5-221][DEBUG ] connected to host: dn-5-221
  [dn-5-221][DEBUG ] detect platform information from remote host
  [dn-5-221][DEBUG ] detect machine type
  [ceph_deploy.osd][INFO  ] Distro info: CentOS 6.6 Final
  [ceph_deploy.osd][DEBUG ] Deploying osd to dn-5-221
  [dn-5-221][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
  [ceph_deploy.osd][ERROR ] RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite
  [ceph_deploy][ERROR ] GenericError: Failed to create 1 OSDs
  解决办法:
  报错信息说明在node上没有mkfs.xfs文件,需要在node上安装mkfs.xfs文件,批量安装部署所有集群服务器;
  

  for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip yum install xfs* -y;done
  

  

  3:再次执行osd初始化命令
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;ceph-deploy --overwrite-conf osd prepare $ip:/dev/sdk $ip:/dev/sdl;done
  

  

  4:ceph.keyring 同步
  

  在创建osd节点的时候可能会osd节点上缺少/var/lib/ceph/bootstrap-osd/ceph.keyring文件,把监控节点上的文件拷贝到安装节点上。
  在node1节点上建立一个目录:mkdir /var/lib/ceph/bootstrap-osd/。
  

  登录登录mon节点,dn-5-225:
  ssh dn-5-225
  scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@dn-5-221:/var/lib/ceph/bootstrap-osd/
  

  统一解决,将安装节点的ceph.keyring copy到其它安装节点;
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;rsync -avp --delete /var/lib/ceph/bootstrap-osd root@$ip:/var/lib/ceph/;done
  

  验证所有集群服务器上的ceph.keyring 内容一致:
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;ssh root@$ip cat /var/lib/ceph/bootstrap-osd/ceph.keyring ;done
  

  

  5:再次执行,osd初始化命令可以成功初始化新加入的osd节点
  

  初始化数据盘
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;ceph-deploy --overwrite-conf osd prepare $ip:/dev/sdk $ip:/dev/sdl;done
  

  6:执行激活osd设备:(官网步骤,我在安装部署时,执行上一步的时候,osd自动激活了,不用执行激活操作)
  for ip in $(cat /workspace/ceph/cephlist.txt);do echo ----$ip-----------;ceph-deploy --overwrite-conf  osd activate $ip:/dev/sdk $ip:/dev/sdl;done
  

  

  执行激活操作报错如下:
  [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
  [ceph_deploy.cli][INFO  ] Invoked (1.5.25): /usr/bin/ceph-deploy --overwrite-conf osd activate dn-5-229:/dev/sdk dn-5-229:/dev/sdl
  [ceph_deploy.osd][DEBUG ] Activating cluster ceph disks dn-5-229:/dev/sdk: dn-5-229:/dev/sdl:
  [dn-5-229][DEBUG ] connected to host: dn-5-229
  [dn-5-229][DEBUG ] detect platform information from remote host
  [dn-5-229][DEBUG ] detect machine type
  [ceph_deploy.osd][INFO  ] Distro info: CentOS 6.6 Final
  [ceph_deploy.osd][DEBUG ] activating host dn-5-229 disk /dev/sdk
  [ceph_deploy.osd][DEBUG ] will use init type: sysvinit
  [dn-5-229][INFO  ] Running command: ceph-disk -v activate --mark-init sysvinit --mount /dev/sdk
  [dn-5-229][WARNIN] INFO:ceph-disk:Running command: /sbin/blkid -p -s TYPE -ovalue -- /dev/sdk
  [dn-5-229][WARNIN] ceph-disk: Cannot discover filesystem type: device /dev/sdk: Line is truncated:
  [dn-5-229][ERROR ] RuntimeError: command returned non-zero exit status: 1
  [ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph-disk -v activate --mark-init sysvinit --mount /dev/sdk
  解决办法:
  

  查看osd 状态
  [root@dn-5-221 ceph]# ceph-disk  activate-all
  === osd.1 ===
  Starting Ceph osd.1 on dn-5-221...already running
  === osd.0 ===
  Starting Ceph osd.0 on dn-5-221...already running
  

  lsblk看一下,如果sdk sdl是挂载在/var/lib/ceph/osd/ceph-0  ceph-1上,#没有问题
  

  [root@dn-5-221 ceph]# lsblk
  NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  sdj      8:144  0  1.8T  0 disk /data09
  sdi      8:128  0  1.8T  0 disk /data08
  sdk      8:160  0  1.8T  0 disk
  ├─sdk1   8:161  0  1.8T  0 part /var/lib/ceph/osd/ceph-0   #确认磁盘挂载
  └─sdk2   8:162  0    5G  0 part
  sdl      8:176  0  1.8T  0 disk
  ├─sdl1   8:177  0  1.8T  0 part /var/lib/ceph/osd/ceph-1    #确认磁盘挂载
  

  (执行上一步的时候,osd自动激活了,不用执行激活操作)
  
  三:安装部署mds服务
  

  1:添加元数据服务器
  

  cd /etc/ceph
  ceph-deploy --overwrite-conf mds create dn-5-222 dn-5-226 dn-5-228
  命令顺利执行完成,无报错为oK
  

  对于一个刚创建的MDS服务,虽然服务是运行的,但是它的状态直到创建 pools 以及文件系统的时候才会变为Active.
  

  2:状态查看。还没有创建时候的状态
  [root@dn-5-221 ceph]# ceph mds stat
  e1: 0/0/0 up
  

  [root@dn-5-221 ceph]# ceph mds dump
  dumped mdsmap epoch 1
  epoch   1
  flags   0
  created 0.000000
  modified        2015-06-28 15:58:10.254107
  ------------中间省略------------------
  compat  compat={},rocompat={},incompat={}
  max_mds 0
  in
  up      {}
  failed
  stopped
  data_pools
  metadata_pool   0
  inline_data     disabled
  

  3:通过下面的操作创建Filesystem
  ceph osd pool create cephfs_data 10
  ceph osd pool create cephfs_metadata 10
  ceph fs new leadorfs  cephfs_metadata cephfs_data
  

  4:成功创建后,mds stat的状态如下
  [root@dn-5-221 ceph]# ceph mds stat
  e6: 1/1/1 up {0=dn-5-228=up:active}, 2 up:standby
  

  [root@dn-5-221 ceph]# ceph mds dump
  dumped mdsmap epoch 6
  epoch   6
  。。。。。。中间省略-。。。。。。。。。
  max_file_size   1099511627776
  last_failure    0
  last_failure_osd_epoch  0
  compat  compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table}
  。。。。中间省略-。。。。。。。。
  data_pools      5
  metadata_pool   6
  inline_data     disabled
  4198:   172.17.5.222:6808/11942 'dn-5-222' mds.-1.0 up:standby seq 2703
  4406:   172.17.5.226:6808/1634 'dn-5-226' mds.-1.0 up:standby seq 160
  4247:   172.17.5.228:6808/25735 'dn-5-228' mds.0.1 up:active seq 2703
  

  5:ceph集群的状态,pg的数量以及pool的数量都得到了对应的增加
  [root@dn-5-221 ceph]# ceph -s
  cluster c7ee9e13-af6f-475e-80ce-ecb4ba463540
  health HEALTH_OK
  monmap e1: 3 mons at {dn-5-225=172.17.5.225:6789/0,dn-5-227=172.17.5.227:6789/0,dn-5-229=172.17.5.229:6789/0}
  election epoch 8, quorum 0,1,2 dn-5-225,dn-5-227,dn-5-229
  mdsmap e6: 1/1/1 up {0=dn-5-228=up:active}, 2 up:standby
  osdmap e100: 16 osds: 16 up, 16 in
  pgmap v393: 784 pgs, 7 pools, 2178 bytes data, 24 objects
  588 MB used, 29713 GB / 29713 GB avail
  784 active+clean
  

  

  四:集群总验证
  

  1:验证mds节点
  [root@dn-5-221 ceph]# for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip ps -ef|grep mds.dn;done
  

  -----dn-5-222-----
  root     11944     1  0 22:42 ?        00:00:00 /usr/bin/ceph-mds -i dn-5-222 --pid-file /var/run/ceph/mds.dn-5-222.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-226-----
  root     32348     1  0 22:42 ?        00:00:00 /usr/bin/ceph-mds -i dn-5-226 --pid-file /var/run/ceph/mds.dn-5-226.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-228-----
  root     25737     1  0 22:42 ?        00:00:00 /usr/bin/ceph-mds -i dn-5-228 --pid-file /var/run/ceph/mds.dn-5-228.pid -c /etc/ceph/ceph.conf --cluster ceph-----dn-5-229-----
  

  2:验证mon节点
  [root@dn-5-221 ceph]# for ip in $(cat /workspace/ceph/cephlist.txt);do echo -----$ip-----;ssh root@$ip ps -ef|grep mon.dn;done
  -----dn-5-225-----
  root     23288     1  0 Jun28 ?        00:00:45 /usr/bin/ceph-mon -i dn-5-225 --pid-file /var/run/ceph/mon.dn-5-225.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-227-----
  root     27966     1  0 Jun28 ?        00:00:23 /usr/bin/ceph-mon -i dn-5-227 --pid-file /var/run/ceph/mon.dn-5-227.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-229-----
  root     27966     1  0 Jun28 ?        00:00:23 /usr/bin/ceph-mon -i dn-5-229 --pid-file /var/run/ceph/mon.dn-5-229.pid -c /etc/ceph/ceph.conf --cluster ceph
  

  3:验证osd节点
  -----dn-5-221-----
  root     20962  9646  0 21:48 pts/2    00:00:00 grep osd
  root     31595     1  0 15:12 ?        00:01:01 /usr/bin/ceph-osd -i 0 --pid-file /var/run/ceph/osd.0.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     32417     1  0 15:12 ?        00:00:59 /usr/bin/ceph-osd -i 1 --pid-file /var/run/ceph/osd.1.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-222-----
  root     29591     1  0 19:08 ?        00:00:55 /usr/bin/ceph-osd -i 2 --pid-file /var/run/ceph/osd.2.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     30522     1  0 19:09 ?        00:00:58 /usr/bin/ceph-osd -i 3 --pid-file /var/run/ceph/osd.3.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-232-----
  root     10461     1  0 19:10 ?        00:01:00 /usr/bin/ceph-osd -i 4 --pid-file /var/run/ceph/osd.4.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     11285     1  0 19:10 ?        00:01:03 /usr/bin/ceph-osd -i 5 --pid-file /var/run/ceph/osd.5.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-224----- 暂时停用
  -----dn-5-225-----
  root     11638     1  0 19:10 ?        00:01:09 /usr/bin/ceph-osd -i 6 --pid-file /var/run/ceph/osd.6.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     12499     1  0 19:11 ?        00:01:05 /usr/bin/ceph-osd -i 7 --pid-file /var/run/ceph/osd.7.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-226-----
  root     23279     1  0 19:11 ?        00:01:10 /usr/bin/ceph-osd -i 8 --pid-file /var/run/ceph/osd.8.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     24182     1  0 19:11 ?        00:01:03 /usr/bin/ceph-osd -i 9 --pid-file /var/run/ceph/osd.9.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-227-----
  root     29171     1  0 19:12 ?        00:01:00 /usr/bin/ceph-osd -i 10 --pid-file /var/run/ceph/osd.10.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     30031     1  0 19:12 ?        00:01:02 /usr/bin/ceph-osd -i 11 --pid-file /var/run/ceph/osd.11.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-228-----
  root     19083     1  0 19:12 ?        00:01:09 /usr/bin/ceph-osd -i 12 --pid-file /var/run/ceph/osd.12.pid -c /etc/ceph/ceph.conf --cluster ceph
  root     20151     1  0 19:13 ?        00:01:02 /usr/bin/ceph-osd -i 13 --pid-file /var/run/ceph/osd.13.pid -c /etc/ceph/ceph.conf --cluster ceph
  -----dn-5-229-----
  root      7121     1  0 19:13 ?        00:01:02 /usr/bin/ceph-osd -i 14 --pid-file /var/run/ceph/osd.14.pid -c /etc/ceph/ceph.conf --cluster ceph
  root      7999     1  0 19:13 ?        00:00:56 /usr/bin/ceph-osd -i 15 --pid-file /var/run/ceph/osd.15.pid -c /etc/ceph/ceph.conf --cluster ceph
  

  

  4:问题排查:
  健康状态检查
  ceph health
  

  有告警信息如下:
  HEALTH_WARN too few PGs per OSD (12 < min 30)
  

  解决办法:
  解决办法, 需要修改pg_num , pgp_num .
  先要获取pool name, 如下, 返回pool name : rbd.
  [root@dn-5-221 ceph]# ceph osd pool stats
  pool rbd id 0
  nothing is going on
  先改 pg_num  再改 pgp_num ,需要注意, pg_num只能增加, 不能缩小.
  

  ceph osd pool set rbd pg_num 300
  ceph osd pool set rbd pgp_num 300
  

  再次验证 ok
  

  ceph health
  HEALTH_OK
  

  

  

  

  五:扩展集群
  

  1:增加一个OSD
  在你的ceph-deloy节点上,准备OSD。
  ceph-deploy osd prepare {ceph-node}:/path/to/directory
  ceph-deploy osd prepare ceph-node1:/tmp/osd2
  

  最后,激活OSD。
  ceph-deploy osd activate {ceph-node}:/path/to/directory
  ceph-deploy osd activate ceph-node1:/tmp/osd2
  

  一旦你增加新的OSD,Ceph将会迁移已有的放置置到新的OSD上以达到集群的重新平衡,你可通过ceph命令界面观察这个过程。
  你将会看到PG状态由活跃且干净状态变成活跃态,其中存在部分降级对象。当迁移完成后,将再次返回活跃且干净状态。(可按Control+c组合键退出)
  ceph -w
  

  2:增加一个mds服务器
  为了使用CephFS文件系统,你需要至少一台元数据服务器。执行如下步骤以创建一台元数据服务器。
  ceph-deploy mds create {ceph-node}
  ceph-deploy mds create ceph-node1
  注意:当前Ceph产品中仅支持运行一个元数据服务器。你可尝试在一个集群中运行多个元数据服务器,但对此尚无商业支持。
  

  3:增加mon节点
  

  一个Ceph存储集群至少需要一台Ceph监视器。为了保证高可用性,Ceph存储集群中通常会运行多个Ceph监视器,任意单台Ceph监视器的宕机都不会影响整个Ceph存储集群正常工作。由于Ceph使用Paxos算法,这需要多个Ceph监视器组成Quoram(如1,2:3,3:4,3:5,4:6等)。
  

  向你的集群增加2台Ceph监视器。
  ceph-deploy mon create {ceph-node}
  ceph-deploy mon create ceph-node2 ceph-node3
  

  当你增加Ceph监视器后,Ceph将开始同步各监视器并形成Quoram。你可通过如下方式检查Quoram状态:
  ceph quorum_status
  或者
  ceph quorum_status --format json-pretty
  

  [root@dn-5-221 ceph]# ceph quorum_status --format json-pretty
  

  {
  "election_epoch": 8,
  "quorum": [
  0,
  1,
  2
  ],
  "quorum_names": [
  "dn-5-225",
  "dn-5-227",
  "dn-5-229"
  ],
  "quorum_leader_name": "dn-5-225",
  "monmap": {
  "epoch": 1,
  "fsid": "c7ee9e13-af6f-475e-80ce-ecb4ba463540",
  "modified": "0.000000",
  "created": "0.000000",
  "mons": [
  {
  "rank": 0,
  "name": "dn-5-225",
  "addr": "172.17.5.225:6789\/0"
  },
  {
  "rank": 1,
  "name": "dn-5-227",
  "addr": "172.17.5.227:6789\/0"
  },
  {
  "rank": 2,
  "name": "dn-5-229",
  "addr": "172.17.5.229:6789\/0"
  }
  ]
  }
  }
  

  Ceph提供了3种使用场景:
  1、分布式文件系统CephFS。
  多个客户端mount CephFS到本地,CephFS遵循POSIX接口,使用体验类似于ext4等本地文件系统。
  类似于其他分布式文件系统,各个CephFS客户端共享同一命名空间。
  2、RadosGW(rgw)对象存储。
  rgw使用场景类似于Amazon S3,据个人理解也类似于七牛云存储。
  3、块设备rbd(Rados Block Device)。
  Ceph提供虚拟的rbd块设备,用户像使用SATA盘那样的物理块设备一样使用rbd。
  rbd的使用是排他的,每个rbd块设备是用户私有的,相对的,CephFS的使用方式是共享的。
  虚拟化和云计算的发展正当盛年,IaaS结合rbd块设备这一使用方式有如干柴遇烈火,因此rbd是Ceph社区开发的重心之一。本文也主要从rbd的视角来了解Ceph。
  

  

  





运维网声明 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.yunweiku.com/thread-670618-1-1.html 上篇帖子: ceph学习笔记之十一 Cent OS7安装部署Ceph J版本 下篇帖子: Openstack对接Ceph时的错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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