保姆级别的分布式存储ceph教程(非常详细)零基础入门到精通,收藏这一篇就够了

305 篇文章 30 订阅
170 篇文章 2 订阅

ceph 简介  

不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。

Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。

Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)

Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。

Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。

MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令

简单理解  

OSD  

OSD 守护进程,至少两个用于存储数据、处理数据拷贝、恢复、回滚、均衡通过心跳程序向monitor提供部分监控信息

         

Mon  

         

维护集群的状态映射信息包括monitor、OSD、placement Group(PG)还维护了monitor、OSD和PG的状态改变历史信息

         

Mgr  

         

负责ceph集群管理,如pg map对外提供集群性能指标(如cpeh -s 下IO信息)

具有web界面的监控系统(dashboard)

         

Ceph 逻辑结构  

数据通过ceph的object存储到PG,PG在存储到osd daemon,

losd对应disk

lobject只能对应一个pg

l一个raid可以对应一个osd

l一整块硬盘可以对应一个osd

l一个分区可以对应一个osd

monitor:奇数个 osd : 几十到上万,osd越多性能越好

         

PG  

副本数

crush规则(pg怎么找到osd acting set)

用户及权限  

         

lepoach:单调递增的版本号

lacting set: osd列表,第一个为primary osd,replicated osd

lup set :acting set过去的版本

lpg tmp:临时pg组

         

osd状态  

默认每2秒汇报自己给mon(同时监控组内osd,如300秒没有给mon汇报状态,则会把这个osd踢出pg组)

         

lup 可以提供io

ldown 挂掉了

lin 有数据

lout 没数据了

ceph应用场景  

通过tgt支持iscsi挂载

l公司内部文件共享

l海量文件,大流量,高并发

l需要高可用、高性能文件系统

l传统单服务器及NAS共享难以满足需求,如存储容量,高可用

         

ceph生产环境推荐  

存储集群采用全万兆网络

集群网络(不对外)与公共网络分离(使用不同网卡)

mon、mds与osd分离部署在不同机器上

journal推荐使用PCI SSD,一般企业级IOPS可达40万以上

OSD使用SATA亦可

根据容量规划集群

至强E5 2620 V3或以上cpu,64GB或更高内存

最后,集群主机分散部署,避免机柜故障(电源、网络)

实验安装   

环境  

         

地址

硬盘

作用

192.168.50.250/ 192.168.238.128(私网)

4块 20G SSD/ 2张网卡

OSD

主机名修改  

图片

         

源安装  

图片

升级remoto 包  

图片

         

图片

ssh 秘钥认证(单机忽略)  

工具包安装  

         

图片

         

         

NTP 安装  

防止时钟漂移导致故障

图片

Openssh 安装  

图片

         

创建ceph 用户  

图片

允许无密码 SSH 登录  

图片

防火墙

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent

若使用 iptables ,要开放 Ceph Monitors 使用的 6789 端口和 OSD 使用的 6800:7300 端口范围,命令如下:

         

图片

      

在每个节点上配置好 iptables 之后要一定要保存,这样重启之后才依然有效。例如:

         

         

图片

关闭selinux  

省略

启用可选软件库

图片

   安装ceph-deploy   

图片

创建集群  

创建monitoer  

图片

修改配置  

图片

安装ceph  

图片

中途可能会报错工具安装失败

图片

错误总结链接1

         

图片

         

错误总结链接2      

         

图片

图片

创建和收集keyring  

图片

图片

图片

         

将认证密钥拷贝到其他节点便于ceph命令行可以通过keyring和ceph集群进行交互

创建OSD存储节点  

图片

准备硬盘

         

这里有四块磁盘

因为想使用整块磁盘这里直接一个磁盘做一个分区,直接使用mkfs.ext4制作

图片

图片

         

创建OSD  

图片

 把配置文件和admin 秘钥到管理节点和ceph节点

图片

此时使用ceph-s看到的状态是no active mgr 的状态

         

图片

安装ceph-mgr  

官方文档建议在每个 monitor 上都启动一个 mgr

         

图片

         

     

Ceps -s 查看状态

         

图片

清除操作  

安装过程中如遇到奇怪的错误,可以通过以下步骤清除操作从头再来

[root@ceph1 ceph-install]# ceph-deploy purge ceph-node0 ceph-node1 ceph-node2          
[root@ceph1 ceph-install]# ceph-deploy purgedata ceph-node0 ceph-node1 ceph-node2          
[root@ceph1 ceph-install]# ceph-deploy forgetkeys

优化  

关于性能  

OSD 为客户端处理数据复制,复制多份时 OSD 间的网络负载势必会影响到客户端和 ceph 集群 的通讯,包括延时增加、产生性能问题;恢复和重均衡也会显著增加公共网延时。

关于安全

很少的一撮人喜欢折腾拒绝服务攻击(DoS)。当 OSD 间的流量瓦解时, 归置组再也不能达到 active+clean 状态,这样用户就不能读写数据了。挫败此类攻击的一种好方法是 维护一个完全独立的集群网,使之不能直连互联网;另外,请考虑用签名防止欺骗攻击

分离公共网络和集群网络

就是网络分离

修改ceph.conf

              

图片

osd op threads = 8

图片

将配置文件同步到其它节点 & 重启节点

图片

图片

ceph-mon 进程应监听在 192.168.50.0 网段IP上          
ceph-osd 应分别监听在 192.168.50.0 和 192.168.238.0两个网段IP上          
192.168.238.0 网段为集群内部复制数据时使用          
192.168.50.0 网段为客户端连接时使用

查看osd与ceph状态

图片

Ceph 存储池与文件系统  

创建文件系统ceph-fs  

ceph-fs需要元数据mds服务

一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据。配置这些存储池时需考虑:

创建mds,osd上都创建,高可用性

图片

pool 存储池  

池是ceph存储集群的逻辑分区,用于存储对象

对象存储到池中时,使用CRUSH规则将该对象分配到池中的一个PG,PG根据池的配置和CRUSH算法自动映射一组OSD池中PG数量对性能有重要影响。通常而言,池应当配置为每个OSD包含的100-200个归置组

图片

创建池时。ceph会检查每个OSD的PG数量是否会超过200.如果超过,ceph不会创建这个池。ceph3.0安装时不创建存储池

创建存储池  

图片

l若少于5个OSD, 设置pg_num为128。

l5~10个OSD,设置pg_num为512。

l10~50个OSD,设置pg_num为4096。

l超过50个OSD,可以参考pgcalc计算。

         

参数解释  

lpool-name 存储池的名称

lpg-num 存储池的pg总数

lpgp-num 存储池的pg的有效数,通常与pg相

         

         

         

图片

创建文件系统  

图片

客户端挂载  

图片

使用客户端 ceph-fuse 挂载文件系统

图片

块存储  

图片

创建一个存储池

创建一个10G的块  

图片

将10G的块映射到本地

# 查看创建的image 是否存在

         

         

         

         
 

图片

需要去掉一些feature

图片

图片

映射

查看

图片

格式化挂载rbd0到本地的目录中

         

         

查看

         

图片

   

 ​ 为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]


在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
在这里插入图片描述

在这里插入图片描述

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ceph是一个广泛使用的分布式存储系统,它可以在大规模的硬件集群上运行,并提供对象存储、块存储和文件存储等多种数据存储方式。下面是一个Ceph分布式存储详细安装教程: 1. 安装Ceph软件包 在安装Ceph之前,需要添加Ceph软件包的源。可以使用以下命令添加Ceph源: ``` sudo apt-get install wget wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list ``` 注意:上面的`{ceph-stable-release}`需要替换为你要安装的Ceph版本,例如:`luminous`、`mimic`等。 添加源之后,执行以下命令安装Ceph软件包: ``` sudo apt-get update sudo apt-get install ceph-deploy ceph-mds ceph-mon ceph-osd ``` 2. 配置Ceph集群 在安装Ceph软件包之后,需要配置Ceph集群。可以使用`ceph-deploy`工具来配置集群。首先需要创建一个新的Ceph集群,可以使用以下命令: ``` mkdir my-cluster cd my-cluster ceph-deploy new {ceph-mon-node1} {ceph-mon-node2} {ceph-mon-node3} ``` 注意:上面的`{ceph-mon-node1}`、`{ceph-mon-node2}`和`{ceph-mon-node3}`需要替换为实际的Ceph Monitor节点IP地址或主机名。 执行以上命令后,会在`my-cluster`目录下生成一个`ceph.conf`配置文件和一个`ceph-deploy-ceph.log`日志文件。需要对`ceph.conf`文件进行一些修改,以便于Ceph集群正常运行。 在`ceph.conf`文件中,需要添加以下配置项: ``` fsid = {cluster-fsid} mon_initial_members = {ceph-mon-node1},{ceph-mon-node2},{ceph-mon-node3} mon_host = {ceph-mon-node1},{ceph-mon-node2},{ceph-mon-node3} public_network = {public-network} cluster_network = {cluster-network} ``` 注意:上面的`{cluster-fsid}`需要替换为一个UUID字符串,可以使用以下命令生成: ``` uuidgen ``` 注意:上面的`{ceph-mon-node1}`、`{ceph-mon-node2}`和`{ceph-mon-node3}`需要替换为实际的Ceph Monitor节点IP地址或主机名。`{public-network}`和`{cluster-network}`需要替换为实际的网络地址段。`{public-network}`是Ceph集群的公共网络地址,`{cluster-network}`是Ceph集群的集群网络地址。 然后需要在Ceph Monitor节点上初始化集群,可以使用以下命令: ``` ceph-deploy mon create-initial ``` 执行以上命令后,Ceph集群就初始化完成了。 3. 添加Ceph OSD节点 Ceph OSD是Ceph集群中的存储节点,可以使用以下命令添加Ceph OSD节点: ``` ceph-deploy osd create {osd-node1}:{osd-device1}:{osd-device2} {osd-node2}:{osd-device1}:{osd-device2} ... ``` 注意:上面的`{osd-node1}`、`{osd-node2}`等需要替换为实际的Ceph OSD节点IP地址或主机名。`{osd-device1}`和`{osd-device2}`需要替换为实际的磁盘设备路径。 执行以上命令后,Ceph OSD节点就添加完成了。 4. 添加Ceph MDS节点 Ceph MDS是Ceph集群中的元数据服务器,可以使用以下命令添加Ceph MDS节点: ``` ceph-deploy mds create {mds-node} ``` 注意:上面的`{mds-node}`需要替换为实际的Ceph MDS节点IP地址或主机名。 执行以上命令后,Ceph MDS节点就添加完成了。 5. 校验Ceph集群 在添加完Ceph节点之后,可以使用以下命令校验Ceph集群是否正常运行: ``` ceph -s ``` 如果Ceph集群正常运行,则会显示一些基本信息,例如:Ceph Monitor节点数量、Ceph OSD节点数量、Ceph MDS节点数量、存储池数量等。 以上就是Ceph分布式存储详细安装教程,如果你想要更详细的了解Ceph的配置和使用,可以参考Ceph官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值