Linux-Ceph集群搭建


## 安裝ceph集群

注意版本更新非常快,有問題看官方文檔

官方文檔:

http://docs.ceph.com/docs/master

========================================

准備環境

系統版本:centos7.4 x86_64 server

硬件配置:5台vm,1核1G內存,每台node角色的機器至少掛載1塊不低於5個G的空閑盤為osd存儲

 

     主機名                 ip                         role

    admin            192.168.1.101                 admin--安裝ceph-deploy

    node1            192.168.1.102                 mon / mgr / osd

    node2            192.168.1.103                 osd

    node3            192.168.1.104                 osd

    ceph-client        192.168.1.105                          client

   

1.給三台node節點添加一塊大小5G以上的磁盤。

2.所有節點修改主機名並相互解析

3.關閉所有機器的防火牆和selinux

4.所有節點創建普通用戶並設置密碼--所有節點都操作

[root@admin ~]# useradd cephu

[root@admin ~]# passwd cephu

 

5.確保各 Ceph 節點上新創建的用戶都有 sudo 權限--所有節點操作

[root@admin ~]# visudo  ----在root ALL=(ALL) ALL下面添加:

cephu ALL=(root) NOPASSWD:ALL

 

6.實現ssh無密碼登錄(admin節點操作)

[root@admin ~]# su - cephu

[cephu@admin ~]$ ssh-keygen

 

7.將admin節點cephu用戶生成的密鑰拷貝到各Ceph節點:

[cephu@admin ~]$ ssh-copy-id cephu@node1

[cephu@admin ~]$ ssh-copy-id cephu@node2

[cephu@admin ~]$ ssh-copy-id cephu@node3

[cephu@admin ~]$ ssh-copy-id cephu@ceph-client

 

8.在admin節點用root用戶添加~/.ssh/config配置文件,並進行如下設置,這樣 ceph-deploy 就能用你所建的用戶名登錄 Ceph 節點了

[root@admin ~]# mkdir ~/.ssh

[root@admin ~]# vim ~/.ssh/config

Host node1

Hostname node1

User cephu

 

Host node2

Hostname node2

User cephu

 

Host node3

Hostname node3

User cephu

 

 

9.添加下載源,安裝ceph-deploy(admin節點,root用戶)

[root@admin ~]# vim /etc/yum.repos.d/ceph.repo

[ceph-noarch]

name=Ceph noarch packages

baseurl=https://download.ceph.com/rpm-luminous/el7/noarch

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

 

更新源,安裝ceph-deploy:

[root@admin ~]# yum makecache

[root@admin ~]# yum update

開啟yum緩存

[root@admin ~]# vim /etc/yum.conf

keepcache=1

安裝

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

 

10.安裝ntp(所有節點)

#注意!!選擇任何一台機器當ntp時間服務器,其他的節點當時間服務器的客戶端跟服務器同步時間

我選擇的是admin上:

[root@admin ~]# yum install -y ntp

[root@admin ~]# vim /etc/ntp.conf  #有4行server的位置,把那4行server行注釋掉,填寫以下兩行

server 127.127.1.0 # local clock

fudge  127.127.1.0 stratum 10

 

 

[root@admin ~]# systemctl start ntpd

[root@admin ~]# systemctl status ntpd

其他所有節點:

# yum install ntpdate  -y

# ntpdate  時間服務器ip

 

 

 

部署ceph集群

#注意!!沒有特別說明以下所有操作均是在admin節點,cephu用戶下執行

1.創建cephu操作的目錄:

[root@qfedu.com-admin ~]# su - cephu

[cephu@admin ~]$ mkdir my-cluster   #之后,所有ceph-deploy命令操作必須在該目錄下執行

 

2.創建集群---這里報錯查看后面的錯誤整理

首先在這里需要先下載一個包並安裝否則會報錯,然后在創建集群

[cephu@admin ~]$ wget https://files.pythonhosted.org/packages/5f/ad/1fde06877a8d7d5c9b60eff7de2d452f639916ae1d48f0b8f97bf97e570a/distribute-0.7.3.zip

[cephu@admin ~]$ unzip distribute-0.7.3.zip

[cephu@admin ~]$ cd distribute-0.7.3

[cephu@admin distribute-0.7.3]$ sudo python setup.py install

創建集群

[cephu@admin ~]$ cd my-cluster/

[cephu@admin my-cluster]$ ceph-deploy new node1

[cephu@qfedu.com-admin my-cluster]$ ls

ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring

創建成功會有三個文件:ceph.conf, ceph.mon.keyring, and a log file

 

3.安裝luminous-12.2.13在(腳本方式在admin節點)

目標:在node1,node2,node3三個節點上安裝ceph和ceph-radosgw主包

方法1:利用官方腳本全自動安裝

#腳本會幫助node1,node2,node3創建epel源和ceph源,並且自動安裝ceph和ceph-radosgw主包

[cephu@admin my-cluster]$ ceph-deploy install --release luminous node1 node2 node3

#這一步時間很長,容易超時,可以利用手動安裝

 

如果ceph和ceph-radosgw安裝不上,則采用方法2

測試是否安裝完成:分別在node1 node2 node3中確認安裝版本為12.2.13

 [cephu@node1 ~]$ ceph --version

ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)

 

方法2:手動部署安裝三台機器分別創建:三台node節點相同操作

    1)安裝epel源

    # yum install -y epel*

    2)創建Ceph源,內容如下:官方源

    # vim /etc/yum.repos.d/ceph.repo

[Ceph]

name=Ceph packages for $basearch

baseurl=http://download.ceph.com/rpm-luminous/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-luminous/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-luminous/el7/SRPMS

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

priority=1

 

#下面的是阿里雲的ceph源

# vim /etc/yum.repos.d/ceph.repo

[Ceph]

name=Ceph packages for $basearch

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch

enabled=1

gpgcheck=0

type=rpm-md

gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

priority=1

 

[Ceph-noarch]

name=Ceph noarch packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch

enabled=1

gpgcheck=0

type=rpm-md

gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

priority=1

 

[ceph-source]

name=Ceph source packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS

enabled=1

gpgcheck=0

type=rpm-md

gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

priority=1

 

測試是否安裝完成:分別在node1 node2 node3中確認安裝版本為12.2.13   

[cephu@node1 ~]$ ceph --version

ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)

 

4.初始化mon:admin節點--cephu用戶執行

[cephu@admin my-cluster]$ ceph-deploy mon create-initial

 

5.賦予各個節點使用命令免用戶名權限:

[cephu@admin my-cluster]$ ceph-deploy admin node1 node2 node3

 

6.安裝ceph-mgr:只有luminous才有,為使用dashboard做准備

[cephu@admin my-cluster]$ ceph-deploy mgr create node1

 

7.添加osd:

注意:各個節點上提供存儲空間的磁盤大小不能太小,最好5G以上,注意檢查你的磁盤名字

[cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node1

[cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node2

[cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node3

命令中/dev/sdb是在各個節點上為osd准備的空閑磁盤(無需分區格式化,如果有分區需要指定具體分區),通過如下命令查看:

[cephu@admin my-cluster]$ ssh node1 lsblk -f

 

 

最后通過如下命令查看集群狀態:

[cephu@admin my-cluster]$ ssh node1 sudo ceph -s

如果顯示health_ok,3個osd up就成功了

 

Dashboard的配置:在node1上操作

把ceph-mgr和ceph-mon安裝在同一個主機上,最好只有一個ceph-mgr

[root@node1 ~]# su - cephu

 

1.創建管理域秘鑰:

[cephu@node1 ~]$ sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'

[mgr.node1]

       key = AQAePadeYsvJLxAA9Pnmib3S+0Kj1jAeuSQcKw==

 

2.開啟 ceph-mgr 管理域

[cephu@node1 ~]$ sudo ceph-mgr -i node1

 

3.查看ceph的狀態:確認mgr的狀態為active

[cephu@node1 ~]$ sudo ceph status

  cluster:

    id:     aec06bc6-428c-49ff-a2c1-2d84808bcb54

    health: HEALTH_OK

 

  services:

    mon: 1 daemons, quorum node1

    mgr: node1(active, starting)

    osd: 3 osds: 3 up, 3 in

 

  data:

    pools:   0 pools, 0 pgs

    objects: 0 objects, 0B

    usage:   3.01GiB used, 12.0GiB / 15.0GiB avail

    pgs:

   

4.打開dashboard模塊:

[cephu@node1 ~]$ sudo ceph mgr module enable dashboard

 

5.綁定開啟dashboard模塊的ceph-mgr節點的ip地址:

[cephu@node1 ~]$ sudo ceph config-key set mgr/dashboard/node1/server_addr 192.168.1.102

set mgr/dashboard/node1/server_addr

# ip地址為mgr節點的ip地址,也就是node1的ip地址

 

5.web登錄:瀏覽器地址欄輸入:

 mgr地址:7000

 

到這里ceph分布式集群完成!

 

配置客戶端使用

 

配置客戶端使用rbd:

# 創建塊設備之前需要創建存儲池,存儲池相關命令需要在mon節點執行--也就是規划好的node1節點

 

1.創建存儲池:

[cephu@node1 ~]$ sudo ceph osd pool create rbd 128 128

pool 'rbd' created

 

2.初始化存儲池

[cephu@node1 ~]$ sudo rbd pool init rbd

 

3.准備客戶端client:客戶端操作

#另備一台主機,系統centos7用來作為client。主機名為client,ip:192.168.1.105。修改hosts文件實現和admin節點的主機名互通。

 

3.1.升級client內核到4.x,方法在子目錄中

Centos7升級內核

更新前,內核版本為:

[root@ceph-client ~]# uname -r

3.10.0-693.el7.x86_64

升級方法:導入key: 

[root@ceph-client ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

 

3.2.安裝elrepo的yum源:

[root@ceph-client ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

 

查看可用的系統內核包

[root@ceph-client ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

 

3.3安裝內核: 當前內核為最新5.6,也可以安裝4版本的內核

[root@ceph-client ~]# yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y

#當前為5.6.7版本

Dependencies Resolved

 

===============================================================================================================================

 Package                         Arch                   Version                            Repository                     Size

===============================================================================================================================

Installing:

 kernel-ml                       x86_64                 5.6.7-1.el7.elrepo                 elrepo-kernel                  49 M

 kernel-ml-devel                 x86_64                 5.6.7-1.el7.elrepo                 elrepo-kernel                  13 M

 

Transaction Summary

===============================================================================================================================

Install  2 Packages

 

 

查看內核默認啟動順序

[root@ceph-client ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

CentOS Linux (5.6.7-1.el7.elrepo.x86_64) 7 (Core)

CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)

CentOS Linux (0-rescue-8c5f0e6efaf047c5a0b72fdd72ee6575) 7 (Core)

 

默認啟動的順序是從0開始,新內核是從頭插入(目前位置在0,而5.6.7的是在1),所以需要選擇0。

[root@ceph-client ~]# grub2-set-default 0

 

然后reboot重啟,使用新的內核,下面是重啟后使用的內核版本:

[root@ceph-client ~]# reboot

[root@ceph-client ~]# uname -r

5.6.7-1.el7.elrepo.x86_64

 

4.刪除舊的內核

[root@ceph-client ~]# yum remove kernel -y

 

5.為client安裝ceph:

[root@ceph-client ~]# yum  -y install python-setuptools  #還要做着一步 否則報錯

5.1.參考部署ceph文檔開頭環境准備的2-5步

5.2.參考部署ceph集群中的第3步--安裝安裝luminous-12.2.13的第2中方式手動安裝ceph

5.2.1.安裝epel源

[root@ceph-client ~]# yum install -y epel*

5.2.2。創建ceph源

[root@ceph-client ~]# vim /etc/yum.repos.d/ceph.repo

[Ceph]

name=Ceph packages for $basearch

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch

enabled=1

gpgcheck=0

type=rpm-md

gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

priority=1

 

[Ceph-noarch]

name=Ceph noarch packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch

enabled=1

gpgcheck=0

type=rpm-md

gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

priority=1

 

[ceph-source]

name=Ceph source packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS

enabled=1

gpgcheck=0

type=rpm-md

gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

priority=1

 

[root@ceph-client ~]# vim /etc/yum.conf  #開啟yum緩存

keepcache=1

[root@ceph-client ~]# yum clean all

[root@ceph-client ~]# su - cephu

[cephu@ceph-client ~]$ sudo yum install ceph ceph-radosgw  -y

[cephu@ceph-client ~]$ ceph --version

ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)

 

6.在admin節點賦予client使用命令免用戶名權限:

[cephu@admin my-cluster]$ ceph-deploy admin ceph-client

 

7.修改client下該文件的讀權限:

[cephu@ceph-client ~]$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring

 

8.修改client下的ceph配置文件:這一步是為了解決映射鏡像時出錯問題

[cephu@ceph-client ~]$ sudo vi /etc/ceph/ceph.conf #在global section下添加:

rbd_default_features = 1

 

9.client節點創建塊設備鏡像:單位是M,這里是4個G

[cephu@ceph-client ~]$ rbd create foo --size 4096

 

10.client節點映射鏡像到主機:

[cephu@ceph-client ~]$ sudo rbd map foo --name client.admin

/dev/rbd0

 

11.client節點格式化塊設備:

[cephu@ceph-client ~]$ sudo mkfs.ext4 -m 0 /dev/rbd/rbd/foo

 

12.client節點mount塊設備:

[cephu@ceph-client ~]$ sudo mkdir /mnt/ceph-block-device #創建掛載點

[cephu@ceph-client ~]$ sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device #掛載

[cephu@ceph-client ~]$ cd /mnt/ceph-block-device

[cephu@ceph-client ceph-block-device]$ sudo touch a.txt

 

客戶端重起之后,設備需要重新作映射,不然可能會卡死


免責聲明!

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



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