首页 > 代码库 > 57.CEPH分布式文件系
57.CEPH分布式文件系
CEPH分布式文件系统
CEPH是一种为优秀的性能,可靠性和可扩展性而设计的统一的,分布式文件系统。
CEPH可以轻松的扩展到数PB容量,支持多种工作负载的高性能,高可靠性。
CEPH四个部分:
Clients客户端:用来访问文件系统
CMDS元数据服务器:用来缓存和同步数据
COSD对象存储群集:用来构成存储池
CMON集群监视器:用来监视文件系统
CEPH是统一存储系统,支持三种接口:
Object:有原生的API,同时也兼容swift和S3的API。
Block:支持精简配置,快照,克隆。
File:Posixi接口,支持快照。
CEPH的特点:
高扩展性:使用普通的X86服务器,支持10~1000台服务器,支持1TB到PB级别的扩展。
高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
高性能:数据分布均衡,并行化度高。
CEPH分布式文件系统架构:
归置组(PG):可以理解为一个组,这个组里可以有多少个对象(文件数),归置组建立在存储池中。
存储池(POOL):由多个OSD组成。
术语:
OSD:存储对象 | MON 监视器 | NODE:节点 | MDS:元数据服务器 |
CEPH安装与部署(网YUM版):需要联网部署
v 环境需求:关闭防火墙,关闭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 #导入公钥库
v 安装CEPH群集需求:每台服务器上都要部署YUM库,Deploy工具,EPEL源(需网络)
# mv CentOS-Base.repo /etc/yum.repos.d/ #将CenOS7默认备份YUM库还原
# mv ceph.repo /etc/yum.repos.d/ #将CEPH的REPO文件放置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 |
v 初始化Mon监视器,并收集所有密钥
# ceph-deploy mon create-initial
v 创建硬盘(OSD)挂载目录
# ssh node1
# mkdir /var/local/osd0
# ssh node2
# mkdir /var/local/osd1
v 添加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
v 创建管理用户
# ceph-deploy admin admin-node node1 node2
# chmod +r /etc/ceph/ceph.client.admin.keyring #确保keyring文件有读取权限
v 检查群集健康状况(部署完成)
# ceph health
v 通过SYSVINIT机制启动CEPH所有守护进程
# /etc/init.d/ceph -a start
注:SYSVINIT:字面意思是利用系统进程的方式运行。
v 创建CephFS文件系统:
# ceph osd pool create pool1 100 100 #默认需要新建两个存储池
# ceph osd pool create pool2 100 100
# ceph fs new ren pool1 pool2 #两个存储池组成一个文件系统
# ceph mds stat
v 挂载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源路径
故障三:查看版本命令未找到 解决方法:手动安装CEPH:yum -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分布式文件系