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.rhkb.cn/news/142451.html

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

相关文章

【0223】源码剖析smgr底层设计机制(3)

1. smgr设计机制 PG内核中smgr完整磁盘存储介质的管理是通过下面三部分实现的。 1.1 函数指针结构体 f_smgr 函数指针结构体 f_smgr。 通过该函数指针类型,可完成类似于UNIX系统中的VFD功能,上层只需要调用open()、read()、write()等系统函数,用户不必去关系底层的文件系统…

【Vue.js】使用ElementUI搭建动态树数据表格与分页

一&#xff0c;动态树 本文章为上一篇文章拓展内容》》实现首页导航及左侧菜单 将左侧菜单结构更换为下面代码&#xff1a; 菜单结构&#xff1a; <el-menu><el-submenu index"" key""><template slot"title"><i class…

某高校的毕设

最近通过某个平台接的单子&#xff0c;最后Kali做的测试没有公开可以私聊给教程。 下面是规划与配置 1.vlan方面&#xff1a;推荐一个vlan下的所有主机为一个子网网段 连接电脑和http客户端的接口配置为access接口 交换机与交换机或路由器连接的接口配置为trunk接口---也可以…

MySQL详细案例 1:MySQL主从复制与读写分离

文章目录 1. MySQL主从复制1.1 使用场景1.2 MySQL的复制类型1.3 主从复制的作用1.4 主从复制的工作过程1.5 实现MySQL主从复制1.5.1 前置准备1.5.2 主服务器mysql配置1.5.3 从服务器1 mysql配置1.5.4 从服务器2 mysql配置 1.6 MySQL主从复制延时问题的原因和解决办法1.6.1 故障…

计算机专业毕业设计项目推荐09-个人医疗系统(Spring+Js+Mysql)

个人医疗系统&#xff08;SpringJsMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及…

【数据结构与算法】链表的实现以及一些基本算法

目录 单选链表的基本实现 有序列表的合并&#xff08;双指针法&#xff09; 链表的反转 链表实现两数之和 判定链表是否有环 单选链表的基本实现 public class LinkedList1 {//头节点Node first;//尾节点Node last;//大小int size 0;//头插法public void addFirst(int…

【2023年11月第四版教材】第15章《风险管理》(第四部分)

第15章《风险管理》&#xff08;第四部分&#xff09; 8 过程4-实施定量风险分析8.1 实施定量风险分析★★★8.2 数据分析★★★8.3 定量成本风险分析S曲线示例8.4 决策树示例8.5 龙卷风图示例8.6 项目文件&#xff08;更新&#xff09;★★★ 9 过程5-规划风险应对9.1 规划风险…

中间件 - 分布式协调服务Zookeeper

目录 一. 前言 二. 树状结构 2.1. ZNode 2.1.1. stat 2.1.2. ACL 三. NameService命名服务 四. Configuration 配置管理 五. GroupMembers 集群管理 六. 集群三个角色及状态 七. 选举算法 八. Watcher 九. 设计目的 十. 典型使用场景 一. 前言 Zookeeper是一个分布…

Vue简单的页面计算器

实现一个简单的页面计算器&#xff0c;练习组件的定义和注册方法&#xff0c;以及组件之间的数据传递 <div id"aa"> <ul> <li> <span>第一个数&#xff1a;</span><input v-model.number"first"/> </li> <…

安卓修改ROM 修改固件中的一些基本常识 自己做rom注意事项

修改rom 制作rom 解包rom的一些问题解析 安卓系列机型如何内置app 如何选择so文件内置 修改设置里 添加选项 添加文字 修改图标 修改版本号等等 实例解析 最近有几个粉丝对修改rom有兴趣。今天主要给这些友友提供一些自己初学修改rom的一些建议和思路&#xff0c;可以供大家…

打点初级技巧

什么是打点&#xff1f; 打点的目的获取一个服务器的控制权限。获得一个webshell。 步骤 如果你拿到一个网站的名字&#xff0c;该如何进行打点呢&#xff1f;首先&#xff0c;在天眼查上查询该网站&#xff0c;进入查询到的官网&#xff1a; 天眼查-商业查询平台_企业信息查…

Linux驱动开发笔记

疑问 file_operation中每个操作函数的形参中inode的作用 设备树中compatible属性中厂商和型号如何填写 file_operation定义了Linux内核驱动的所有的操作函数&#xff0c;每个操作函数与一个系统调用对应&#xff0c;对于字符设备来说&#xff0c;常用的函数有&#xff1a;lls…

Java项目实战-查询用户列表接口服务搭建

概述 这里通过设计一个对用户进行增删改查的接口服务&#xff0c;来练习java项目工程化、Spring框架、Mybatis框架的实际应用 本项目目录 上一节初始化项目&#xff0c;已经controller层了&#xff0c;下方新建包&#xff1a;pojo、mapper、service pojo:所有的实体类都放这…

手机相机系统介绍

目录 一张照片是如何生成的? 相机的成像原理 相机硬件 颜色四要素 相机硬件三大块 模组结构 镜头 镜头光路 镜头常见参数 镜头-FOV&EFL 镜头-焦距 镜头-光圈 图像传感器 图像传感器-像素-底 RGB排布 图像传感器-Pattern & PDAF Sensor CMOS sensor …

Kafka的消息传递保证和一致性

前言 通过前面的文章&#xff0c;相信大家对Kafka有了一定的了解了&#xff0c;那接下来问题就来了&#xff0c;Kafka既然作为一个分布式的消息队列系统&#xff0c;那它会不会出现消息丢失或者重复消费的情况呢&#xff1f;今天咱们就来一探。 实现机制 Kafka采用了一系列机…

怎样找到NPM里面开源库下载地址

场景 最近帮忙找一个开源库地址。这里以vue/language-core为例子。 解决 https://registry.npmmirror.com/vue/language-core/1.8.13这里就是如下格式&#xff1a; https://registry.npmmirror.com/{包名}/{版本号}打开这个页面后&#xff0c;得到开源库下载地址&#xff0c…

Java基于SSM+JSP的服装定制系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 .技术栈3 分析4系统设计4.1 软件功能模块设计4.2.2 物理模型设计 5系统详细设计5.1系统功…

力扣:110. 平衡二叉树(Python3)

题目&#xff1a; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff…

目前很火的养猫微信小程序源码带流量主+搭建教程

目前很火的养猫微信小程序源码带流量主搭建教程。 搭建教程 进入小程序我们下载开发者工具 开发者工具安装好了 我们就把前端源码导入进开发者工具中 这里的APPID我们填写自己的小程序APPID 修改siteinfo.js里的uniacid和acid 这两个ID在刚才后端添加的小程序那里看 在把…

2023年信创云管平台选哪家?咨询电话多少?

随着云计算和信创国产化的快速发展&#xff0c;越来越多企业需要支持信创系统的云管平台。但很多企业不知道市面上信创云管平台有哪些&#xff0c;也不知道选哪家&#xff1f;这里我们小编就给大家来回答一下。 2023年信创云管平台选哪家&#xff1f;咨询电话多少&#xff1f;…