首页 > 代码库 > 57.CEPH分布式文件系

57.CEPH分布式文件系

CEPH分布式文件系统

CEPH是一种为优秀的性能,可靠性和可扩展性而设计的统一的,分布式文件系统。

CEPH可以轻松的扩展到数PB容量,支持多种工作负载的高性能,高可靠性。

CEPH四个部分:

Clients客户端:用来访问文件系统

CMDS元数据服务器:用来缓存和同步数据

COSD对象存储群集:用来构成存储池

CMON集群监视器:用来监视文件系统

CEPH是统一存储系统,支持三种接口:

Object:有原生的API,同时也兼容swiftS3API

Block:支持精简配置,快照,克隆。

FilePosixi接口,支持快照。

CEPH的特点:

高扩展性:使用普通的X86服务器,支持10~1000台服务器,支持1TBPB级别的扩展。

高可靠性:没有单点故障,多数据副本,自动管理,自动修复。

高性能:数据分布均衡,并行化度高。

CEPH分布式文件系统架构:

 技术分享 

归置组(PG):可以理解为一个组,这个组里可以有多少个对象(文件数),归置组建立在存储池中。

存储池(POOL):由多个OSD组成。

术语:

OSD:存储对象

MON 监视器

NODE:节点

MDS:元数据服务器

CEPH安装与部署(网YUM版):需要联网部署

环境需求:关闭防火墙,关闭SElinux,时间同步,修改主机名,修改HOSTS文件,SSH的支持,创建运行用户。

# systemctl stop firewalld                                   #关闭防火墙

# setenforce 0                                            #关闭SELinux

# vi /etc/hosts                                          #修改HOSTS文件

添加内容:

1.1.1.19 admin-node

1.1.1.20 node1

1.1.1.21 node2

# vi /etc/sysconfig/network                                 #修改主机名

添加内容:

NETWORKING=yes

HOSTNAME=admin-node

# hostname admin-node                                   #临时修改主机名

# yum -y install ntp ntpdate                               #部署NTP时间同步

# /etc/ntp.conf                                     #使用自身时间搭建NTP服务器

添加内容:

server  127.127.1.0

fudge   127.127.1.0  stratum  8

# systemctl restart ntpd                                    #重启NTP服务器

# ntpdate 1.1.1.19                                      #NTP服务器同步时间

# timedatectl                                              #查看时间

# useradd ceph

# echo 123 | passwd ceph --stdin                             #创建运行用户

# ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa                         #创建密钥对

# ssh-copy-id -i  /root/ceph/.ssh/id_rsa.pub  root@node1     #将公钥上传到node1

# ssh-copy-id -i  /root/ceph/.ssh/id_rsa.pub  root@node1     #将公钥上传到node2

# cat  /root/.ssh/id_rsa.pub  >>   /root/.ssh/authorized_keys     #导入公钥库

安装CEPH群集需求:每台服务器上都要部署YUM库,Deploy工具,EPEL源(需网络)

# mv CentOS-Base.repo /etc/yum.repos.d/           #CenOS7默认备份YUM库还原

# mv ceph.repo /etc/yum.repos.d/                 #CEPHREPO文件放置YUM

# yum makecache                                         #生成缓存

# yum -y install epel-release                               #安装EPEL

# yum -y install ceph-deploy                          #安装CEPH-Deploy工具

# ceph-deploy new node1                         #配置一个Mon(监视器)节点

注:会在所在位置生成三个配置文件。

#vi ceph.conf

osd_pool_default_size = 2                         #修改OSD存储池默认副本数

注:如果有多张网卡还可以增加:public network = {ip-address}/{netmask}参数

# ceph-deploy install admin-node node1 node2         #安装CEPH到三个节点上

ceph-deploy purgedata admin-node node1 node2

安装出现问题可以使用这两条命令清空配置重新部署和安装

ceph-deploy forgetkeys

初始化Mon监视器,并收集所有密钥

# ceph-deploy mon create-initial

 

创建硬盘(OSD)挂载目录

# ssh node1                              

# mkdir /var/local/osd0

# ssh node2

# mkdir /var/local/osd1

添加OSD和管理激活OSD

# ceph-deploy osd prepare node1:/var/local/osd0 node2:/var/local/osd1

# ceph-deploy osd activate node1:/var/local/osd0 node2:/var/local/osd1

创建管理用户

# ceph-deploy admin admin-node node1 node2

# chmod +r /etc/ceph/ceph.client.admin.keyring          #确保keyring文件有读取权限

检查群集健康状况(部署完成)

# ceph health

 

通过SYSVINIT机制启动CEPH所有守护进程

# /etc/init.d/ceph -a start

注:SYSVINIT:字面意思是利用系统进程的方式运行。

创建CephFS文件系统:

# ceph osd pool create pool1 100 100                   #默认需要新建两个存储池

# ceph osd pool create pool2 100 100

# ceph fs new ren pool1 pool2                       #两个存储池组成一个文件系统

# ceph mds stat

 

挂载CephFS文件系统

# ceph auth list                                       #查看认证密码列表

# mount -t ceph -o name=admin,secret="AQBs2U9Y54/vKRAAgPZxOf6lmbl522mkiJvXRA==" 1.1.1.20:6789:/ /opt                              #密码认证方式挂载CephFS文件系统                                          

 

 

安装报错:

故障一:找不到EPEL源       解决方法:安装EPEL# yum -y install epel-release(每台)

技术分享 

故障二:找不到CEPH安装包   解决方法:YUM库中写入CEPH安装包网YUM源路径

技术分享 

故障三:查看版本命令未找到  解决方法:手动安装CEPHyum -y install ceph ceph-radosgw(每台)或者检查SSH的问题

技术分享 

CEPH分布式文件系统操作整合

命令

描述

ceph health

查看群集健康状态

ceph status

查看状态

ceph osd stat

查看OSD状态

ceph osd dump

查看OSD属性

ceph osd tree

查看OSD

ceph mon dump

查看MON属性

ceph quorum_status

查看配额状态

ceph mds stat

查看MDS状态

ceph mds dump

查看MDS转存

ceph osd lspools

查看已存在的存储池

ceph osd pool get pool1 pg_num

查看池归置组属性

ceph osd pool get pool1 pgp_num

查看池归置组总数

ceph osd pool create pool1 100 100

创建一个存储池

ceph osd pool delete pool1 pool1 --yes-i-really-really-mean-it

删除一个存储池

ceph osd pool rename pool1 pool2

重命名一个存储池

rados df

查看存储池统计信息

ceph osd pool mksnap pool1 poolkz1

存储池快照

ceph osd pool rmsnap pool1 poolkz1

删除存储池快照

ceph osd pool set pool1 size 2

设置对象副本数

ceph fs new ren pool1 pool2

创建CephFS文件系统

:pg:归置组  pgp:归置组总数

添加和删除OSD节点(OSD为存储对象)

ceph-deploy osd prepare node1:/var/local/osd2

添加OSD

ceph-deploy osd activate node1:/var/local/osd2

激活OSD

ceph -w

查看OSD状态

Ceph osd tree

查看OSD

Ceph osd out osd.0

冻结将要移除的节点

Ceph stop osd.0

停止将要移除的节点进程

Ceph osd crush remove osd.0

从群集里移除节点信息

Ceph osd rm 0

移除节点

技术分享 

添加元数据服务器(MDS

ceph-deploy mds create node1

添加MDS

注:至少需要一个元数据服务器才能使用CephFS

添加和删除监视器(MON

ceph-deploy mon add node2

添加MON

ceph quorum_status --format json-pretty

检查法定人数状态

ceph -a stop mon.0

停止监视器进程

ceph mon remove mon.0

移除监视器

ssh node1

ceph stop mon || stop ceph-mon-all

远程连接监视器,停止有关监视器的所有进程

添加对象网关(RGW

ceph-deploy rgw create node1

添加RGW

注:RGW默认监听7480端口。有关对象网关的使用请继续了解CEPH分布式文件系统。

CEPH对象网关的使用:http://docs.ceph.org.cn/install/install-ceph-gateway/


57.CEPH分布式文件系