Ceph節點安裝(快速)


  Ceph節點安裝

  預檢

  我們建議安裝一個 ceph-deploy 管理節點和一個三節點的Ceph 存儲集群來研究 Ceph 的基本特性。這篇預檢會幫你准備一個 ceph-deploy 管理節點、以及三個Ceph 節點(或虛擬機),以此構成 Ceph 存儲集群。在進行下一步之前,請參見操作系統推薦以確認你安裝了合適的 Linux 發行版。如果你在整個生產集群中只部署了單一 Linux 發行版的同一版本,那么在排查生產環境中遇到的問題時就會容易一點。

  在下面的描述中節點代表一台機器。

 

 

主機名 角色 系統 IP 備注

node1

mon.node1 CentOS7.5 192.168.1.101  

node2

osd.0 CentOS7.5 192.168.1.102 osd節點需配置數據盤
例如/dev/sdb
node3 ods.1 CentOS7.5 192.168.1.103

osd節點需要配置數據盤

例如/dev/sdb

admin-node ceph-deploy CentOS7.5 192.168.1.104  

  安裝ceph部署工具

  在節點admin-node 部署

  設置yum源

  設置國內阿里源(node1 node2 node3設置yum源和admin-node一致)

  如果需要設置其他版本可以查看http://mirrors.aliyun.com/ceph

[root@admin-node ~]#cat /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0
priority=1
 
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0
priority=1
 
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=0
priority=1

   更新倉庫安裝ceph-deploy

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

   Ceph節點安裝

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

  設置NTP同步(所有主機執行)

  安裝NTP

  Ceph集群對時間一致要求很高,需要設置ntp時間同步

yum -y install ntpdate

   時間同步

ntpdate time1.aliyun.com

   設置在定時任務crontab執行時間同步

crontab -e
#添加一下內容
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com

   設置管理節點免密登錄ceph節點

  生成密鑰對

ssh-keygen

   把公鑰拷貝至各ceph的node節點

  使用主機名拷貝需要事先設置好主機hosts

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

   關閉firewalld和senlinux

  

  存儲集群快速入門

  如果你還沒完成預檢,請先做完。本篇快速入門用 ceph-deploy 從管理節點建立一個 Ceph 存儲集群,該集群包含三個節點,以此探索 Ceph 的功能。

 

   第一次練習時,我們創建一個 Ceph 存儲集群,它有一個 Monitor 和兩個 OSD 守護進程。一旦集群達到 active clean 狀態,再擴展它:增加第三個 OSD 、增加元數據服務器和兩個 Ceph Monitors。為獲得最佳體驗,先在管理節點上創建一個目錄,用於保存 ceph-deploy 生成的配置文件和密鑰對。

  

mkdir my-cluster
cd my-cluster/

   創建集群

  如果在某些地方碰到麻煩,想從頭再來,可以用下列命令清除配置:

ceph-deploy purgedata {ceph-node} [{ceph-node}]#清除ceph數據
ceph-deploy forgetkeys #清除key

   用下列命令可以連 Ceph 安裝包一起清除:

ceph-deploy purge {ceph-node} [{ceph-node}]

   如果執行了 purge ,你必須重新安裝 Ceph。

  在管理節點上,進入剛創建的放置配置文件的目錄,用 ceph-deploy 執行如下步驟。

  1,創建集群

ceph-deploy new {initial-monitor-node(s)}

   例如

ceph-deploy new node1

  在當前目錄下用 ls 和 cat 檢查 ceph-deploy 的輸出,應該有一個 Ceph 配置文件、一個 monitor 密鑰環和一個日志文件。

  2,把 Ceph 配置文件里的默認副本數從 3 改成 2 ,這樣只有兩個 OSD 也可以達到 active clean 狀態。把下面這行加入 [global] 段:

osd pool default size = 2

   3,如果你有多個網卡,可以把 public network 寫入 Ceph 配置文件的 [global] 段下。

public network = {ip-address}/{netmask}

   類似於192.168.1.0/24

  4,安裝Ceph

ceph-deploy install {ceph-node} [{ceph-node} ...]

   例如

ceph-deploy install admin-node node1 node2 node3

   ceph-deploy 將在各節點安裝 Ceph 。 注:如果你執行過 ceph-deploy purge ,你必須重新執行這一步來安裝 Ceph 。

  執行該步驟會分別連接對應客戶端安裝ceph,ceph-radosgw會在對應客戶端下載yum源文件

# cat /etc/yum.repos.d/ceph.repo 
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

   注意:使用admin節點給客戶端安裝ceph速度較慢,如果客戶端網絡好可以直接設置好yum源安裝

yum -y update && yum -y install ceph ceph-radosgw

   會在各個安裝的節點創建目錄

/etc/ceph/

   目錄下有一個文件

[root@localhost ceph]# cat rbdmap 
# RbdDevice		Parameters
#poolname/imagename	id=client,keyring=/etc/ceph/ceph.client.keyring

 

  安裝好以后使用命令查看版本

# ceph -v
ceph version 14.2.10 (b340acf629a010a74d90da5782a2c5fe0b54ac20) nautilus (stable)

   5,配置初始 monitor(s)、並收集所有密鑰:

ceph-deploy mon create-initial

   完成上述操作后,當前目錄里應該會出現這些密鑰環:

{cluster-name}.client.admin.keyring
{cluster-name}.bootstrap-osd.keyring
{cluster-name}.bootstrap-mds.keyring
{cluster-name}.bootstrap-rgw.keyring

 

 

   

  添加OSD

  1,添加兩個 OSD 。

ceph-deploy osd create --data {dev} {node_name}

   例如

ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3

   2,用 ceph-deploy 把配置文件和 admin 密鑰拷貝到管理節點和 Ceph 節點,這樣你每次執行 Ceph 命令行時就無需指定 monitor 和 ceph.client.admin.keyring 了。

ceph-deploy admin {admin-node} {ceph-node}

   例如

ceph-deploy admin admin-node node1 node2 node3

   會修改對應node的配置文件以及添加key

 

   3,檢查集群健康狀態

[root@admin-node my-cluster]# ceph -s
  cluster:
    id:     8dc0f409-70c1-4499-94a9-466abdf4f30d
    health: HEALTH_WARN
            no active mgr
 
  services:
    mon: 1 daemons, quorum node1 (age 29m)
    mgr: no daemons active
    osd: 2 osds: 2 up (since 7m), 2 in (since 7m)
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     

   擴展集群

  一個基本的集群啟動並開始運行后,下一步就是擴展集群。在 node1 上添加一個 OSD 守護進程和一個元數據服務器。然后分別在 node2 和 node3 上添加 Ceph Monitor ,以形成 Monitors 的法定人數。

  擴展前

  

  擴展后

 

   添加OSd

  你運行的三個節點集群只是用於演示,把OSD添加到monitor節點就行

  添加前查看

 

   添加OSD

ceph-deploy osd create --data /dev/sdb node1

   添加后查看

 

  添加元數據服務器

  至少需要一個元數據服務器才能使用 CephFS ,執行下列命令創建元數據服務器:

ceph-deploy mds create {ceph-node}

   例如

ceph-deploy mds create node1

   查看

[root@admin-node my-cluster]# ceph -s
  cluster:
    id:     8dc0f409-70c1-4499-94a9-466abdf4f30d
    health: HEALTH_WARN
            no active mgr
 
  services:
    mon: 1 daemons, quorum node1 (age 2h)
    mgr: no daemons active
    mds:  1 up:standby #新建的mds服務
    osd: 3 osds: 3 up (since 12m), 3 in (since 12m)
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     

   

Note 當前生產環境下的 Ceph 只能運行一個元數據服務器。你可以配置多個,但現在我們還不會為多個元數據服務器的集群提供商業支持。

   添加 RGW 例程

  要使用 Ceph 的 Ceph 對象網關組件,必須部署 RGW 例程。用下列方法創建新 RGW 例程:

ceph-deploy rgw create {gateway-node}

   例如

ceph-deploy rgw create node1

   對應客戶端運行ceph-radosgw@rgw.node1

  RGW 例程默認會監聽 7480 端口,可以更改該節點 ceph.conf 內與 RGW 相關的配置,如下:

[client]
rgw frontends = civetweb port=80

  添加 MONITORS

  Ceph 存儲集群需要至少一個 Monitor 才能運行。為達到高可用,典型的 Ceph 存儲集群會運行多個 Monitors,這樣在單個 Monitor 失敗時不會影響 Ceph 存儲集群的可用性。Ceph 使用 PASOX 算法,此算法要求有多半 monitors(即 1 、 2:3 、 3:4 、 3:5 、 4:6 等 )形成法定人數。

  新增兩個監視器到 Ceph 集群。

ceph-deploy mon add {ceph-node}

   例如:原有一個mon現在增加兩個mon

ceph-deploy mon add node2
ceph-deploy mon add node3

   注意:需要在ceph.conf有[global]下有配置

public network = 192.168.1.0/24

   並且同步配置

ceph-deploy --overwrite-conf  admin admin-node node1 node2 node3

   新增 Monitor 后,Ceph 會自動開始同步並形成法定人數。你可以用下面的命令檢查法定人數狀態:

Tip 當你的 Ceph 集群運行着多個 monitor 時,各 monitor 主機上都應該配置 NTP ,而且要確保這些 monitor 位於 NTP 服務的同一級。

   查看

[root@admin-node my-cluster]# ceph -s
  cluster:
    id:     8dc0f409-70c1-4499-94a9-466abdf4f30d
    health: HEALTH_WARN
            no active mgr
 
  services:
    mon: 3 daemons, quorum node1,node2,node3 (age 3m) #3個mon
    mgr: no daemons active
    mds:  1 up:standby
    osd: 3 osds: 3 up (since 41m), 3 in (since 41m)
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     

 

  

 

 



 


免責聲明!

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



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