手动部署Ceph集群

手动部署Ceph集群

我们创建了3台虚拟机,虚拟机配置如下


配置图
  • 3块大小为2T的磁盘,sdb,sdc,sdd,用于启动osd进程
  • 一块大小为600G的磁盘,作为osd的journal分区~~

集群配置如下

主机 IP 功能
ceph-1 192.168.56.101 mon1、osd0、osd1、osd2
ceph-2 192.168.56.102 mon2、osd3、osd4、osd5
ceph-3 192.168.56.103 mon3、osd6、osd7、osd8

配置NTP服务

将NTP server放在ceph-1节点上,ceph-2/3节点是NTP client,这样可以从根本上解决时间同步问题。

修改配置文件

从本机登录到ceph-1
修改/etc/ntp.conf,注释掉默认的四个server,添加三行配置如下:

vim  /etc/ntp.conf
###comment following lines:
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
###add following lines:
server 127.127.1.0 minpoll 4
fudge 127.127.1.0 stratum 0
restrict 192.168.56.0 mask 255.255.0.0 nomodify notrap

修改/etc/ntp/step-tickers文件如下

# List of NTP servers used by the ntpdate service.
# 0.centos.pool.ntp.org
127.127.1.0

在重启ntp服务之前需要将防火墙关闭,否则客户端不能访问ntp服务

关闭防火墙

关闭selinux&firewalld

sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld 
systemctl disable firewalld

启动ntp服务

重启ntp服务,并查看server端是否运行正常,正常的标准就是ntpq -p指令的最下面一行是*

[root@ceph-1 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.           0 l   15   16    1    0.000    0.000   0.000

NTP server端已经配置完毕,下面开始配置client端。

配置客户端ntp同步

同样的方式登录到ceph-2/ceph-3机器上:

修改/etc/ntp.conf,注释掉四行server,添加一行server指向ceph-1:

vim /etc/ntp.conf

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

server 192.168.56.101

重启ntp服务并观察client是否正确连接到server端,同样正确连接的标准是ntpq -p的最下面一行以*号开头
异常状态:

[root@ceph-3 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ceph-1          .LOCL.           1 u    5   64    3    0.551  -716.88   0.318

正常状态:

[root@ceph-3 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ceph-1          .LOCL.           1 u   33   64   17    0.701    0.115   0.081

手动搭建ceph集群

手动部署mon集群

主mon节点部署 (192.168.56.101,ceph-1)

登录到ceph-1机器,

创建ceph用户与目录

新建一个脚本文件prepare_env.sh,然后写入以下内容:

/usr/sbin/groupadd ceph -g 167 -o -r
/usr/sbin/useradd ceph -u 167 -o -r -g ceph -s /sbin/nologin -c "Ceph daemons"
mkdir -p /etc/ceph/
chown -R ceph:ceph /etc/ceph/
mkdir -p /var/run/ceph
chown -R ceph:ceph /var/run/ceph
mkdir -p /var/log/ceph
chown -R ceph:ceph /var/log/ceph
mkdir -p /var/lib/ceph/mon
chown -R ceph:ceph /var/lib/ceph

创建ceph.conf文件

新建一个conf文件ceph.conf,然后写入以下内容:

[global]
fsid = c165f9d0-88df-48a7-8cc5-11da82f99c93
mon initial members = ceph-1
mon host = 192.168.56.101,192.168.56.102,192.168.56.103
rbd default features = 1
auth_cluster_required = none
auth_service_required = none
auth_client_required = none
public network = 192.168.56.0/24
cluster network = 192.168.56.0/24
osd journal size = 1024
osd pool default size = 3
osd pool default min size = 1
osd pool default pg num = 300
osd pool default pgp num = 300
osd crush chooseleaf type = 1

[mon]
mon allow pool delete = true

其中 fsid 是为集群分配的一个 uuid, 可使用uuidgen命令生成。初始化 mon 节点其实只需要这一个配置就够了。
mon host 配置 ceph 命令行工具访问操作 ceph 集群时查找 mon 节点入口。
ceph 集群可包含多个 mon 节点实现高可用容灾, 避免单点故障。
rbd default features = 1 配置 rbd 客户端创建磁盘时禁用一些需要高版本内核才能支持的特性。

  • 拷贝这两个文件到ceph-2,ceph-3机器上
scp prepare_env.sh  192.168.56.102:/home
scp prepare_env.sh  192.168.56.103:/home
scp /etc/ceph/ceph.conf  192.168.56.102:/etc/ceph/
scp /etc/ceph/ceph.conf  192.168.56.103:/etc/ceph/
  • 启动mon节点

    首先执行脚本,创建ceph用户及相关目录。

    sh prepare_env.sh
    

    1、为此集群创建密钥环、并生成Monitor密钥

    [root@ceph-1 ~]# ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
    

    2、生成管理员密钥环,生成 client.admin 用户并加入密钥环

    [root@ceph-1 ~]# ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
    

    3、把 client.admin 密钥加入 ceph.mon.keyring (3台机器一样)

    [root@ceph-1 ~]# ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
    

你可能感兴趣的:(手动部署Ceph集群)