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.mzph.cn/news/88380.shtml

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

相关文章

面试打底稿④ 专业技能的第四部分

简历原文 抽查部分 了解Python的使用(第一篇关于Python升级版本bug解决的文章斩获6W阅读),用python实现了几篇图像信息隐藏领 域论文的复现(博客中有提及); 了解Django基本框架,写过Django框架的…

【深度学习实验】卷积神经网络(二):自定义简单的二维卷积神经网络

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 二维互相关运算(corr2d) 2. 二维卷积层类(Conv2D) a. __init__(初始化) b. forward(前向传…

第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 B: 双子数

[蓝桥杯 2023 国 B] 双子数 试题 B: 双子数 【问题描述】 若一个正整数 x x x 可以被表示为 p 2 q 2 p^2 \times q^2 p2q2,其中 p p p、 q q q 为质数且 p ≠ q p \neq q pq,则 x x x 是 一个 “双子数”。请计算区间 [ 2333 , 233333333333…

千兆光模块和万兆光模块的差别是什么?

千兆光模块和万兆光模块是目前使用最广泛的光模块之一,它们之间有什么差别呢?下面从传输速率、光纤类型、距离等多个方面详细分析千兆光模块和万兆光模块的差别。 一、传输速率 千兆光模块的传输速率为1.25Gbps,而万兆光模块的传输速率为10…

记录一下 malloc 是如何分配内存的

系统深入学习笔记-malloc 以 32 位系统为例,,通过这张图你可以看到,用户空间内存从低到高分别是 6 种不同的内存段: 代码段,包括二进制可执行代码;数据段,包括已初始化的静态常量和全局变量B…

燃气安全如何保障?万宾燃气管网监测系统时刻感知管网运行态势

近年来随着我国城镇化建设的加快,燃气已经成为每个家庭的必需品。然而,每年夏季频繁发生的燃气爆炸事故,已经严重危害人民生命财产安全危害社会公共安全和公共利益。为了保障燃气安全运行,近日,许多城市都在大力推进燃…

深入浅出Java的多线程编程——第二篇

目录 前情回顾 1. 中断一个线程 1.1 中断的API 1.2 小结 2. 等待一个线程 2.1 等待的API 3. 线程的状态 3.1 贯彻线程的所有状态 3.2 线程状态和状态转移的意义 4. 多线程带来的的风险-线程安全 (重点) 4.1 观察线程不安全 4.2 线程安全的概念 4.3 线程不安全的原因…

代码随想录算法训练营第23期day7| 454.四数相加II 、383. 赎金信 、15. 三数之和、18. 四数之和

目录 一、(leetode 454)四数相加II 二、(leetcode 383)赎金信 暴力解法 哈希法 三、(leetcode 15)三数之和 四、(leetcode 18)四数之和 一、(leetode 454&#xf…

电涌保护器外部专用脱离器(SCB)后备保护器产品说明

为了更好的满足不同应用场景的市场需求,地凯科技经过两年多不断的研发与试验,对电涌保护器外部专用脱离器 SCB 后备保护器产品(以下简称 SCB)进行了技术升级,升级后的SCB 产品在电气性能、外观尺寸、智能化和可靠性等方…

springboot+vue智能诊后随访系统 java医院挂号预约诊断系统

本系统是基于java前端架构Vue用java编程语言及javascript、CSS、HTML语言进行编写设计并实现相关功能的。 设计步骤及措施: (1)确定项目名称、项目研究内容,开题报告提交及修改。 (2)项目开发准备&#xff…

全志H616在低温reboot过程中进入休眠解决方法

主题 H618在DDR物料适配支持时候,reboot实验异常进休眠,在reboot老化测试中报如下log1 [2023-07-11,16:56:44][ 40.325238][ T1] init: Untracked pid 1888 exited with status 0 [2023-07-11,16:56:44][ 40.325295][ T5] binder: undeliver…

比起“如果环境这样这样,那便那样那样”,我更喜欢听到“要怎样怎样变成想要的样子”

比起“如果环境这样这样,那便那样那样”,我更喜欢听到“要怎样怎样变成想要的样子” 许多事情不只是选择题、判断题,还可以是填空题、论文,重点是你怎么看待,格局有没有打开.

中睿天下参展2023海军工程大学首届网络安全文化周并发表主题演讲

2023年9月3日至9月8日,海军工程大学首届网络安全文化周活动于武汉举办。本次活动以“守护蓝疆网安有我”为主题,设有特邀嘉宾前沿讲座、网络安全圆桌交流论坛、网络安全科技展、网络对抗实战竞技、网络安全保密视频创作和信息安全知识竞赛等系列活动。 海…

自学WEB后端03-Node.js 语法

学习后端路线: JavaScript 基础语法 Node,js 内置 API 模块 (fs、 path、 http等) 第三方 API 模块 (express、mysql等) 今天主要回顾下Node.js 语法 Node.js 是基于 Chrome V8 引擎的 JavaScript 运行环境,它提供了一种能够在服务器端运行 JavaScr…

Selenium和Requests搭配使用

Selenium和Requests搭配使用 前要1. CDP2. 通过requests控制浏览器2. 1 代码一2. 2 代码2 3. 通过selenium获取cookie, requests携带cookie请求 前要 之前有提过, 用selenium控制本地浏览器, 提高拟人化,但是效率比较低,今天说一种selenium和requests搭配使用的方法 注意: 一定…

2023网络安全面试题(附答案)+面经

前言 随着国家政策的扶持,网络安全行业也越来越为大众所熟知,相应的想要进入到网络安全行业的人也越来越多,为了拿到心仪的Offer之外,除了学好网络安全知识以外,还要应对好企业的面试。 所以在这里我归纳总结了一些网…

软件的开发步骤,需求分析,开发环境搭建,接口文档 ---苍穹外卖1

目录 项目总览 开发准备 开发步骤 角色分工 软件环境 项目介绍 产品原型 技术选型 开发环境搭建 前端:默认已有 后端 使用Git版本控制 数据库环境搭建 前后端联调 ​登录功能完善 导入接口文档 使用swagger​ 和yapi的区别 常用注解 项目总览 开发准备 开发步骤…

如何通过bat批处理实现快速生成文件目录,一键生成文件名和文件夹名目录

碰对了情人,相思一辈子。 具体方法步骤: 一、创建一个执行bat文件(使用记事本即可); 1、新建一个txt文本空白记事本文件 2、复制以下内容进记事本内 dir/a/s/b>LIST.TXT (其中LIST.TXT文件名是提取后将…

小皮面板配置Xdebug,调试单个php文件

小皮面板配置Xdebug 首先下载phpstrom,和小皮面板 打开小皮面板,选中好要使用的php版本 然后点击【管理】> 【php扩展】> 【xdebug】 然后打开选中好版本的php位置 D:\Program_Files\phpstudy_pro\Extensions\php\php7.4.3nts打开php.ini文件…

Java8实战-总结34

Java8实战-总结34 重构、测试和调试使用 Lambda 重构面向对象的设计模式观察者模式责任链模式 重构、测试和调试 使用 Lambda 重构面向对象的设计模式 观察者模式 观察者模式是一种比较常见的方案,某些事件发生时(比如状态转变)&#xff0…