使用ceph搭建分布式存储系统

article/2025/10/5 13:34:29

实验目的:

  1. 掌握ceph的配置和使用方法
  2. 掌握分布式存储系统架构规划和设计方法
  3. 理解块存储,文件存储,对象存储的实现方法

实验步骤:

1.规划设计

准备四台虚拟机(有条件部署三台服务器,一台计算机更好),分别安装centos-7-x86_64操作系统,使用的ceph的版本minic版,网络地址及规划随机。

节点名称

IP地址

系统版本

部署进程

数据盘

Ceph1

192.168.69.150

Centos-7-x86_64

MON+mgr+OSD

/dev/sdb

Ceph2

192.168.69.151

Centos-7-x86_64

MON+mgr+OSD

/dev/sdb

Ceph3

192.168.69.152

Centos-7-x86_64

MON+mgr+OSD

/dev/sdb

Clieng

192.168.69.153

Centos-7-x86_64

客户端

表中各部分配置说明如下:

  1. 虚拟机网卡使用NAT模式,以便连接网络,同时避免地址冲突。
  2. 部署进程中的MON表示monitor监视器,要求部署个数为2N+1个;OSD表示objectstorage存储磁盘,mgr表示管理器。
  3. 每个MON都兼职做OSD,所以我们安装三个ceph节点时需要在上面添加一块磁盘sdb
  1. 环境准备

在准备好的三个节点和客户端 client上分别进行下述操作

  1. 关闭防火墙

#service firewalld stop

#chkconfig firewalld off

#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#setenforce 0

  1. 修改网卡配置文件

以ceph1节点为例

#vi /etc/sysconfig/network-scripts/ifcfg-ens33

  1. 重启网络服务

#systemctl restart network

  1. 配置yum源文件

#mv /etc/yum.repos.d/Cen* /opt/

#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.repo

 

  1. 配置hosts文件

#vi /etc/hosts

添加如下内容:

192.168.69.150 ceph-1

192.168.69.151 ceph-2

192.168.69.151 ceph-3

192.168.69.153  client

# 确保每台服务器hosts文件内容一致

 

  1. 安装chrony服务

Chrony 是一个开源的自由软件,能使系统时钟与时钟服务器(NTP)保持同步,在分布式集群中,为了便于同一生命周期内不同节点服务的管理,需要各个节点的时钟服务器严格同步。在以下配置中,以client节点作为时钟服务器,其他节点以client节点的时钟作为时钟标准调整自己的时钟。

client节点和三个集群节点分别安装Chrony服务。

# yum -y install chrony

在client节点,编辑chrony.conf配置文件。

#vi /etc/chrony.conf

找到server字段,在所有默认的server前加“#”,并添加国内时钟服务器,配置允许参同步的网段。

server 0. centos. pool. ntp. org iburst

server 1. centos. pool. ntp. org iburst

server 2. centos. pool. ntp. org iburst

server 3. centos. pool. ntp. org iburst

server ntp1.allyun.com

server 210.72.145.44

server 202.112.10.36

allow 192.168.69.0/24

local stratum 10

server 192.168.69.153

 

在其他三个节点编译chrony.conf配置文件,在所有默认的server前加”#”并添加本地时钟服务器(以ceph1节点为例)

#vi /etc/chrony.conf

#server 0. centos. pool. ntp. org iburst

#server 1. centos. pool. ntp. org iburst

#server 2. centos. pool. ntp. org iburst

#server 3. centos. pool. ntp. org iburst 

server 192.168.69.153

在所有节点启动chrony服务,并设置开机自启动。

# systemetl restart chronyd

# systemctl enable chronyd

查看同步情况。

# chronyc sources

210 Number of sources = 1

MS Name/IP address

Stratum Poll Reach LastRx Last sample

A* client

10 6 377 27 -66us[ -167us] +/- 167us

 

如果同步时间显示的还是数千秒,则可以 systemctl restart chronyd,然后再次查看同步情况。

  1.  配置ceph使用的yum源。

在三个节点分别配置ceph.repo文件。

  1. #vim /etc/yum.repos.d/ceph.repo

[ceph]

name=Ceph packages for $basearch

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]

name=Ceph noarch packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]

name=Ceph source packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS

enabled=0

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc安装python支持组件。

为防止后续python支持环境出现问题,可以在三个节点上分别运行。

i yum install-y python-pip

  1. 配置无密码连接。
  2. 在ceph1上,可以设置无密码访问其他节点。
  3. # ssh-keygen
  4. 按四次Enter键,进行无密码访问。

 

  1. # ssh-copy-id root@ceph2
  2. 在询问是否连接到ceph2节点的提示信息下,输入“yes”进行确认。接下来按提示输入ceph2的登录密码。
  3. 接下来访问ceph3。
  4. # ssh-copy-id root@ceph3
  5. 在询问是否连接到ceph3节点的提示信息下,输入“yes”进行确认。接下来按提示输入ceph3的登录密码。

3.部署ceph集群

(1)安装部署软件。

ceph-deploy是个部署工具,使用它可以实现所有节点同步安装,如果这个工具无法使用,必须在每个节点上分别进行安装过程。

在节点ceph1安装。

# yum -y install ceph-deploy

 

(2)创建工作目录。

后续进行创建集群、安装软件包、初始化服务、创建OSD等操作时,必须创建工作目录。

# mkdir ceph-cluster && cd ceph-cluster

(3)创建群集并安装软件。

# ceph-deploy new ceph{1,2,3}

#ceph-deploy install cephl ceph2 ceph3

  1. 初始化部署 monitor。

#ceph-deploy mon create ceph{1,2,3}

# ceph-deploy mon create-initial

#ceph mon_status 检查部署情况

(5)共享管理密钥。

用 ceph-deploy 把配置文件和 admin 密钥复制到管理节点和 Ceph 节点,这样每次执行Ceph 命令行时就无须指定 monitor 地址和 ceph.client.admin.keyring。

# ceph-deploy admin cephl ceph2 ceph3

修改密钥权限。

#sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

(6)创建OSD。

#ceph-deploy osd create ceph1 --data /dev/sdb

#ceph-deploy osd create ceph2 --data /dev/sdb

#ceph-deploy osd create ceph3 --data /dev/sdb

创建完成可以查看OSD。

#ceph-deploy osd list cephl ceph2 ceph3

(7)创建mgr。

#ceph-deploy mgr create cephl ceph2 ceph3

(8)验证测试。

# ceph health

正常情况将显示“HEALTH_OK”。

#ceph -s

显示详细信息。如果该简化命令提示错误,则使用ceph-status。

  cluster:

    id:     746cd5aa-feb3-4676-9203-783792f72da3

    health: HEALTH_OK

  services:

    mon: 1 daemons, quorum ceph-1

    mgr: ceph-1(active)

    osd: 3 osds: 3 up, 3 in

  data:

    pools:   0 pools, 0 pgs

    objects: 0 objects, 0B

    usage:   3.01GiB used, 12.0GiB / 15.0GiB avail

    pgs:     

 (9)时钟同步问题。

如果ceph-s显示如下信息。

#ceph -s

health HEALTH WARN

clock skew detected on mon. node2, mon. node 3

Monitor clock skew detected

往往是各节点时钟同步出错。修改ceph1节点的配置文件/etc/ceph/ceph.conf,添加如下内容,将同步时间由默认的0.05s改为1s(或2s)。

[mon]

mon clock drift allowed =1

mon clock drift warn backoff = 30

4.开启 Dashboard

Ceph从 Luminous开始,提供了原生的 Dashboard功能,通过Dashboard可以获取Ceph集群的各种状态信息,从Mimic里实现了Dashboard V2版本,提供了更全面的Ceph展示和管理功能。

(1)查看ceph状态。

首先查看ceph状态,找出active的mgr,这里active mgr是cephl。

# ceph -s

mgr: cephl (active), standbys: ceph2, ceph 3

(2)生成自签名证书和秘钥。

# ceph dashboard create-self-signed-cert

self-signed certificate created

生成key pair,并配置给ceph mgr。

# mkdir mgr-dashboard

# cd 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

Generating a 2048 bit RSA private key

........+++

.................+++

writing new private key to 'dashboard. key'

-----

# 1s

dashboard. crt dashboard. key

(3)启用 dashboard 插件。

# ceph mgr module enable dashboard

(4)配置 dashboard 地址和端口。

# ceph config set mgr mgr/dashboard/server_addr 192.168.69.150

set mgr/dashboard/server_addr

#ceph config set mgr mgr/dashboard/server_port 8888set mgr/dashboard/server_port

查看 dashboard服务。

# ceph mgr services

"dashboard":"https://192.168.69.150:8888/"

(5)配置 dashboard 认证密码。

# ceph dashboard set-login-credentials admin 123Username and password updated

访问ceph的dashboard。Dashboard面板显示当前ceph集群状态信息

 

cluster选项卡可以查看集群中的host,osds等信息,此外后续配置了块存储,文件系统,对象存储,可以在block,objectgateway界面查看。

 


http://chatgpt.dhexx.cn/article/ShvCyEeJ.shtml

相关文章

RAID和分布式存储的对比

传统的存储,一般是指用商用硬盘构建稳固的存储系统,通常会用到RAID技术,这是一种被研究的很透彻的存储技术,有大量的相关软硬件,成本已降低到可接受的程度。 分布式存储,一般是指用大量廉价的磁盘&#xf…

软硬件结合,分布式数据库存储架构优化实践

本文将介绍分布式数据库--KaiwuDB 的存储架构,以及 KaiwuDB 技术团队在其 KV 存储引擎基础上所做的优化实践。 KaiwuDB 整体存储架构 KaiwuDB 采用分层架构,分为计算层与存储层,其总体架构如下图所示: 在 OLTP 场景下&#xff0…

分布式存储系统HDFS

3.1 HDFS简介 Hadoop平台解决两大核心问题: 分布式存储分布式处理 HDFS就是解决海量数据分布式存储 背景:大数据时代,对于海量的数据,单个计算机无法处理,只能借助整个集群来处理海量数据。 文件系统结构&#xff0…

分布式MySQL架构

分布式数据库一般是以下的这种结构,计算层获取元数据层信息进行路由。下面说下各个层级的目的: (1)计算层就是单机时的SQL层,用来对数据访问进行权限检查、路由访问,以及对计算结果等操作。 (2…

搭建分布式存储服务minio详细过程

最近项目的存储量比较大,考虑项目后期存储需要拓展,决定使用分布式存储,综合考察后,最终选定使用minio作为存储服务。以下是使用步骤,MARK一下! 1、服务器 192.168.40.124 192.168.40.1282、创建目录 本集…

分布式存储概述

一、数据分类及存储分类 数据分为元数据和数据 分布式数据存储的实现: 元数据即是文件的属性信息(文件名、权限(属主、属组)、大小、更新时间等),元数据就是有一种路由机制,即当客户端或者应用程序产生的客户端数据被写入到分布式存储系统的…

分布式存储 HDFS原理

思维导图: 分布式存储 一、NameNode 1接收客户端的请求 管理元数据(文件上传时间、文件权限、文件属主、大文件的block数及blockId号) 管理集群 二、SecondaryNameNode 持久化内存中的元数据。 因为内存不稳定,可以将数据持…

分布式存储系统Minio简介

Minio 是一个基于Go语言的对象存储服务。它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意…

分布式存储技术的对比分析与应用

主流分布式存储技术的对比分析与应用 随着数字化转型的深入,海量数据对存储提出了新的要求。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点&…

分布式存储架构一-分布式存储概念

分布式存储系统是由大量廉价普通PC服务器通过Internet互联,对外作为一个整体提供服务的系统。它的规模大且成本低。 分布式存储系统的特性: 可扩展:分布式存储系统能扩展几百到几千台的规模,随着集群数量的提升,它的…

分布式系列之开源分布式存储技术分析

分布式存储在云计算及容器技术中将广泛使用,本文仅简单介绍了下几个主流的开源分布式技术,整个分布式存储系列相当复杂,文中介绍略微粗浅且当引子。 1、集中式存储和分布式存储 1.1 存储类型 常见的存储类型有三种:块存储、文件…

浅谈分布式存储架构: IPFS和HDFS

分布式存储架构是一个复杂的系统工程,针对特定应用的数据存储有不同的系统架构解决方案。不同的存储方法会影响存储性能、存储成本、冗余度、工程复杂性等。 分布式存储的历史 分布式存储最早是由谷歌提出的,其目的是通过廉价的服务器来解决大规模&…

开源分布式存储架构概览

关注「开源Linux」,选择“设为星标” 回复「学习」,有我为您特别筛选的学习资料~ 材料提纲包括三部分内容: 1、基本思想和关注的问题 2、四种开源分布式存储系统概览(HDFS 、GlusterFS 、OpenStack Swift、Ceph) 3、以…

FISCO BCOS 2.0原理解析: 分布式存储架构设计

FISCO BCOS 2.0新增对分布式数据存储的支持,克服了本地化数据存储的诸多限制。 在FISCO BCOS 1.0中,节点采用MPT数据结构,通过LevelDB将数据存储于本地,这种模式受限于本地磁盘大小,当业务量增大时数据会急剧膨胀&…

杉岩PACS影像系统分布式存储架构

该医院创建于1999年,是深圳市政府投资建成的集医疗、教学、科研和预防为一体的现代化三级综合性医院。2017年通过三级甲等医院复审。2018年,医院年门急诊总量约292万人次,年出院病人近7.4万人次,年手术量4.9万台次。 该院在深圳有…

Ceph分布式存储 原理+架构图详解

分布式存储Ceph ceph介绍 ceph是一个统一的、分布式的存储系统,设计初衷式提供较好的性能(io)、可靠性(没有单点故障)和可扩展性(未来可以理论上无限扩展集群规模),这三点也是集群架构所追求的。 统一性 : 意味着我们可以仅凭ceph这一套存储系统&…

几种分布式存储组网架构参考

作 者: NGDCN 原文链接:几种分布式存储组网架构参考 - NGDCN 版 权: 本文由 NGDCN 于2022-11-12原创发布在 NGDCN,未经许可,禁止转载。 1、名词解释 ◼ VBS:云硬盘备份(Volume …

谈谈Java内存模型

谈谈Java内存模型 什么是JMM为什么需要这种规范呢?三大特性在Java中是怎么满足的呢? 什么是JMM Java Memory Model ,Java内存模型,是一种共享内存系统中多线程程序读写操作行为的规范,它是一种屏蔽了各种硬件和操作系…

Java内存模型及管理

1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请…

什么是Java内存模型

概述:本文向您介绍Java内存模型的概念,在C或C中, 利用不同操作平台下的内存模型来编写并发程序;Java利用了自身虚拟机的优势, 使内存模型不束缚于具体的处理器架构,真正实现了跨平台。 内存模型 (memory model) 内存模型描述的是程…