一. 準(zhǔn)備工作
1.1 環(huán)境:
linux版本:
CentOS Linux release 7.4.1708 (Core)
ceph 版本:10.2.9
ceph version 10.2.9 (2ee413f77150c0f375ff6f10edd6c8f9c7d060d0)
ceph-deploy 版本: 1.5.39
http://download.ceph.com/rpm-jewel/el7/noarch/
# ceph-deploy --version
1.5.39
ceph官網(wǎng)rpm包下載:http://download.ceph.com/rpm-jewel/el7/
rpm包list
-rw-r--r--. 1 root root 23000 4月 4 14:28 argparse-1.4.0-py2.py3-none-any.whl
-rw-r--r--. 1 root root 67624 4月 4 14:26 autogen-libopts-5.18-5.el7.x86_64.rpm
-rw-r--r--. 1 root root 5605 4月 4 14:28 backports.ssl_match_hostname-3.5.0.1.tar.gz
-rw-r--r--. 1 root root 62432 4月 4 14:26 boost-iostreams-1.53.0-27.el7.x86_64.rpm
-rw-r--r--. 1 root root 159424 4月 4 14:26 boost-program-options-1.53.0-27.el7.x86_64.rpm
-rw-r--r--. 1 root root 40044 4月 4 14:26 boost-random-1.53.0-27.el7.x86_64.rpm
-rw-r--r--. 1 root root 307448 4月 4 14:26 boost-regex-1.53.0-27.el7.x86_64.rpm
-rw-r--r--. 1 root root 40532 4月 4 14:26 boost-system-1.53.0-27.el7.x86_64.rpm
-rw-r--r--. 1 root root 58712 4月 4 14:26 boost-thread-1.53.0-27.el7.x86_64.rpm
-rw-r--r--. 1 root root 3032 4月 4 14:26 ceph-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 4386004 4月 4 14:26 ceph-base-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 17334804 4月 4 14:26 ceph-common-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 1317130384 4月 4 14:28 ceph-debuginfo-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 290292 4月 4 14:28 ceph-deploy-1.5.39-0.noarch.rpm
-rw-r--r--. 1 root root 3252 4月 4 14:28 ceph-devel-compat-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 23224 4月 4 14:28 cephfs-java-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 1939560 4月 4 14:28 ceph-fuse-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 3216 4月 4 14:28 ceph-libs-compat-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 2926812 4月 4 14:28 ceph-mds-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 2925320 4月 4 14:28 ceph-mon-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 9497684 4月 4 14:28 ceph-osd-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 271680 4月 4 14:28 ceph-radosgw-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 6600 4月 4 14:28 ceph-resource-agents-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 20476 4月 4 14:28 ceph-selinux-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 76266452 4月 4 14:28 ceph-test-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 95840 4月 4 14:28 createrepo-0.9.9-28.el7.noarch.rpm
-rw-r--r--. 1 root root 131104 4月 4 14:28 cryptsetup-1.7.4-3.el7_4.1.x86_64.rpm
-rw-r--r--. 1 root root 227852 4月 4 14:28 cryptsetup-libs-1.7.4-3.el7_4.1.x86_64.rpm
-rw-r--r--. 1 root root 83984 4月 4 14:28 deltarpm-3.6-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 15080 4月 4 14:28 epel-release-7-11.noarch.rpm
-rw-r--r--. 1 root root 47816 4月 4 14:28 fcgi-2.4.0-25.el7.x86_64.rpm
-rw-r--r--. 1 root root 191380 4月 4 14:28 gdisk-0.8.6-5.el7.x86_64.rpm
-rw-r--r--. 1 root root 278772 4月 4 14:28 gperftools-libs-2.4-8.el7.x86_64.rpm
-rw-r--r--. 1 root root 85348 4月 4 14:28 hdparm-9.43-5.el7.x86_64.rpm
-rw-r--r--. 1 root root 104752 4月 4 14:28 htop-2.1.0-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 165208 4月 4 14:28 leveldb-1.12.0-11.el7.x86_64.rpm
-rw-r--r--. 1 root root 150356 4月 4 14:28 libbabeltrace-1.2.4-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 1945304 4月 4 14:28 libcephfs1-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 14052 4月 4 14:28 libcephfs1-devel-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 1644100 4月 4 14:28 libcephfs_jni1-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 3540 4月 4 14:28 libcephfs_jni1-devel-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 1990540 4月 4 14:28 librados2-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 488244 4月 4 14:28 librados2-devel-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 1910004 4月 4 14:28 libradosstriper1-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 8968 4月 4 14:28 libradosstriper1-devel-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 2624416 4月 4 14:28 librbd1-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 13580 4月 4 14:28 librbd1-devel-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 3069436 4月 4 14:28 librgw2-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 6260 4月 4 14:28 librgw2-devel-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 58180 4月 4 14:28 libunwind-1.2-2.el7.x86_64.rpm
-rw-r--r--. 1 root root 252528 4月 4 14:28 libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
-rw-r--r--. 1 root root 180520 4月 4 14:28 lttng-ust-2.4.1-4.el7.x86_64.rpm
-rw-r--r--. 1 root root 31264 4月 4 14:28 mailcap-2.1.41-2.el7.noarch.rpm
-rw-r--r--. 1 root root 560368 4月 4 14:28 ntp-4.2.6p5-25.el7.centos.2.x86_64.rpm
-rw-r--r--. 1 root root 87648 4月 4 14:28 ntpdate-4.2.6p5-25.el7.centos.2.x86_64.rpm
-rw-r--r--. 1 root root 1063520 4月 4 14:28 ntp-doc-4.2.6p5-25.el7.centos.2.noarch.rpm
-rw-r--r--. 1 root root 1400985 4月 4 14:28 pip-9.0.3-py2.py3-none-any.whl
-rw-r--r--. 1 root root 144300 4月 4 14:28 psmisc-22.20-15.el7.x86_64.rpm
-rw-r--r--. 1 root root 1749308 4月 4 14:28 python2-pip-8.1.2-5.el7.noarch.rpm
-rw-r--r--. 1 root root 1426348 4月 4 14:28 python-babel-0.9.6-8.el7.noarch.rpm
-rw-r--r--. 1 root root 5932 4月 4 14:28 python-backports-1.0-8.el7.x86_64.rpm
-rw-r--r--. 1 root root 12144 4月 4 14:28 python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch.rpm
-rw-r--r--. 1 root root 3140 4月 4 14:28 python-ceph-compat-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 80120 4月 4 14:28 python-cephfs-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 232224 4月 4 14:28 python-chardet-2.2.1-1.el7_1.noarch.rpm
-rw-r--r--. 1 root root 32084 4月 4 14:28 python-deltarpm-3.6-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 266704 4月 4 14:28 python-execnet-1.2.0-5.el7.noarch.rpm
-rw-r--r--. 1 root root 208808 4月 4 14:28 python-flask-0.10.1-4.el7.noarch.rpm
-rw-r--r--. 1 root root 24104 4月 4 14:28 python-itsdangerous-0.23-2.el7.noarch.rpm
-rw-r--r--. 1 root root 527832 4月 4 14:28 python-jinja2-2.7.2-2.el7.noarch.rpm
-rw-r--r--. 1 root root 273012 4月 4 14:28 python-kitchen-1.1.1-5.el7.noarch.rpm
-rw-r--r--. 1 root root 25792 4月 4 14:28 python-markupsafe-0.11-10.el7.x86_64.rpm
-rw-r--r--. 1 root root 149260 4月 4 14:28 python-rados-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 80628 4月 4 14:28 python-rbd-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 22716 4月 4 14:28 python-remoto-0.0.25-1.el7.noarch.rpm
-rw-r--r--. 1 root root 95804 4月 4 14:28 python-requests-2.6.0-1.el7_1.noarch.rpm
-rw-r--r--. 1 root root 406404 4月 4 14:28 python-setuptools-0.9.8-7.el7.noarch.rpm
-rw-r--r--. 1 root root 29404 4月 4 14:28 python-six-1.9.0-2.el7.noarch.rpm
-rw-r--r--. 1 root root 103696 4月 4 14:28 python-urllib3-1.10.2-3.el7.noarch.rpm
-rw-r--r--. 1 root root 575384 4月 4 14:28 python-werkzeug-0.9.1-2.el7.noarch.rpm
-rw-r--r--. 1 root root 443400 4月 4 14:28 rbd-fuse-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 1655636 4月 4 14:28 rbd-mirror-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 484532 4月 4 14:28 rbd-nbd-10.2.9-0.el7.x86_64.rpm
-rw-r--r--. 1 root root 25788 4月 4 14:28 redhat-lsb-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 38428 4月 4 14:28 redhat-lsb-core-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 16508 4月 4 14:28 redhat-lsb-cxx-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 20924 4月 4 14:28 redhat-lsb-desktop-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 18352 4月 4 14:28 redhat-lsb-languages-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 16520 4月 4 14:28 redhat-lsb-printing-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 15624 4月 4 14:28 redhat-lsb-submod-multimedia-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 15616 4月 4 14:28 redhat-lsb-submod-security-4.1-27.el7.centos.1.x86_64.rpm
-rw-r--r--. 1 root root 40932 4月 4 14:28 snappy-1.1.0-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 47508 4月 4 14:28 tree-1.6.0-10.el7.x86_64.rpm
-rw-r--r--. 1 root root 74732 4月 4 14:28 userspace-rcu-0.7.16-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 27676 4月 4 14:28 yum-plugin-priorities-1.1.31-42.el7.noarch.rpm
-rw-r--r--. 1 root root 120184 4月 4 14:28 yum-utils-1.1.31-42.el7.noarch.rpm
1.2 做yum源
參考http://www.itdecent.cn/p/286fcef565ab
第三條:

二. 安裝ceph-deploy
2.1 安裝 ntp與依賴
sudo yum install -y ntp ntpdate ntp-doc libicu fuse-libs libaio
2.2.3.允許無密碼 SSH 登錄
正因?yàn)?ceph-deploy 不支持輸入密碼,你必須在管理節(jié)點(diǎn)上生成 SSH 密鑰并把其公鑰分發(fā)到各 Ceph 節(jié)點(diǎn)。 ceph-deploy 會(huì)嘗試給初始 monitors 生成 SSH 密鑰對。
生成 SSH 密鑰對,但不要用。提示 “Enter passphrase” 時(shí),直接回車,口令即為空:
##生成key
ssh-keygen
Generating public/private key pair.
Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /ceph-admin/.ssh/id_rsa.
Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.
2.2.4設(shè)置hosts
sudo vi /etc/hosts
加上
192.168.1.7(用相對應(yīng)的IP) node1
192.168.1.19(用相對應(yīng)的IP) node2
2.2.5 把公鑰拷貝到各 Ceph 節(jié)點(diǎn)上并測試
$ ssh-copy-id root@node1
$ ssh-copy-id roo@node2
##測試是否成功
ssh node1
ssh node2
2.2.6 關(guān)閉selinux 并重啟
sudo vi /etc/selinux/config
2.3 安裝ceph-deploy1.5.39
# yum install ceph-deploy -y
# ceph-deploy --version
1.5.39
三. 部署monitor , osd , rgw
3.1 部署monitor
首先, 在系統(tǒng)里防火墻啟用ceph monitor osd 等服務(wù)所需要的端口.
# 添加端口
firewall-cmd --zone=public --add-port=6789-8000/tcp --permanent
# 使配置生效
firewall-cmd --reload
# 查防火墻規(guī)則
firewall-cmd --zone=public --list-all
或者
firewall-cmd --list-all-zones
3.1.1 在管理節(jié)點(diǎn)node上進(jìn)行安裝準(zhǔn)備
mkdir /home/ceph-cluster
cd /home/ceph-cluster
3.1.2 安裝ceph與ceph-radosgw
注意: 下面切換到root操作
sudo yum install ceph ceph-radosgw -y
3.1.3 創(chuàng)建一個(gè)群集
cd /home/ceph-cluster
ceph-deploy new node1
3.1.4 在生成的ceph.conf中加入(寫入[global] 段下)
sudo vi ceph.conf
加入下面一行(2個(gè)副本)
osd pool default size = 2
或者:
echo "osd pool default size = 2" >> ceph.conf
如果環(huán)境中有多種網(wǎng)絡(luò),那么需要在Ceph.conf的[global]部分下增加如下配置。
public network = {ip-address}/{netmask}
3.1.5配置初始 monitor(s)、并收集所有密鑰
sudo ceph-deploy mon create-initial
3.1.6如果在任何時(shí)候遇到問題并想重新開始,請執(zhí)行以下操作清除Ceph軟件包,并清除所有數(shù)據(jù)和配置:
ceph-deploy purge {ceph-node} [{ceph-node}]
ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys
rm ceph.*
3.2 新建osd (文件夾的方式)
3.2.1添加兩個(gè) OSD ,登錄到 Ceph 節(jié)點(diǎn)、并給 OSD 守護(hù)進(jìn)程創(chuàng)建一個(gè)目錄。
ssh node2
sudo mkdir /var/local/osd0
sudo chown -R ceph:ceph /var/local/osd0
exit
ssh node3
sudo mkdir /var/local/osd1
sudo chown -R ceph:ceph /var/local/osd1
exit
3.2.2 然后,從管理節(jié)點(diǎn)執(zhí)行 ceph-deploy 來準(zhǔn)備 OSD
ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1
3.2.3 最后,激活 OSD
chown -R ceph:ceph /var/local/osd1/
ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1
3.21 新建osd節(jié)點(diǎn) (硬盤的方式)以node3主機(jī)為例
3.21.1查看osd節(jié)點(diǎn)的硬盤情況 ,sda是系統(tǒng)盤, 這里要用/dev/sdb創(chuàng)建osd
[root@node3 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos-root 253:0 0 47G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
3.21.2 在mon上添加一個(gè)osd
sudo ceph-deploy osd create node3:/dev/sdb
3.21.3查看是否添加成功
ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.02917 root default
-2 0.01459 host node2
0 0.01459 osd.0 up 1.00000 1.00000
-3 0.01459 host node3
1 0.01459 osd.1 up 1.00000 1.00000
使用ceph-disk 創(chuàng)建osd
Ceph 軟件包提供了 ceph-disk 工具,用于準(zhǔn)備硬盤:可以是分區(qū)或用于 Ceph 的目錄。 ceph-disk 可通過遞增索引來創(chuàng)建 OSD ID ;還能把 OSD 加入 CRUSH 圖。 ceph-disk 的詳細(xì)用法可參考 ceph-disk -h ,此工具把后面將提到的精簡型里面的步驟都自動(dòng)化了。為按照精簡型創(chuàng)建前兩個(gè) OSD ,在 node2 和 node3 上執(zhí)行下列命令:
創(chuàng)建osd掛載目錄并改權(quán)限
mkdir /var/lib/ceph/osd
chown -R ceph:ceph /var/lib/ceph/osd
準(zhǔn)備OSD。
ssh {node-name}
sudo ceph-disk prepare --cluster {cluster-name} --cluster-uuid {uuid} --fs-type {ext4|xfs|btrfs} {data-path} [{journal-path}]
例如:
ssh node1
sudo ceph-disk prepare --cluster ceph --cluster-uuid a7f64266-0894-4f1e-a635-d0aeaca0e993 --fs-type ext4 /dev/hdd1
激活 OSD:
sudo ceph-disk activate {data-path} [--activate-key {path}]
例如:
sudo ceph-disk activate /dev/hdd1
注: 如果你的 Ceph 節(jié)點(diǎn)上沒有 /var/lib/ceph/bootstrap-osd/{cluster}.keyring ,那么應(yīng)該外加 --activate-key 參數(shù)。
刪除osd
ceph osd out 1
systemctl stop ceph-osd@1
ceph osd crush remove osd.1
ceph auth del osd.1
ceph osd rm 1
rm -rf /var/lib/ceph/osd/osd-1
fdisk /dev/sdb
3.3 部署RGW
3.3.1 安裝RGW實(shí)例
yum install ceph-radosgw -y
ceph-deploy admin node1
ceph-deploy rgw create node1
3.3.2 測試
curl http://node1:7480
如果RGW運(yùn)行正常,它應(yīng)該返回類似的信息:
<ListAllMyBucketsResult>
<Owner>
<ID>anonymous</ID>
<DisplayName/>
</Owner>
<Buckets/>
</ListAllMyBucketsResult>
3.3.3 打開防火墻
添加7480
firewall-cmd --permanent --add-port=7480/tcp
#reload使生效
firewall-cmd --reload
使用瀏覽器訪問:
