一、初识Ceph
Ceph是提供了软件定义的,统一存储解决方案的开源项目。Ceph是一个分布式、可扩展、高性能、不存在单点故障的存储系统。
Ceph存储的设计提供了一种企业级软件定义型存储解决方案,能够利用基于行业标准硬件和存储设备的服务器横向扩展到多PB级,同时支持块存储、文件系统存储以及对象存储。
二、Ceph架构

 三、Ceph基本组件

(1)mon记录元数据,存放数据的映射表关系,一个mon就是三个metadata

(2)osd(OSD Object Storage Device)存放数据的硬盘,对象存储设备,一个硬盘对应一个OSD,运行一个进程

(3)mds(Metadata Server)只用于存放CephFS文件系统

四、Ceph数据存储过程

(1)一个file切割为多个object,每个object由一个innode(innode)和boject编号(ono)组成一个object id(即oid)

(2)将oid做hash运算获取到pgid,再通过hash和mask获取PGs

(3)通过CRUSH算法,将pgid进行运算,并找到存储pg的osd节点

(4)最后,PG的数据最终写入到OSD节点,完成数据的写入过程

五、环境准备

1.环境需求

(1)三个节点ceph_node1 ceph_node2 ceph_node3

(2)三个节点需要添加两块20G硬盘,用于创建OSD

(3)CentOS系统:CentOS Linux release 7.3.1611 (Core)

(4) 安装CentOS图形化操作系统

2.网卡配置

(1)一张NAT模式的网卡,一张仅主机模式的网卡

(2) NAT模式的网卡可以访问外网地址,在这里三个节点需要使用NAT模式来访问外网地址,便于获取第三方的软件包

 3.网络规划

ceph_node1  192.168.106.170 

ceph_node2  192.168.106.171

ceph_node3  192.168.106.172

六、实验过程

1.修改主机名

[root@localhost ~]# hostnamectl set-hostname ceph_node1

[root@localhost ~]# hostnamectl set-hostname ceph_node2

[root@localhost ~]# hostnamectl set-hostname ceph_node3

 2.将主机名和IP分别写入三个节点的/etc/hosts文件下

 3.使用scp命令在主机之间复制文件如下

 4.设置三个节点的防火墙和selinux。这里以ceph_node1节点为例,ceph_node2节点和ceph_node3节点操作一致

5.修改配置文件/etc/sysconfig/selinux将SELINUX=enforcing修改为disabled即可

6.SSH互信,三个节点都需要做ssh互信。这里以ceph_node1节点为例,ceph_node2节点和ceph_node3节点操作一致。在这里,连续按三次回车即可

7.将ssh密钥传给ceph_node1、ceph_node2、ceph_node3节点,这里只需要输入各节点的密码即可

 

8.同步时间服务器,将ceph_node1作为ntp服务器,调整chrony配置文件

(1)ceph_node1节点

使用vim /etc/chrony.conf修改配置文件的第22行和第29行即可

重启时间服务器

(2)ceph_node2节点

使用vim /etc/chrony.conf在第2行添加一行server ceph_node1 iburst,并注释掉第4至7行

重启时间服务器

ceph_node3节点的时间服务器配置和ceph_node2节点的操作一致,过程略

9.三个节点配置yum,这里以ceph_node1为例。ceph_node2节点和ceph_node3节点配置一致 

(1)配置Centos源

[root@ceph_node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

(2)配置epel源

[root@ceph_node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

(3)配置ceph源

[root@ceph_node1 ~]# vim /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

10.三个节点使用yum clean all清除yum缓存 和yum makecache建立yum缓存

11.三个节点都需要更新源 yum update -y和安装ceph-deploy。这里以ceph_node1节点为例,ceph_node2节点和ceph_node3节点操作一致

12.在ceph-node1创建一个/myceph目录,并在此目录下执行操作

13.创建ceph集群,在ceph-node1节点上执行

14.在三个节点上安装ceph软件。这里以ceph_node1节点为例,ceph_node2节点和ceph_node3节点操作一致

15.查看ceph版本

16.在ceph_node1节点上生成检测集群所使用的秘钥

17.在ceph_node1节点使用ceph-deploy工具创建OSD节点

[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node1:/dev/sdb

[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node1:/dev/sdc

[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node2:/dev/sdb

[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node2:/dev/sdc

[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node3:/dev/sdb

[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node3:/dev/sdc

18.在ceph_node1节点使用ceph-deploy工具激活OSD节点

[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node1:/dev/sdb1

[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node1:/dev/sdc1

[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node2:/dev/sdb1

[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node2:/dev/sdc1

[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node3:/dev/sdb1

[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node3:/dev/sdc1

 19.检查Ceph环境

 20.检查Ceph的CRUSH

21.查看Ceph存储池

 

 

 

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/hicky/p/14773681.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!