前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >初识ceph

初识ceph

作者头像
jeremyxu
发布于 2018-05-10 08:35:13
发布于 2018-05-10 08:35:13
1K00
代码可运行
举报
运行总次数:0
代码可运行

ceph作为新一代的PB级高可靠性分布存储系统已经流行很长时间了,在研究了glusterfs之后,一直想找个机会研究一下它,这周终于抽出来时间了。

概念

相对于其它分布式存储系统,它开创性地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。Ceph提供了一个可无限伸缩的Ceph存储集群,它基于RADOSA Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters

ceph_stack.png

从上面Ceph的架构图可以看到,底层都是RADOS,通过不同的Client(RADOSGW、RBD、CEPHFS)让应用上层识别为一个对象存储系统、块设备、Posix兼容的文件,另外LIBRADOS也使得各种开发语言都可以操作RADOS。

Ceph存储集群包含两种类型的守护进程: Ceph监视器、Ceph OSD守护进程。

Ceph监视器维护着集群运行图的主副本。一个监视器集群确保了当某个监视器失效时的高可用性。存储集群客户端向Ceph监视器索取集群运行图的最新副本。

Ceph OSD守护进程检查自身状态、以及其它OSD的状态,并报告给监视器们。同时Ceph OSD守护进程负责将数据存储为扁平的对象。

Ceph客户端和OSD守护进程都用CRUSH算法来计算对象的位置信息,而不是依赖于一个中心化的查询表。与以往方法相比,CRUSH的数据管理机制更好,它很干脆地把工作分配给集群内的所有客户端和OSD来处理,因此具有极大的伸缩性。CRUSH用智能数据复制确保弹性,更能适应超大规模存储。

Ceph存储系统有存储池的概念,它是存储对象的逻辑分区。每个存储池里都有很多归置组PG(Placement Group),CRUSH算法动态地将PG映射到实际的OSD。

Ceph客户端要进行IO读写操作流程如下:

  • Ceph客户端负责把展现给用户的数据格式(一块设备映像、 REST 风格对象、 CephFS 文件系统目录)转换为可存储于 Ceph 存储集群的对象
  • Ceph客户端先连接到某个 Ceph 监视器、获得最新的集群运行图副本
  • Ceph客户端根据对象的ID及存储池的ID计算得出目标PG的ID
  • Ceph客户端得到目标PG的主OSD地址,连接该OSD进行读写操作

ceph_data_op.png

从上面的流程可以看出与glusterfs相比,存储池与OSD之间有PG这么一个中间层。这个中间层使客户端与OSD之间松耦合了,从客户端的角色来看,它只知道对象被存储在某个PG里了,至于对象最终要存储在哪个OSD里它是不感知的。这样当新的OSD上线时,Ceph可以更方便地进行重均衡。

随着OSD数量的增加,一个存储池PG的数量设置将非常重要,它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。官方还提供了一个工具pgcalc

另外CRUSH算法还支持根据数据存储位置来确定如何存储和检索对象。所以部署一个大规模数据集群的时候,应该好好设计自己的CRUSH图,因为它可以帮助管理 Ceph 集群、提升性能、和保证数据安全性。调整Ceph的CRUSH布局的方法见这里

实操

我是在5台CentOS6上进行Ceph在安装的,部署节点的拓扑结构如下:

预检

所有节点更换软件源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#使用阿里云的centos6软件源镜像
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
#使用阿里云的epel软件源镜像
rpm --import http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
#使用阿里云的ceph软件源镜像
rpm --import https://download.ceph.com/keys/release.asc
echo "
[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-el6/hammer/$basearch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-el6/hammer/noarch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-el6/hammer/SRPMS
enabled=0
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
" > /etc/yum.repos.d/Ceph.repo

所有节点设置NTP时间同步,可参考之前的`私有云数据中心NTP服务搭建`

所有节点上创建ceph操作用户

```bash
useradd -d /home/cephop -m cephop
passwd cephop
#确保cephop用户有sudo权限

同步hosts文件,确保各节点都可以正确解析节点名称

确保admin-node可无密码SSH登录其它节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#在admin-node节点执行以下操作
su - cephop
ssh-keygen
ssh-copy-id cephop@node1
ssh-copy-id cephop@node2
ssh-copy-id cephop@node3
ssh-copy-id cephop@ceph-client
echo "
Host node1
   Hostname node1
   User cephop
Host node2
   Hostname node2
   User cephop
Host node3
   Hostname node3
   User cephop
Host ceph-client
   Hostname ceph-client
   User cephop
" > ~/.ssh/config

禁用ssh的requiretty特性

设置网络接口开机自启动

关闭防火墙

关闭selinux

管理节点安装ceph-deploy

1

sudo yum install -y ceph-deploy

存储集群安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir my-cluster
cd my-cluster
ceph-deploy new node1
echo "osd pool default size = 2" >> ceph.conf
ceph-deploy install admin-node node1 node2 node3 ceph-client
ceph-deploy mon create-initial

#在node2, node3上创建上创建osd目录
ssh node2
sudo mkdir /var/local/osd0
exit
ssh node3
sudo mkdir /var/local/osd1
exit

ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1
ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1
ceph-deploy admin admin-node node1 node2 node3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
ceph health

块设备客户端安装

在管理节点执行下面的命令

ceph-deploy install ceph-client

ceph-deploy admin ceph-client

CentOS6需升级内核才能有brd内核模块,所以在ceph-client上执行下面的命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -ivh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y  kernel-lt
#修改/boot/grub/menu.lst确保启动后进入新的内核
reboot
#创建块设备映像
rbd create rbd/foo --size 4096
#将块设备映像映射为块设备
sudo rbd map rbd/foo --name client.admin
#格式化块设备
sudo mkfs.ext4 -m0 /dev/rbd1
#后面就可以使用这个块设备了,比如将/dev/rbd1挂载至目录等操作

其它Ceph客户端安装方法类似

总结

  • Ceph概念比较多,内部实现细节有很多精彩的地方,使用前务必要把它的体系结构这一章通读一遍。
  • Ceph推荐的网络方案是区分了公共网与集群网的,这点比glusterfs进步不少。见这里
  • Ceph里可以自定义CRUSH图,这个比glusterfs只能以地理位置分布进行复制的方案还是灵活不少。

参考

http://docs.ceph.org.cn/architecture/ http://docs.ceph.org.cn/start/ http://blog.dnsbed.com/archives/1714

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
[arxiv | 论文简读] 深度K-Means:简单有效的数据聚类方法
Deep K-Means: A Simple and Effective Method for Data Clustering
智能生信
2022/12/29
1.3K0
[arxiv | 论文简读] 深度K-Means:简单有效的数据聚类方法
[Arxiv | 论文简读] 对比聚类
作者提出了一种被称为对比聚类(CC)的单阶段在线聚类方法。具体来说,对于给定的数据集,正样本和负样本通过数据增强来构造,然后投影到特征空间中。其中,对比学习分别在行空间和列空间中进行,通过最大化正的相似性,最小化负的相似性。作者的观察结果是,特征矩阵中的行可以被视为实例的软标签,因此,这些列可以进一步被视为聚类表示。通过同时优化实例和集群的对比损失,该模型以端到端的方式联合学习表示和集群分配。
智能生信
2022/12/29
5220
[Arxiv | 论文简读] 对比聚类
[scientific reports | 论文简读] scCAN:使用自动编码器和网络融合的单细胞聚类算法
scCAN: single‑cell clustering using autoencoder and network fusion
智能生信
2022/12/29
4410
[scientific reports | 论文简读] scCAN:使用自动编码器和网络融合的单细胞聚类算法
[IEEE | 论文简读] 深度自适应图像聚类
图像聚类是机器学习和计算机视觉中的一项关键但具有挑战性的任务。现有的方法往往忽略了特征学习和聚类之间的结合。为了解决这一问题,作者提出了深度自适应聚类(DAC),该方法将聚类问题重新定义为一个二分类框架,以判断图像对是否属于同一类别。在DAC中,相似度计算由深度卷积网络(ConvNet)的特征和图像的标签构建余弦距离。通过在DAC中引入一个约束条件,学习到的标签特征往往是可以更好应用在图像聚类。主要的挑战是图像聚类中真实标签是未知的。我们通过提出一个交替迭代自适应学习算法来解决这个问题。总之,图像是根据标签特征自动聚类的。实验结果表明,DAC在5个当前的数据集上取得了最好的结果,如在MNIST上达到97.75%,在CIFAR-10上达到52.18%,在STL-10上达到46.99%。
智能生信
2022/12/29
3520
[IEEE | 论文简读] 深度自适应图像聚类
[ARXIV | 论文简读] 混合自编码器的深度无监督聚类
Deep learning of protein sequence design of protein–protein interactions
智能生信
2022/12/29
2630
[ARXIV | 论文简读] 混合自编码器的深度无监督聚类
[Arxiv | 论文简读] MSGNN:一种基于新型磁标志拉普拉斯矩阵的谱神经网络
MSGNN: A Spectral Graph Neural Network Based on a Novel Magnetic Signed Laplacian
智能生信
2022/12/29
4050
[Arxiv | 论文简读] MSGNN:一种基于新型磁标志拉普拉斯矩阵的谱神经网络
[CVPR | 论文简读] 深度密度的无约束人脸聚类算法
Deep Density Clustering of Unconstrained Faces
智能生信
2022/12/29
5210
[CVPR | 论文简读] 深度密度的无约束人脸聚类算法
[KDD 2022 | 论文简读] HyperAid:用于树拟合和层次聚类的双曲空间去噪
HyperAid: Denoising in Hyperbolic Spaces for Tree-fitting
智能生信
2022/12/29
3730
[KDD 2022 | 论文简读] HyperAid:用于树拟合和层次聚类的双曲空间去噪
[Bioinformatics | 论文简读] 通过顺序混合聚类和NMF在上万的细胞中评估单细胞异质性
Resolving single-cell heterogeneity from hundreds of thousands of cells through sequential hybrid clustering and NMF
智能生信
2022/12/29
4430
[Bioinformatics | 论文简读] 通过顺序混合聚类和NMF在上万的细胞中评估单细胞异质性
[Nature Communications | 论文简读] 一种用于清理单细胞RNA-Seq数据噪音的深度神经网络模型
A universal deep neural network for in-depth cleaning of
智能生信
2022/12/29
4630
[Nature Communications | 论文简读] 一种用于清理单细胞RNA-Seq数据噪音的深度神经网络模型
[Bioinformatics | 论文简读] GraphLoc:一种从免疫组织化学图像中预测蛋白质亚细胞定位的图神经网络模型
GraphLoc: a graph neural network model for predicting protein subcellular localization from immunohistochemistry images
智能生信
2022/12/29
3600
[Bioinformatics | 论文简读] GraphLoc:一种从免疫组织化学图像中预测蛋白质亚细胞定位的图神经网络模型
OpenOrd-面向大规模图布局的开源算法-研读
我们创作了一个用于绘制大型无向图的开源工具箱。 这个工具箱是基于一个以前实现的闭源算法,即VxOrd。 我们的工具箱,我们称之为OpenOrd,通过合并切割incorporating edge-cutting、多级方法multi-level approach、平均链接聚类average-link clustering和并行实现parallel implementation,将VxOrd的功能扩展到大型图形布局。 在每个层次上,顶点都使用力导向布局和平均链接聚类来分组。 分组的顶点会被重新绘制,上述过程不断重复。 When a suitable drawing of the coarsened graph is obtained, the algorithm is reversed to obtain a drawing of the original graph. 在得到粗化图coarsened graph的一幅合适的图时,该算法得到了相反的结果,得到了原始图的图像。 这种方法导致了包含本地和全局结构的大图形的布局。 本文给出了该算法的详细描述。 给出了使用超过600 K个节点的数据集的例子。 代码可在www.cs.sandia.gov/smartin上获得。
ZONGLYN
2019/08/08
3.7K0
OpenOrd-面向大规模图布局的开源算法-研读
腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)
今天我们“计算机视觉研究院”深入解读优图的“分布式知识蒸馏损失改善人脸识别困难样本”技术。上一期我们也详细分享了什么是“知识蒸馏”技术!(链接:腾讯优图 | 分布式知识蒸馏损失改善困难样本)
计算机视觉研究院
2020/08/18
1.4K0
腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)
机器学习学术速递[7.19]
【1】 Graph Kernel Attention Transformers 标题:图核注意力转换器
公众号-arXiv每日学术速递
2021/07/27
1.2K0
统计学学术速递[7.19]
【1】 A New Robust Multivariate Mode Estimator for Eye-tracking Calibration 标题:一种新的用于眼动定标的鲁棒多变量模式估计器
公众号-arXiv每日学术速递
2021/07/27
8650
人工智能学术速递[6.18]
【1】 Orthogonal-Padé Activation Functions: Trainable Activation functions for smooth and faster convergence in deep networks 标题:正交Padé激活函数:深层网络平滑快速收敛的可训练激活函数
公众号-arXiv每日学术速递
2021/07/02
1.6K0
机器学习学术速递[6.21]
【1】 Self-supervised Incremental Deep Graph Learning for Ethereum Phishing Scam Detection 标题:自监督增量式深度图学习在以太网络钓鱼检测中的应用
公众号-arXiv每日学术速递
2021/07/02
1.7K0
机器学习学术速递[8.17]
【1】 Multistream Graph Attention Networks for Wind Speed Forecasting 标题:用于风速预报的多流图注意网络 链接:https://arxiv.org/abs/2108.07063
公众号-arXiv每日学术速递
2021/08/24
1.6K0
统计学学术速递[9.7]
【1】 Functional additive regression on shape and form manifolds of planar curves 标题:平面曲线形状流形和形式流形的泛函加法回归 链接:https://arxiv.org/abs/2109.02624
公众号-arXiv每日学术速递
2021/09/16
1.2K0
人工智能学术速递[7.23]
作者:Joseph Singleton 机构:Cardiff University, Cardiff, UK 链接:https://arxiv.org/abs/2107.10832 摘要:在这篇文章中,我们引入一个简单的模态逻辑框架来推理信息源的专业知识。在这个框架中,如果消息源能够在任何可能的世界中正确地确定$p$的真值,那么消息源就是$p$命题的专家。我们还考虑了信息可能是虚假的,但真实的会计来源缺乏专门知识。这与信息来源提出超出其专业领域的主张的情况建模有关。我们基于具有特定闭包属性的专门知识集对语言使用非标准语义。事实证明,我们的语义学和认知逻辑之间有着密切的联系,因此专业知识可以在所有可能的状态下用知识来表达。我们使用这个连接来获得一个健全和完整的公理化。 摘要:In this paper we introduce a simple modal logic framework to reason about the expertise of an information source. In the framework, a source is an expert on a proposition $p$ if they are able to correctly determine the truth value of $p$ in any possible world. We also consider how information may be false, but true after accounting for the lack of expertise of the source. This is relevant for modelling situations in which information sources make claims beyond their domain of expertise. We use non-standard semantics for the language based on an expertise set with certain closure properties. It turns out there is a close connection between our semantics and S5 epistemic logic, so that expertise can be expressed in terms of knowledge at all possible states. We use this connection to obtain a sound and complete axiomatisation.
公众号-arXiv每日学术速递
2021/07/27
7580
推荐阅读
相关推荐
[arxiv | 论文简读] 深度K-Means:简单有效的数据聚类方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档