【Linux】【Services】【SaaS】Docker+kubernetes(6. 安装和配置ceph)
1. 简介
1.1. 这个在生产中没用上,生产上用的是nfs,不过为了显示咱会,也要写出来
1.2. 官方网站:http://ceph.com/
1.3. 中文网站:http://docs.ceph.org.cn/
1.4. Ceph = Cephalopods ['sefələpɒdz] 头足类软体动物
1.5. 作者是Sage Weil,起源于2006年发表的论文《Ceph: A Scalable, High-Performance Distributed File System》
http://ceph.com/papers/weil-ceph-osdi06.pdf
和2007年发表的论文《CEPH: RELIABLE, SCALABLE, AND HIGH-PERFORMANCE DISTRIBUTED STORAGE》
http://ceph.com/papers/weil-thesis.pdf
1.6. 对象存储,块存储,文件存储的区别:https://www.zhihu.com/question/21536660
对象存储RGW(RADOS GateWay):内置大容量硬盘的分布式服务器
块存储:磁盘阵列,硬盘
文件系统存储:NFS,FTP服务
1.7. 架构设计
客户端(Clients):存储数据的使用者
元数据服务器(Metadata Server,MDS):负责缓存和同步分布式元数据
对象存储集群(Object Storage Cluster):负责以对象的形式存储全部的用户数据和元数据以及实现其他的关键功能
集群监控(Cluster Monitor):负责实现对整个Ceph集群的监控
1.8. 对象存储
底层存储系统(RADOS,Reliable、Autonomic、Distrbuted Object Store):Ceph存储系统的基础,可以无限扩展
底层API库(LIBRADOS):是对底层RADOS逻辑功能的封装API库,支持C/C++,Python,Java,Ruby和PHP等
上层应用接口:RADOS GW(RADOS Gateway)、RBD(RADOS Block Device)和Ceph FS(Ceph File System)
外部应用层:使用Ceph提供的各种应用接口的应用程序,例如云盘
1.9. 架构图

1.10. 数据存储过程:File --> Object --> PG --> OSD

File:最高层次的数据对象,终端用户所能看到和操作的数据对象,也是用户需要存储或者访问的数据文件
Object:从Ceph角度所看到的对象,或者说是RADOS的操作对象,Ceph对象存储中的“对象”通常便是指Object,RADOS规定每个Object的大小为4MB或8MB
PG(Placement Group):逻辑上的Object组织单位或者容器,其主要作用就是对Object的存储进行组织和位置映射
OSD(Object Storage Device):Ceph存储集群中的最终物理存储设备,存储逻辑上的PG,通过运行在OSD上的OSD进程实现不同OSD之间的通信以及与Ceph Monitor的通信。
1.11. 寻址过程:
File -> object映射:其映射十分简单,本质上就是按照object的最大size对file进行切分,相当于RAID中的条带化过程。这种切分的好处有二:一是让大小不限的 file变成最大size一致、可以被RADOS高效管理的object;二是让对单一file实施的串行处理变为对多个object实施的并行化处理。
Object -> PG映射:在file被映射为一个或多个object之后,就需要将每个object独立地映射到一个PG中去。
PG -> OSD映射:第三次映射就是将作为object的逻辑组织单元的PG映射到数据的实际存储单元OSD。
2. 环境
2.1. ceph:0.80.7-0.10.el7
2.2. 机器列表:
3. 安装
3.1. 配置yum源
rpm -ivh https://download.ceph.com/rpm/el7/noarch/ceph-release-1-1.el7.noarch.rpm
3.2. 在管理机(ansible机器)10.30.2.99上安装部署工具
yum install ceph-deploy
3.3. 在mon和block节点上安装相关软件
yum install snappy leveldb gdisk python-argparse gperftools-libs
3.4. 初始化三个监控节点
ceph-deploy forgetkeys
ceph-deploy mon create-initial
ceph-deploy new hctjcephmon01 hctjcephmon02 hctjcephmon03
3.5. 在所有节点上安装ceph相关
ceph-deploy install hctjcephmon01 hctjcephmon02 hctjcephmon03 hctjcephblock01 hctjcephblock02
ansible ceph -m shell -a "yum -y install ceph ceph-radosgw"
3.6. 在监控节点上创建监控
ceph-deploy mon create hctjcephmon01 hctjcephmon02 hctjcephmon03
ceph-deploy gatherkeys hctjcephmon01 hctjcephmon02 hctjcephmon03
3.7. 在块节点上创建三块硬盘,都格式化成xfs格式,并挂载
#Ceph
/dev/sdb /data_ceph/docker/volume xfs defaults 0 0
/dev/sdc /data_ceph/openstack/cinder xfs defaults 0 0
/dev/sdd /data_ceph/openstack/glance xfs defaults 0 0
3.8. 在块节点上
ceph-deploy osd prepare hctjcephblock01:/data_ceph/docker/volume hctjcephblock02:/data_ceph/docker/volume
ceph-deploy osd activate hctjcephblock01:/data_ceph/docker/volume hctjcephblock02:/data_ceph/docker/volume
3.9. 在ansible节点上
ceph-deploy admin hctjcephmon01 hctjcephmon02 hctjcephmon03
3.10. 检查状态
ceph heath
4. 常用命令
#检查ceph状态
ceph -s
ceph status
# 检查集群状态
ceph -w
# 检查仲裁
ceph quorum_status --format json-pretty
# 导出mon信息
ceph mon dump
# 检查集群使用状况
ceph df
# 检查mon状态
ceph mon stat
# 列出pg
ceph pg dump
# 检查存储池
ceph osd lspools
# 检查OSD的hash
ceph osd tree
# 检查key
ceph auth list
【Linux】【Services】【SaaS】Docker+kubernetes(6. 安装和配置ceph)的更多相关文章
- LINUX操作系统(centos6.9)安装与配置
LINUX操作系统(centos6.9)安装与配置_百度经验 https://jingyan.baidu.com/article/acf728fd6bdba1f8e510a3f7.html cento ...
- 在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器
#!/bin/bash # # 在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器: # # .安装服务 # .创建svn版本库 # .创建svn用户 # .配置sv ...
- Linux下MyCat和MyCat_web的安装和配置
Linux下MyCat和MyCat_web的安装和配置 Mycat 是一个数据库分库分表中间件 Mycat web 可以对 Mycat进行监控,这里分享一下 Mycat web 的搭建过程 详细内容可 ...
- linux下jdk与tomcat的安装与配置
Linux中jdk与tomcat的安装与配置 1.搭建环境: (1)Linux环境:CentOS6.1 (2)jdk-1.8 (3)tomcat-9.0 2.在Linux系统上创建目录 在usr/lo ...
- Docker之Mysql安装及配置
原文:Docker之Mysql安装及配置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhaobw831/article/details/8014 ...
- Linux监控一之Nagios的安装与配置
一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...
- linux应用之samba服务的安装及配置(centos)
一.安装方式: 本文通过yum来重新进行Samba服务器的安装与配置. 二.Samba的简介: Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Me ...
- Docker与GU 安装管理配置
Linux 下的 Docker 安装与使用 一.安装与配置 1.安装依赖包 1 sudo yum install -y yum-utils device-mapper-persistent-data ...
- Linux环境下SVN服务器端的安装与配置
最近尝试了下在Linux(CentOS6.5)环境下安装与配置SVN服务器端,安装过程中碰到了一些问题,参看了网友们分享的一些心得,并通过自己实际的操作,最终安装与配置成功!总的来说网上的说法芸芸,大 ...
- linux(ubuntu)环境下安装及配置JDK
安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...
随机推荐
- mysqld:未被识别的服务(解决方法)
启动Mysql:sudo service mysqld start 执行该命令时,提示错误 mysqld:未被识别的服务,如图 解决办法如下: 1·.首先要找到 mysql.server 文件 命 ...
- JavaScript高阶函数之filter、map、reduce
JavaScript高阶函数 filter(过滤) 用法: 用于过滤,就是把数组中的每个元素,使用回调函数func进行校验,回调函数func返回一个布尔值,将返回值为 true 的元素放入新数组 参数 ...
- uni-app map组件关于marker标记点动态设置的问题
marker是Array类型,赋值的时候只能对整个数组进行更改赋值,不能只改变内部的对象,亲测Vue.$set()也不行 this.marker = [ { latitude: 39.90, long ...
- 查看Git提交的代码统计
1,提交Top5: git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5 2,某用户提交的代码统计 git log ...
- 用户登录成功后重新获取新的Session
HttpSession session = request.getSession(); // 用来存储原sessionde的值 ConcurrentHash ...
- vi/vim 常用命令总结
目录 Linux vi/vim编辑 vim键盘图 vim的三种模式 命令模式.输入模式.输出模式 vim使用实例 vi/vim按键说明 第一部分:一般模式可用的光标移动.复制粘贴.搜索替换等 第二部分 ...
- Go iota 原理和源码剖析
iota 是 Go 语言的一个保留字,用作常量计数器.由于 iota 具有自增特性,所以可以简化数字增长的常量定义. iota 是一个具有魔法的关键字,往往令初学者难以理解其原理和使用方法. 本文会从 ...
- 导出 doc
... /** * 导出word * @return * @throws Exception */ @JCall public String word() throws Exception{ Stri ...
- [atAGC029F]Construction of a tree
构造一张二分图,左边是$n$个点,右边是$n-1$个集合,按照点属于集合连边 定义一组匹配的意义,即说明该点的父亲在该集合中选择 利用dinic求出二分图的最大匹配,若不为$n-1$则无解,否则考虑如 ...
- Java遍历map的五种方式
使用For-Each迭代entries 这是最常见的方法,并在大多数情况下更可取的.当你在循环中需要使用Map的键和值时,就可以使用这个方法 Map<Integer, Integer> m ...