Ceph集羣配置系列《二》環境準備

前提

已成功部署上篇描述的遠程倉庫(該倉庫已包含所需的全部ceph rpm包);

環境準備

在部署 Ceph 存儲集羣之前,需要對Ceph 客戶端和Ceph 節點進行一些基本的配置。建議安裝一個ceph-deploy 管理節點和若干節點的Ceph存儲集羣來研究 Ceph 的基本特性。這篇環境準備會幫你準備四個Ceph節點(其中node1節點複用,也充當ceph-deploy管理節點),以此構成 Ceph存儲集羣。

主機名稱 IP地址 操作系統 備註
node1 11.11.11.20/11.11.12.20 CentOS-7-x86_64-DVD-1810.iso 同時充當ceph-deploy管理節點
node2 11.11.11.21/11.11.12.21 CentOS-7-x86_64-DVD-1810.iso 專用節點
node3 11.11.11.22/11.11.12.22 CentOS-7-x86_64-DVD-1810.iso 專用節點
node4 11.11.11.23/11.11.12.23 CentOS-7-x86_64-DVD-1810.iso 專用節點

CEPH-DEPLOY設置

把 Ceph倉庫添加到 ceph-deploy 管理節點,然後安裝 ceph-deploy 。

對於CentOS 7,請執行以下步驟:

  1. 將Ceph倉庫添加到/etc/yum.repos.d/ceph.repo中的yum配置文件中。 將{ceph-stable-release}替換爲穩定的Ceph release (如mimic.) 。例如:

    [root@node1~]# vim /etc/yum.repos.d/ceph.repo
    [ceph-noarch]
    name=Ceph noarch packages
    baseurl=http://11.11.11.10/ceph/rpm-{ceph-stable-release}/el7/noarch
    enabled=1
    gpgcheck=1
    type=rpm-md
    gpgkey=http://11.11.11.10/ceph/keys/release.asc
    
  2. 將所有節點的CentOS-Base.repo重命名:

    [root@node1~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    [root@node2~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    [root@node3~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    [root@node4~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    
  3. 安裝ceph-deploy:

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

Ceph 節點安裝

管理節點必須能夠通過 SSH 免密地訪問各個 Ceph 節點。如果 ceph-deploy 以某個普通用戶登錄,那麼這個用戶必須免密使用 sudo 的權限。

以下操作需在所有節點執行。

關閉防火牆

在某些發行版(例如,RHEL/CentOS)上,默認防火牆配置相當嚴格。此處直接關閉防火牆:

[root@node1~]# systemctl stop firewalld
[root@node1~]# systemctl disable firewalld
[root@node1~]# systemctl status firewalld

關閉SELINUX

在CentOS和RHEL上,SELinux默認設置爲Enforcing。 爲簡化安裝,將SELinux完全禁用,即確保在加固配置之前安裝和集羣正常工作。 要將SELinux設置爲Permissive,請執行以下命令:

[root@node1~]# sudo setenforce 0 

爲使 SELinux 配置永久生效(如果它的確是問題根源),修改其配置文件 /etc/selinux/config 。

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

TTY

在CentOS和RHEL上,可能在嘗試執行ceph-deploy命令時收到錯誤。 如果在Ceph節點上默認設置了requiretty,請通過執行sudo visudo並找到Defaults requiretty設置來禁用它。 將其更改爲Defaults:ceph!requiretty或將其註釋掉以確保ceph-deploy可以使用您創建的用戶(創建Ceph部署用戶)進行連接。

Note:編輯配置文件 /etc/sudoers 時,必須用 sudo visudo 而不是文本編輯器。

優先級/首選項

確保包管理器安裝了優先級/首選項包且已啓用。在 CentOS 上可能需要安裝 EPEL 。

[root@node1~]# sudo yum -y install yum-plugin-priorities 

確保連通性

用ping短主機名( hostname -s )的方式確認網絡連通性。必要時解決主機名解析問題。

Note:主機名應該解析爲網絡 IP 地址,而非迴環接口 IP 地址(即主機名應該解析成非 127.0.0.1 的IP地址)。如果你的管理節點同時也是一個 Ceph 節點,也要確認它能正確解析自己的主機名和 IP 地址(即非迴環 IP 地址)。

下面通過修改/etc/hosts文件實現主機名的解析。

[root@node1~]# vim /etc/hosts
11.11.11.20 node1
11.11.11.21 node2
11.11.11.22 node3
11.11.11.23 node4

安裝 SSH 服務器

對於Ceph節點,執行以下步驟:

①在Ceph節點上安裝SSH服務器:

[root@node1 ~]# sudo yum -y install openssh-server 

②確保SSH服務器在Ceph節點上運行。

允許無密碼SSH

因爲 ceph-deploy 不支持輸入密碼,必須在管理節點上生成 SSH 密鑰並把其公鑰分發到各個 Ceph 節點。 ceph-deploy 會嘗試給初始 monitors 生成 SSH 密鑰。

①生成SSH密鑰。 將密碼保留爲空:

[root@node1 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ifyE8Cf+QdZ8rul13niyIx22h++VWB+DUL1tRX/8lYg root@caohf05
The key's randomart image is:
+---[RSA 2048]----+
|             ....|
|            o .o+|
|    .      E . .O|
|     + o +  . ..*|
|      * S o .. =.|
|     . B   o  = =|
|      . o   o+.=o|
|       . . +.o*o+|
|        ..+  .+O+|
+----[SHA256]-----+

②把公鑰拷貝到每個 Ceph 節點,把下列命令中的 {username} 替換成前面“創建部署 Ceph 的用戶”裏的用戶名。

[root@node1~]# ssh-copy-id {username}@node1 
[root@node1~]# ssh-copy-id {username}@node2 
[root@node1~]# ssh-copy-id {username}@node3 
[root@node ~]# ssh-copy-id {username}@node3 

③(推薦做法)修改 ceph-deploy 管理節點上的 ~/.ssh/config 文件,這樣 ceph-deploy 就能用所建的用戶名登錄 Ceph 節點,而無需每次執行 ceph-deploy 都要指定 --username {username} 。這樣做同時也簡化了 ssh 和 scp 的用法。把 {username} 替換成你創建的用戶名。

Host node1
   Hostname node1
   User {username}
Host node2
   Hostname node2
   User {username}
Host node3
   Hostname node3
   User {username}

安裝 NTP/CHRONY

在Ceph節點上安裝NTP/CHRONY(特別是在Ceph Monitor節點上)以防止時鐘漂移引起的問題。

建議安裝chrony,下面以在node1安裝chrony爲例,參考該步驟可在其它節點安裝chrony。若使用NTP,請參考其它有關文檔。

在CentOS / RHEL上,執行:

[root@node1 ~]# sudo yum -y install  chrony
[root@node1 ~]# rpm -qa |grep chrony
[root@node1 ~]# chronyd --version

其它節點執行相同命令。

此處假設環境中已有NTP/CHRONY服務器。現僅設置chrony客戶端:

[root@node1 ~]# cp /etc/chrony.conf /etc/chrony.conf.org
[root@node1 ~]# cat /etc/chrony.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
...

將配置文件中上述4個server註釋掉,並在其中增加環境中NTP/CHRONY服務器的IP地址。

[root@node1 ~]# vim /etc/chrony.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 11.11.11.70 iburst
...

其中11.11.11.70爲NTP/CHRONY的IP地址。

啓動並確認chronyd服務

[root@node1 ~]# systemctl enable chronyd 
[root@node1 ~]# systemctl start chronyd 
[root@node1 ~]# systemctl status chronyd

確認時間同步狀態

[root@node1 ~] # chronyc sources -v

下節將以此4個節點爲基礎,部署一個小型集羣;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章