要求
1)Ceph分布式文件系统的平台要求:CentOS Linux 7;
2) Monitor节点要求:容忍单点故障,任何故障下保持一致性;
3) 数据节点要求:容忍单点故障,单点故障下无数据丢失;
4) 数据分布:数据分布均匀,不均匀率不高于10%;
5) 存储网络:管理网络及存储网络分离,避免互相影响;
6) 使用Ceph块存储,创建虚拟计算资源;
7) 在CentOS 系统上挂在并使用Ceph文件存储。
分析
1)Monitor节点
多Monitor节点实现备份,防止单点故障
Monitor节点以多数优先,当单点故障时,剩下的monitor节点需要自己意识到除了自己还有其他monitor,才认为自己还可用。所以monitor节点的数量至少需要三个。
monitor节点的hostname(主机名)不能一致。
由于我是克隆的,全都是一致,所以此处用命令进行修改:
hostnamectl set-hostname cxx2
2)数据节点(OSD)
单点故障下无数据丢失,数据复制份数至少为两份
多OSD
OSD状态说明:
a. 集群内(in)
b. 集群外(out)
c. 活着且在运行(up)
d. 挂了且不再运行(down)
正常情况下OSD的状态是up in状态,如果down掉OSD,它的状态会变为down in,等待数据均衡完成后osd变为down out状态,Ceph 会把其归置组迁移到其他OSD, CRUSH 就不会再分配归置组给它。
3)数据分布
PG数量越多,权衡越好
MAX(pg)=OSD数量*100/复制份数
原理
1)OSD
负责完成数据存储和维护功能
对象存储设备
2)Monitor
负责完成系统检测和维护
若干个
3)PG
放置组
步骤
安装相关软件
安装ceph jewel版本软件仓库
yum install -y centos-release-ceph-jewel.noarch
1、安装monitor服务相关软件包
yum install -y ceph-mon.x86_64
2、安装osd服务相关软件包
yum install -y ceph-osd.x86_64
3、安装mds服务相关软件包
yum install -y ceph-mds.x86_64
相关准备
- 关闭selinux的增强功能
vi /etc/selinux/config
- 关闭防火墙
systemctl disable firewalld //禁止开机自启动
systemctl stop firewalld.service //关闭防火墙
Monitor节点配置
-
创建空的配置文件
-
生成UUID
3e38aec9-7d09-48a6-9f58-48760fec0d82
-
编辑配置文件
vi /etc/ceph/ceph.conf
[global]
fsid = 3e38aec9-7d09-48a6-9f58-48760fec0d82
mon initial members = cxx
mon host =192.168.25.42
public network =192.168.25.0/24
cluster network =192.168.25.0/24
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd journal size = 1024
osd pool default size = 3
osd pool default min size = 2
osd pool default pg num = 333
osd pool default pgp num = 333
osd crush chooseleaf type = 1
[mon.cxx]
host =cxx
addr = 192.168.25.42
-
创建mon key
-
创建管理用户key
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
-
在mon key中导入管理用户key