ceph部署与配置及部署过程遇到的问题解决

 

一、主机环境

IP地址

主机名称

部署服务

硬盘(必须是裸设备硬盘,不然无法创建osd)

172.16.5.239

k8s01

ceph-deploy、mon、osd

/dev/sdb

172.16.5.240  

k8s02

osd  

/dev/sdb  

172.16.5.241   k8s03  osd   /dev/sdb  


二、环境部署
2.1、配置yum源
cat > /etc/yum.repos.d/ceph.repo <<EOF
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS
gpgcheck=0
priority=1
EOF

2.2、安装ceph-deploy部署集群工具
yum update && yum install ceph-deploy

2.3、部署ceph-mon
ceph-mon 是Ceph 分布式存储集群的监视器守护进程,维持集群的主副本映射图  
2.3.1、部署ceph-mon
mkdir -p /etc/ceph && cd /etc/ceph
ceph-deploy new k8s01 k8s02 k8s03
2.3.2、配置ceph-mon
[[email protected] ceph]# cat /etc/ceph.conf

[global]
fsid = 6fa00e60-1eea-4f86-b66a-95767a5b46e1
mon_initial_members = k8s01
mon_host = 172.16.5.239
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

2.4、部署ceph node节点
export CEPH_DEPLOY_REPO_URL=http://mirrors.aliyun.com/ceph/rpm-mimic/el7
export CEPH_DEPLOY_GPG_URL=http://mirrors.aliyun.com/ceph/keys/release.asc
ceph-deploy install k8s01 k8s02 k8s03

2.5、初始化monitor 监控组件
ceph-deploy mon create-initial   ## 执行后会生成一些keyring秘钥文件

2.6、把配置信息拷贝到各个节点
ceph-deploy admin k8s01 k8s02 k8s03

2.7、部署ceph-mgr
ceph-mgr主要作用是分担和扩展monitor的部分功能,减轻monitor的负担,让更好地管理ceph存储系统,另外还提供了dashboard界面管理
ceph-deploy mgr create k8s01 k8s02 k8s03

2.8、检查ceph集群部署后的状态


2.9、配置OSD,添加磁盘
ceph-deploy osd create k8s01 --data /dev/sdb
ceph-deploy osd create k8s02 --data /dev/sdb
ceph-deploy osd create k8s03 --data /dev/sdb

三、ceph存储的创建配置

ceph存储有两种rbd和cephfs,rbd属于块设备,适合单写多读,不适合分布式多写多读,cephfs属于分布式存储,适合多写多读
3.1、创建pool池
存储数据都会被分割成多个Object,pg作用于管理管理object,pgp是pg存放osd的一种排列组合
ceph osd pool create rbd pg pgp
查看pg分布情况
ceph pg dump pgs|grep ^1|awk '{print $1,$2,$15}'
3.2、rbd使用方式
创建rbd的pool池
ceph osd pool create rbd 64 64
创建1G大小块设备
rbd create rbd_write --size 1024 --pool rbd
检查块设备是否已经创建
rbd list -p rbd
检查块设备信息
rbd info rbd_write -p rbd
挂载块设备
rbd feature disable rbd_write object-map fast-diff deep-flatten   ## disable OS kernel不支持块设备镜像的一些特性
rbd map rbd_write

3.2、cephfs使用方式
使用cephfs需要先部署mds,mds作为文件系统的元数据缓存来为文件系统提供服务
ceph-deploy mds create k8s01 k8s02 k8s03
检查mds状态
ceph mds stat
cephfs需要使用到两个pool池,一个pool用来存储数据,一个pool用来存储元数据
ceph osd pool create fs_data 64 64
ceph osd pool create fs_metadata 64 64
创建Cephfs存储
ceph fs new cephfs fs_metadata fs_data
检查cephfs是否已创建
ceph fs ls
挂载cephfs
cat /etc/ceph/ceph.client.admin.keyring|grep key
mount -t ceph k8s01:6789,k8s02:6789,k8s03:6789:/ /mnt -o name=admin,secret=AQD3jnBe3fcwExAAK5odEmMLBasbz6bNYIFasA==

四、部署遇到的问题
1、ceph-deploy install k8s01 k8s02 k8s03部署是会默认去访问ceph.com域名的链接,但是此链接访问不了
   解决方式:添加如下环境变量,然后再执行ceph-deploy install命令
   export CEPH_DEPLOY_REPO_URL=http://mirrors.aliyun.com/ceph/rpm-mimic/el7
   export CEPH_DEPLOY_GPG_URL=http://mirrors.aliyun.com/ceph/keys/release.asc

2、ceph-deploy mon create-initial 命令报如下错误
原因:版本ceph-deploy不对应ceph会报如下错误,ceph为13.2.8,ceph-deploy需要为2.0.1

3、ceph-deploy mon create-initial命令报如下报错

解决方法:检查[email protected]服务

修改目录权限 chown ceph.ceph /var/lib/ceph