1. 程式人生 > >ceph部署實踐(luminous版本)

ceph部署實踐(luminous版本)

作者:【吳業亮】

一、準備環境

4臺adminos7環境,儲存節點上兩塊磁碟(sda作業系統,sdb資料盤)

172.16.8.91 client 
172.16.8.92 admin
172.16.8.93 storage1
172.16.8.94 storage2
172.16.8.95 storage3

二、配置環境

1、修改主機名(對應節點上執行)

# hostnamectl  set-hostname client
# hostnamectl  set-hostname admin
# hostnamectl  set-hostname storage1
# hostnamectl  set-hostname storage2
# hostnamectl set-hostname storage3

2、配置hosts檔案(每個節點上均執行)

# cat <<"EOF">/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.8.91 client 
172.16.8.92 admin
172.16.8.93
storage1 172.16.8.94 storage2 172.16.8.95 storage3 EOF

3、修改sudo配置檔案,註釋下面行(每個節點上均執行)
執行visudo命令註釋下面一行

#Defaults    requiretty

4、ceph的官方源在國外,網速比較慢,此處新增ceph源為阿里源(每個節點上均執行)

# cat <<END >/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=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [Ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [ceph-source] name=Ceph source packages baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc END

5、關閉selinux和firewall(各個節點)

# setenforce 0
# sed -i  "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
# systemctl disable firewalld.service
# systemctl stop firewalld.service

6、各個節點更新系統(各個節點)

# yum update -y

7、建立使用者並設定密碼為Changeme_123(各個節點)

# useradd admin
# echo Changeme_123 | passwd --stdin admin

8、配置sudo許可權(各個節點)

# echo -e 'Defaults:admin !requiretty\nadmin ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph 
# chmod 440 /etc/sudoers.d/ceph

9、安裝NTP(各個節點)

#  yum -y install ntp

修改配置檔案/etc/ntp.conf

server NTP-server
注意:

NTP-server修改為自己的NTP伺服器,如果區域網內無NTP伺服器,此處可以用預設配置,採用centos官方ntp伺服器

啟動服務並設定開機啟動

# systemctl start ntpd
# systemctl enable ntpd

檢視ntp狀態

# ntpq -p

注意:

如果ntp時鐘不同步,後面ceph服務起不來!

9、重啟(各個節點)

# reboot

三、安裝和配置ceph(以下操作均在admin節點上執行)

1、配置互信

# su - admin 
$ ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
$ ssh-copy-id 172.16.8.91
$ ssh-copy-id 172.16.8.92
$ ssh-copy-id 172.16.8.93
$ ssh-copy-id 172.16.8.94
$ ssh-copy-id 172.16.8.95
exit

2、安裝ceph-deploy包

$ sudo yum -y install ceph-deploy

3、建立配置檔案目錄

$ sudo mkdir /etc/ceph
$ cd /etc/ceph 
$ ceph-deploy new storage1

4、在各個節點上安裝ceph包

$ ceph-deploy install admin client  storage1 storage2 storage3

5、設定monitor和key

$ ceph-deploy mon create-initial

6、啟動osd,如果磁碟比較多,安裝規劃磁碟名稱,重複執行即可

$ ceph-deploy disk zap  storage1:sdb 
$ ceph-deploy disk zap  storage2:sdb 
$ ceph-deploy disk zap  storage3:sdb
$ ceph-deploy --overwrite-conf  osd create  storage1:sdb
$ ceph-deploy --overwrite-conf  osd create  storage2:sdb
$ ceph-deploy --overwrite-conf  osd create  storage3:sdb

7、將配置檔案拷貝到各個節點上

$ ceph-deploy admin client  storage1 storage2 storage3
$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

8、建立mon(一般為奇數個,此處為三個)

$ ceph-deploy --overwrite-conf mon create storage1
$ ceph-deploy --overwrite-conf admin storage1

$ ceph-deploy --overwrite-conf mon create storage2
$ ceph-deploy --overwrite-conf admin storage2

$ ceph-deploy --overwrite-conf mon create storage3
$ ceph-deploy --overwrite-conf admin storage3

9、驗證

$ ceph health 
HEALTH_OK

四、ceph叢集對外提供塊儲存服務(均在client上執行)
1、通過admin使用者登入client節點

[[email protected] ~]$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

2、建立一個儲存池

[admin@client ~]$ ceph osd pool create test 128

注意:

建立pool 通常在建立pool之前,需要覆蓋預設的pg_num,官方推薦:
若少於5個OSD, 設定pg_num為128。
5~10個OSD,設定pg_num為512。
10~50個OSD,設定pg_num為4096。
超過50個OSD,可以參考pgcalc計算

3、建立一個10G的塊

[[email protected] ~]$ rbd create --size 10G disk01 --pool test

4、檢視rbd

[admin@client ~]$ rbd ls -l 
NAME     SIZE PARENT FMT PROT LOCK
disk01 10240M          2

5、將10G的塊對映到本地

[admin@client ~]$ sudo rbd map disk01 
/dev/rbd0

注意:
因為adminos7預設核心版本比較低,ceph的一些特性無法使用,需要手動禁用才能map成功。命令如下

$ rbd feature disable test/rbd exclusive-lock object-map fast-diff deep-flatten

6、檢視對映

[admin@client ~]$ rbd showmapped 
id pool image  snap device
0  rbd  disk01 -    /dev/rbd0

7、格式化為xfs格式

[admin@client ~]$ sudo mkfs.xfs /dev/rbd0

8、掛載rbd0到本地的目錄中

[admin@client ~]$ sudo mount /dev/rbd0 /mnt
[admin@client ~]$ df -hT 
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        26G  1.8G   25G   7% /
devtmpfs            devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs               tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs               tmpfs     2.0G  8.4M  2.0G   1% /run
tmpfs               tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda1           xfs      1014M  231M  784M  23% /boot
tmpfs               tmpfs     396M     0  396M   0% /run/user/0
/dev/rbd0           xfs        10G   33M   10G   1% /mnt

五、使用ceph叢集提供cephfs檔案系統

1、在admin節點上執行如下命令,啟用storage1上的mds服務

[admin@admin ceph]$ ceph-deploy mds create storage1

2、在storage1節點上進行如下操作

[[email protected] ~]$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

建立名為cephfs_data的pool

[admin@storage1 ~]$ ceph osd pool create cephfs_data 128 
pool 'cephfs_data' created

3、建立名為cephfs_metadata的pool

[admin@storage1 ~]$ ceph osd pool create cephfs_metadata 128 
pool 'cephfs_metadata' created

4、啟用pool

[admin@storage1 ~]$ ceph fs new cephfs cephfs_metadata cephfs_data 
new fs with metadata pool 2 and data pool 1

5、檢視

[admin@storage1 ~]$ ceph fs ls 
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

6、檢視mds狀態

[admin@storage1 ~]$ ceph mds stat 
e4: 1/1/1 up {0=storage1=up:creating}

以下操作在client節點上

7、安裝rpm包

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

8、獲取admin的key

[root@client ~]# ssh admin@storage1 "sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" > admin.key 
[root@client ~]# chmod 600 admin.key

9、掛載

[root@client ~]# mount -t ceph storage1:6789:/ /mnt -o name=admin,secretfile=admin.key 
[root@client ~]# df -hT 
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        26G  1.9G   25G   7% /
devtmpfs            devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs               tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs               tmpfs     2.0G  8.4M  2.0G   1% /run
tmpfs               tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda1           xfs      1014M  231M  784M  23% /boot
tmpfs               tmpfs     396M     0  396M   0% /run/user/0
172.16.8.94:6789:/    ceph       78G   21G   58G  27% /mnt

附錄:

解除安裝
在admin節點上執行解除安裝所以節點的rpm包

$ ceph-deploy purge admin storage1 storage2 storage3

在admin節點上執行,刪除所以節點的配置

$ ceph-deploy purgedata admin storage1 storage2 storage3

$ ceph-deploy forgetkeys