Ceph分佈式存儲實踐應用之集羣配置管理

1. 部署結構

file

虛擬機建立三臺服務器,CENTOS版本爲7.6, IP網端10.10.20.0/24。三臺主機名稱爲:node

  • CENTOS7-1: IP爲10.10.20.11, 既作管理節點, 又作子節點。
  • CENTOS7-2: IP爲10.10.20.12, 子節點。
  • CENTOS7-2: IP爲10.10.20.13, 子節點。

2. 系統配置

系統配置工做, 三臺節點依次執行:python

  1. 修改主機名稱
    [root@CENTOS7-1 ~]# vi /etc/hostnamelinux

    CENTOS7-1
  2. 編輯hosts文件centos

    10.10.20.11 CENTOS7-1
    10.10.20.12 CENTOS7-2
    10.10.20.13 CENTOS7-3

    注意, 這裏面的主機名稱要和節點名稱保持一致, 不然安裝的時候會出現問題服務器

    file

  3. 修改yum源
    vi /etc/yum.repos.d/ceph.repo, 爲避免網速過慢問題, 這裏採用的是清華鏡像源:ssh

    [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=http://download.ceph.com/rpm-mimic/el7/noarch
    # 清華源
    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
  4. 安裝ceph與ceph-deploy組件工具

    yum update && yum -y install ceph ceph-deploy

    安裝完成, 若是執行ceph-deploy出現ImportError: No module named pkg_resourcesurl

    安裝python2-pip: yum -y install python2-pipcentos7

  5. 安裝NTP時間同步工具spa

    yum install ntp ntpdate ntp-doc -y

    確保時區是正確, 設置開機啓動:

    systemctl enable ntpd

    並將時間每隔1小時自動校準同步。編輯 vi /etc/rc.d/rc.local 追加:

    /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w

    配置定時任務, 執行crontab -e 加入:

    0 */1 * * * ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w

3. 免密碼SSH登錄

  1. 官方建議不用系統內置用戶, 建立名爲ceph_user用戶, 密碼也設爲ceph_user:

    useradd -d /home/ceph_user -m ceph_user
    passwd ceph_user
  2. 設置sudo權限

    echo "ceph_user ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph_user
    sudo chmod 0440 /etc/sudoers.d/ceph_user

    一、2兩個步驟依次在三臺機器上執行。

    接下來在主節點, 繼續執行:

  3. 生成密鑰:

    切換用戶: su ceph_user

    執行ssh-keygen,一直按默認提示點擊生成RSA密鑰信息。

  4. 分發密鑰至各機器節點

    ssh-copy-id ceph_user@CENTOS7-1
    ssh-copy-id ceph_user@CENTOS7-2
    ssh-copy-id ceph_user@CENTOS7-3
  5. 修改管理節點上的 ~/.ssh/config 文件, 簡化SSH遠程鏈接時的輸入信息:

    管理節點是會有root和ceph_user多個用戶, ssh遠程鏈接默認會以當前用戶身份進行登錄,

    若是咱們是root身份進行遠程鏈接, 仍是須要輸入密碼, 咱們想簡化, 該怎麼處理?

    切換root身份,

    su root

    修改~/.ssh/config 文件

    Host CENTOS7-1
       Hostname CENTOS7-1
       User ceph_user
    Host CENTOS7-2
       Hostname CENTOS7-2
       User ceph_user
    Host CENTOS7-3
       Hostname CENTOS7-3
       User ceph_user

    注意修改文件權限, 不能採用777最大權限:

    chmod 600 ~/.ssh/config

    進行ssh遠程鏈接時, Host的主機名稱是區分大小寫的, 因此要注意配置文件的主機名稱。

  6. 開放端口, 非生產環境, 能夠直接禁用防火牆:

    systemctl stop firewalld.service
    systemctl disable firewalld.service
  7. SELINUX設置

    SELinux設爲禁用:

    setenforce 0

    永久生效:
    編輯 vi /etc/selinux/config修改:

    SELINUX=disabled

4. 集羣搭建配置

採用root身份進行安裝

  1. 在管理節點建立集羣配置目錄,cd /usr/local:

    mkdir ceph-cluster
    cd ceph-cluster

    注意: 此目錄做爲ceph操做命令的基準目錄, 會存儲處理配置信息。

  2. 建立集羣, 包含三臺機器節點:

    ceph-deploy new CENTOS7-1  CENTOS7-2 CENTOS7-3

    建立成功後, 會生一個配置文件。

  3. 若是接下來集羣的安裝配置出現問題, 能夠執行如下命令清除, 再從新安裝:

    ceph-deploy purge CENTOS7-1  CENTOS7-2 CENTOS7-3
    ceph-deploy purgedata CENTOS7-1  CENTOS7-2 CENTOS7-3
    ceph-deploy forgetkeys

    將三臺節點的mon信息也刪除

    rm -rf /var/run/ceph/
  4. 修改配置文件, 有些配置後面需用到:

    vi /usr/local/ceph-cluster/ceph.conf

    加入:

    [global]
    public network = 10.10.20.0/24
    # 設置pool池默認分配數量
    osd pool default size = 2
    # 容忍更多的時鐘偏差
    mon clock drift allowed = 2
    mon clock drift warn backoff = 30
    # 容許刪除pool
    mon_allow_pool_delete = true
    [mgr]
    # 開啓WEB儀表盤
    mgr modules = dashboard

    第一項爲副本數, 設爲2份。

    第二項爲對外IP訪問網段,注意根據實際IP修改網段。

    第3、四項爲容許必定時間的漂移偏差。

  5. 執行安裝:

    ceph-deploy install  CENTOS7-1  CENTOS7-2 CENTOS7-3

    若是出現錯誤:

    ceph_deploy][ERROR ] RuntimeError: Failed to execute command: ceph --version

    能夠在各節點上單獨進行安裝:

    yum -y install ceph

    若是沒有倉庫文件ceph.repo, 按上面的步驟手工建立。

  6. 初始monitor信息:

    ceph-deploy mon create-initial

    執行完成後, 會生成如下文件:
    file

  7. 同步管理信息:

    下發配置文件和管理信息至各節點:

    ceph-deploy admin  CENTOS7-1  CENTOS7-2 CENTOS7-3
  8. 安裝mgr(管理守護進程), 大於12.x版本需安裝, 咱們裝的是最新版,需執行:

    ceph-deploy mgr create CENTOS7-1  CENTOS7-2 CENTOS7-3
  9. 安裝OSD(對象存儲設備)

    注意: 新版本的OSD沒有prepare與activate命令。

    這裏須要新的硬盤做爲OSD存儲設備, 關閉虛擬機, 增長一塊硬盤, 不用格式化。

    file

    重啓, fdisk -l 查看新磁盤名稱:
    file

    執行建立OSD命令:

    ceph-deploy osd create --data /dev/sdb CENTOS7-1

    三臺節點都需分別依次執行。

  10. 驗證節點:
    輸入ceph health 或 ceph -s查看, 出現HEALTH_OK表明正常。
    file

    經過虛擬機啓動, 若是出現錯誤:

    [root@CENTOS7-1 ~]# ceph -s
      cluster:
        id:     0ec99aa9-e97e-43d3-b5b9-90eb21c4abff
        health: HEALTH_WARN
                1 filesystem is degraded
                1 osds down
                1 host (1 osds) down
                Reduced data availability: 41 pgs inactive
                Degraded data redundancy: 134/268 objects degraded (50.000%), 22 pgs degraded, 87 pgs undersized
                39 slow ops, oldest one blocked for 2286 sec, daemons [osd.0,mon.CENTOS7-2,mon.CENTOS7-3] have slow ops.
                clock skew detected on mon.CENTOS7-2, mon.CENTOS7-3
     
      services:
        mon: 3 daemons, quorum CENTOS7-1,CENTOS7-2,CENTOS7-3
        mgr: centos7-1(active), standbys: centos7-3, centos7-2
        mds: fs_test-1/1/1 up  {0=centos7-1=up:replay}
        osd: 3 osds: 1 up, 2 in
     
      data:
        pools:   9 pools, 128 pgs
        objects: 134  objects, 64 KiB
        usage:   1.0 GiB used, 19 GiB / 20 GiB avail
        pgs:     32.031% pgs unknown
                 134/268 objects degraded (50.000%)
                 65 active+undersized
                 41 unknown
                 22 active+undersized+degraded

    在各節點執行命令, 確保時間同步一致:

    ntpdate ntp1.aliyun.com

5. 安裝管理後臺

  1. 開啓dashboard模塊

    ceph mgr module enable dashboard
  2. 生成簽名

    ceph dashboard create-self-signed-cert
  3. 建立目錄

    mkdir mgr-dashboard

    [root@CENTOS7-1 mgr-dashboard]# pwd
    /usr/local/ceph-cluster/mgr-dashboard
  4. 生成密鑰對

    cd  /usr/local/ceph-cluster/mgr-dashboard
    openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca
    [root@CENTOS7-1 mgr-dashboard]# ll
    total 8
    -rw-rw-r-- 1 ceph_user ceph_user 1155 Jul 14 02:26 dashboard.crt
    -rw-rw-r-- 1 ceph_user ceph_user 1704 Jul 14 02:26 dashboard.key
  5. 啓動dashboard

    ceph mgr module disable dashboard
    ceph mgr module enable dashboard
  6. 設置IP與PORT

    ceph config set mgr mgr/dashboard/server_addr 10.10.20.11
    ceph config set mgr mgr/dashboard/server_port 18843
  7. 關閉HTTPS

    ceph config set mgr mgr/dashboard/ssl false
  8. 查看服務信息

    [root@CENTOS7-1 mgr-dashboard]# ceph mgr services
    {
        "dashboard": "https://10.10.20.11:8443/"
    }
  9. 設置管理用戶與密碼

    ceph dashboard set-login-credentials admin admin
  10. 訪問

    file
    經過後臺訪問能夠看到整個集羣的運行狀態和節點數量等信息,HEALTH_OK表明處於正常。


本文由mirson創做分享,如需進一步交流,請加QQ羣:19310171或訪問www.softart.cn

相關文章
相關標籤/搜索