ceph-luminous版本搭建过程
一、环境准备
1、本次搭建环境为centos7.2版本
2、本次搭建机器为
ceph-node1 192.168.13.72
ceph-node2 192.168.13.84
二、ceph搭建前环境准备
1、各个节点分别配置ceph-deploy的镜像源
vim /etc/yum.repos.d/ceph.repo
[Ceph-SRPMS]
name=Ceph SRPMS packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
enabled=1
gpgcheck=0
type=rpm-md

[Ceph-aarch64]
name=Ceph aarch64 packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/aarch64/
enabled=1
gpgcheck=0
type=rpm-md

[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
enabled=1
gpgcheck=0
type=rpm-md

[Ceph-x86_64]
name=Ceph x86_64 packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
enabled=1
gpgcheck=0
type=rpm-md
~

yum update
yum -y install ceph-deploy

2、修改hosts文件、安装ceph-deploy
[root@ceph-node1 my-cluster]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.13.72 ceph-node1
192.168.13.84 ceph-node2

yum install -y ceph-deploy

3、同步时间(可选)
1)修改时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2)vim /etc/chrony.conf

systemctl restart chronyd
systemctl enable chronyd
3)修改其他node节点的/etc/chrony.conf
##删除其他server,修改一行
server 192.168.13.72 iburst
4)systemctl restart chronyd
5)yum install ntp ntpdate
6)ntpdate 192.168.13.72

4、创建ceph用户并赋予sudo权限(可选)
[root@ceph-node1 ~]# useradd -d /home/ceph -m ceph
[root@ceph-node1 ~]# passwd ceph
Changing password for user ceph.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ceph-node1 ~]# echo "ceph ALL=(root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
ceph ALL=(root) NOPASSWD:ALL
[root@ceph-node1 ~]# chmod 0440 /etc/sudoers.d/ceph

5、设置免密登录
[root@ceph-node1 ~]# ssh-keygen
[root@ceph-node1 ~]# ssh-copy-id [email protected]
[root@ceph-node1 ~]# vim /root/.ssh/config
Host node1
Hostname ceph-node1
User ceph
Host node2
Hostname ceph-node2
User ceph

6、关闭selinux,添加防火墙规则6789、6800、7300
[root@ceph-node1 systemd]# setenforce 0
[root@ceph-node1 systemd]# iptables -I INPUT 1 -p tcp --dport 6789 -J ACCEPT
[root@ceph-node1 systemd]# iptables -I INPUT 1 -p tcp --dport 6800 -j ACCEPT
[root@ceph-node1 systemd]# iptables -I INPUT 1 -p tcp --dport 7300 -j ACCEPT
[root@ceph-node1 systemd]# iptables -I OUTPUT 1 -p tcp --dport 7300 -j ACCEPT
[root@ceph-node1 systemd]# iptables -I OUTPUT 1 -p tcp --dport 6800 -j ACCEPT
[root@ceph-node1 systemd]# iptables -I OUTPUT 1 -p tcp --dport 6789 -j ACCEPT

7、创建新的集群
[root@ceph-node1 my-cluster]# ceph-deploy new ceph-node1 (ceph-node1为本机的hostname)
8、两台node安装ceph
[root@ceph-node1 my-cluster]# ceph-deploy install ceph-node1 ceph-node2
PS:此处使用手动安装,在各个节点分别yum -y install ceph ceph-radosgw
9、部署初始监视器并收集密钥
[root@ceph-node1 my-cluster]# ceph-deploy mon create-initial
10、将配置文件和管理密钥复制到管理节点和你的Ceph的节点
[root@ceph-node1 my-cluster]# ceph-deploy admin ceph-node1 ceph-node2
11、部署管理器守护程序
[root@ceph-node1 my-cluster]# ceph-deploy mgr create ceph-node1
12、添加OSD
[root@ceph-node1 my-cluster]# ceph-deploy osd create --data /dev/vdc ceph-node1
[root@ceph-node1 my-cluster]# ceph-deploy osd create --data /dev/vdc ceph-node2
PS:如果不是第一次创建则可能会出现以下错误:
stderr: Physical volume '/dev/sdb' is already in volume group'ceph-e4f181e2-27cd-4cee-98b6-4d1fc6c4d0e8'
Unable to add physical volume '/dev/sdb' to volume group 'ceph-e4f181e2-27cd-4cee-98b6-4d1fc6c4d0e8'
/dev/sdb: physical volume not initialized
解决办法:lvdisplay和vgdisplay查看lv和vg后删除已经存在的lv和vg后创建执行添加Osd
13、检测集群状态
ceph -s
[root@ceph-node1 my-cluster]# ceph -s
cluster:
id: 5c202bf8-aab1-4317-bf76-28a7ed57652a
health: HEALTH_OK

services:
mon: 1 daemons, quorum ceph-node1
mgr: ceph-node1(active)
osd: 2 osds: 2 up, 2 in

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 2.0 GiB used, 98 GiB / 100 GiB avail
pgs:

14、添加元数据服务器(如需要使用文件系统需要添加,反之不用添加)
[root@ceph-node1 my-cluster]# ceph-deploy mds create ceph-node1

15、创建CephFS、首先创建一个pool
##CephFS要求至少创建两个RADOS pools,一个用于data,一个用户metadata。
(Pools的相关操作见:http://docs.ceph.com/docs/jewel/rados/operations/pools/)

[root@ceph-node1 lbj]# ceph osd pool create cephfs_data 128 ##创建pool池
[root@ceph-node1 lbj]# ceph osd pool create cephfs_metadata 64 ##创建pool池
[root@ceph-node1 lbj]# ceph fs new lbjtest cephfs_metadata cephfs_data ##创建文件系统
[root@ceph-node1 lbj]# ceph mds stat ##查看状态

16、挂载
mkdir /mnt/mycephfs ##创建挂载点
yum -y install ceph-fuse ##安装挂载工具
ceph-fuse -m 192.168.13.72:6789 /mnt/mycephfs/ ##使用工具进行挂载,13.72为mon地址

dashboard
开启监控
在所有运行了 ceph-mgr 守护进程的机器上编辑ceph配置文件 /etc/ceph/ceph.conf ,以启用 dashboard。
哪条服务器上有ceph-mgr的进程,哪台服务器需要配置dashboard参数。
ps -ef|grep ceph-mgr
root 2549 2301 0 18:27 pts/1 00:00:00 tail -f /var/log/ceph/ceph-mgr.ceph-1.log
ceph 2786 1 0 18:36 ? 00:00:00 /usr/bin/ceph-mgr -f --cluster ceph --id ceph-1 --setuser ceph --setgroup ceph
root 2840 1199 0 18:39 pts/0 00:00:00 grep --color=auto ceph-mgr

在/etc/ceph/ceph.conf文件下添加:
[mgr]
mgr_modules = dashboard
但是上面这种改配置文件的方式,我的dashboard始终是起不来的,最后看官方文档才发现,12的版本支持挺多的模块,
比如:dashboard,prometheus,restful,status,zabbix"
可以通过ceph mgr dump查看当前集群在使用那几个模块
ceph mgr dump
{
"epoch": 1624,
"active_gid": 44688,
"active_name": "ceph-1",
"active_addr": "10.10.10.11:6804/8406",
"available": true,
"standbys": [],
"modules": [
"restful",
"status"
],
"available_modules": [
"dashboard",
"prometheus",
"restful",
"status",
"zabbix"
]
}
可以看出当前集群只支持了两个模块,restful和status ,需要把dashboard开启,这也就是为啥总设置好了ip和端口就是访问不了
[root@ceph-2 ~]# ceph mgr module enable dashboard /////添加了dashboard模块
[root@ceph-2 ~]# ceph mgr dump
{
"epoch": 1627,
"active_gid": 24764,
"active_name": "ceph-1",
"active_addr": "10.10.10.11:6804/8406",
"available": true,
"standbys": [],
"modules": [
"dashboard",
"restful",
"status"
],
"available_modules": [
"dashboard",
"prometheus",
"restful",
"status",
"zabbix"
]
}

也可以通过这个查看当前集群是否支持dashboard
[root@ceph-1 ~]# ceph mgr module ls
[
"dashboard",
"restful",
"status"
]

设置dashboard访问地址和端口
ceph config-key put mgr/dashboard/server_addr 10.10.10.11 ////// server_addr为有ceph-mgr进程的那台机器的ip地址
ceph config-key put mgr/dashboard/server_port 7000 /////server_port可以随意设。这里也7000为例

查看配置的状态和参数和怎么删除上面设置
[root@ceph-1 ceph-ceph-1]# ceph config-key dump /////查看配置的状态
{
"mgr/dashboard/server_addr": "10.10.10.11",
"mgr/dashboard/server_port": "7000"
}
[root@ceph-1 ceph-ceph-1]# ceph config-key del mgr/dashboard/server_addr ////删除配置的参数
查看端口是否设置成功
[root@ceph-1 ~]# netstat -tunlp|grep ceph-mgr|grep LISTEN
tcp 0 0 0.0.0.0:6804 0.0.0.0: LISTEN 9128/ceph-mgr
tcp 0 0 10.10.10.11:7000 0.0.0.0:
LISTEN 9128/ceph-mgr
已经成功设置
设置完之后就重启mgr服务
systemctl restart ceph-mgr@ceph01 ##有的机器可能会是ceph-1
访问dashboard
打开浏览器输入:http://10.10.10.11:7000 /////具体访问地址根据自己的设定地址进行访问