美文网首页
手动部署Ceph集群

手动部署Ceph集群

作者: 修朋飞 | 来源:发表于2021-12-26 14:51 被阅读0次

    手动部署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集群

          本文链接:https://www.haomeiwen.com/subject/fpesqrtx.html