ceph分布式存储部署

news2025/3/3 4:17:44

一、概述

        是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

特点

1、统一存储

        虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。

2、高扩展性

        扩容方便、容量大。能够管理上千台服务器、EB 级的容量。

3、可靠性高

        支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。

4、高性能

        因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。

二、组件

Monitor 一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
OSDOSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
MDSMDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
ObjectCeph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
PGPG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
RADOSRADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
LibradioLibrados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
CRUSHCRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
RBDRBD全称RADOS block device,是Ceph对外提供的块设备服务。
RBDRGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
CephFSCephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

三、架构图

1:文件上传,先将文件切片成N个object(如果开启了cephFS,可以使用MDS缓存)
2:切片后的文件object会存入到Ceph中
3:文件存储前,会经过CRUSH算法,计算当前文件存储归结于哪个PG
4:PG是逻辑概念上对文件存储范围划分的索引

5:根据PG索引将文件存储到指定服务器的OSD中

四、搭建

1、环境拓扑

node1monitor
osd
192.168.2.3

node2monitor
osd
192.168.2.4

node3monitor
osd
192.168.2.5

node4monitor
osd
192.168.2.6

2、准备工作

1.关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

2.关闭图形化网络管理器

systemctl stop NetworkManager
systemctl disable NetworkManager

3.配置IP

sed -i "s/ONBOOT=no/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network

4.关闭selinux

setenforce 0

5.主机名修改

hostnamectl set-hostname node{1..4}

(每个服务器都配置)

6.修改ssh配置

sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config
systemctl restart sshd

 

7.hosts文件修改

                每个节点主机都需要操作

vim /etc/hosts192.168.2.3 node1
192.168.2.4 node2
192.168.2.5 node3
192.168.2.6 node4
scp /etc/hosts 192.168.2.3【4 5 6】:/etc/

8.ssh免密配置

node1ssh-keygen
for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done
node2ssh-keygen
for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done
node3ssh-keygen
for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done
node4ssh-keygen
for i in 3 4 5 6; do ssh-copy-id root@192.168.2.$i;done

9.时间同步

1、在node1开启时间同步服务器
2、安装

                yum install -y ntp

3、配置
vim /etc/ntp.conf
server 127.127.1.0 定义时间服务器
fudge 127.127.1.0 stratum 8


    定义时间层次

 

 

4、启动

                systemctl start ntpd
                systemctl enable ntpd

5、客户端对时
for i in 4 5;do ssh 192.168.2.$i  ntpdate 192.168.2.3;done

10.添加磁盘

node1 node2 node3 服务器上都添加一块磁盘

11.热扫描磁盘

echo "- - -" > /sys/class/scsi_host/host0/scan

for i in 4 5;do ssh 192.168.2.$i echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done

cd /sys/class/scsi_host

for i in `ls`;do echo "- - - ">$i/scan;done

cd /sys/class/scsi_host/
for i in `ls ./`;do echo "- - -" > $i/scan;done
lsblk

12.格式化

mkfs.xfs /dev/sdb

3、ceph安装(只在node1上操作)

1.yum install epel-release -y

2.yum install lttng-ust -y

3.添加ceph安装源

[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/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.tuna.tsinghua.edu.cn/ceph/rpm-mimic/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.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

 

4. yum -y install ceph ceph-deploy

5.集群架构

创建集群目录

        mkdir -p /usr/local/soft/cephcluster
        cd /usr/local/soft/cephcluster

创建集群

        ceph-deploy new node1 node2 node3

修改配置文件

        vim ceph.conf

添加以下内容:

安装

        ceph-deploy install node1 node2 node3

初始化monitor

        ceph-deploy mon create-initial

同步管理信息

                ceph-deploy admin  node1 node2 node3

安装mgr(管理守护进程)

        ceph-deploy mgr create  node1 node2 node3

安装rgw

        ceph-deploy rgw create node1 node2 node3

创建mds服务

        ceph-deploy mds create node1 node2 node3

OSD安装
创建OSDceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3

 

查看集群状态

        ceph -s

6.dashboard安装

        ceph mgr module enable dashboard    开启dashboard模块

        ceph dashboard create-self-signed-cert    生成签名

        mkdir -p /usr/local/jx/cephcluster/mgr-dashboard            创建目录

        cd /usr/local/jx/cephcluster/mgr-dashboard

          openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca

启动服务:

        ceph mgr module disable dashboard
        ceph mgr module enable dashboard

设置访问地址与端口

        ceph config set mgr mgr/dashboard/server_addr 192.168.2.3
        ceph config set mgr mgr/dashboard/server_port 9001


        ceph config set mgr mgr/dashboard/ssl false    关闭https

        ceph mgr services

        ceph dashboard set-login-credentials jx123 123.com  创建账户

       https://192.168.2.3:8443

7.ceph文件系统创建

1-创建存储池

ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64

    少于5个OSD可把pg_num设置为128
    OSD数量在5到10,可以设置pg_num为512
    OSD数量在10到50,可以设置pg_num为4096
    OSD数量大于50,需要计算pg_num的值

2-查看存储池

         ceph osd lspools

3-创建3-文件系统

        ceph fs new  fs_test  cephfs_metadata cephfs_data

4-查看文件系统

        ceph fs ls

5-查看mds状态

        ceph mds stat

4、客户端挂载

1.在node1中

安装:ceph-deploy install node4

同步管理信息    ceph-deploy admin  node4

                非集群节点,/var/run/ceph 无内容

2.在node4上操作

        yum install -y ceph-fuse

3.查看信息

        ls  /etc/ceph

ceph.client.admin.keyring

4.创建挂载目录

        mkdir /ceph

5.挂载ceph文件系统

        ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.2.3:6789 /ceph

查看web页面


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030113.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单片机学习--->Keil多文件工程

1、在文件夹中创建新的文件夹 目录: App 文件夹:用于存放外设驱动文件,如 LED、数码管、定时器等。 Obj 文件夹:用于存放编译产生的 c/汇编/链接的列表清单、调试信息、 hex 文件、预览信息、封装库等文件。 Public 文件夹&#x…

D. Edge Split

Problem - D - Codeforces 思路:思路想到了,但是不知道用什么方法写。。首先我们先看只有一个树的情况,那么如果我们所有的边是一个颜色,那么答案是1n,如果我们将其中的一条边变色,那么产生的答案是2n-1&am…

buuctf web [ACTF2020 新生赛]Upload

明了但不明显的文件上传 传个试试 行,抓包吧,php格式不行,就先上传要求的格式:jpg、png、gif 抓到上传的包之后,再修改成我们想要的 常见的php格式绕过有:php,php3,php4,php5,phtml,pht 挨个试试 这是上个…

Python 根据身高体重计算体质(BMI)指数

""" 根据身高体重计算体质(BMI)指数知识点&#xff1a;1、计算公式&#xff1a;体质指数(BMI) 体重(KG) / (身高(M) * 身高(M))2、变量类型转换3、运算符幂**&#xff0c;例如&#xff1a;3 ** 2 9 <> 3 * 34、更多的运用请参考&#xff1a;https://blo…

基于矩阵分解算法的智能Steam游戏AI推荐系统——深度学习算法应用(含python、ipynb工程源码)+数据集(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow环境PyQt5环境 模块实现1. 数据预处理 相关其它博客工程源代码下载其它资料下载 前言 本项目采用了矩阵分解算法&#xff0c;用于对玩家已游玩的数据进行深入分析。它的目标是从众多游戏中筛选出最适合…

糖果传递问题(超详细的数论公式推导+贪心结论+均分问题)

糖果传递问题 文章目录 糖果传递问题问题描述问题分析【公式推导过程】代码 问题描述 有 n 个小朋友坐成一圈&#xff0c;每人有 a[i] 个糖果。 每人只能给左右两人传递糖果。 每人每次传递一个糖果代价为 1。 求使所有人获得均等糖果的最小代价。 输入格式 第一行输入一个正…

【2】贪心算法-综述

前言 从前&#xff0c;有一个很穷的人救了一条蛇的命&#xff0c;蛇为了报答他的救命之 恩&#xff0c;于是就让这个人提出要求&#xff0c;满足他的愿望。这个人一开始只要求简 单的衣食&#xff0c;蛇都满足了他的愿望&#xff0c;后来慢慢地贪欲升起&#xff0c;要求做官&am…

基于SSM的出租车管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

智荟康午休课桌椅成为第十届中国慈善展览会公益亮点产品

第十届中国慈善展览会&#xff08;以下简称“慈展会”&#xff09;于9月15日至17日在深圳会展中心隆重举办&#xff0c;此次展会为期3天&#xff0c;主要围绕“共建现代化慈善&#xff0c;聚力高质量发展”的主题&#xff0c;重点聚焦聚力民生福祉&#xff0c;将打造“一展多元…

新手小白如何学习自动化测试?

前言 测试自动化在各个行业和应用中被广泛使用&#xff0c;并产生巨大的效果。软件开发方法&#xff0c;如DevOps、Agile、Waterfall和它们的不同风格&#xff0c;广泛使用测试自动化来降低成本&#xff0c;提高效率和准确性&#xff0c;并加快回归测试。 测试自动化是在充分…

LeetCode 75 - 01 : 最小面积矩形

type pair struct{x, y int }func minAreaRect(points [][]int)int{mp : map[pair]struct{}{}// 将二维数组中的坐标映射到map中for i : range points{mp[pair{points[i][0], points[i][1]}] struct{}{}}// 将结果设置为一个最大值&#xff0c;防止影响求最小值的逻辑res : ma…

学习记忆——宫殿篇——记忆宫殿——记忆桩——工人宿舍

脸盆铁盒白色泡沫绳子电热炉 6. 椅子 7. 门帘 8. 塑料 9. 书 10.安全帽 11. 凳子 暖壶烟灰缸计算器水杯刷子

【GPU编程】Visual Studio创建基于GPU编程的项目

vs创建基于GPU编程的项目 &#x1f34a;前言&#x1f438;方法一-CUDA Runtime生成&#x1f61d;debug设置 &#x1f345;方法二-空项目配置&#x1f349;&#x1f349;&#x1f349;代码验证 &#x1f34a;前言 cuda以及cudnn的安装以及系统环境变量的配置默认已经做完。如果…

七天学会C语言-第六天(指针)

1.指针变量与普通变量 指针变量与普通变量是C语言中的两种不同类型的变量&#xff0c;它们有一些重要的区别和联系。 普通变量是一种存储数据的容器&#xff0c;可以直接存储和访问数据的值。&#xff1a; int num 10; // 定义一个整数型普通变量num&#xff0c;赋值为10在例…

【算法训练-二叉树 四】【对称与翻转】对称二叉树、翻转二叉树

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【二叉树的形态变化】&#xff0c;使用【二叉树】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条…

后端思维:通过代码去重,做一个后端通用模板

目录 后端思维 1. 优化前的例子 2. 抽取公用方法去重 3. 反射对比字段 4.Lambda函数式泛型 5. 继承多态. 6. 模板方法 6.1 定义对比模板的骨架 6.2 模板的方法逐步细化 6.3 不同对比子类 7. 工厂模式 模板方法 策略模式全家桶 最后 后端思维 最近工作中,我通过层层…

学Python的漫画漫步进阶 -- 第十二步.文件读写

学Python的漫画漫步进阶 -- 第十二步.文件读写 十二、文件读写12.1 打开文件12.2 关闭文件12.2.1 在finally代码块中关闭文件12.2.2 在with as代码块中关闭文件 12.3 读写文本文件12.4 动动手——复制文本文件12.5 读写二进制文件12.6 动动手——复制二进制文件12.7 练一练12.8…

Redis之list类型

文章目录 Redis之list类型1. 列表添加/弹出元素2. 查看列表3. 获取列表中元素的个数4. 删除列表中指定的值5. 获取/指定元素的值6. 向列表中插入元素7. 删除指定索引范围之外的所有元素8. 将元素从一个列表转移到另一个列表9. 应用场景9.1 队列9.2 类似微信上订阅公众号&#x…

MidJourneyAI绘画之月满中秋情更浓

皓月当空照人间&#xff0c; 银河洒满天幕间。 嫦娥轻舞婵娟态&#xff0c; 桂香飘散诗意添。 团圆乐享如意时&#xff0c; 家人相聚笑声吹。 中秋欢庆如诗意&#xff0c; 祝福平安好运气。

从网约车平台合规问题看企业合规难题如何破解

随着互联网的快速发展&#xff0c;网约车行业逐渐崛起并成为人们出行的重要选择之一。然而&#xff0c;虽然网约车平台带来了便利和效率&#xff0c;但也引发了一系列合规问题。 近日&#xff0c;西安市交通运输综合执法支队和西安市出租汽车管理处组织开展了西安市网约车行业…