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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM