首页 > 其他分享 >ceph 部署步骤和原理理解

ceph 部署步骤和原理理解

时间:2023-06-26 12:06:08浏览次数:47  
标签:Ceph 映射 部署 步骤 节点 ceph RADOS OSD

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, metadaRBD 。同时,在每台host上还要运行MON (Monitor)进程。
  • 块存储, 类似Cinder

 

云平台架构。

ceph架构图如下:

 

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的逻辑结构图如下:

ceph 部署步骤和原理理解_文件系统_02

 

RADOS集群主要由两种节点组成。一种是为数众多的、负责完成数据存储和维护功能的OSD(Object Storage Device),另一种则是若干个负责完成系统状态监测和维护的monitor。

 

OSD和monitor之间互相传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即cluster map。这个数据结构与RADOS提供的特定算法相配合,以便实现了Ceph”无须查表,算算就好”的核心机制以及若干优秀特性。

 

ceph 部署步骤和原理理解_Cinder_03

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结合

ceph 部署步骤和原理理解_对象存储_04

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,RADOS,OSD
From: https://blog.51cto.com/u_13747193/6552844

相关文章

  • 本地部署开源大模型的完整教程:LangChain + Streamlit+ Llama
    在过去的几个月里,大型语言模型(llm)获得了极大的关注,这些模型创造了令人兴奋的前景,特别是对于从事聊天机器人、个人助理和内容创作的开发人员。大型语言模型(llm)是指能够生成与人类语言非常相似的文本并以自然方式理解提示的机器学习模型。这些模型使用广泛的数据集进行训练,这......
  • win9部署.net
    第一:安装IIS,添加添加角色和功能 第二部署项目,如果是.net6安装ASP.NETCoreRuntime6,进入 https://dotnet.microsoft.com/download/dotnet/6.0,选择ASP.NETCoreRuntime6.0.X下的HostingBundle,下载到服务器里,双击安装如果是.net5项目https://dotnet.microsoft.com/dow......
  • zabbix5.0安装和部署笔记
    zabbix版本5.0,操作系统版本Ubuntu18.04 版本5.0,操作系统版本Ubuntu18.041.安装mysql2.解压这个包tar-xvfmysql-5.7.30-1.el7.x86_64.rpm-bundle.tar3.rpm所有程序sudoaptinstallrpmrpm-Uvh*.rpm--nodeps--forceerrorwhileloadingsharedlibraries:libaio.so.1:......
  • 使用 Debian、Docker 和 Nginx 部署 Web 应用
    前言本文将介绍基于Debian的系统上使用Docker和Nginx进行Web应用部署的过程。着重介绍了Debian、Docker和Nginx的安装和配置。第1步:更新和升级Debian系统通过SSH连接到服务器。更新软件包列表:sudoaptupdate升级已安装的软件包:sudoaptupgrade第2步......
  • 【大数据】通过 docker-compose 快速部署 MinIO 保姆级教程
    目录一、概述二、MinIO与Ceph对比1)架构设计对比2)数据一致性对比3)部署和管理对比4)生态系统和兼容性对比三、前期准备1)部署docker2)部署docker-compose四、创建网络五、MinIO编排部署1)下载MinIO安装包2)配置3)启动脚本bootstrap.sh4)构建镜像Dockerfile5)编排docker-compose.......
  • 跨平台技术是指能够在不同操作系统和硬件平台上运行的技术。它允许开发人员使用一套代
    跨平台技术是指能够在不同操作系统和硬件平台上运行的技术。它允许开发人员使用一套代码来构建应用程序,然后将该应用程序部署到多个平台上,而无需进行大量的平台特定代码修改。以下是一些常见的跨平台技术:国产的跨平台技术:Weex:Weex是由阿里巴巴开发的跨平台移动应用开发框架。它......
  • 【教程】解决SVN冲突-详细步骤-已实现
    遇到svn冲突如何解决?本地的和线上的如何编辑?如何解决冲突?请看实践教程:svn冲突。解决方法:一、先更新最新代码:1、在<本地代码>项目文件夹中右击---TortoiseSVN-->Merge...-->Next-->URLtomergefrom(选择主分支路径http://xxxxx/xxx/xx/xxxxx_OA)-->Next-->Testmerge看......
  • 部署PHP+Swoole实现自动更新项目的GitHub Webhooks
    前言在项目开发过程中,每次需要手动登录服务器并执行gitpull命令来更新代码,这样非常繁琐和耗时。为了简化这个过程,我们可以利用GitHub的Webhooks功能,结合PHP和Swoole来编写一个自动更新项目的接口脚本。实现步骤以下是实现自动更新项目的GitHubWebhooks的步骤:首先,你得有一个......
  • docker部署elasticsearch
    CentOS7下使用docker安装ELK日志框架前言:elk是由Elasticsearch、Logstash、Kibana三个开源组件组合形成的框架。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜......
  • ICT应用解决方案08-华为防火墙NAT及安全部署
    ICT应用解决方案08-华为防火墙NAT及安全部署1防火墙NAT1.1NAT技术的基本原理NAT技术通过对IP报文头中的源地址或目的地址进行转换,可以使大量的私网IP地址通过共享少量的公网IP地址来访问公网或使得公网可以访问私网NAT分类:静态NAT:服务器映射,一对一动态NAT:服务器......