ceph 部署步骤和原理理解
1.ceph的官方源在国外,网速比较慢,此处添加ceph源为阿里源(每个节点上均执行)
vim /etc/yum.repos.d/ceph.repo
[Ceph] name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
2.需要在 每一个节点 为 ceph 创建用户, 并设置 sudo 权限, 虽然可以拥有不同的用户名,但是这里为了省事都叫 uceph
useradd -d /home/uceph -m uceph
passwd uceph
echo "uceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/uceph
chmod 0440 /etc/sudoers.d/uceph
3.切到 uceph 用户,让 admin-node 能无密钥 ssh 到各节点
ssh-keygen
ssh-copy-id uceph@{node1}
安装 EPEL(各个节点都要先安装)
sudo yum install yum-plugin-priorities
其他步骤可以参考官网或者
ceph 安装记录
http://makaidong.com/kischn/10225_12616314.html
概念:Ceph是一个支持大量小文件和随机读写的分布式文件系统,在维护 POSIX 兼容性的同时加入了复制和容错功能。
生产环境主要的两种应用:
- 对象系统,类似Swift, 这里是RADOS, Reliable Autonomic Distributed Object Store, 可靠的自主分布式对象存储。在每台host上都要运行OSD(Object Storage Daemon)进程,当然,如果已经用RAID, LVM或btrf,xfs(最好别用ext4)将每台host上的硬盘都做成一个池了的话,运行一个OSD就可以了。OSD会默认创建三个池:data, metada与RBD 。同时,在每台host上还要运行MON (Monitor)进程。
- 块存储, 类似Cinder
云平台架构。
ceph架构图如下:

基础存储系统RADOS -------> 可靠的自主的分布式对象存储
这一层本身就是一个完整的对象存储系统,所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。RADOS由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。
基础库librados
这一层的功能是对RADOS进行抽象和封装,并向上层提供API,以便直接基于RADOS(而不是ceph)进行应用开发。物理上libradios和基于其上开发的应用位于同一台机器,因此也被成为本地API。应用调用本机上的libradios API,再由后者通过socket与RADIOS集群中的节点通信完成各种操作。
高层应用接口
这一层包括了三个部分:RADOS GW(RADOS Gateway)、RBD(Reliable Block Device)、Ceph FS(Ceph File System),其作用时在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。
RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下创建volume。
RADOS的逻辑结构图如下:

RADOS集群主要由两种节点组成。一种是为数众多的、负责完成数据存储和维护功能的OSD(Object Storage Device),另一种则是若干个负责完成系统状态监测和维护的monitor。
OSD和monitor之间互相传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即cluster map。这个数据结构与RADOS提供的特定算法相配合,以便实现了Ceph”无须查表,算算就好”的核心机制以及若干优秀特性。

Ceph中的寻址至少要经历以下三次映射:
File -> object映射:其映射十分简单,本质上就是按照object的最大size对file进行切分,相当于RAID中的条带化过程。
Object -> PG映射:在file被映射为一个或多个object之后,就需要将每个object独立地映射到一个PG中去。
PG -> OSD映射:将作为object的逻辑组织单元的PG ----> 映射到数据的实际存储单元OSD。
注意:映射过程中使用cluster map中的placement group map,OSDmap。
3.openstack和ceph结合

1.OpenStack Cinder、Glance 和 Nova 分别会将卷、镜像和虚机镜像保存到 Ceph 分布式块设备(RBD)中 Nova 将虚机的镜像文件放在本地磁盘或者Cinder 卷上。 为了与 Ceph 集成,Nova 中添加了新的代码来将镜像文件保存在 Ceph 中。
2.OpenStack Cinder 组件和 Ceph RBD 集成的目的是将 Cinder 卷(volume)保存在 Ceph RBD 中。当使用 Ceph RBD 作为 Cinder 的后端存储时,不需要单独的一个 Cinder-volume 节点.
OpenStack 和 Ceph 之间还有其它的集成点:
使用 Ceph 替代 Swift 作为对象存储
CephFS 作为 Manila 的后端(backend)
Keystone 和 Ceph Object Gateway 的集成
1.OSD磁盘的格式:Btrfs:与使用XFS和ext4文件系统的OSD相比,使用Btrfs文件系统的OSD能够提供更佳的性能。Btrfs目前还不具备应用于生产系统的条件。
ceph 部署步骤和原理理解的更多相关文章
- Ceph部署(二)RGW搭建
背景 Ceph RGW简介 Ceph RGW基于librados,是为应用提供RESTful类型的对象存储接口.RGW提供两种类型的接口: 1) S3:兼容Amazon S3RESTful API: ...
- MHA在线切换的步骤及原理
在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...
- MySQL高可用方案MHA在线切换的步骤及原理
在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...
- JUC回顾之-ConcurrentHashMap源码解读及原理理解
ConcurrentHashMap结构图如下: ConcurrentHashMap实现类图如下: segment的结构图如下: package concurrentMy.juc_collections ...
- Docker Compose 部署 Redis 及原理讲解 | 懒人屋
原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解 4.4k 字 16 分钟 2019-10-1 ...
- 安装ceph (快速) 步骤一:预检
官网地址:http://docs.ceph.org.cn/start/ 预检 安装一个 ceph-deploy 管理节点和一个三节点的Ceph 存储集群来研究 Ceph 的基本特性.这篇预检会帮你准备 ...
- Storm集群安装部署步骤【详细版】
作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2012/11/30/how ...
- unison + inotify 实现文件实时双向同步部署步骤
unison + inotify 实现文件实时双向同步部署步骤 一. Unison简介 Unison是Windows.Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或 ...
- Hexo学习笔记--常用命令及部署步骤
参考资料: Hexo搭建Github静态博客:http://www.cnblogs.com/zhcncn/p/4097881.htmlHexo:独立博客新玩法:http://www.aips.me/h ...
随机推荐
- 【学习笔记】--- 老男孩学Python,day4 编码,数据类型,字符串方法
今日主要内容 1. 编码 1. 最早的计算机编码是ASCII. 美国人创建的. 包含了英文字母(大写字母, 小写字母). 数字, 标点等特殊字符!@#$% 128个码位 2**7 在此基础上加了一位 ...
- 解决input中智能提示框onblur与onclick冲突的问题
背景: 制作一个类似百度输入法的智能提示框, 其中当关键词输入进来时,会有智能提示展开,实际需求是当点击智能提示框的汉字时,输入框中自动补全并关闭智能提示, 当点击其他区域时,智能提示框自动隐藏,如下 ...
- ubuntu16.4+nginx+uwsgi+Django 部署上线
Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...
- 关于在JSP页面用c标签写if语句
2017年5月28日,晴,心情还不错. 昨晚和同事撸串,回来后继续威士忌走起,喝到凌晨2点多,聊的甚欢.彼此分享了很多自己成长过程中的故事,相互之间有了进一步的了解,友情又进了一步.在以后的时光里,愿 ...
- Fit项目分页组件的编写
项目中涉及列表显示的地方都会用到分页控件,为了能更好地与当前网站的样式匹配,这次要自己实现一个. 所以选择了模板中提供的分页样式,基于模板改造以能够动态生成: 一 控件的行为规则 a) 可设置显示几个 ...
- React Native八大Demo
参考资料:http://www.cnblogs.com/shaoting/p/7148240.html 下一个项目公司也打算使用react native.大致看了下原型设计,写几个小demo先试试水. ...
- MapReduce文件配置和测试
1.前提:MapReduce能配置的前提是hdfs能够正常运行 2.在1的基础上,配置两个文件: 在hadoop文件夹下配置两个文件mapred-site.xml(由mapred-site.xm ...
- Java修改服务器(tomcat)响应头 Server:Apache-Coyote/1.1
Server:Apache-Coyote/1.1 :很多人有说有漏洞,是否有没研究过, 只知道Apache-Coyote是tomcat处理socket链接信息,包装request.response等底 ...
- Oracle 数据库 简单查询
select DISTINCT dept_id from s_emp; desc s_emp; ; --给入职3年以上员工发10万元年终奖 ; --列出职位是仓库管理员的名字和工资 select la ...
- seq 序列
seq 序列用法: seq [option]...last seq [option]...first last seq [option]...first increment last 例如:seq 5 ...