Centos7 搭建ceph集群

Ceph中文开源社区地址:http://ceph.org.cn/
Ceph官方文档:http://docs.ceph.org.cn/

ceph理论性的东西这里我就不说了,有兴趣的同学可以去看官方文档,我这就直接上实验过程了~

机器准备
HostNameIP功能
Ceph110.15.5.246admin,osd,mon
Ceph210.15.5.247osd,mds
Ceph310.15.5.248osd,mds
Ceph410.15.5.249client
环境准备
  1. 创建虚拟机时多添加一块100G 的硬盘,容量不够的可以少一点;
  2. 修改主机名:Ceph{1…4};
  3. 关闭防火墙:systemctl stop/disable firewalld;
  4. 关闭selinux。
添加/etc/hosts
vim /etc/hosts
10.15.5.246 Ceph1
10.15.5.247 Ceph2
10.15.5.248 Ceph3
10.15.5.249 Ceph4

免密互信
# 每台上面操作
ssh-keygen -t rsa
# 互相增加(在Ceph1上+2/3/4 ,以此类推,直到所有可以直接通过主机名ssh)
ssh-copy-id Ceph{2..4}
格式化硬盘,创建osd目录并且挂载

我在创建虚拟机的时候添加了两块硬盘,/dev/sda 以及/dev/sdb,系统安装在/dev/sda上。

## Ceph1上操作
mkfs.xfs /dev/sdb
mkdir /var/local/osd{0..2}
mount /dev/sdb /var/local/osd0/

##  Ceph2上操作
mkfs.xfs /dev/sdb
mkdir /var/local/osd{0..2}
mount /dev/sdb /var/local/osd1/

##  Ceph3上操作
mkfs.xfs /dev/sdb
mkdir /var/local/osd{0..2}
mount /dev/sdb /var/local/osd2/

PS:以上操作为临时挂载,永久挂载需要写入 /etc/fstab

安装ntp,完成时间同步

时间需要完全统一,不然会有问题,最好是职级内网搭建一个时间同步服务~

# 所有节点执行
yum install ntp
ntpdate ntp1.aliyun.com

基本准备工作就到这了~下面开始部署

安装ceph-deploy 管理工具
配置yum源

我这里用的阿里的源

# 基础软件源
cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

# Ceph源
[root@Ceph1 ~]# cat /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
priority=1

[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
gpgcheck=0
priority=1

# 再安装一个epel源
yum install -y epel-release
yum clean all
yum makecache
安装ceph-deploy 以及开始配置
yum install -y ceph-deploy

创建Monitor服务

mkdir /etc/ceph
cd /etc/ceph
ceph-deploy new Ceph1
## 执行完成后会在当前路径生成以下三个文件,分别为ceph的配置文件、日志文件以及monitor的密钥环文件

内容有点长,我分两次截图了
在这里插入图片描述
在这里插入图片描述
如果想要修改守护进程数,也就是副本数,可以在ceph.conf配置文件中添加如下内容

osd_pool_default_size = 2  #副本数量
在所有主机上安装ceph
ceph-deploy install Ceph1 Ceph2 Ceph3 Ceph4
# 该命令直接走的官网下载,如果网速慢的可以换成通过阿里源yum下载
yum -y install ceph ceph-radosgw

大概需要几分钟,内容有点多,分三次截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在管理节点安装Monitor(监控)
# 创建Monitor (监控)
ceph-deploy mon create Ceph1  
# 收集keyring(密钥环)信息
ceph-deploy gatherkeys Ceph1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建OSD

在准备过程中已经完成了osd目录的创建以及挂载,这里直接创建osd节点

ceph-deploy osd prepare Ceph1:/var/local/osd0/ Ceph2:/var/local/osd1/ Ceph3:/var/local/osd2/
ls /var/local/osd0/
ceph_fsid  fsid  magic
# 完成后在各节点对应目录可看到对应文件

在这里插入图片描述

激活OSD
ceph-deploy  osd activate Ceph1:/var/local/osd0/ Ceph2:/var/local/osd1/ Ceph3:/var/local/osd2/
# 这时会有一个报错,报错信息如下:
[Ceph1][WARNIN] 2020-10-22 17:01:52.548400 7f6ef1edbac0 -1  ** ERROR: error creating empty object store in /var/local/osd0/: (13) Permission denied
[Ceph1][WARNIN] 
[Ceph1][ERROR ] RuntimeError: command returned non-zero exit status: 1
[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: /usr/sbin/ceph-disk -v activate --mark-init systemd --mount /var/local/osd0/

在这里插入图片描述
解决方法:给三个节点的/var/local/osd{0…2}三个文件夹添加777权限即可。
继续执行,无报错
在这里插入图片描述
在这里插入图片描述

查看OSD
ceph-deploy osd list Ceph1 Ceph2 Ceph3

在这里插入图片描述
在这里插入图片描述

同步配置文件以及密钥

使用命令将配置文件和admin密钥同步到各个节点,以便各个节点使用ceph命令时无需指定Monitor地址和ceph.client.admin.keyring密钥。注意:还需要修改各个节点ceph.client.admin.keyring密钥的权限

 ceph-deploy admin Ceph1 Ceph2 Ceph3
 chmod +r ceph.client.admin.keyring  ## 都执行一下

在这里插入图片描述

查看OSD健康状态
ceph health

在这里插入图片描述

部署mds
ceph-deploy mds create Ceph1 Ceph2 Ceph3
ceph mds stat

部分截图
在这里插入图片描述
在这里插入图片描述

查看集群状态
ceph -s

在这里插入图片描述

创建ceph文件系统
# 查看文件系统
ceph fs ls

在这里插入图片描述

创建存储池
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128

在这里插入图片描述

PS:命令最后的128是指定pg_num的值,这个值是不能自动计算的,需要手动赋予。一般来说,少于5个osd时,pg_num可以设置为128;osd在5到10个之间,pg_num可以设置为512;osd在10到50个之间,pg_num可以设置为4096;但是osd一旦超过50个,那么就得自己计算pg_num的取值,也可以借助工具pgcalc计算,网址是https://ceph.com/pgcalc/

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

创建文件系统
ceph fs new 128 cephfs_metadata cephfs_data

在这里插入图片描述

查看节点状态
ceph mds stat

在这里插入图片描述

常用命令
ceph osd pool get [存储池名称] size  //查看存储池副本数
ceph osd pool set [存储池名称] size 3  //修改存储池副本数
ceph osd lspools  //打印存储池列表
ceph osd pool create [存储池名称] [pg_num的取值]  //创建存储池
ceph osd pool rename [旧的存储池名称] [新的存储池名称]  //存储池重命名
ceph osd pool get [存储池名称] pg_num  //查看存储池的pg_num
ceph osd pool get [存储池名称] pgp_num  //查看存储池的pgp_num
ceph osd pool set [存储池名称] pg_num [pg_num的取值]  //修改存储池的pg_num值
ceph osd pool set [存储池名称] pgp_num [pgp_num的取值]  //修改存储池的pgp_num值
查看存储池配额
ceph osd pool get-quota cephfs_metadata

在这里插入图片描述

客户端挂载
方式一
# 创建挂载点
mkdir /ceph 

# 获取存储密钥,没有的话重新去manager节点拷贝
[root@Ceph3 ~]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
	key = AQBXN5Ffe3KNEhAA1vvvpkw9eedD8zF5CmoP4A==
	
# 将key所在行内容保存到/etc/ceph/admin.secret 文件中
[root@Ceph4 ~]# cat /etc/ceph/admin.secret 
AQBXN5Ffe3KNEhAA1vvvpkw9eedD8zF5CmoP4A==
# 挂载
mount -t ceph 10.15.5.246:6789:/ /ceph/ -o name=admin,secretfile=/etc/ceph/admin.secret
df -h

在这里插入图片描述

方式二(用户控件挂载ceph文件系统)
# 下载cecph-fuse
yum install -y ceph-fuse

# 挂载
ceph-fuse -m 10.15.5.246:6789 /ceph-2/

# 卸载
fusermount -u /ceph-2

在这里插入图片描述

Others

怎么卸载~

停止所有进程: stop ceph-all

卸载所有ceph程序:ceph-deploy uninstall [{ceph-node}]

删除ceph相关的安装包:ceph-deploy purge {ceph-node} [{ceph-data}]

删除ceph相关的配置:ceph-deploy purgedata {ceph-node} [{ceph-data}]

删除key:ceph-deploy forgetkeys

卸载ceph-deploy管理:yum -y remove ceph-deploy
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值