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

[经验分享] ceph文件系统安装配置

[复制链接]

尚未签到

发表于 2019-2-2 07:44:08 | 显示全部楼层 |阅读模式
ceph文件系统安装配置


1     前言
  Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
l  Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
l  Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。
l  MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。
2     安装配置
2.1  实验环境
  操作系统:Centos 7 x64
  IP
  主机名
  应用
  192.168.8.10
  ceph-deploy
  控制台
  192.168.8.11
  ceph-mon1
  监控1
  192.168.8.12
  ceph-mon2
  监控2
  192.168.8.13
  ceph-mon3
  监控3
  192.168.8.14
  ceph-osd0
  数据0
  192.168.8.15
  ceph-osd1
  数据1
  192.168.8.16
  ceph-osd2
  数据2
  192.168.8.17
  ceph-mds
  元数据
  192.168.8.18
  cephfs
  客户端
2.2  安装配置ceph
  192.168.8.10操作
2.2.1     yum环境
  yuminstall -y yum-utils && yum-config-manager --add-repohttps://dl.fedoraproject.org/pub/epel/7/x86_64/ &&  yum install --nogpgcheck -y epel-release&&  rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && rm /etc/yum.repos.d/dl.fedoraproject.org*
  
  编辑yum源:
  vim/etc/yum.repos.d/ceph.repo
  [Ceph]
  name=Ceph  packages for $basearch
  baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch
  enabled=1
  gpgcheck=1
  type=rpm-md
  gpgkey=https://download.ceph.com/keys/release.asc
  priority=1
  
  [Ceph-noarch]
  name=Ceph  noarch packages
  baseurl=http://download.ceph.com/rpm-jewel/el7/noarch
  enabled=1
  gpgcheck=1
  type=rpm-md
  gpgkey=https://download.ceph.com/keys/release.asc
  priority=1
  
  [ceph-source]
  name=Ceph  source packages
  baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS
  enabled=1
  gpgcheck=1
  type=rpm-md
  gpgkey=https://download.ceph.com/keys/release.asc
  priority=1
  
  安装ceph-deploy
  yuminstall ceph-deploy
  
  安装ntp
  yuminstall ntp ntpdate ntp-doc
  
2.2.2     hosts文件
  vi/etc/hosts
  添加
  192.168.8.10   ceph-deploy
  192.168.8.11   ceph-mon1
  192.168.8.12   ceph-mon2
  192.168.8.13   ceph-mon3
  192.168.8.14   ceph-node0
  192.168.8.15   ceph-node1
  192.168.8.16   ceph-node2
  192.168.8.17   ceph-mds
  192.168.8.18   cephfs
  
2.2.3     无密钥登录
  ssh-keygen   一直回车
  
  把公钥拷贝到各 Ceph 节点
  ssh-copy-idroot@ceph-deploy
  ssh-copy-idroot@ceph-mon1
  ssh-copy-idroot@ceph-mon2
  ssh-copy-idroot@ceph-mon3
  ssh-copy-idroot@ceph-node0
  ssh-copy-idroot@ceph-node1
  ssh-copy-idroot@ceph-node2
  ssh-copy-idroot@ceph-mds
  ssh-copy-idroot@cephfs
2.2.4     创建集群
  先在管理节点上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对。
  mkdirmy-cluster
  cdmy-cluster
  ceph-deploy 会把文件输出到当前目录,所以请确保在此目录下执行后面的 ceph-deploy 相关命令
  
2.2.5     安装mon
  在管理节点上,进入刚创建的放置配置文件的目录,用 ceph-deploy 执行如下步骤。
  ceph-deploynew ceph-mon1 ceph-mon2 ceph-mon3
  在当前目录下用 ls 和 cat 检查ceph-deploy 的输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。
  
2.2.6     安装ceph
  ceph-deployinstall ceph-deploy ceph-mon1 ceph-mon2 ceph-mon3 ceph-node0 ceph-node1ceph-node2 ceph-mds cephfs
  ceph-deploy将在各节点安装Ceph 。 注:如果你执行过 ceph-deploy purge ,你必须重新执行这一步来安装 Ceph 。
  
2.2.7     初始化mon
  配置初始 monitor(s)、并收集所有密钥:
  ceph-deploymon create-initial
2.2.8     添加osd
  添加OSD 。这次我们是把目录而非整个硬盘用于 OSD 守护进程(存储数据)。
  ssh ceph-node0
  mkdir/var/local/osd0
  exit
  
  sshceph-node1
  mkdir/var/local/osd1
  exit
  
  sshceph-node2
  mkdir/var/local/osd2
  exit
  
  然后,从管理节点执行 ceph-deploy 来准备 OSD 。
  ceph-deployosd prepare ceph-node0:/var/local/osd0 ceph-node1:/var/local/osd1ceph-node2:/var/local/osd2
  ceph-deployosd activate ceph-node0:/var/local/osd0 ceph-node1:/var/local/osd1ceph-node2:/var/local/osd2
  
  用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点
  ceph-deployadmin ceph-deploy ceph-mon1 ceph-mon2 ceph-mon3 ceph-node0 ceph-node1ceph-node2 ceph-mds cephfs
  
  检查集群的健康状况
  cephstatus
  
  等 peering 完成后,集群应该达到 active + clean 状态。
  
2.2.9     添加元数据
  至少需要一个元数据服务器才能使用 CephFS文件系统 ,执行下列命令创建元数据服务器:
  ceph-deploymds create ceph-mds
  当前生产环境下的 Ceph 只能运行一个元数据服务器。你可以配置多个,但多个目前还不稳定。
  
2.2.10   添加存储池
  用此命令创建存储池时:
  cephosd pool create {pool-name} pg_num
  确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:
  少于 5 个 OSD 时可把 pg_num 设置为 128
  OSD 数量在 5 到 10 个时,可把 pg_num 设置为512
  OSD 数量在 10 到 50 个时,可把 pg_num 设置为4096
  OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值
  自己计算 pg_num 取值时可借助 pgcalc 工具:http://ceph.com/pgcalc/
  
  一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据。配置这些存储池时需考虑:
  为元数据存储池设置较高的副本水平,因为此存储池丢失任何数据都会导致整个文件系统失效。
  为元数据存储池分配低延时存储器(像 SSD ),因为它会直接影响到客户端的操作延时。
  
  cephosd pool create cephfs_metadata 128 128
  cephosd pool create cephfs_data 512 512
  
2.2.11   创建文件系统
  创建好存储池后,你就可以用 fs new 命令创建文件系统了:
  cephfs new cephfs cephfs_metadata cephfs_data
  查看文件系统:
  cephfs ls
  文件系统创建完毕后, MDS 服务器就能达到 active 状态了,比如在一个单 MDS 系统中:
  cephmds stat
  
2.2.12   挂载文件系统
  查看密钥:
  cat/etc/ceph/ceph.client.admin.keyring
  [client.admin]
          key = AQA1nLhZBEVaDBAAtHOx5OEdOjKSpvHN3JVJeA==
          caps mds = "allow *"
          caps mon = "allow *"
          caps osd = "allow *"
  
  将红色部分导入一个新文件
  echo“AQA1nLhZBEVaDBAAtHOx5OEdOjKSpvHN3JVJeA==”> /etc/ceph/admin.secret
  chmod600 /etc/ceph/admin.secret
  
  挂载文件系统
  mount-t ceph 192.168.8.11,192.168.8.12,192.168.8.13:6789:/ /mnt/mycephfs -oname=admin,secretfile=/etc/ceph/admin.secret
  
  查看cephfs容量
  cephdf
  
2.2.13   fstab配置
  要用内核驱动挂载 Ceph FS ,按下列格式添加到 /etc/fstab :
  {ipaddress}:{port}:/{mount}/{mountpoint} {filesystem-name}    [name=username,secret=secretkey|secretfile=/path/to/secretfile],[{mount.options}]
  
  192.168.8.11,192.168.8.12,192.168.8.13:6789:/  /mnt/mycephfs ceph  name=admin, secretfile=/etc/ceph/admin.secret,noatime  0  0
  
2.3  扩容ceph
2.3.1     新增osd
  如增加ceph-osd3 IP为192.168.8.19
  管理节点增加主机名解析:
  vi/etc/hosts
  192.168.8.19  ceph-osd3
  
  增加无密钥登录
  ssh-copy-idroot@ceph-osd3
  
  ssh ceph-osd3
  sudomkdir /var/local/osd3
  exit
  
  然后,从管理节点执行 ceph-deploy 来准备 OSD 。
  ceph-deployosd prepare ceph-node3:/var/local/osd3
  
  激活 OSD
  ceph-deployosd activate ceph-node3:/var/local/osd3
  
2.3.2     删除osd
  如删除ceph-osd3 IP为192.168.8.19
  删除 OSD 前,它通常是 up 且 in 的,要先把它踢出集群,以使 Ceph 启动重新均衡、把数据拷贝到其他 OSD 。
  先查看osd对应数字
  cpehosd tree
  然后进行踢出
  cephosd out 3
  
  观察数据迁移
  一旦把 OSD 踢出( out )集群,Ceph 就会开始重新均衡集群、把归置组迁出将删除的 OSD 。你可以用 ceph 工具观察此过程。
  ceph –w
  
  你会看到归置组状态从 active+clean 变为 active, some degradedobjects 、迁移完成后最终回到 active+clean 状态。
  
  注意:有时候,(通常是只有几台主机的“小”集群,比如小型测试集群)拿出( out )某个 OSD 可能会使CRUSH 进入临界状态,这时某些 PG 一直卡在active+remapped 状态。如果遇到了这种情况,你应该把此 OSD 标记为 in ,用这个命令:
  cephosd in 3
  等回到最初的状态后,把它的权重设置为 0 ,而不是标记为 out ,用此命令:
  ceph osdcrush reweight osd.3 0
  执行后,你可以观察数据迁移过程,应该可以正常结束。把某一 OSD 标记为 out 和权重改为 0的区别在于,前者,包含此 OSD 的桶、其权重没变;而后一种情况下,桶的权重变了(降低了此 OSD 的权重)。某些情况下, reweight 命令更适合“小”集群。
  
  停止 OSD
  把 OSD 踢出集群后,它可能仍在运行,就是说其状态为 up 且 out 。删除前要先停止 OSD 进程。
  ssh ceph-osd3
  systemctlstop ceph-osd@3.service
  exit
  
  停止 OSD 后,状态变为 down 。
  cephosd tree
  
  删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了。
  cephosd crush remove osd.3
  cephosd crush remove ceph-node3
  
  删除 OSD 认证密钥:
  cephauth del osd.3
  
  删除 OSD
  cephosd rm 3
  
  从 ceph.conf 配置文件里删除对应条目。
  ssh ceph-deploy
  cd/etc/ceph
  vimceph.conf
  [osd.3]
          host = {hostname}
  
  
  





运维网声明 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-670642-1-1.html 上篇帖子: 使用ceph-deploy安装Ceph 12.x(序言) 下篇帖子: ceph 为ssd,sas osd设置不同的crush location
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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