centos7 ceph13.2.10 mimic版本部署

参考

https://www.cnblogs.com/happy1983/p/9246379.html

Ceph各组件介绍:

  •Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。

  •Monitors:  Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。

  •MDSs:  Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

 

 

安装

0.系统

linux系统

[root@ceph-1 ceph]# lsb_release -a

LSB Version: :core-4.1-amd64:core-4.1-noarch

Distributor ID: CentOS

Description: CentOS Linux release 7.8.2003 (Core)

Release: 7.8.2003

Codename: Core

[root@ceph-1 ceph]# ceph -v

ceph version 13.2.10 (564bdc4ae87418a232fc901524470e1a0f76d641) mimic (stable)

 

1. 主机准备 (禁用selinux, 关闭防火墙)

1、关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

firewall-cmd --state

 

2、修改selinux

vim /etc/selinux/config

SELINUX=disabled

 

3、添加hosts、修改hostname

vim /etc/hosts

 

192.168.1.210 ceph-1

192.168.1.211 ceph-2

192.168.1.212 ceph-3

192.168.1.204 ceph-client

 

vim /etc/hostname

 

ssh 免密登录

#所有的输入选项都直接回车生成。

[root@ceph-1 ~]# ssh-keygen

 

[root@ceph-1 ~]# ssh-copy-id ceph-1

[root@ceph-1 ~]# ssh-copy-id ceph-2

[root@ceph-1 ~]# ssh-copy-id ceph-3

[root@ceph-1 ~]# ssh-copy-id ceph-client

 

2. 管理节点安装ceph-deploy工具

1、添加源

vim /etc/yum.repos.d/ceph.repo

 

[ceph]

name=ceph

baseurl=http://mirrors.163.com/ceph/rpm-mimic/el7/x86_64/

gpgcheck=0

[ceph-noarch]

name=cephnoarch

baseurl=http://mirrors.163.com/ceph/rpm-mimic/el7/noarch/

gpgcheck=0

 

 

2、清理并安装,在每台机器上执行

yum makecache

yum install ceph ceph-radosgw rdate -y

 

 

安装deploy

[root@ceph-1 ~]# yum -y install ceph-deploy

 

3.创建monitor服务

[root@ceph-1 ~]# mkdir /etc/ceph && cd /etc/ceph

[root@ceph-1 ceph]#  ceph-deploy new ceph-1    #mon安装在ceph-1节点

[root@ceph-1 ceph]# ls                                #生成配置文件在当前目录下

ceph.conf  ceph.log  ceph.mon.keyring

Ceph配置文件、一个monitor密钥环和一个日志文件

 

4.在所有节点安装ceph

[root@ceph-1 ceph]# ceph-deploy install ceph-1 ceph-2 ceph-3 ceph-client

安装ceph monitor

[root@ceph-1 ceph]# ceph-deploy mon create ceph-1

# 再添加两个monitor ceph-2 ceph-3

 

收集节点的keyring文件

[root@ceph-1 ceph]# ceph-deploy  gatherkeys ceph-1

 

5.修改配置文件

[root@ceph-1 ceph]# vim ceph.conf

[global]

fsid = 4623809e-d656-4b87-8d90-07fb56463bfe

mon_initial_members = ceph-1, ceph-2, ceph-3

mon_host = 192.168.1.210, 192.168.1.211, 192.168.1.212

auth_cluster_required = cephx

auth_service_required = cephx

auth_client_required = cephx

 

public_network = 192.168.1.0/24

osd_pool_default_size = 3

rbd_default_features = 1

 

[mon]

#允许 ceph 集群删除 pool

mon_allow_pool_delete = true

 

 

 

(warning :no active mgr)

ceph-deploy mgr create ceph-1

 

6.部署osd服务

添加osd

硬盘无需挂载到系统中,格式化好即可,格式化命令在下方第二章节挂盘

ceph-deploy osd create --data /dev/sdb ceph-1

 

 

查看状态:

[root@ceph-1 ceph]# ceph-deploy osd list ceph-1 ceph-2 ceph-3

 

 

7.统一配置

用ceph-deploy把配置文件和admin密钥拷贝到所有节点,这样每次执行Ceph命令行时就无需指定monitor地址和ceph.client.admin.keyring了)

[root@ceph-1 ceph]# ceph-deploy admin ceph-1 ceph-2 ceph-3

 

各节点修改ceph.client.admin.keyring权限:

[root@ceph-1 ceph]#chmod +r /etc/ceph/ceph.client.admin.keyring

 

8.查看osd状态

[root@ceph-1 ceph]# ceph health 或 ceph -s

health: HEALTH_OK 后续操作才会正常,否则会有卡顿等各种问题

 

9.部署mds服务

[root@ceph-1 ceph]# ceph-deploy mds create ceph-1 ceph-2 ceph-3 #我们MDS安装3台

[root@ceph-2 ceph]# ceph mds stat #查看状态

 

二、创建ceph文件系统

1.创建文件系统

[root@ceph-1 ceph]# ceph fs ls   #创建之前

No filesystems enabled

创建存储池

[root@ceph-1 ceph]# ceph osd pool create cephfs_data <pg_num> 

[root@ceph-1 ceph]# ceph osd pool create cephfs_metadata <pg_num>

其中:<pg_num> = 128 ,

关于创建存储池

确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:

  *少于 5 个 OSD 时可把 pg_num 设置为 128

  *OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512

  *OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096

  *OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值

  *自己计算 pg_num 取值时可借助 pgcalc 工具

随着 OSD 数量的增加,正确的 pg_num 取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。 

 

创建好存储池后,你就可以用 fs new 命令创建文件系统了

[root@ceph-1 ceph]# ceph fs new <fs_name> cephfs_metadata cephfs_data 

其中:<fs_name> = cephfs  可自定义

 

[root@ceph-1 ceph]# ceph fs ls              #查看创建后的cephfs

[root@ceph-1 ceph]# ceph mds stat          #查看mds节点状态

e6: 1/1/1  up  {0=ceph-3=up:active}, 1  up:standby

active是活跃的,另1个是处于热备份的状态

 

 

2.挂载Ceph文件系统(仅用此方式,另一种方式速度龟速)

[root@ceph-client ceph]# mkdir /opt #创建挂载点

存储密钥(如果没有在管理节点使用ceph-deploy拷贝ceph配置文件)

cat /etc/ceph/ceph.client.admin.keyring

将key对应的值复制下来保存到文件:/etc/ceph/admin.secret中。

 

 

挂载

[root@ceph-client ceph]# mount -t ceph 192.168.1.210:6789:/ /opt -o name=admin,secretfile=/etc/ceph/admin.secret

取消挂载

[root@ceph-client ceph]# umount /opt

 

 

三.维护

一、新增一个全新的osd(ceph-4)

1、关闭防火墙

2、修改selinux

3、添加hosts、修改hostname

4、添加ceph 源

5、更新源,并安装

6、在其他节点添加新的hosts ,新加的osd 主机重启

 

7、将配置文件推送到新的主机上,并执行安装

ssh-copy-id ceph-4

ceph-deploy install ceph-4

ceph-deploy --overwrite-conf config push ceph-4

如果安装出现问题,源不匹配等,在ceph-4 上执行 yum makecache

 

8、格式化硬盘

mkfs.xfs -f /dev/sdb

 

9、添加osd 硬盘

ceph-deploy osd create --data /dev/sdb ceph-4

10、加盘过后,查看ceph -s

此时数据在落盘,等待

 

以上为添加一台osd服务器及添加osd服务器的硬盘操作

 

二、将ceph-4 直接关机,查看ceph服务状态

 

不打开ceph-4 ,检查ceph是否可用

写入速度正常

 

将ceph-4开机

 

 

 

三、将monitor (ceph-1)关机

 

机器down机后,ceph能正常使用,且写入速度不受影响

 

再将ceph-3 关机

ceph 服务已经不能使用,在3monitor的状态下至少保证2台monitor正常

 

启动两台关闭的服务器

 

 

等待

 

四、添加、删除osd 对性能的影响

1、添加一个盘,查看速度

 

 

 

以上,在添加一个新盘的过程中,对于写入1个G和10个G的写入速度基本无影响

2、删除一个盘

ceph osd out osd.45

systemctl stop ceph-osd@45.service

ceph osd crush remove osd.45

ceph auth del osd.45

ceph osd rm osd.45

如果删不掉

ceph osd dowm osd.45

如果还删不掉

多执行几次

[root@ceph-1 ceph]# ceph osd down osd.45

marked down osd.45.

[root@ceph-1 ceph]# ceph osd down osd.45

osd.45 is already down.

[root@ceph-1 ceph]# ceph osd down osd.45

osd.45 is already down.

 

 

 

 

五、检查磁盘容量

46*7.3 = 335T

335/106 =3.16 (副本数为3)

 

再移除一块

 

327/104 = 3.14(副本数为3)

 

 

六、删除osd

执行指令 查看 有问题的osd

ceph osd tree

 

(1)把 OSD 踢出集群

ceph osd out osd.4

(2)在相应的节点,停止ceph-osd服务 (以下在节点操作)

systemctl stop ceph-osd@4.service

systemctl disable ceph-osd@4.service

(3)删除 CRUSH 图的对应 OSD 条目,它就不再接收数据了

ceph osd crush remove osd.4

(4)删除 OSD 认证密钥

ceph auth del osd.4

(5)删除osd.4

ceph osd rm osd.4

 

七、挂盘

(1) 格式化硬盘格式

(1.1)如果盘被占用

dmsetup ls

dmsetup remove ceph--xxx

mkfs.xfs -f /dev/sdb

(2) 在集群管理节点 添加osd

ceph-deploy osd create --data /dev/sdb ceph-1

 

八、将配置文件推送到节点

ceph-deploy --overwrite-conf config push ceph-1 ceph-2 ceph-3

 

九、错误处理

1)、

需要:liblttng-ust.so.0()(64bit)

您可以尝试添加 --skip-broken 选项来解决该问题

您可以尝试执行:rpm -Va --nofiles --nodigest

 

yum install epel-release -y

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm

rpm -Uvh epel-release*rpm

yum install lttng-ust -y

 

2)、linux root目录下没有.ssh目录

ssh localhost

 

3)、pg_num > pgp_num

cluster:

id: 3a10f3b9-4469-44a7-817a-df5cdc8e65da

health: HEALTH_WARN

application not enabled on 2 pool(s)

1 pools have pg_num > pgp_num

 

ceph osd pool set [file-name] pgp_num 32

ceph osd pool set [file-name] pg_num 32

 

4)、health HEALTH_WARN too few PGs per OSD (16 < min 30)

 

检查

[root@ceph-1 ceph]# ceph osd lspools

1 cephfs_data

2 cephfs_metadata

 

[root@ceph-1 ceph]# ceph osd pool get cephfs_data pg_num

pg_num: 512

[root@ceph-1 ceph]# ceph osd pool get cephfs_metadata pg_num

pg_num: 512

 

修改默认pool cephfs_data的pgs

ceph osd pool set cephfs_data pg_num 512

ceph osd pool set cephfs_data ppg_num 512

 

 

十、在ubuntu 18.04 中使用已经部署的ceph服务

 

echo deb https://download.ceph.com/debian-mimic/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

 

sudo apt update

 

ubutu18.04报错 无法安全地用该源进行更新,所以默认禁用该源。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E84AC2C0460F3994

 

sudo apt update

 

sudo apt install ceph -y

 

可能需要保持与主节点的版本一致,未验证

在主节点拿到数据 cat /etc/ceph/ceph.client.admin.keyring

将key对应的值复制下来保存到文件:/etc/ceph/admin.secret中。

mount -t ceph 192.168.1.201:6789:/ /mnt/ceph_fs -o name=admin,secretfile=/etc/ceph/admin.secret

 

centos 将ceph挂盘写入开机启动

 

挂载到fstab 不可行,无法开机

192.168.1.210:6789:/ /mnt/cow_fs ceph name=admin,secretfile=/etc/ceph/admin.secret,noatime 0 2

 

写入开机启动

1、将脚本移动到/etc/rc.d/init.d目录下

cd /etc/rc.d/init.d

vim autostart.sh

#!/bin/bash

#chkconfig: 2345 80 90

#description:auto_run

mount -t ceph 192.168.1.201:6789:/ /mnt/cow_fs -o name=admin,secretfile=/etc/ceph/admin.secret

2、增加脚本的可执行权限

chmod +x /etc/rc.d/init.d/autostart.sh

3、添加脚本到开机自动启动项目中

cd /etc/rc.d/init.d chkconfig --add autostart.sh chkconfig autostart.sh on

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值