1.前言

1.1 部署方式

安装cephadm前面记录了使用ceph-deploy安装,此安装方式已过时,切步骤些许有点繁琐,官方目前已经推荐使用cephadm的安装方式

1.2 主机规划

操作系统 主机名 角色 public网络 配置 磁盘
CentOS Linux release 7.2.1511 (Core) node1 引导节点 172.16.143.100 1c2g 2*15G
CentOS Linux release 7.2.1511 (Core) node2 osd 172.16.143.101 2c2g 2*15G

2.安装

2.1 环境准备

以下环境准备需要在所有主机上操作

  1. 时间同步
  2. 写入hosts文件
  3. 关闭selinux
  4. 关闭防火墙
  5. 安装docker

2.1.1 时间同步

  • 需要安装好chrony模块
  • 修改配置文件,修改同步服务器地址
  • 所有主机都需要操作
  • 安装chrony模块

    1. yum -y install chrony
  • 修改配置文件

    在/etc/chrony.conf中修改server的信息为如下信息

  1. server ntp.aliyun.com iburst
  2. server ntp1.aliyun.com iburst
  3. server ntp2.aliyun.com iburst
  4. server ntp3.aliyun.com iburst
  • 启动服务
    1. systemctl start chronyd
    2. systemctl enable chronyd
    3. systemctl status chronyd

    2.1.2 host文件设置

    所有主机

  1. 172.16.143.100 node1
  2. 172.16.143.101 node2

2.1.3 关闭selinux

  1. setenforce 0
  2. sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

2.1.4 关闭防火墙

  1. systemctl stop firewalld
  2. systemctl disable firewalld

2.1.4 安装docker

安装文档:https://www.yuque.com/yuwen1113/vquw0g/uzlwwf

2.2 安装cephadm

  • 此处的cephadm是一个py脚本,它的作用其实就是安装仓库源、安装ceph中的cephadm
  • 只需要在引导节点,node1上操作

2.2.1 在线安装

  1. curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
  2. curl --silent --remote-name --location https://hub.fastgit.xyz/ceph/ceph/raw/pacific/src/cephadm/cephadm
  3. curl --silent --remote-name --location https://cdn.jsdelivr.net/gh/ceph/ceph@pacific/src/cephadm/cephadm

以上三个地址都不能下载的话,则使用离线脚本,下载完成后去掉doc后缀

cephadm.doc

2.2.2 安装ceph中的cephadm

这里我们安装的仓库为octopus版本,因为我们的操作系统使用的是centos7,最新版本中只有octopus版本支持

image.png

  1. # 增加执行权限
  2. chmod +x cephadm
  3. # 添加仓库源
  4. ./cephadm add-repo --release octopus
  5. # 修改成阿里源
  6. sed -i 's#download.ceph.com#mirrors.aliyun.com/ceph#' /etc/yum.repos.d/ceph.repo
  7. # 导入秘钥
  8. rpm --import 'https://download.ceph.com/keys/release.asc'
  9. # 安装cephamd
  10. ./cephadm install

2.3 引导ceph集群

2.3.1 引导

这里的ip为ndoe1节点的ip

  1. cephadm bootstrap --mon-ip 172.16.143.100

image.png

  • 此时我们创建引导后,可以通过/var/log/ceph/cephadm.log查询具体日志
  • 我们通过日志会发现,它会在docker中给我们创建好相关mon等容器

image.png

  • ceph的相关配置文件也会存放在/etc/ceph目录下,其中ceph.pub为ssh公钥信息,如果添加其他主机节点到集群中,需要用到

image.png

2.3.2 ceph控制台使用

  • 引导完成后,我们可以看到访问仪表盘地址,我们可以登陆地址查看集群相关信息

image.png image.png

  • (注)如果仪表盘(dashboard)密码忘了,可以使用以下命令重置密码
    • ceph dashboard ac-user-set-password admin redhat

2.3.3 安装common工具包(可选)

我们如果需要在宿主机上使用ceph相关命令,则需要安装common工具包,不然就只能使用cephadm shell来操作

  1. yum -y install ceph-common

2.4 添加主机

2.4.1 免密登陆

需要把/etc/ceph/ceph.pub公钥复制到相关主机上去,可以让ceph可以ssh免密登陆

  1. ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3

如果上面命令报错,显示’/etc/ceph/ceph’: 没有那个文件或目录,则直接把/etc/ceph/ceph.pub的内容,复制写入到目标主机的~/.ssh/authorized_keys文件中

2.4.2 添加主机

  • 这里我们添加node2到集群中
  • 添加完成后,过一段时间,我们可以在node2上,可以查看docker运行了相关的容器
  1. ceph orch host add node2

image.png

2.5 创建磁盘osd

磁盘的要求是不能被格式化,要为一块全新的硬盘,且大小不能小于10G

2.5.1 自动添加

此命令会让ceph自动添加所有满足条件的磁盘

  1. ceph orch apply osd --all-available-devices

2.5.2 手动添加

  1. ceph orch daemon add osd node2:/dev/sbd
  2. ceph orch daemon add osd node2:/dev/sbc

2.5.3 验证

  • 当所有的Available显示为No,则标识osd创建完成
  • 相关主机上也会运行osd容器
  1. [root@node1 test]# ceph orch device ls
  2. Hostname Path Type Serial Size Health Ident Fault Available
  3. node1 /dev/sdb hdd 16.1G Unknown N/A N/A No
  4. node1 /dev/sdc hdd 16.1G Unknown N/A N/A No
  5. node2 /dev/sdb hdd 16.1G Unknown N/A N/A No
  6. node2 /dev/sdc hdd 16.1G Unknown N/A N/A No

除了上面的认证方式,我们也还通过网页端查看osd相关信息,并且可以创建osd、pool、img等

image.png