欢迎来到ceph的世界
1.ceph的环境
硬件资源
3台主机,14核251G内存,Centos7系统。每台挂载4块745.2G 的SSD 和4块1.8T 的SATA盘。
三台主机内网物理IP分别为: 192.168.0.100, 192.168.0.101, 192.168.0.102。
Linux内核版本:3.10.0-327.el7.x86_64磁盘分区
用于ceph对象存储的磁盘分区应当实现物理隔离。ceph-mon可以和osd节点混布,但要物理隔离。单台机器可以由多个osd进程,osd会把磁盘分成data和journal两部分,Journal部分是ceph写数据性能的关键影响因素。为了高性能,建议journal放在在ssd盘,分区大小10G即可(更精确的大小计算参见这里, 大致的计算原则是 磁盘的吞吐osd持久化间隔的两倍,默认的持久化间隔是5s,按照磁盘吞吐200M计算,2G空间就够了)。三台主机上分别建立8个osd存储 。
设置ssh免密登录仅主控节点
选定一个节点作为主控节点(这里选的ceph1主机),建立从主控节点到其他节点的免密登录,以实现ceph集群的快速安装。
(注:主控节点也可以安装ceph)修改 /etc/hosts文件
要在集群主机上设置ssh免密码服务,在管理主机上打开命令行并执行下列命令:1
2
3
4
5# vim /etc/hosts
# cat /etc/hosts
192.168.0.100 ceph1
192.168.0.101 ceph2
192.168.0.102 ceph3生成秘钥:ssh-keygen
在管理主机上(ceph1)执行下列命令:1
# ssh-keygen
生成秘钥:ssh-keygen
在管理主机上(ceph1),执行下列命令,实现复制访问密钥到各个节点:1
2
3
4
5# ssh-copy-id root@HOSTNAME
# ssh-copy-id root@ceph1
# ssh-copy-id root@ceph2
# ssh-copy-id root@ceph3执行下列命令验证ssh功能:
1
2
3
4
5# ssh root@ HOSTNAME
# ssh root@ceph1
# ssh root@ceph2
# ssh root@ceph3如果ssh功能正常,即可登录到相应的节点。若不能完成免密码登录,请检查上述过程。
防火墙及安全设置所有节点
为保证ceph集群的顺利安装,在安装ceph集群前,请确保已关闭selinux,在各个节点上,执行下列命令。设置selinux时如果报命令不存在,可以忽略这一步。
1
2
3
4
5
6
7# systemctl stop firewalld.service
# systemctl disable firewalld.service
# firewall-cmd --state
# sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config
# sed -i 's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g' /etc/selinux/config
# grep --color=auto '^SELINUX' /etc/selinux/config
# setenforce 0
2.ceph的安装
安装ceph的源
ceph源默认是国外的,由于网络问题,国内的可能更快一些,这里添加alibaba的yum.
1
2
3
4# rm -f /etc/yum.repos.d/*
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo1
2
3
4
5
6
7
8
9
10
11
12
13
14# vim /etc/yum.repos.d/ceph.repo
# cat /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
gpgcheck=0
[ceph-source]
name=ceph-source
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
gpgcheck=0更新yum源
1
# yum clean all && yum makecache
安装ceph-deploy
ceph-deploy是ceph自动化部署的工具之一。一般情况下,在管理主机上部署ceph-deploy工具。在管理主机上新建my-cluster文件夹,并在该路径下进行ceph的部署工作。更新软件库并安装 ceph-deploy :
1
2
3
4# mkdir my-cluster
# cd my-cluster
# yum update
# yum install ceph-deploy安装ntp服务(所有节点)
主要是用于ceph-mon之间的时间同步。在所有 Ceph 节点上安装 NTP 服务(特别是 Ceph Monitor 节点),以免因时钟漂移导致故障。确保在各 Ceph 节点上启动了 NTP 服务,并且要使用同一个 NTP 服务器。命令如下:
1
# yum install chrony
ceph1节点
1
2
3
4
5
6
7
8
9# vim /etc/chrony.conf
# cat /etc/chrony.conf
...
server NTP_SERVER iburst
...
allow 192.168.0.0/24
# systemctl enable chronyd.service
# systemctl start chronyd.service其他节点(ceph2,ceph3):
1
2
3
4
5
6
7
8# vim /etc/chrony.conf
# cat /etc/chrony.conf
...
server ceph1 iburst
...
# systemctl enable chronyd.service
# systemctl start chronyd.service安装ceph(所有节点)
在管理节点上,进入my-cluster放置配置文件的目录,用 ceph-deploy 执行如下步骤。
创建集群:1
2# cd my-cluster
# ceph-deploy new ceph1此时会在my-cluster目录下生成几个文件,如:ceph.conf ceph-deploy-ceph.log ceph.mon.keyring release.asc文件。上述文件分别是一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。设置ceph.conf文件,增加一行内容public network = xxx.xxx.xxx.0/24。
(注: xxx.xxx.xxx取决于实际的网络,可通过ifconfig查看并配置)
对各个节点进行ceph安装,管理节点执行命令如下:1
# ceph-deploy install ceph1 ceph2 ceph3
上述命令利用ceph-deploy工具,自动在输入节点上安装ceph。在安装过程中如果遇到了问题,想重新开始安装,执行以下命令来清空配置。
1
2
3# ceph-deploy purge ceph1 ceph2 ceph3
# ceph-deploy forgetkeys
# ceph-deploy purgedata ceph1 ceph2 ceph3如果成功安装ceph。执行ceph -v查看版本信息如下:
1
2# ceph -v
12.0.1