Ceph rdb
Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。 Ceph 的强大足以改变公司的 IT 基础架构、和管理海量数据。 Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。
如图为应用场景示意图,其核心是RADOS,也即高可用、自动化的分布式对象存储,该模块负责对OSD的自动化运行,保证整个存储系统的可用性。同时,该模块通过一个名为librados的公共库对外提供存储服务,块存储和对象存储都依赖该动态库。
同时,Ceph本身封装了对象存储的接口和块存储的接口。对象存储的接口包括对象网关和对象存储访问库等。块存储接口包括块存储访问动态库、Python绑定库和内核态的虚拟块设备。
Ceph存储系统的逻辑层次结构如下图所示:
Ceph存储系统的组件
Ceph集群的核心组件是OSD和MON,其中OSD用于数据的具体存储操作,MON用于一些“映射图”,通过该“映射图”客户端可以计算出数据的存放位置,并将数据直接发送给相应的OSD处理。由于OSD和MON之间存在监控关系,并且通过相应的策略进行相关调度,保证自动故障处理和负载均衡等,因此将OSD、MON以及这些策略统称为RADOS。
为了便于对RADOS的管理和使用,在RADOS之上实现了一套动态库(librados),动态库通常位于客户端,通过网络与RADOS交互命令和数据。
Ceph天生就是对象存储,rados本身提供了一套以对象方式存储和访问Ceph集群数据的接口。而Ceph又同时提供了块存储和文件系统存储的功能,该功能基于Ceph的对象存储实现。
OSD
OSD的全称是Object Storage Device,OSD通常是一个物理的存储设备(例如磁盘),也可以是逻辑的存储设备(例如磁盘上的某个文件夹)。当然,这里的存储设备不限于服务器上的本地硬盘,也可以是通过iSCSI协议或者FC协议映射的LUN。 有时候提及的OSD实际上是OSD守护进程,视语境而定。
OSD守护进程
OSD守护进程是OSD的软件实现,OSD守护进程用来对OSD进行管理(数据读写等),客户端数据交互的对象是OSD守护进程。
MON
MON是Ceph集群的监控软件,一个守护进程,其中包含若干“映射图”信息。客户端向Ceph集群写数据前通常要向MON请求,获取最新的“映射图”,并通过其计算出数据的存放位置。
librados
librados是一个动态库程序,其提供了客户端访问Ceph集群的原生态统一接口。其它接口或者命令行工具都基于该动态库实现。
在librados中实现了Crush算法和网络通信等公共功能,数据请求操作在librados计算完成后可以直接与对应的OSD交互进行数据传输
CEPH 块设备
Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD 。 Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。 Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。
ceph安装
配置ceph yum源
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
升级系统
yum update -y && yum install ceph-deploy -y
安装ntp
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock –systohc
systemctl enable ntpd.service
systemctl start ntpd.service
vmware需要安装的组件
yum install -y open-vm-tools
创建用户
useradd -d /home/cephuser -m cephuser
passwd cephuser
用户权限
echo “cephuser ALL = (root) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s’/Defaults requiretty/#Defaults requiretty’/g /etc/sudoers
关闭selinux
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
关闭防火墙
systemctl enable firewalld
firewall-cmd –set-default-zone=trusted
firewall-cmd –complete-reload
firewall-cmd –list-all
安装ceph(ceph节点)
yum -y install ceph
ceph –version
ceph version 10.2.9 (2ee413f77150c0f375ff6f10edd6c8f9c7d060d0)
格式化磁盘(ceph节点)
配置免密钥登陆
创建集群配置
修改集群配置文件
安装ceph组件
ceph-deploy install –no-adjust-repos ceph2
ceph-deploy install –no-adjust-repos ceph3
查看密钥
[cephuser@ceph1 cluster]$ ls
ceph.bootstrap-mds.keyring ceph.bootstrap-rgw.keyring ceph-deploy-ceph.log
ceph.bootstrap-mgr.keyring ceph.client.admin.keyring ceph.mon.keyring
ceph.bootstrap-osd.keyring ceph.conf
该命令将创建监视器键,使用’ceph’命令检查并获取密钥。
ceph-deploy gatherkeys ceph2
ceph-deploy gatherkeys ceph3
查看磁盘
准备OSD
激活OSD
查看OSD节点
查看磁盘分区情况
分发key
所有节点给admin key 授权
查看集群状态
Ceph存储空间查看
查看OSD状态
查看OSD dump
ceph rbd
client端配置
Ceph提供rbd命令来管理rados块设备图像。我们可以使用rbd命令创建新映像,调整大小,创建快照并导出我们的块设备。
创建一个大小为40GB的新的rbd映像,然后在rbd列表中检查’ disk01 ‘。
测试可用
到此ceph的RBD搭建完毕,ceph的RBD作为块设备像硬盘一样直接挂载,未来在容器平台会有很大的应用场景。
Ceph rdb的更多相关文章
- 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。
1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释 CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...
- 理解 QEMU/KVM 和 Ceph(3):存储卷挂接和设备名称
本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存 ...
- 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]
理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...
- 理解 OpenStack + Ceph (3):Ceph RBD 接口和工具 [Ceph RBD API and Tools]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- kubernetes配置使用ceph动态存储
在k8s集群中配置ceph 3.1.使用cephfs (1) 在ceph集群创建cephfs #以下操作在ceph集群的admin或者mon节点上执行 #创建pool来存储数据和元数据 ceph os ...
- ERROR: modinfo: could not find module rbd FATAL
CENTOS 6.5 安装CEPH RDB 错误 ERROR: modinfo: could not find module rbd FATAL: Module rbd not found. rbd: ...
- 理解OpenShift(4):用户及权限管理
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...
- k8s资源对象及API群组
REST是representational state transfer的缩写,意为“表征状态转移”,它是一种程序架构风格,基本元素为资源(resource).表征(representation)和行 ...
- Redis哨兵集群创建脚本--v2
1. 基础环境 操作系统版本 CentOS Linux release 7.6.1810 (Core) Docker 版本 19.03.11, build 42e35e61f3 Redis 版本 ...
随机推荐
- Windows环境npm无法生效
上网查询得知安装完nodejs之后配置windows环境变量只能保证在命令行工具中可以使用npm,如果想在git bash中使用需要再安装一遍 安装后记得配置环境变量
- Kotlin 扩展——省略findViewById
现在 Kotlin 安卓扩展插件能够提供与这些开源库功能相同的体验,不需要添加任何额外代码. import kotlinx.android.synthetic.main.activity_main.* ...
- log4net使用封装,无缝切换 dotnet 和 dotnetcore
log4net使用封装,无缝切换 dotnet 和 dotnetcore Intro 自己有几个自己的小项目,有许多公用的方法/扩展/工具类等等,于是封装了一些常用的工具类/扩展方法 WeihanLi ...
- 纯Java实现微信朋友圈分享图
纯Java实现微信朋友圈分享图 1.实现分享图的效果 2.开发环境 2.1 JDK * oracle's jdk 1.8以上 2.2 字体 * 若选择了微软雅黑字体又是代码部署到Linux,则需要安装 ...
- 放下技术,是PM迈出的第一步
上一篇,我们从项目层面提出了PM的核心能力架构.今天,我想从公司层面,分析一下PM的核心能力架构中的过程能力,这也是PM当下最关心.最真切的痛点. 还记得上一篇我的同事老A吗? 为什么他能在知名外企带 ...
- java有关 String char 常见问题 编辑中
1 输入输出有关 Scanner 的next()方法 返回值是String 所以尝试获得char时 应该用input.next().charAt[0] 2 空值 String 中null是指 对象引用 ...
- Python爬虫【实战篇】scrapy 框架爬取某招聘网存入mongodb
创建项目 scrapy startproject zhaoping 创建爬虫 cd zhaoping scrapy genspider hr zhaopingwang.com 目录结构 items.p ...
- Golang代码实现HTTPs(HTTPS证书生成和部署)
在win7下试试: 1.实现一个最简单的HTTPS Web Server // gohttps/2-https/server.go package main import ( "fmt&qu ...
- ansible_playbook 一键搭建集群架构
目录 基础优化 SSH.Ansible,批量管理服务项目 剧本开始-----.10分钟左右 mail.yaml base.yaml rsync.yaml nfs.yaml web.yaml tweb. ...
- 编译装php7.2 && nginx-1.14
环境准备 # cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) # uname -r 3.10.0-957.el7.x86_64 ...