简介
Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
Ceph能够在一个统一的系统中提供对象,块和文件存储。
Ceph特点
1. 高性能
摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。 考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。 能够支持上千个存储节点的规模,支持TB到PB级的数据。
2. 高可用性
副本数可以灵活控制。 支持故障域分隔,数据强一致性。 多种故障场景自动进行修复自愈。 没有单点故障,自动管理。
3. 高可扩展性
去中心化。
扩展灵活。
随着节点增加而线性增长。
4. 特性丰富
支持三种存储接口:块存储、文件存储、对象存储。 支持自定义接口,支持多种语言驱动
Ceph安装部署
1. 操作系统配置1)每台节点都需要修改主机名
本例三台主机分别为ceph01、ceph02、ceph03.
hostnamectl set-hostname ceph01hostnamectl set-hostname ceph02hostnamectl set-hostname ceph03
每台/etc/hosts新增如下内容
133.xxx.xxx.108 ceph01133.xxx.xxx.109 ceph02133.xxx.xxx.110 ceph03
2)每台安装ntp服务 时钟服务,并同步时钟
yum install ntp –yvi /etc/ntp.conf

3)每台配置ssh 免密登陆认证
ssh-keygen -t rsassh-copy-id ceph01ssh-copy-id ceph02ssh-copy-id ceph03
4)每个节点添加 6块个900G的硬盘

2. ceph安装

ceph.repo[ceph]name=cephbaseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/gpgcheck=0priority =1[ceph-noarch]name=cephnoarchbaseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/gpgcheck=0priority =1[ceph-source]name=Ceph source packagesbaseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMSgpgcheck=0priority=1epel.repo [epel]name=Extra Packages for Enterprise Linux 7 - $basearchbaseurl=http://mirrors.aliyun.com/epel/7/$basearchfailovermethod=priorityenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo]name=Extra Packages for Enterprise Linux 7 - $basearch - Debugbaseurl=http://mirrors.aliyun.com/epel/7/$basearch/debugfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0 [epel-source]name=Extra Packages for Enterprise Linux 7 - $basearch - Sourcebaseurl=http://mirrors.aliyun.com/epel/7/SRPMSfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0
【备注:ceph可以在每个节点分别执行yum install ceph*进行安装,也可以方便的使用ceph-deploy安装工具进行安装,本例采用方法2】.
[root@ceph03 ~]# yum install -y ceph-deploy
3)使用安装工具安装ceph组件
[root@ceph03 ~]# ceph-deploy new ceph01 ceph02 ceph03
4) 部署完成后,编辑/etc/ceph/ceph.conf新增主机节点等配置
[global]fsid = 5b0ce654-4e7a-4f90-8058-d281781878ddmon_initial_members = ceph03,ceph02,ceph01mon_host = 133.xxx.xxx.110,133.xxx.xxx.109,133.xxx.xxx.108auth_cluster_required = cephxauth_service_required = cephxauth_client_required = cephxosd pool default size = 3

5)配置初始 monitor(s)、并收集所有密钥
[root@ceph03 ~]# ceph-deploy mon create-initial

把配置信息拷贝到各节点
[root@ceph03 ~]# ceph-deploy admin ceph01 ceph02 ceph03

6) 配置 osd
分别对每个节点对每个盘进行osd配置初始化
for dev in /dev/sdb dev/sdc dev/sdd dev/sde dev/sdf dev/sdgdoceph-deploy disk zap ceph01 $devceph-deploy osd create ceph01 --data $devceph-deploy disk zap ceph02 $devceph-deploy osd create ceph02 --data $devceph-deploy disk zap ceph03 $devceph-deploy osd create ceph03 --data $devdone

7)创建两个mgr管理节点做主备,新版无管理节点状态会是warn
ceph-deploy mgr create ceph03 ceph01

8)安装完成
使用ceph –s命令可查看安装后的集群状态

ceph的使用分为对象存储、块存储和cephfs文件系统,本例使用cephfs为例演示ceph的简单使用
1)安装mds
本例在ceph02节点安装mds服务
ceph-deploy mds create ceph02

2)创建pool
分别创建cephfs文件系统使用的数据池和元数据池
ceph osd pool create cephfs_data 512ceph osd pool create cephfs_metadata 512
3) 使用创建的pool创建fs
ceph fs new cephfs cephfs_metadata cephfs_data

4)mount挂载文件系统
创建完成后,就可以在任意节点或客户端(linux7系统以上)使用mount命令来使用此cephfs了。命令如下:
mount -t ceph 133.xxx.xxx.108:6789,133.xxx.xxx.109:6789,133.xxx.xxx.110:6789:/ /cephfs -o name=admin,secret=AQCQp8Rf8*******A2pyAHS1fxAdq0zQ==
【备注】:
-t ceph表示使用的文件系统类型为ceph
IP:port为cephfs节点的IP和使用的端口,默认为6789
/cephfs为在客户端创建的目录,用来挂载cephfs
-o name=admin 表示用的admin用户进行挂载
secret=*** 表示的为admin的秘钥
5) 使用测试
挂载后,就能在客户端机器df –h看到目录了

然后可以进入/cephfs目录,写入文件了进行使用了。


更多精彩干货分享
点击下方名片关注
IT那活儿





