一. 准备工作
1.1 环境:
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官网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源
参考https://www.jianshu.com/p/286fcef565ab
第三条:
二. 安装ceph-deploy
2.1 安装 ntp与依赖
sudo yum install -y ntp ntpdate ntp-doc libicu fuse-libs libaio
2.2.3.允许无密码 SSH 登录
正因为 ceph-deploy 不支持输入密码,你必须在管理节点上生成 SSH 密钥并把其公钥分发到各 Ceph 节点。 ceph-deploy 会尝试给初始 monitors 生成 SSH 密钥对。
生成 SSH 密钥对,但不要用。提示 “Enter passphrase” 时,直接回车,口令即为空:
##生成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设置hosts
sudo vi /etc/hosts
加上
192.168.1.7(用相对应的IP) node1
192.168.1.19(用相对应的IP) node2
2.2.5 把公钥拷贝到各 Ceph 节点上并测试
$ ssh-copy-id root@node1
$ ssh-copy-id roo@node2
##测试是否成功
ssh node1
ssh node2
2.2.6 关闭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
首先, 在系统里防火墙启用ceph monitor osd 等服务所需要的端口.
# 添加端口
firewall-cmd --zone=public --add-port=6789-8000/tcp --permanent
# 使配置生效
firewall-cmd --reload
# 查防火墙规则
firewall-cmd --zone=public --list-all
或者
firewall-cmd --list-all-zones
3.1.1 在管理节点node上进行安装准备
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 创建一个群集
cd /home/ceph-cluster
ceph-deploy new node1
3.1.4 在生成的ceph.conf中加入(写入[global] 段下)
sudo vi ceph.conf
加入下面一行(2个副本)
osd pool default size = 2
或者:
echo "osd pool default size = 2" >> ceph.conf
如果环境中有多种网络,那么需要在Ceph.conf的[global]部分下增加如下配置。
public network = {ip-address}/{netmask}
3.1.5配置初始 monitor(s)、并收集所有密钥
sudo ceph-deploy mon create-initial
3.1.6如果在任何时候遇到问题并想重新开始,请执行以下操作清除Ceph软件包,并清除所有数据和配置:
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添加两个 OSD ,登录到 Ceph 节点、并给 OSD 守护进程创建一个目录。
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 然后,从管理节点执行 ceph-deploy 来准备 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节点 (硬盘的方式)以node3主机为例
3.21.1查看osd节点的硬盘情况 ,sda是系统盘, 这里要用/dev/sdb创建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上添加一个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 创建osd
Ceph 软件包提供了 ceph-disk 工具,用于准备硬盘:可以是分区或用于 Ceph 的目录。 ceph-disk 可通过递增索引来创建 OSD ID ;还能把 OSD 加入 CRUSH 图。 ceph-disk 的详细用法可参考 ceph-disk -h ,此工具把后面将提到的精简型里面的步骤都自动化了。为按照精简型创建前两个 OSD ,在 node2 和 node3 上执行下列命令:
创建osd挂载目录并改权限
mkdir /var/lib/ceph/osd
chown -R ceph:ceph /var/lib/ceph/osd
准备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 节点上没有 /var/lib/ceph/bootstrap-osd/{cluster}.keyring ,那么应该外加 --activate-key 参数。
删除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实例
yum install ceph-radosgw -y
ceph-deploy admin node1
ceph-deploy rgw create node1
3.3.2 测试
curl http://node1:7480
如果RGW运行正常,它应该返回类似的信息:
anonymous
3.3.3 打开防火墙
添加7480
firewall-cmd --permanent --add-port=7480/tcp
#reload使生效
firewall-cmd --reload
使用浏览器访问: