linux运维、架构之路-分布式存储Ceph

摘要:
Ceph可以提供三个功能:对象存储RODOSGW、块存储RBD和文件系统存储CefFS。RBDRBD的全名是RADOSblockdevice。这是Ceph外部提供的块设备服务。ImageRBDimage是一个简单的块设备,可以作为设备直接安装到主机上。用户可以直接写入二进制数据。图像数据作为对象保存在多个RADOS对象存储中;图像的数据空间是thinprovision,这意味着Ceph不预先分配空间,而是在实际写入数据时根据对象分配空间;每个数据对象保存为多个副本。
一、Ceph介绍

       Ceph是一个Linux PB级分布式文件系统,能够在维护POSIX兼容性的同时加入了复制和容错功能。Ceph号称高可用的分布式存储系统,通过多个MON节点(通常为3个)维护集群的状态及元数据信息,而真正存储数据的OSD节点通过向MON节点汇报状态,并通过CRUSH算法将数据副本布局到相应OSD的所在磁盘上,完成数据的持久化存储。为了保证每个数据副本的高可用,通常采用三副本或EC方式。而提供文件服务的mds组件和提供对象存储的rgw组件都不存储实际数据,只是作为服务态进程存在。Ceph可以提供对象存储RODOSGW、块存储RBD、文件系统存储Ceph FS 三种功能。

二、Ceph特点

        可轻松扩展到PB容量,对多种工作负载的高性能(每秒输入/输出操作[IOPS]和带宽),高可靠性。Ceph开发了一些非常有趣的概念(例如,动态元数据分区,数据分布和复制)。ceph的设计还保护单一点的故障容错功能,它假设大规模(PB级别存储)存储故障是常见现象而不是例外情况。它的设计并没有假设某种特殊工作负载,但是包括适应变化的工作负载,提供最佳性能的能力。

三、Ceph组件介绍
组件概念
Monitor一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据
OSDOSD负责相应客户端请求返回具体数据的进程,一个Ceph集群一般都有很多个OSD
MSDMSD 全称Cepg Metadata Service,是CephFs服务依赖的元数据服务
ObjectCeph最底层的存储单位是Object对象,每个Object包含元数据和原始数据
PGPG全称Placement Groups,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据
RADOS是Ceph集群的精华,为用户实现数据分配,Failover等集群操作
LibradioLibradio是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFs都是通过librados访问的目前提供PHP、Ruby、Java、Python等支持
CRUSHCRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
RBDRBD全称RADOS block device,是Ceph对外提供的块设备服务
ImageRBD image是简单的块设备,可以直接被mount到主机,成为一个device,用户可以直接写入二进制数据。image的数据被保存为若干个RADOS对象存储中的对象;image的数据空间是thin provision的,意味着Ceph不预分配空间,而是等到实际写入数据时按照object分配空间;每个data object被保存为多份。pool将RBD镜像的ID和name等基本信息保存在rbd_directory中,这样rbd ls命令就可以快速返回一个pool中所有的RBD镜像了 
RGWRGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容
CephFsCephFs全称Ceph File System,是Ceph对外提供的文件系统服务
Poolpool是Ceph存储时的逻辑分区,它起到namespace的作用
四、Ceph部署

1、服务器规划

系统

IP地址

主机名

部署服务

配置

CentOS  7.5

192.168.56.10

Ceph-deploy

Ceph、Ceph-deploy、Mon

2C/2G

CentOS  7.5

192.168.56.11

ceph01

Ceph

2C/2G

CentOS  7.5

192.168.56.12

ceph02

Ceph

2C/2G

2、环境初始化

  • Ceph-deploy版本: 1.5.39
  • Ceph版本: 10.2.11
  • 系统版本:7.5.1804 (Core)
  • 内核版本:3.10.0-862.el7.x86_64

关闭selinux、iptables

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0

设置时间同步

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
ntpdate -u cn.pool.ntp.org
hwclock --systohc
timedatectl set-timezone Asia/Shanghai

修改主机名、host

hostnamectl set-hostname Ceph-deploy && bash
hostnamectl set-hostname ceph01 && bash
hostnamectl set-hostname ceph02 && bash

cat >> /etc/hosts <<EOF
192.168.56.10 Ceph-deploy
192.168.56.11 ceph01
192.168.56.12 ceph02
EOF

④设置yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache

⑤设置

免责声明:文章转载自《linux运维、架构之路-分布式存储Ceph》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ORM框架疏理——廖雪峰实战系列(一)js简易函数性能测试器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux被中断的系统调用

慢系统调用,指的是可能永远无法返回,从而使进程永远阻塞的系统调用,比如无客户连接时的accept、无输入时的read都属于慢速系统调用。 在Linux中,当阻塞于某个慢系统调用的进程捕获一个信号,则该系统调用就会被中断,转而执行信号处理函数,这就是被中断的系统调用。 然而,当信号处理函数返回时,有可能发生以下的情况: 如果信号处理函数是用signal注册...

linux启动init流程(转)

当系统启动时,首先启动内核,内核调用init来完成引导进程.init启动时,它会在/etc/inittab内查找默认的运行级别:如id:2:initdefault:运行/etc/rc.d/init.d中运行级别为2的启动脚本。由于init.d中的运行级别的这些脚本都用ln 命令连接到/etc/rc.d/rcn.d目录.例如/etc/rc.d/rc2.d/S...

linux编程中的段错误

linux上用C/C++写程序时,很容易碰到段错误的提示,此时程序被自动终止。这个问题是由于非法访问内存引起的,一般的原因都是因为程序中的指针解引用出现了错误。出现段错误是,linux一般会生成一个core dump文件,如果没有生成,可能是因为分配给core dump文件的控件为0,可以用ulimit -c命令查看,如果为0,core dump文件不会生...

Linux netstat命令详解和使用例子(显示各种网络相关信息)

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告 原文链接:https://www.jb51.net/LINUXjishu/152405.html 如果你的计算机有时候接收...

Hive 学习笔记(启动方式,内置服务)

一、Hive介绍   Hive是基于Hadoop的一个数据仓库,Hive能够将SQL语句转化为MapReduce任务进行运行。   Hive架构图分为以下四部分。       1、用户接口     Hive有三个用户接口: 命令行接口(CLI):以命令行的形式输入SQL语句进行数据数据操作 Web界面:通过Web方式进行访问。      Hive的远程服...

Linux解决安装包无法找到问题Unable to locate package rar

1:问题 在默认安装的Linux中有时候会找不到需要安装的软件包,那就需要更新了 例如在执行apt-get install xx的时候就报错了 E: Unable to locate package rar root@alyking:/usr/local/ucomsite# sudo apt-get install rarReading package l...