ceph分布式存储部署

一、概述

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

特点

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.xdnf.cn/news/142829.html

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

相关文章

2023 年解锁网络安全即服务

在当今快速发展的数字世界中,强大的网络安全机制的重要性怎么强调都不为过。对于越来越多地发现自己成为网络威胁焦点的小型企业来说尤其如此。 那么,“网络安全即服务”到底是什么?为什么它对小型企业至关重要? 网络安全即服务…

工具篇 | Gradle入门与使用指南 - 附Github仓库地址

介绍 1.1 什么是Gradle? Gradle是一个开源构建自动化工具,专为大型项目设计。它基于DSL(领域特定语言)编写,该语言是用Groovy编写的,使得构建脚本更加简洁和强大。Gradle不仅可以构建Java应用程序&#x…

ArduPilot开源飞控之GCS显示DPS310异常问题

ArduPilot开源飞控之GCS显示DPS310异常问题 1. 源由2. 现象3. 分析3.1 Mission Planner3.2 Ardupilot3.3 AP_Baro分析3.4 AP_Baro定位 4. 修复5. 效果6. 参考资料7. 补充7.1 Ardupilot提交PR注意事项7.2 修复主要使用到的命令 1. 源由 2020年Ardupilot官网论坛就有开始讨论DPS…

Learn Prompt- Midjourney案例:动漫设计

使用 Midjourney 生成动漫有两种方法:使用Niji模式或使用标准的 Midjourney 模型。Niji V5 是 Midjourney 的动漫专用模型。它建立在标准 Midjourney 模型的全新架构之上,更擅长生成命名的动漫角色。Niji V4于2023年12月发布,Niji V5于2023年…

国内大语言模型的相对比较:ChatGLM2-6B、BAICHUAN2-7B、通义千问-6B、ChatGPT3.5

一、 前言 国产大模型有很多,比如文心一言、通义千问、星火、MOSS 和 ChatGLM 等等,但现在明确可以部署在本地并且开放 api 的只有 MOOS 和 ChatGLM。MOOS 由于需要的 GPU 显存过大(不量化的情况下需要80GB,多轮对话还是会爆显存…

网络安全--IDS--入侵检测

1. 什么是IDS? IDS---入侵检测是防火墙的一个有力补充,形成防御闭环,可以及时、准确、全面的发现入侵弥补防火墙对应用层检查的缺失。对系统的运行状态进行监视,发现各种攻击企图、过程、结果,来保证系统资源的安全&a…

【图论C++】链式前先星(图(树)的存储)

/*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * * brief 一直在竞赛算法学习的路上* * copyright 2023.9* COPYRIGHT 原创技术笔记:转载需获得博主本人…

Go 多版本管理工具

Go 多版本管理工具 文章目录 Go 多版本管理工具一、go get 命令1.1 使用方法: 二、Goenv三、GVM (Go Version Manager)四、voidint/g4.1 安装4.2 冲突4.3 使用 在平时开发中,本地新旧项目并行开发的过程中,你大概率会遇到一个令人头疼的问题&…

OmniOutliner 5 Pro for Mac(信息大纲记录工具)v5.12正式版 支持M1、M2

OmniOutliner 5 Pro是一款功能强大的大纲工具,可以帮助用户进行头脑风暴、组织思维和创建结构化的笔记。以下是这款软件的一些主要功能和特点: 大纲模式。OmniOutliner 5 Pro支持全屏模式、分屏模式、实时预览模式和导航模式等多种创作模式,…

【深度学习】【Opencv】Python/C++调用onnx模型【基础】

【深度学习】【Opencv】python/C调用onnx模型【基础】 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【Opencv】python/C调用onnx模型【基础】前言Python版本OpenCVWindows平台安装OpenCVopencv调用onnx模型 C版本OpenCVWindows平…

Linux shell编程学习笔记3:查询系统中已安装可以使用的shell

〇、更新记录 20230926 编写 一、前言 目前可以在Linux系统上运行的shell有许多种:sh、bash、cshell、tcsh、zsh……但是对一台具体的系统来说,未必包括上面列的所有这些shell,很可能包括其中两三个。 那么我们如何查询系统中已经安装有哪…

性能测试之使用Jemeter对HTTP接口压测

我们不应该仅仅局限于某一种工具,性能测试能使用的工具非常多,选择适合的就是最好的。笔者已经使用Loadrunner进行多年的项目性能测试实战经验,也算略有小成,任何性能测试(如压力测试、负载测试、疲劳强度测试等&#…

Git与Repo:开源开发的得力工具组合

Git与Repo:开源开发的得力工具组合 1. 引言 开源开发在当今的软件行业中扮演着至关重要的角色。它不仅推动了技术的创新和进步,也促进了开发者之间的合作与共享。随着越来越多的开源项目的涌现,有效的代码管理和版本控制成为了必不可少的工…

8. 基于消影点进行相机内参(主点)的标定

目录 1. ocam模型2. 消影点3. 基于消影点进行相机主点标定3.1 基于ocam模型的主点标定 感谢大家的阅读。 1. ocam模型 可以参考我的另一篇博客ocam模型。 这里简单提一下ocam模型: 这个模型将中心折反射相机和鱼眼相机统一在一个通用模型下,也称为泰勒模…

python基于轻量级卷积神经网络模型GhostNet开发构建养殖场景下生猪行为识别系统

养殖业的数字化和智能化是一个综合应用了互联网、物联网、人工智能、大数据、云计算、区块链等数字技术的过程,旨在提高养殖效率、提升产品质量以及促进产业升级。在这个过程中,养殖生猪的数字化智能化可以识别并管理猪的行为。通过数字化智能化系统&…

Linux0.11——操作系统怎么把自己从硬盘搬到内存

这里先直接给出答案:中断 此时,操作系统用短短几行代码,将数据段寄存器ds和代码段寄存器cs设置为了0x9000,方便之后的程序访问代码和数据,并且将栈顶地ss:sp设置在了远离代码的位置0x9000足够遥远的0x9FF00&#xff0c…

鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要求。 二、企业通过数字化转型,不仅有利于优化业务流程、提升经营管…

LLM各层参数详细分析(以LLaMA为例)

网上大多分析LLM参数的文章都比较粗粒度,对于LLM的精确部署不太友好,在这里记录一下分析LLM参数的过程。 首先看QKV。先上transformer原文 也就是说,当h(heads) 1时,在默认情况下, W i Q W_i^…

电商项目高级篇-02 elasticsearch-下

电商项目高级篇-02 elasticsearch-下 4.2、QueryDSL返回指定字段 4.2、QueryDSL 返回指定字段 返回单个字段 GET bank/_search {"query": {"match_all": {}}, "sort": [{"balance": {"order": "desc"}}], &quo…

详解yolov1理论 代码

目标检测要解决的3大问题: 1、有没有? 图片中是否有要检测的物体?(检测物体,判定前景背景) 2、是什么? 这些物体分别是什么?(检测到的物体是什么) 3、在…