分布式存储——ceph集群部署

发布时间 2023-11-02 17:47:43作者: 一只橙子猫

一、部署结构

image
以x.x.x.150、x.x.x.151、x.x.x.152三台服务器搭建最基本的三节点ceph集群,服务器系统使用的是centos7版本,IP网段为x.x.x.0/24,三台服务器的名称分别为:

  • ceph001: x.x.x.150,管理节点
  • ceph002: x.x.x.151,子节点
  • ceph003:x.x.x.152,子节点

二、部署前准备

1. 修改hosts文件

以下操作需要在三台服务器依次执行

  • 查看服务器名称
[root@ceph001 ~]# cat /etc/hostname
ceph001
  • 编辑hosts文件
[root@ceph001 ~]# vim /etc/hosts

在hosts文件中追加服务器名称和IP地址

x.x.x.150 ceph001
x.x.x.151 ceph002
x.x.x.152 ceph003

2. 关闭防火墙

以下操作需要在三台服务器依次执行

[root@ceph001 ~]# systemctl stop firewalld
[root@ceph001 ~]# systemctl disable firewalld

编辑/etc/selinux/config修改:

[root@ceph001 ~]# vim /etc/selinux/config
SELINUX=disabled

3. 配置ssh免密

以下操作需要在管理节点ceph001执行

  • 在管理节点ceph001生成秘钥
[root@ceph001 ~]# ssh-keygen

按照默认提示点击enter即可,生成的秘钥默认存放于~/.ssh文件中
image

  • 分配秘钥至子节点
    将管理节点ceph001的秘钥,即将id_rsa.pub的内容分发给其它节点
[root@ceph001 ~]# ssh-copy-id root@ceph002
[root@ceph001 ~]# ssh-cpoy-id root@ceph003

4. 修改yum源

以下操作需要在三台服务器依次执行

  • 迁移旧的yum源
[root@ceph001 ~]# cd /etc/yum.repos.d
[root@ceph001 yum.repos.d]# mkdir unless
[root@ceph001 yum.repos.d]# mv *.repo unless
  • 创建新的yum源
[root@ceph001 yum.repos.d]# vi ceph.repo

将以下内容复制到新的yum源文件中

[ceph] 
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc[ceph-noarch] 
name=Ceph noarch packages  
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc[ceph-source] 
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/ 
enabled=1 
gpgcheck=1 
type=rpm-md 
gpgkey=https://download.ceph.com/keys/release.asc
    1. 刷新yum源
[root@ceph001 yum.repos.d]# yum clean all
[root@ceph001 yum.repos.d]# yum makecache

6. 安装chrony时间同步工具

以下操作需要在三个服务器节点依次执行

[root@ceph001 ~]# yum -y install chrony
[root@ceph001 ~]# systemctl enable chrony
[root@ceph001 ~]# server ntp1.aliyun.com iburst
[root@ceph001 ~]# systemctl start chrony

7. 安装ceph部署工具

以下操作需要在管理节点ceph001执行

[root@ceph001 ~]# yum -y install ceph ceph-deploy

三、正式部署

1. 创建集群配置目录

以下操作需要在管理节点ceph001执行

[root@ceph001 ~]# cd /usr/local
[root@ceph001 local]# mkdir ceph
[root@ceph001 local]# cd ceph

2. 创建集群

以下操作需要在管理节点ceph001执行

  • 将三个服务器节点纳入ceph集群
[root@ceph ceph]# ceph-deploy new ceph001 ceph002 ceph003

创建成功后,会在该文件夹下生成名为ceph.conf的配置文件

  • 修改配置文件
[root@ceph001 ceph]# vi ceph.conf

加入以下内容:

[global]
# 网段
public network = x.x.x.0/24
# 允许删除pool
mon_allow_pool_delete = true

同样的,在/etc/ceph/ceph.conf也加入以上内容,以保持一致。

  • 执行安装
[root@ceph001 ceph]# ceph-deploy install ceph001 ceph002 ceph003
  • 初始化monitor信息
[root@ceph001 ceph]# ceph-deploy mon create-initial

执行成功后,会在该文件夹下生成以下内容:

image

  • 下发配置文件和管理信息至各节点
[root@ceph001 ceph]# ceph-deploy admin ceph001 ceph002 ceph003
  • 安装管理守护进程(mgr)
[root@ceph001 ceph]# ceph-deploy mgr create ceph001 ceph002 ceph003
  • 安装osd
    分别查看各服务器节点可用磁盘,在ceph001中,其中vdb盘已经被ceph集群纳管为osd,其中vdc为空盘。
[root@ceph001 ceph]# lsblk

image

创建osd

[root@ceph001 ceph]# ceph osd create --data /dev/vdc ceph001
[root@ceph001 ceph]# ceph osd create --data /dev/vdc ceph002
[root@ceph001 ceph]# ceph osd create --data /dev/vdc ceph003

为新增的节点收集认证秘钥

[root@ceph001 ceph]# ceph-deploy gatherkeys ceph001
[root@ceph001 ceph]# ceph-deploy gatherkeys ceph002
[root@ceph001 ceph]# ceph-deploy gatherkeys ceph003
  • 创建pool
    pool的数量要大于30,数量为以2为底的指数
[root@ceph001 ~]# ceph osd pool create myPool 32 32
[root@ceph001 ~]# ceph osd pool application enable myPool rgw

3. 验证集群

出现HEALTH_OK代表正常

[root@ceph001 ceph]# ceph -s

四、问题总结与解决

待更新