一、部署准備:
(1)所有ceph集群節點(包括客戶端)設置靜態域名解析;
[root@zxw9 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.126.6 zxw6
192.168.126.7 zxw7
192.168.126.8 zxw8
192.168.126.9 zxw9
(2)所有集群節點(包括客戶端)創建cent用戶,並設置密碼,后執行如下命令:
useradd cent && echo "123" | passwd --stdin cent
echo -e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph
chmod 440 /etc/sudoers.d/ceph
(3)在部署節點切換為cent用戶,設置無密鑰登陸各節點包括客戶端節點
[root@zxw9 ~]# su - cent
[cent@zxw9 ~]$
[cent@zxw9 ~]$ ssh-keygen
[cent@zxw9 ~]$ ssh-copy-id zxw6
[cent@zxw9 ~]$ ssh-copy-id zxw7
[cent@zxw9 ~]$ ssh-copy-id zxw8
(4)在部署節點切換為cent用戶,在cent用戶家目錄,設置如下文件:
[cent@zxw9 ~]$ vim .ssh/config
Host zxw9
Hostname zxw9
User cent
Host zxw8
Hostname zxw8
User cent
Host zxw7
Hostname zxw7
User cent
Host zxw6
Hostname zxw6
User cent
[cent@zxw9 ~]$ chmod 600 .ssh/config
二、所有節點配置國內ceph源:
vim ceph.repo
[ceph]
name = ceph1
baseurl = https://mirrors.aliyun.com/centos/7.6.1810/storage/x86_64/ceph-jewel/
enable = 1
gpgcheck = 0
(2)每個機器都下載到國內ceph源中https://mirrors.aliyun.com/centos/7.6.1810/storage/x86_64/ceph-jewel/下載如下所需rpm包。
注意:紅色框中為ceph-deploy的rpm,只需要在部署節點安裝,下載需要到https://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/中找到最新對應的ceph-deploy-xxxxx.noarch.rpm 下載
1 ceph-10.2.11-0.el7.x86_64.rpm
2 ceph-base-10.2.11-0.el7.x86_64.rpm
3 ceph-common-10.2.11-0.el7.x86_64.rpm
4 ceph-deploy-1.5.39-0.noarch.rpm
5 ceph-devel-compat-10.2.11-0.el7.x86_64.rpm
6 cephfs-java-10.2.11-0.el7.x86_64.rpm
7 ceph-fuse-10.2.11-0.el7.x86_64.rpm
8 ceph-libs-compat-10.2.11-0.el7.x86_64.rpm
9 ceph-mds-10.2.11-0.el7.x86_64.rpm
10 ceph-mon-10.2.11-0.el7.x86_64.rpm
11 ceph-osd-10.2.11-0.el7.x86_64.rpm
12 ceph-radosgw-10.2.11-0.el7.x86_64.rpm
13 ceph-resource-agents-10.2.11-0.el7.x86_64.rpm
14 ceph-selinux-10.2.11-0.el7.x86_64.rpm
15 ceph-test-10.2.11-0.el7.x86_64.rpm
16 libcephfs1-10.2.11-0.el7.x86_64.rpm
17 libcephfs1-devel-10.2.11-0.el7.x86_64.rpm
18 libcephfs_jni1-10.2.11-0.el7.x86_64.rpm
19 libcephfs_jni1-devel-10.2.11-0.el7.x86_64.rpm
20 librados2-10.2.11-0.el7.x86_64.rpm
21 librados2-devel-10.2.11-0.el7.x86_64.rpm
22 libradosstriper1-10.2.11-0.el7.x86_64.rpm
23 libradosstriper1-devel-10.2.11-0.el7.x86_64.rpm
24 librbd1-10.2.11-0.el7.x86_64.rpm
25 librbd1-devel-10.2.11-0.el7.x86_64.rpm
26 librgw2-10.2.11-0.el7.x86_64.rpm
27 librgw2-devel-10.2.11-0.el7.x86_64.rpm
28 python-ceph-compat-10.2.11-0.el7.x86_64.rpm
29 python-cephfs-10.2.11-0.el7.x86_64.rpm
30 python-rados-10.2.11-0.el7.x86_64.rpm
31 python-rbd-10.2.11-0.el7.x86_64.rpm
32 rbd-fuse-10.2.11-0.el7.x86_64.rpm
33 rbd-mirror-10.2.11-0.el7.x86_64.rpm
34 rbd-nbd-10.2.11-0.el7.x86_64.rpm
(3)將下載好的rpm拷貝到所有節點,並安裝。注意ceph-deploy-xxxxx.noarch.rpm 只有部署節點用到,其他節點不需要,部署節點也需要安裝其余的rpm
[root@zxw9 cephjrpm]# mv ceph-deploy-1.5.39-0.noarch.rpm /root
[root@zxw9 ~]# yum localinstall ceph-deploy-1.5.39-0.noarch.rpm -y
在部署節點(cent用戶下執行):安裝 ceph-deploy,在root用戶下,進入下載好的rpm包目錄,執行:
yum localinstall -y ./*
(或者sudo yum install ceph-deploy)
創建ceph工作目錄
1 mkdir ceph && cd ceph
注意:如遇到如下報錯:
處理辦法1:
可能不能安裝成功,報如下問題:將python-distribute remove 再進行安裝(或者 yum remove python-setuptools -y)
注意:如果不是安裝上述方法添加的rpm,用的是網絡源,每個節點必須yum install ceph ceph-radosgw -y
處理辦法2:
安裝依賴包:python-distribute
root@bushu12:16:46~/cephjrpm# yum install python-distribute -y
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
軟件包 python-setuptools 已經被 python2-setuptools 取代,改為嘗試安裝 python2-setuptools-22.0.5-1.el7.noarch
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 python2-setuptools.noarch.0.22.0.5-1.el7 將被 安裝
--> 解決依賴關系完成
依賴關系解決
=============================================================================================================================
Package 架構 版本 源 大小
=============================================================================================================================
正在安裝:
python2-setuptools noarch 22.0.5-1.el7 openstack-ocata 485 k
事務概要
=============================================================================================================================
安裝 1 軟件包
總下載量:485 k
安裝大小:1.8 M
Downloading packages:
python2-setuptools-22.0.5-1.el7.noarch.rpm | 485 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝 : python2-setuptools-22.0.5-1.el7.noarch 1/1
驗證中 : python2-setuptools-22.0.5-1.el7.noarch 1/1
已安裝:
python2-setuptools.noarch 0:22.0.5-1.el7
完畢!
再次安裝 :ceph-deploy-1.5.39-0.noarch.rpm -y
root@bushu12:22:12~/cephjrpm# yum localinstall ceph-deploy-1.5.39-0.noarch.rpm -y
已加載插件:fastestmirror, langpacks
正在檢查 ceph-deploy-1.5.39-0.noarch.rpm: ceph-deploy-1.5.39-0.noarch
ceph-deploy-1.5.39-0.noarch.rpm 將被安裝
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 ceph-deploy.noarch.0.1.5.39-0 將被 安裝
--> 正在處理依賴關系 python-distribute,它被軟件包 ceph-deploy-1.5.39-0.noarch 需要
Loading mirror speeds from cached hostfile
軟件包 python-setuptools-0.9.8-7.el7.noarch 被已安裝的 python2-setuptools-22.0.5-1.el7.noarch 取代
--> 解決依賴關系完成
錯誤:軟件包:ceph-deploy-1.5.39-0.noarch (/ceph-deploy-1.5.39-0.noarch)
需要:python-distribute
可用: python-setuptools-0.9.8-7.el7.noarch (base)
python-distribute = 0.9.8-7.el7
您可以嘗試添加 --skip-broken 選項來解決該問題
您可以嘗試執行:rpm -Va --nofiles --nodigest
刪除:python2-setuptools-22.0.5-1.el7.noarch
root@bushu12:25:30~/cephjrpm# yum remove python2-setuptools-22.0.5-1.el7.noarch -y
已加載插件:fastestmirror, langpacks
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 python2-setuptools.noarch.0.22.0.5-1.el7 將被 刪除
--> 解決依賴關系完成
依賴關系解決
=============================================================================================================================
Package 架構 版本 源 大小
=============================================================================================================================
正在刪除:
python2-setuptools noarch 22.0.5-1.el7 @openstack-ocata 1.8 M
事務概要
=============================================================================================================================
移除 1 軟件包
安裝大小:1.8 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在刪除 : python2-setuptools-22.0.5-1.el7.noarch 1/1
驗證中 : python2-setuptools-22.0.5-1.el7.noarch 1/1
刪除:
python2-setuptools.noarch 0:22.0.5-1.el7
完畢!
因為目前的源用的是上面黃色標記openstack-ocata源,安裝版本就成了python2-setuptools-22.0.5-1.el7.noarch,所以修改yum源后,只要保證安裝 python-setuptools 版本是 0.9.8-7.el7 就可以通過了,如下把openstack-ocata 源移走或者刪除:
root@dlp10:30:02/etc/yum.repos.d# mv rdo-release-yunwei.repo old/
root@dlp10:30:11/etc/yum.repos.d# ls
Centos7-Base-yunwei.repo ceph-yunwei.repo epel-testing.repo old
ceph.repo epel.repo epel-yunwei.repo
root@dlp10:30:11/etc/yum.repos.d#
root@dlp10:30:12/etc/yum.repos.d#
root@dlp10:30:12/etc/yum.repos.d# yum clean all
root@dlp10:30:12/etc/yum.repos.d# yum makecache
root@bushu12:25:30~/cephjrpm# yum localinstall ceph-deploy-1.5.39-0.noarch.rpm -y
已加載插件:fastestmirror, langpacks
正在檢查 ceph-deploy-1.5.39-0.noarch.rpm: ceph-deploy-1.5.39-0.noarch
ceph-deploy-1.5.39-0.noarch.rpm 將被安裝
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 ceph-deploy.noarch.0.1.5.39-0 將被 安裝
--> 正在處理依賴關系 python-distribute,它被軟件包 ceph-deploy-1.5.39-0.noarch 需要
Loading mirror speeds from cached hostfile
--> 正在檢查事務
---> 軟件包 python-setuptools.noarch.0.0.9.8-7.el7 將被 安裝
--> 解決依賴關系完成
依賴關系解決
=============================================================================================================================
Package 架構 版本 源 大小
=============================================================================================================================
正在安裝:
ceph-deploy noarch 1.5.39-0 /ceph-deploy-1.5.39-0.noarch 1.3 M
為依賴而安裝:
python-setuptools noarch 0.9.8-7.el7 base 397 k
事務概要
=============================================================================================================================
安裝 1 軟件包 (+1 依賴軟件包)
總計:1.6 M
總下載量:397 k
安裝大小:3.2 M
Downloading packages:
python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝 : python-setuptools-0.9.8-7.el7.noarch 1/2
正在安裝 : ceph-deploy-1.5.39-0.noarch 2/2
驗證中 : ceph-deploy-1.5.39-0.noarch 1/2
驗證中 : python-setuptools-0.9.8-7.el7.noarch 2/2
已安裝:
ceph-deploy.noarch 0:1.5.39-0
作為依賴被安裝:
python-setuptools.noarch 0:0.9.8-7.el7
完畢!
查看版本:
root@bushu12:55:58~/cephjrpm#ceph -v
ceph version 10.2.11 (e4b061b47f07f583c92a050d9e84b1813a35671e)
(5)在部署節點(cent用戶下執行):配置新集群
1 ceph-deploy new node1 node2 node3
2 vim ./ceph.conf
3 添加
osd_pool_default_size = 1
osd_pool_default_min_size = 1
mon_clock_drift_allowed = 2
mon_clock_drift_warn_backoff = 3
可選參數如下:
1 public_network = 192.168.254.0/24
2 cluster_network = 172.16.254.0/24
3 osd_pool_default_size = 3
4 osd_pool_default_min_size = 1
5 osd_pool_default_pg_num = 8
6 osd_pool_default_pgp_num = 8
7 osd_crush_chooseleaf_type = 1
8
9 [mon]
10 mon_clock_drift_allowed = 0.5
11
12 [osd]
13 osd_mkfs_type = xfs
14 osd_mkfs_options_xfs = -f
15 filestore_max_sync_interval = 5
16 filestore_min_sync_interval = 0.1
17 filestore_fd_cache_size = 655350
18 filestore_omap_header_cache_size = 655350
19 filestore_fd_cache_random = true
20 osd op threads = 8
21 osd disk threads = 4
22 filestore op threads = 8
23 max_open_files = 655350
(6)在部署節點執行(cent用戶下執行):所有節點安裝ceph軟件
所有節點有如下軟件包:
1 root@rab116:13:59~/cephjrpm#ls
2 ceph-10.2.11-0.el7.x86_64.rpm ceph-resource-agents-10.2.11-0.el7.x86_64.rpm librbd1-10.2.11-0.el7.x86_64.rpm
3 ceph-base-10.2.11-0.el7.x86_64.rpm ceph-selinux-10.2.11-0.el7.x86_64.rpm librbd1-devel-10.2.11-0.el7.x86_64.rpm
4 ceph-common-10.2.11-0.el7.x86_64.rpm ceph-test-10.2.11-0.el7.x86_64.rpm librgw2-10.2.11-0.el7.x86_64.rpm
5 ceph-devel-compat-10.2.11-0.el7.x86_64.rpm libcephfs1-10.2.11-0.el7.x86_64.rpm librgw2-devel-10.2.11-0.el7.x86_64.rpm
6 cephfs-java-10.2.11-0.el7.x86_64.rpm libcephfs1-devel-10.2.11-0.el7.x86_64.rpm python-ceph-compat-10.2.11-0.el7.x86_64.rpm
7 ceph-fuse-10.2.11-0.el7.x86_64.rpm libcephfs_jni1-10.2.11-0.el7.x86_64.rpm python-cephfs-10.2.11-0.el7.x86_64.rpm
8 ceph-libs-compat-10.2.11-0.el7.x86_64.rpm libcephfs_jni1-devel-10.2.11-0.el7.x86_64.rpm python-rados-10.2.11-0.el7.x86_64.rpm
9 ceph-mds-10.2.11-0.el7.x86_64.rpm librados2-10.2.11-0.el7.x86_64.rpm python-rbd-10.2.11-0.el7.x86_64.rpm
10 ceph-mon-10.2.11-0.el7.x86_64.rpm librados2-devel-10.2.11-0.el7.x86_64.rpm rbd-fuse-10.2.11-0.el7.x86_64.rpm
11 ceph-osd-10.2.11-0.el7.x86_64.rpm libradosstriper1-10.2.11-0.el7.x86_64.rpm rbd-mirror-10.2.11-0.el7.x86_64.rpm
12 ceph-radosgw-10.2.11-0.el7.x86_64.rpm libradosstriper1-devel-10.2.11-0.el7.x86_64.rpm rbd-nbd-10.2.11-0.el7.x86_64.rpm
所有節點安裝上述軟件包(包括客戶端):
1 yum localinstall ./* -y
(7)在部署節點執行,所有節點安裝ceph軟件
1 ceph-deploy install dlp node1 node2 node3
(8)在部署節點初始化集群(cent用戶下執行):
1 ceph-deploy mon create-initial
(9)在osd節點prepare Object Storage Daemon :
1 mkdir /data && chown ceph.ceph /data
(10)每個節點將第二塊硬盤做分區,並格式化為xfs文件系統掛載到/data:
1 root@con116:45:22/#fdisk /dev/vdb
2
3 root@con116:45:22/#lsblk
4 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
5 vda 252:0 0 40G 0 disk
6 ├─vda1 252:1 0 512M 0 part /boot
7 └─vda2 252:2 0 39.5G 0 part
8 ├─cl-root 253:0 0 35.5G 0 lvm /
9 └─cl-swap 253:1 0 4G 0 lvm [SWAP]
10 vdb 252:16 0 10G 0 disk
11 └─vdb1 252:17 0 10G 0 part
12
13 root@rab116:54:35/#mkfs -t xfs /dev/vdb1
14
15 root@rab116:54:50/#mount /dev/vdb1 /data/
16
17 root@rab116:56:39/#lsblk
18 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
19 vda 252:0 0 40G 0 disk
20 ├─vda1 252:1 0 512M 0 part /boot
21 └─vda2 252:2 0 39.5G 0 part
22 ├─cl-root 253:0 0 35.5G 0 lvm /
23 └─cl-swap 253:1 0 4G 0 lvm [SWAP]
24 vdb 252:16 0 10G 0 disk
25 └─vdb1 252:17 0 10G 0 part /data
(11)在/data/下面創建osd掛載目錄:
1 mkdir /data/osd
2 chown -R ceph.ceph /data/
3 chmod 750 /data/osd/
4 ln -s /data/osd /var/lib/ceph
注意:准備前先將硬盤做文件系統 xfs,掛載到/var/lib/ceph/osd,並且注意屬主和屬主為ceph:
列出節點磁盤:ceph-deploy disk list node1
擦凈節點磁盤:ceph-deploy disk zap node1:/dev/vdb1
(12)准備Object Storage Daemon:
1 ceph-deploy osd prepare node1:/var/lib/ceph/osd node2:/var/lib/ceph/osd node3:/var/lib/ceph/osd
(13)激活Object Storage Daemon:
1 ceph-deploy osd activate node1:/var/lib/ceph/osd node2:/var/lib/ceph/osd node3:/var/lib/ceph/osd
(14)在部署節點transfer config files
1 ceph-deploy admin dlp node1 node2 node3
2 sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
(15)在ceph集群中任意節點檢測:
1 ceph -s
三、客戶端設置:
(1)客戶端也要有cent用戶:
1 useradd cent && echo "123" | passwd --stdin cent
2 echo-e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph
3 chmod440 /etc/sudoers.d/ceph
在部署節點執行,安裝ceph客戶端及設置:
1 ceph-deploy install controller
2 ceph-deploy admin controller
(2)客戶端執行
1 sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
(3)客戶端執行,塊設備rdb配置:
1 創建rbd:rbd create disk01 --size 10G --image-feature layering 刪除:rbd rm disk01
2 列示rbd:rbd ls -l
3 映射rbd的image map:sudo rbd map disk01 取消映射:sudo rbd unmap disk01
4 顯示map:rbd showmapped
5 格式化disk01文件系統xfs:sudo mkfs.xfs /dev/rbd0
6 掛載硬盤:sudo mount /dev/rbd0 /mnt
7 驗證是否掛着成功:df -hT
(4)File System配置:
在部署節點執行,選擇一個node來創建MDS:
1 ceph-deploy mds create node1
以下操作在node1上執行:
1 sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
在MDS節點node1上創建 cephfs_data 和 cephfs_metadata 的 pool
1 ceph osd pool create cephfs_data 128
2 ceph osd pool create cephfs_metadata 128
開啟pool:
1 ceph fs new cephfs cephfs_metadata cephfs_data
顯示ceph fs:
1 ceph fs ls
2 ceph mds stat
以下操作在客戶端執行,安裝ceph-fuse:
1 yum -y install ceph-fuse
獲取admin key:
1 sshcent@node1"sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" > admin.key
2 chmod600 admin.key
掛載ceph-fs:
1 mount-t ceph node1:6789:/ /mnt -o name=admin,secretfile=admin.key
2 df-hT
停止ceph-mds服務:
1 systemctl stop ceph-mds@node1
2 ceph mds fail 0
3 ceph fs rm cephfs --yes-i-really-mean-it
4
5 ceph osd lspools
6 顯示結果:0 rbd,1 cephfs_data,2 cephfs_metadata,
7
8 ceph osd pool rm cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it
四、刪除環境:
1 ceph-deploy purge dlp node1 node2 node3 controller
2 ceph-deploy purgedata dlp node1 node2 node3 controller
3 ceph-deploy forgetkeys
4 rm -rf ceph*