Ceph 集群快速安装

系统基础环境设定

安装要求

四台 CentOS7 系统,应用配置: 2C4G, 另外ceph-node0X 机器最少挂载 3 块硬盘 ,其中 ceph-admin 为管理节点

192.168.124.160 ceph-admin
192.168.124.161 ceph-node01
192.168.124.162 ceph-node02
192.168.124.163 ceph-node03

各主机需要预设的系统环境

  • 关闭防火墙:for i in stop disable;do systemctl $i firewalld; done
  • 关闭selinux:sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0
  • 关闭NetworkManager:systemctl disable NetworkManager && systemctl stop NetworkManager
  • 添加主机名与IP对应关系:vim /etc/hosts
192.168.124.160 ceph-admin
192.168.124.161 ceph-node01
192.168.124.162 ceph-node02
192.168.124.163 ceph-node03
  • 同步网络时间和修改时区:systemctl restart chronyd.service && systemctl enable chronyd.service
  • 设置文件描述符
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF
  • 内核参数优化
cat >> /etc/sysctl.conf << EOF
kernel.pid_max = 4194303
EOF
echo "vm.swappiness = 0" >> /etc/sysctl.conf
sysctl -p

准备部署 Ceph 集群

Ceph官方的仓库路径为http://download.ceph.com/,目前主流版本相关的程序包都在提供,包括kraken、luminous和mimic等,它们分别位于rpm-mimic等一类的目录中。直接安装程序包即可生成相关的yum仓库相关的配置文件,程序包位于相关版本的noarch目录下,例如rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm 是为负责生成适用于部署mimic版本Ceph的yum仓库配置文件,因此直接在线安装此程序包,也能直接生成yum仓库的相关配置

1. 准备yum仓库配置文件

在ceph-admin节点上,使用如下命令即可安装生成mimic版本相关的yum仓库配置

~]# rpm -ivh https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm

2. 创建部署Ceph的特定用户账号

部署工具ceph-deploy 必须以普通用户登录到Ceph集群的各目标节点,且此用户需要拥有无密码使用sudo命令的权限,以便在安装软件及生成配置文件的过程中无需中断配置过程。不过,较新版的ceph-deploy也支持用 ”--username“ 选项提供可无密码使用sudo命令的用户名(包括 root ,但不建议这样做)。另外,使用”ceph-deploy --username {username} “命令时,指定的用户需要能够通过SSH协议自动认证并连接到各Ceph节点,以免ceph-deploy命令在配置中途需要用户输入密码。

  • 在ceph各节点创建新用户-cephadm
~]# useradd cephadm 
~]# echo "cephadm" | passwd --stdin cephadm
  • 确保这些节点上新创建的用户cephadm都有无密码运行sudo命令的权限
~]# echo "cephadm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadm 
~]# chmod 0440 /etc/sudoers.d/cephadm
  • 配置主机互信

ceph-deploy命令不支持运行中途的密码输入,因此,必须在管理节点(ceph-admin)上生成SSH密钥并将其公钥分发至Ceph集群的各节点上。下面直接以cephadm用户的身份生成SSH密钥对:

~]# su - cephadm
~]$ ssh-keygen  -t rsa
~]$ ssh-copy-id ceph-node01
~]$ ssh-copy-id ceph-node02
~]$ ssh-copy-id ceph-node03
  • 在管理节点安装ceph-deploy

Ceph存储集群的部署的过程可通过管理节点使用ceph-deploy全程进行,这里首先在管理节点安装ceph-deploy及其依赖到的程序包:

~]$ sudo yum update
~]$ sudo yum install ceph-deploy python-setuptools python2-subprocess32
~]$ ceph-deploy --version
2.0.1

部署 Ceph 存储集群

1. 首先在管理节点上以cephadm用户创建集群相关的配置文件目录

~]$ mkdir ceph-cluster
ceph-admin ~]$ cd ceph-cluster

2. 初始化 Monitor 节点,准备创建集群

Ceph存储集群需要至少运行一个Ceph Monitor和一个Ceph Manager,生产环境中,为了实现高可用性,Ceph存储集群通常运行多个监视器,以免单监视器整个存储集群崩溃。Ceph使用Paxos算法,该算法需要半数以上的监视器(大于n/2,其中n为总监视器数量)才能形成法定人数。尽管此非必需,但奇数个监视器往往更好。使用下面的命令,可以将 ceph-node01、ceph-node02、 ceph-node03运行为 Monitor 节点。

~]$ ceph-deploy new ceph-node01 ceph-node02 ceph-node03
ceph-cluster]$ ll 
-rw-rw-r-- 1 cephadm cephadm  262 7月  21 14:46 ceph.conf
-rw-rw-r-- 1 cephadm cephadm 5615 7月  21 14:46 ceph-deploy-ceph.log
-rw------- 1 cephadm cephadm   73 7月  21 14:46 ceph.mon.keyring

3. 在每个节点安装 Ceph 软件

ceph-deploy命令能够以远程的方式连入Ceph集群各节点完成程序包安装等操作,命令格式如下:ceph-deploy install {ceph-node} [{ceph-node} ...]因此,若要将ceph-node01、ceph-node02和ceph-node03配置为Ceph集群节点,则执行如下命令即可:

ceph-cluster]$ ceph-deploy install ceph-node01 ceph-node02 ceph-node03

此处为了加速我们在集群各节点手动安装ceph程序包

~]# rpm -ivh https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm
~]# yum install -y ceph ceph-radosgw 

等待各个集群节点程序包安装完成后,配置 ceph-node01, ceph-node02, ceph-node03 为 ceph 集群节点,此处为了不让 ceph-deploy 节点 再次重新安装 ceph 程序,我们需要添加参数 --no-adjust-repos

ceph-cluster]$ ceph-deploy install --no-adjust-repos ceph-node01 ceph-node02 ceph-node03 

4. 生成 Monitor 检测集群所使用的的秘钥

在节点上会启动一个 ceph-mon 进程,并且以 ceph 用户运行。在 /etc/ceph 目录会生成一些对应的配置文件,其中 ceph.conf 文件就是从前面 ceph-cluater 文件直接copy过去的,此文件也可以直接进行修改

ceph-cluster]$ ceph-deploy mon create-initial

5. 分发配置文件到集群个节点

为免得每次执行”ceph“命令行时不得不明确指定MON节点地址和ceph.client.admin.keyring, 我们把配置文件和admin密钥拷贝Ceph集群各节点

ceph-cluster]$ ceph-deploy admin ceph-node01 ceph-node02 ceph-node03

6. 配置mgr,用于管理集群

对于Luminious+版本 或以后的版本,必须配置Manager节点,启动ceph-mgr进程,否则ceph是不健康的不完整的。Ceph Manager守护进程以“Active/Standby”模式运行,部署其它ceph-mgr守护程序可确保在Active节点或其上的 ceph-mgr守护进程故障时,其中的一个Standby实例可以在不中断服务的情况下接管其任务。 Mgr 是一个无状态的服务,所以我们可以随意添加其个数,通常而言,使用 2 个节点即可。

ceph-cluster]$ ceph-deploy  mgr create ceph-node01 ceph-node02

我们可以通过 ceph -s 命令验证, 如果没有 ceph 命令则需要安装 ceph-common ,为了能让 ceph-admin 也能执行ceph -s命令,我们需要安装 ceph-common 命令,并且通过 ceph-deploy admin推送配置文件给 ceph-admin,并设置cephadm 对 配置文件有可读权限

ceph-cluster]$ sudo yum install -y ceph-common
ceph-cluster]$ ceph-deploy admin ceph-admin
ceph-cluster]$ sudo setfacl -m u:cephadm:r /etc/ceph/ceph.client.admin.keyring

此命令运行完成以后,整个Ceph集群基本框架已经搭建完成了。我们集群是一个拥有三个 Mon 节点,2 个 Mgr 节点的高可用ceph集群。

7. 部署 Rgw 用来提供对象存储

ceph-cluster]$ ceph-deploy rgw create ceph-node02 

8. 部署 MDS 用来提供 CephFS

ceph-cluster]$ ceph-deploy mds create ceph-node01 ceph-node02

向 Ceph 集群添加OSD

在此 ceph 集群中,我们每台机器使用了三块硬盘 ,/dev/sda、/dev/sdb、/dev/sdc, 其中/dev/sda是系统盘,/dev/sdb、/dev/sdc,是我们接下要添加为 OSD 的磁盘

~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0   98G  0 part /
└─sda2   8:2    0    2G  0 part [SWAP]
sdb      8:16   0   50G  0 disk 
sdc      8:32   0   20G  0 disk 

早期版本的ceph-deploy命令支持在将添加OSD的过程分为两个步骤:准备OSD和激活OSD,但新版本中,此种操作方式已经被废除。添加OSD的步骤只能由命令”ceph-deploy osd create {node} --data {data-disk}“一次完成,默认使用的存储引擎为bluestore

ceph-cluster]$ ceph-deploy osd create ceph-node01 --data /dev/sdb
ceph-cluster]$ ceph-deploy osd create ceph-node01 --data /dev/sdc
ceph-cluster]$ ceph-deploy osd create ceph-node02 --data /dev/sdb
ceph-cluster]$ ceph-deploy osd create ceph-node02 --data /dev/sdc
ceph-cluster]$ ceph-deploy osd create ceph-node03 --data /dev/sdb
ceph-cluster]$ ceph-deploy osd create ceph-node03 --data /dev/sdc

posted @ 2020-07-21 16:18  imirsh  阅读(96)  评论(0编辑  收藏