openEuler部署Ceph集群(块存储)

news2025/7/24 3:54:01

openEuler部署Ceph集群

  • 1 目标
  • 2 环境
    • 2.1 服务器信息
    • 2.2 软件信息
  • 3 部署流程
    • 3.1 获取系统镜像
    • 3.2 创建虚拟机
    • 3.3 配置虚拟机
      • 3.3.1 配置互信
      • 3.3.2 关闭防火墙
      • 3.3.3 配置免密登录
      • 3.3.4 配置NTP
        • 3.3.4.1 安装NTP服务
        • 3.3.4.2 配置NTP服务端
        • 3.3.4.3 配置NTP客户端
        • 3.3.4.4 启动NTP服务
      • 3.3.5 配置epel源
        • 3.3.5.1 挂载全量镜像
        • 3.3.5.2 创建yum本地源和外部源
      • 3.3.6 设置permissive模式
      • 3.3.7 修改umask
      • 3.3.8 配置Ceph镜像源
    • 3.4 安装Ceph
      • 3.4.1 安装Ceph软件
        • 3.4.1.1 安装Ceph
        • 3.4.1.2 安装ceph-deploy
        • 3.4.1.3 查看Ceph版本
      • 3.4.2 部署MON服务
      • 3.4.3 部署MGR服务
      • 3.4.4 部署OSD服务
    • 3.5 验证环境
  • 4 备注

1 目标

在openEuler操作系统上使用root用户搭建两节点Ceph集群,部署块存储,供学习研究使用。

2 环境

2.1 服务器信息

主机名IP磁盘角色
ceph-100192.168.100.100/dev/sda, /dev/sdb, /dev/sdcceph-deploy,monitor,mgr,osd
ceph-101192.168.100.101/dev/sda, /dev/sdb, /dev/sdcmonitor,mgr,osd
[root@ceph-100 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="20.03 (LTS-SP1)"
ID="openEuler"
VERSION_ID="20.03"
PRETTY_NAME="openEuler 20.03 (LTS-SP2)"
ANSI_COLOR="0;31"

2.2 软件信息

[root@ceph-100 ~]# ceph -v
ceph version 12.2.8 (ae699615bac534ea496ee965ac6192cb7e0e07c0) luminous (stable)
[root@ceph-100~]# ceph-deploy --version
2.0.1

3 部署流程

3.1 获取系统镜像

经过验证,推荐使用清华源来获取特定版本的ISO镜像。本示例将按照前述章节2.1下载Euler 20.3 SP1镜像.

# 下载常规镜像,供KVM安装部署虚拟机ceph-100, ceph-101
[root@node1 ~] wget https://mirrors.tuna.tsinghua.edu.cn/openeuler/openEuler-20.03-LTS-SP1/ISO/aarch64/openEuler-20.03-LTS-SP1-aarch64-dvd.iso
# 下载同样版本的全量镜像,供执行Ceph本地安装部署 -- 因euler源较少、下载缓慢且不稳定故强烈推荐本地安装
[root@node1 ~] wget https://mirrors.tuna.tsinghua.edu.cn/openeuler/openEuler-20.03-LTS-SP1/ISO/aarch64/openEuler-20.03-LTS-SP1-everything-aarch64-dvd.iso

3.2 创建虚拟机

准备两个虚拟机(具体步骤请参考其他博客),虚拟机需要拥有三个磁盘(建议均大于50GB)。本文示例在物理服务器node1上利用KVM创建虚拟机ceph-100和ceph-101,其配置相同,细节信息参考ceph-100:

[root@node1 ~]# virsh dominfo ceph_100
Id:             28
Name:           ceph_219
UUID:           0ad711e1-5d28-4599-8ec8-3409a568b456
OS Type:        hvm
State:          running
CPU(s):         4
CPU time:       67697.8s
Max memory:     8,388,608 KiB
Used memory:    8,388,608 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

[root@node1 ~]# virsh domblklist ceph_100
 Target   Source
-------------------------------------------------------------------
 sda      /data4/wurz/ceph_100/ceph_100.qcow2
 sdb      /data4/wurz/ceph_100/ceph_100_01.qcow2
 sdc      /data4/wurz/ceph_100/ceph_100_02.qcow2
 sdd      -

3.3 配置虚拟机

3.3.1 配置互信

参照章节2.1对两个虚拟机ceph-100, ceph-101配置永久主机名。

[root@ceph-100~]# hostnamectl --static set-hostname ceph-100

[root@ceph-101~]# hostnamectl --static set-hostname ceph-101

[root@ceph-101~]# cat /etc/hosts
192.168.100.100 ceph-100
192.168.100.101 ceph-101

[root@ceph-101~]# cat /etc/hosts
192.168.100.100 ceph-100
192.168.100.101 ceph-101

3.3.2 关闭防火墙

在虚拟机ceph-100, ceph-101执行如下指令,关闭防火墙。

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

3.3.3 配置免密登录

在管理节点ceph-100上执行如下指令生成密钥,并拷贝至ceph-101。

# 针对该交互指令一直使用默认配置即可
[root@ceph-100~]#  ssh-keygen -t rsa

# 从管理节点ceph-100复制密钥到其他节点,可能需要输入密码(虚拟机root用户密码)
[root@ceph-100~]#  ssh-copy-id ceph@ceph-100
[root@ceph-100~]#  ssh-copy-id ceph@ceph-101

3.3.4 配置NTP

因Ceph集群会自动校验存储节点间的时间,为了避免因时间差异而导致告警,此处需要针对每个节点配置NTP服务。

3.3.4.1 安装NTP服务

每个节点均需配置。

# 安装NTP服务
yum -y install ntp ntpdate

# 备份旧配置
cd /etc && mv ntp.conf ntp.conf.bk

3.3.4.2 配置NTP服务端

以管理节点ceph-100作为NTP的服务端,进行如下配置

[root@ceph-100~]# cat  /etc/ntp.conf
restrict 127.0.0.1
restrict ::1
restrict 192.168.100.0 mask 255.255.255.0
server 127.127.1.0
fudge 127.127.1.0 stratum 8

备注:restrict 192.168.100.0 为ceph-100的网段, mask 255.255.255.0为ceph-100的掩码。

3.3.4.3 配置NTP客户端

NTP客户端的配置文件/etc/ntp.conf中需要增加NTP服务端的IP信息。

[root@ceph-101~]# cat  /etc/ntp.conf
server 192.168.100.100

3.3.4.4 启动NTP服务

每个节点均需启动NTP服务。

systemctl start ntpd
systemctl enable ntpd
systemctl status ntpd

在管理节点ceph-100之外的所有节点上执行如下指令:

# 强制当前节点同步NTP服务端ceph-100的时间
ntpdate ceph-100

# 当前节点写入硬件时钟,避免重启失效
hwclock -w

# 设置定时任务,每隔10分钟与NTP服务端ceph-100同步时间
yum install -y crontabs
chkconfig crond on
systemctl start crond
crontab -e

# crontab新增如下内容
*/10 * * * * /usr/sbin/ntpdate 192.168.3.166

3.3.5 配置epel源

Euler系统epel源配置相对繁杂,请务必确保正确配置,否则会导致yum无法下载依赖问题。需要注意的是,经过实践证明,即便该epel源配置正确,下载资源时候依然会受到资源存在性以及稳定性的限制而导致失败。此时可以考虑从前文提到的全量镜像(-everything-.iso)使用yum install执行部分软件的安装。

3.3.5.1 挂载全量镜像

请参考下述流程在每个节点进行配置。

# 创建全量镜像挂载点 -- 此时需要注意系统盘容量,全量进项大小一般接近20GB,这也是文档开始要求每个磁盘均不小于50GB的原因之一
mkdir -p /iso
mount /root/openEuler-***-everything-aarch64-dvd.iso /iso

3.3.5.2 创建yum本地源和外部源

vi /etc/yum.repos.d/openEuler.repo
# 增加下述两部分内容
[Base]
name=Base
baseurl=file:///iso
enabled=1
gpgcheck=0
priority=1

[arch_fedora_online]
name=arch_fedora
baseurl=https://mirrors.huaweicloud.com/fedora/releases/34/Everything/aarch64/os/
enabled=1
gpgcheck=0
priority=2

3.3.6 设置permissive模式

# 设置立即生效,但是重启会失效
setenforce permissive

# 设置永久生效
vi /etc/selinux/config
# 修改SELINUX=permissive
[root@ceph-219 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

3.3.7 修改umask

所有节点均需修改。因openEuler系统安全性很高,需要修改umask为0022才能正常部署Ceph。

vi /etc/bashrc
将最后一行修改/新增为“umask 0022”。
# 刷新配置生效
source /etc/bashrc
# 验证是否生效
umask
# 输出 0022则表明已生效

3.3.8 配置Ceph镜像源

所有节点均需配置。

vi /etc/yum.repos.d/ceph.repo
# 增加如下内容
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-nautilus/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
 
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
 
[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

# 更新yum源
yum clean all && yum makecache

务必确保该步骤成功,一旦失败则需要先解决该问题。

3.4 安装Ceph

3.4.1 安装Ceph软件

3.4.1.1 安装Ceph

所有节点均需安装。

dnf -y install librados2-14.2.10 ceph-14.2.10
pip install prettytable

经过实践证明Ceph 14.2.10极有可能失败,将会提供本地安装Ceph 12.2.8版本,请看下述信息:

3.4.1.2 安装ceph-deploy

仅管理节点ceph-100需要安装,后续服务部署依赖此软件。

[root@ceph-100~]#  pip install ceph-deploy
# 备注:该步骤可能因网络问题而失败,一旦失败请尝试其他办法

# 修改配置,增加 'openeuler': fedora, 使得ceph-deploy适配openEuler系统
[root@ceph-100~]#  vi /lib/python2.7/site-packages/ceph_deploy/hosts/__init__.py

在这里插入图片描述

3.4.1.3 查看Ceph版本

ceph -v
ceph version 12.2.8 (ae699615bac534ea496ee965ac6192cb7e0e07c0) luminous (stable)

3.4.2 部署MON服务

仅需在管理节点ceph-100执行。

# 创建集群
[root@ceph-100~]# cd /etc/ceph
[root@ceph-100 ceph]# ceph-deploy new ceph-100 ceph-101

# 修改ceph.conf配置
[root@ceph-100 ceph]# cat /etc/ceph/ceph.conf
[global]
fsid = 7dea53e4-4760-4207-925c-e895720d667a
mon_initial_members = ceph-100, ceph-101
mon_host = 192.168.122.100,192.168.122.101
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

public_network = 192.168.100.0/24
cluster_network = 192.168.100.0/24

[mon]
mon_allow_pool_delete = true

# 初始化MON服务
[root@ceph-100 ceph]# ceph-deploy mon create-initial
# 将“ceph.client.admin.keyring”拷贝到各个节点上
[root@ceph-100 ceph]# ceph-deploy --overwrite-conf admin ceph-100 ceph-101

# 校验是否配置成功
[root@ceph-100 ceph]# ceph -s
cluster:
id:      7dea53e4-4760-4207-925c-e895720d667a
health: HEALTH_OK

services:
mon: 2 daemons, quorum ceph1,ceph2 (age 1h)

3.4.3 部署MGR服务

仅需在管理节点ceph-100执行。

ceph-deploy mgr create ceph1 ceph2 ceph3

# 验证是否部署成功
ceph -s
cluster:
id:     7dea53e4-4760-4207-925c-e895720d667a
health: HEALTH_OK

services:
mon: 2 daemons, quorum ceph-100,ceph-101 (age 1h)
mgr: ceph-100(active, since 1d), standbys: ceph-101

3.4.4 部署OSD服务

仅需在管理节点ceph-100执行。

3.5 验证环境

4 备注

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

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

相关文章

pyqt5通过CANoe COM Server来操作CANoe仿真工程

文章目录前言一、COM接口技术二、UI界面设计三、功能实现四、工程运行测试前言 继续学习《CANoe开发从入门到精通》。 今天在《CANoe仿真工程开发》的基础上,开发实现pyqt5应用程序来操控CANoe工程。 一、COM接口技术 COM(Component Object Model&…

Linux基础命令-find搜索文件位置

文章目录 find 命令介绍 语法格式 命令基本参数 参考实例 1)在root/data目录下搜索*.txt的文件名 2)搜索一天以内最后修改时间的文件;并将文件删除 3)搜索777权限的文件 4)搜索一天之前变动的文件复制到test…

不懂什么是智慧工厂,看这篇文章就够了!

一、智慧工厂是什么? 一直以来,自动化在某种程度上始终是工厂的一部分,甚至高水平的自动化也非新生事物。然而,“自动化”一词通常表示单一且独立的任务或流程的执行。过去,机器自行“决策”的情况往往是以自动化为基…

【基础篇】9 # 排序:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)、选择排序(Selection Sort)

说明 【数据结构与算法之美】专栏学习笔记 如何分析一个排序算法? 1、排序算法的执行效率 最好情况、最坏情况、平均情况时间复杂度时间复杂度的系数、常数 、低阶比较次数和交换(或移动)次数 2、排序算法的内存消耗 3、排序算法的稳定…

Fabric.js使用说明Part 2

目录一、Fabric.js使用说明Part 1Fabric.js简介 开始方法事件canvas常用属性对象属性图层层级操作复制和粘贴二、Fabric.js使用说明Part 2锁定拖拽和缩放画布分组动画图像滤镜渐变右键菜单删除三、Fabric.js使用说明Part 3自由绘画绘制背景图片绘制文本绘制线和路径一、锁定Fab…

传统豪华品牌引领?智能座舱进入「沉浸式娱乐体验」新周期

智能座舱正在进入硬件定型、软件(功能)升级以及多应用融合的新周期。 高工智能汽车研究院监测数据显示,2022年中国市场(不含进出口)乘用车搭载智能数字座舱(大屏语音车联网OTA)前装标配交付795…

【死磕数据库专栏启动】在CentOS7中安装 MySQL5.7版本实战

文章目录前言实验环境一. 安装MySQL1.1 配置yum源1.2 安装之前的环境检查1.3 下载MySQL的包1.4 开始使用yum安装1.5 启动并测试二. 设置新密码并重新启动2.1 设置新密码2.2 重新登录测试总结前言 学习MySQL是一件比较枯燥的事情,学习开始之前要先安装MySQL数据库&a…

【Linux修炼】14.磁盘结构/文件系统/软硬链接/动静态库

每一个不曾起舞的日子,都是对生命的辜负。 磁盘结构/文件系统/软硬链接/动静态库前言一.磁盘结构1.1 磁盘的物理结构1.2 磁盘的存储结构1.3 磁盘的逻辑结构二.理解文件系统2.1 对IO单位的优化2.2 磁盘分区与分组2.3 分组的管理方法2.4 文件操作三.软硬链接3.1理解硬…

测试4年裸辞失业,面试17k的测试岗被按在地上摩擦,结局让我崩溃大哭...

作为IT行业的大热岗位——软件测试,只要你付出了,就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的,但放眼望去,哪个工作不是这样的呢?会有哪家公司愿意养一些闲人呢?…

「smardaten」上架钉钉应用中心!让进步再一次发生

使用钉钉的团队小伙伴们,smardaten给您送来福利啦~为了给更多团队提供更优质的应用开发体验,方便用户在线、快速使用无代码,数睿数据近期在【钉钉应用中心】发布smardaten在线版本。继与华为云、亚马逊云建立战略合作之后,smardat…

微信小程序实现分享到朋友圈的功能

分享朋友圈官方API:分享到朋友圈 1、分享到朋友圈接口设置事项 2、onShareTimeline()注意事项 3、分享朋友圈后,测试发现,没有数据请求。 用户在朋友圈打开分享的小程序页面,并不会真正打开小程序,而是进入一个“小程…

浏览器缓存策略

先走强缓存,再走协商缓存 强缓存 不发送请求,直接使用缓存的内容 状态码200 当前会话没有关闭的话就是走memory cache,否则就是disk cache 由响应头的 Pragma(逐渐废弃,优先级最高),catch-…

LeetCode 817. 链表组件

LeetCode 817. 链表组件 难度:middle\color{orange}{middle}middle 题目描述 给定链表头结点 headheadhead,该链表上的每个结点都有一个 唯一的整型值 。同时给定列表 numsnumsnums,该列表是上述链表中整型值的一个子集。 返回列表 numsnu…

自动驾驶仿真:ECU TEST 、VTD、VERISTAND连接配置

文章目录一、ECU TEST 连接配置简介二、TBC配置 test bench configuration三、TCF配置 test configuration提示:以下是本篇文章正文内容,下面案例可供参考 一、ECU TEST 连接配置简介 1、ECU TEST(简称ET),用于HIL仿…

MySQL tinyint(1) 、int(32) 与 varchar(255) 长度含义不同

MySQL tinyint(1) 、int(32) 与 varchar(255) 长度含义不同 发现 tinyint(1),int(32) 和 varchar(255) 这里面的数字的含义是不同的。 先说数字类型 tinyint 和 int 等 他们能存储的字节大小是与类型绑定的,即定义了 tinyint 或者 int 就确定了能存储…

【C++的OpenCV】第六课-OpenCV图像常用操作(三):OpenCV的图像的侵蚀和扩张

让我们继续一、图像的侵蚀和扩张1.1 侵蚀1.1.1 函数原型1.1.2 侵蚀的效果1.1.3 关于侵蚀的解释1.2 扩张1.2.1 函数原型1.2.2 扩张的效果二、实例一、图像的侵蚀和扩张 本章节中我们将会学习到: cv::erode() 函数详情cv::dilate() 函数详情 两个函数的基本使用方法…

java 接口 详解

目录 一、概述 1.介绍 : 2.定义 : 二、特点 1.接口成员变量的特点 : 2.接口成员方法的特点 : 3.接口构造方法的特点 : 4.接口创建对象的特点 : 5.接口继承关系的特点 : 三、应用 : 1.情景 : 2.多态 : ①多态的传递性 : ②关于接口的多态参数和多态…

Android ION 相关信息查看方法

目录 查看DMA buffer 信息 查看ion buffer 的总体分配情况 分配的ION buffer 都会设置为DMA buffer,以fd的形式交给使用方, 如app, camera等。 查看ion 的使用情况,可以查看ion 的各个heap分配情况, 也可以从DMA buffer 入手查…

勒索软件BlackByte出现新变种,系Go语言编写

BlackByte 是一个提供勒索软件即服务(RaaS)的攻击组织,自从 2021 年 7 月以来一直保持活跃。最初,BlackByte 使用 C# 开发,最近攻击者使用 Go 重写了恶意软件。FBI 也已经发布公告披露 BlackByte 已经攻击了许多公司&a…

文献阅读 An implementation of the seismic resolution enhancing network based on GAN

题目 An implementation of the seismic resolution enhancing network based on GAN 基于GAN的地震分辨率增强网络的实现 摘要 对于地震数据,本文利用深度学习来学习不同层次的特征并将它们合并以恢复缺失的分辨率。 将GAN网络引入到地震数据处理;对…