天天看點

ceph-deploy配置ceph分布式叢集基礎環境準備節點個性化配置叢集配置配置dashboard

ceph-deploy配置ceph分布式叢集

graph LR
ceph-deploy-->ceph-node1
ceph-deploy-->ceph-node2
ceph-deploy-->ceph-node3
           

說明

ceph-depoly install使用說明:

  • 不通過–release指定版本的話, 會預設安裝最新版本
  • 不設定–no-adjust-repos的時候,會根據安裝的版本,自動下載下傳ceph和epel官方源檔案,并設定官方源位址。由于國内通路國外原位址,經常惡心人,是以我們通過–no-adjust-repos禁用自動配置源,而通過手動配置ceph和epel源。
  • 需要python2-pip和deltarpm元件支援。

由于環境限制,實驗過程中,我們會将ceph-deploy角色部署到ceph-node1上,最終角色圖如下:

基礎環境準備

分區

  • sda:40G 系統分區,安裝系統
  • nvme0n1:99G,journal盤,GPT格式,分成3個分區,不需要格式化,用于三個data盤的journal程序安裝
  • sdb:data盤,無需分區
  • sdc:data盤,無需分區
  • sdd:data盤,無需分區
  • 最終結果是:
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   40G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part 
├─centos-root 253:0    0   37G  0 lvm  /
└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0  200G  0 disk 
sdc               8:32   0  200G  0 disk 
sdd               8:48   0  200G  0 disk 
sr0              11:0    1 1024M  0 rom  
nvme0n1         259:0    0   99G  0 disk 
├─nvme0n1p1     259:1    0   33G  0 part 
├─nvme0n1p2     259:2    0   33G  0 part 
└─nvme0n1p3     259:3    0   33G  0 part
           

網絡

  • 由于資源限制,使用一個網絡

配置阿裡雲的yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo<br />
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
           

配置ceph M版的阿裡源

yum install -y https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm
           

生成緩存

yum clean all
yum makecache
           

安裝時間同步服務,本文使用chrony

安裝

yum install -y chrony
           

編輯配置檔案

vim /etc/chrony.conf
    server ntp1.aliyun.com iburst
           

設定開機自啟動并啟動服務

systemctl enable chronyd.service
systemctl start chronyd.service
           

驗證

chronyc sources
           

配置hosts

vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.10.50 ceph-node1
192.168.10.51 ceph-node2 
192.168.10.52 ceph-node3
           

關閉防火牆

systemctl disable firewalld
systemctl stop firewalld
           

關閉selinux

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
           

節點個性化配置

命名各節點

各節點上依次執行:

hostnamectl set-hostname --static ceph-node1
hostnamectl set-hostname --static ceph-node2
hostnamectl set-hostname --static ceph-node3
           

叢集配置

配置免密登入

在node1上生産key檔案:

ssh-keygen
           

将key檔案同步到各節點,在各節點上對應執行如下指令:

ssh-copy-id [email protected]
ssh-copy-id [email protected]
ssh-copy-id [email protected]
           

安裝pytho環境

yum install -y python2-pip deltarpm
           

安裝ceph-deploy

yum install -y ceph-deploy
           

檢視ceph-deploy的版本,應該是2.0.1

ceph-deploy --version
           

出錯處理

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

ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy purgedata ceph-node1 ceph-node2 ceph-node3
ceph-deploy forgetkeys
           

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

ceph-deploy purge {ceph-node} [{ceph-node}]
例如:
ceph-deploy purge ceph-node1 ceph-node2 ceph-node3
ceph-deploy forgetkeys
           

建立叢集配置檔案路徑

mkdir cephcluster
cd cephcluster
pwd
    /root/cephcluster
           

建立叢集

ceph-deploy new ceph-node1 ceph-node2 ceph-node3
           

執行完成以後,将生成下面三個檔案:

-rw-r--r-- 1 root root  253 Jun  2 18:47 ceph.conf
-rw-r--r-- 1 root root 5150 Jun  2 18:47 ceph-deploy-ceph.log
-rw------- 1 root root   73 Jun  2 18:47 ceph.mon.keyring
           

添加配置:

public network = 192.168.10.0/24
mon clock drift allowed = 2
mon clock drift warn backoff = 30
max open files = 131072
[mon]
#為了能讓後面将已經建立的存儲池删除,添加該項配置
mon allow pool delete = true
[OSD]
osd mkfs type = xfs
filestore max sync interval = 15
filestore min sync interval = 10
[CLIENT]
rbd cache = true
           

在叢集機器上安裝ceph

ceph-deploy install --no-adjust-repos --release mimic ceph-node1 ceph-node2 ceph-node3
#假如我們沒有禁用自動調整源,而使用了官方源,有可能上面的指令會各種問題。
#此時我們可以在各節點上執行yum install -y ceph ceph-radosgw替換,有時候由于網絡各種問題,該方法更有效
           

配置初始 monitor(s)、并收集所有密鑰

ceph-deploy mon create-initial
           

同步配置檔案和key檔案到各節點:

ceph-deploy admin ceph-node1 ceph-node2 ceph-node3
           

在三個節點上建立journal和osd

#filestore
for node in ceph-node1 ceph-node2 ceph-node3;do ceph-deploy osd create --filestore --data /dev/sdb --journal /dev/nvme0n1p1 $node;ceph-deploy osd create --filestore --data /dev/sdc --journal /dev/nvme0n1p2 $node;ceph-deploy osd create --filestore --data /dev/sdd --journal /dev/nvme0n1p3 $node;done;
#bluestore:當部署bluestore的時候,不需要journal分區,隻需要指定要初始化的磁盤就行
for node in ceph-node1 ceph-node2 ceph-node3;do ceph-deploy osd create  --data /dev/sdb  $node;ceph-deploy osd create --data /dev/sdc $node;done;
           

如果原來的磁盤上有分區或者有資料的話,可以用以下指令清理磁盤:

ceph-deploy disk zap {osd-server-name} {disk-name}
           

比如,清理ceph-node01的sdb

ceph-deploy disk zap ceph-node01 /dev/sdb
           

建立metadata server,防止後面用于檔案伺服器

ceph-deploy mds create ceph-node1
           

配置dashboard

#mgr建立的時候,如果指定多個節點,後期會發生選舉的問題,但是有高可用的功效。如果隻指定一個節點,會存在單節點分享
ceph-deploy mgr create ceph-node1 ceph-node2 ceph-node3
ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert
ceph dashboard set-login-credentials admin admin
ceph mgr services
    {
        "dashboard": "https://ceph-node1:8443/"
    }
           

繼續閱讀