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 ceph@192.168.13.84 [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 /////具体访问地址根据自己的设定地址进行访问