大数据平台系列:使用ceph-deploy部署ceph

                                     

1 前言   

   Ceph是一个开源的分布式存储系统,它提供高性能(数据分布式存储)、高可用性(故障自愈)、可扩展性(支持PB级)数据存储平台。

    Ceph已经被集成在主线 Linux 内核中,作为备选的文件系统,相信后期会提供更好的发展。它的社区活跃度高,资料多,便于学习。

     本文转自公众号:天目星    ,请大家多多关注。链接:前往天目星

一、使用的软件版本与架构图

    linux:CentOS 7.5.1804

    ceph:ceph-12.2.12

    ceph-deploy:ceph-deploy-2.0.1

二、环境准备

主机名 IP地址
node1 192.168.159.20

需要提前配置好yum源

使用阿里云源,以下操作将覆盖原repo文件,请提前备份$ curl -o /etc/yum.repos.d/CentOS-Base.repo \    http://mirrors.aliyun.com/repo/Centos-7.repo$ curl -o /etc/yum.repos.d/epel.repo \    http://mirrors.aliyun.com/repo/epel-7.repo
安装yum插件$ yum install yum-plugin-priorities
配置ceph的阿里云yum源$ cat >> /etc/yum.repos.d/ceph.repo <<EOF[ceph]name=cephbaseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/enabled=1gpgcheck=0[ceph-noarch]name=cephnoarchbaseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/enabled=1gpgcheck=0[ceph-source]name=ceph-sourcebaseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/enabled=1gpgcheck=0EOF

三、安装ceph

使用ceph-deploy来部署,所以我们先安装

$ yum install python-setuptools$ yum install ceph-deploy

四、部署ceph

我们先使用node3来部署单节点ceph

官网参考:http://docs.ceph.com/docs/master/start/quick-ceph-deploy/

创建部署目录$ mkdir /tkscluster$ cd /tkscluster
如非第一次部署请使用以下命令清理ceph-deploy purge {ceph-node}[{ceph-node}]ceph-deploy purgedata {ceph-node}[{ceph-node}]ceph-deploy forgetkeysrm ceph.*
在node1部署集群monitor节点$ ceph-deploy new node1
部署ceph到相关节点$ ceph-deploy install node1
查看刚刚安装的ceph版本$ ceph --versionceph version 12.2.12 (1436006594613ebd777) luminous (stable)
初始化monitor节点$ ceph-deploy mon create-initial
完成后会生成以下key文件[ceph_deploy.gatherkeys][INFO] Storing ceph.client.admin.keyring[ceph_deploy.gatherkeys][INFO] Storing ceph.bootstrap-mds.keyring[ceph_deploy.gatherkeys][INFO] Storing ceph.bootstrap-mgr.keyring[ceph_deploy.gatherkeys][INFO] keyring 'ceph.mon.keyring' already exists[ceph_deploy.gatherkeys][INFO] Storing ceph.bootstrap-osd.keyring[ceph_deploy.gatherkeys][INFO] Storing ceph.bootstrap-rgw.keyring[ceph_deploy.gatherkeys][INFO] Destroy temp directory /tmp/tmpMPH0kA
将key文件分发到相关节点$ ceph-deploy admin node1
部署manager节点(luminous版本)$ ceph-deploy mgr create node1
提前装备三个硬盘/dev/{sdb,sdc,sdd}
部署osd节点$ ceph-deploy osd create node1 --data /dev/sdb$ ceph-deploy osd create node1 --data /dev/sdc$ ceph-deploy osd create node1 --data /dev/sdd
检查集群状态$ ceph health detailHEALTH_OK
查看ceph配置$ ceph --show-config

五、使用ceph

ceph提供块存储、文件存储、对象存储三种接口,它们各有优缺点。

块存储:具有优异优异的读写性能,但不能多处挂载同时读写

文件存储:可以多挂载多读写,但读写性能较差

对象存储:支持多挂载多读写,并且性能介于上述两个接口之间

这里主要介绍块设备的搭建

1、配置块存储设备

创建pool

在osd创建pool,pg_num可以根据以上公式计算目前有3个osd,"pool size"默认为3$ ceph osd pool create tkspool 128pool 'tkspool' created
查看所有池的参数$ ceph osd dump |grep pool
单节点测试环境,修改min_size值为1$ ceph osd pool set tkspool min_size 1set pool 3 min_size to 1
查看ceph实时运行情况$ ceph -s  cluster:    id:     8eaa6787-4825-420c-a354-5209b5e5fc17    health: HEALTH_OK   services:    mon: 1 daemons, quorum node1    mgr: node1(active)    osd: 3 osds: 3 up, 3 in   data:    pools:   1 pools, 128 pgs    objects: 0 objects, 0B    usage:   3.01GiB used, 12.0GiB / 15.0GiB avail    pgs:     128 active+undersized    查看已创建的pool$ ceph osd lspools1 tkspool,
查看存储池统计信息$ rados df
删除pool$ ceph osd pool delete tkspool tkspool --yes-i-really-really-mean-itpool 'tkspool' removed

PS:删除pool需要在/etc/ceph/ceph.conf添加以下配置

$ cat >> /etc/ceph/ceph.conf << EOFmon_allow_pool_delete = trueEOF

创建rbd镜像

初始化pool以供rbd使用$ rbd pool init tkspool
创建块设备映像$ rbd create --size 8196 --image-feature layering tkspool/tksimage
--size:创建的块设备大小,默认单位为M--image-feature:linux内核支持的feature
查看创建好的块设备映像信息$ rbd info tkspool/tksimagerbd image 'tksimage':  size 8.00GiB in 2049 objects  order 22 (4MiB objects)  block_name_prefix: rbd_data.37156b8b4567  format: 2  features: layering  flags:   create_timestamp: Fri May 31 11:25:09 2019

使用块设备

挂载设备$ rbd map tkspool/tksimage/dev/rbd0
可以使用fdisk命令查看刚刚挂上盘fdisk -l |grep rbd0
分区与格式化可以使用fdisk /dev/rbd0 分区也可以不分区直接格式化整个硬盘$ mkfs.xfs /dev/rbd0 
挂载已格式化的硬盘$ mkdir /data$ mount /dev/rbd0 /data
查看已挂载的盘$ df -h |grep /data/dev/rbd0       8.0G   33M  8.0G   1% /data
测试存储情况$ dd if=/dev/zero of=/data/zero.data count=20 bs=128M20+0 records in20+0 records out2684354560 bytes (2.7 GB) copied, 6.76834 s, 397 MB/s
$ ll -h /datall -h /datatotal 2.5G-rw-r--r-- 1 root root 2.5G May 31 11:47 zero.data

                  

请关注天目星

猜你喜欢

转载自blog.csdn.net/Gordon_luo/article/details/92760891