安装Ceph集群

安装Ceph集群

在这里插入图片描述

环境准备

CentOS 7.6

主机名IPRole
admin192.168.182.128admin
node1192.168.182.129mon/mgr/osd
node2192.168.182.130osd
node3192.168.182.131osd
client192.168.182.132
  • 所有节点修改主机名相互解析
  • 三台node节点添加大小5G以上硬盘
  • 关闭所有节点防火墙与SeLinux
  • 所有节点创建普通用户并设置密码

以下内容写入到 /etc/hosts

192.168.182.128 admin
192.168.182.129 node1
192.168.182.130 node2
192.168.182.131 node3
192.168.182.132 client

关闭所有节点防火墙与SeLinux脚本(授权并执行即可)

#!/bin/bash

# 关闭防火墙
echo "正在关闭防火墙..."
sudo systemctl stop firewalld
sudo systemctl disable firewalld
echo "防火墙已关闭并禁用。"

# 检查 SELinux 状态
sestatus=$(sestatus | grep "SELinux status" | awk '{print $3}')

if [ "$sestatus" == "enabled" ]; then
    # 关闭 SELinux
    echo "正在关闭 SELinux..."
    sudo setenforce 0
    sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    echo "SELinux 已关闭。"
else
    echo "SELinux 已经处于禁用状态,无需操作。"
fi

echo "脚本执行完毕。"

所有节点创建用户,设置密码

useradd cephu
passwd cephu

确保Ceph节点新创建用户都有sudo权限 所有节点均操作

visudo
#大约在100行添加
cephu   ALL=(root)      NOPASSWD:ALL

实现ssh免密登录 (admin节点操作)

[root@admin ~]# su  - cephu
[cephu@admin ~]$ ssh-keygen
#将admin节点cephu用户生产的密钥拷贝到各Ceph节点
ssh-copy-id cephu@node

#admin节点root用户田家庵~/.ssh/config配置文件 这样ceph-deploy就能用你所建的用户名登陆Ceph节点了
[root@admin ~]# mkdir ~/.ssh
[root@admin ~]# vim ~/.ssh/config
[root@admin ~]# cat ~/.ssh/config
Host node1
Hostname node1
User cephu

Host node2
Hostname node2
User cephu

Host node3
Hostname node3
User cephu

添加下载源

安装ceph-deploy(admin节点root用户)

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

[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
yum makecache
yum update
#开启yum缓存
[root@admin ~]# vim /etc/yum.conf
keepcache=1

yum install ceph-deploy -y

安装ntp服务

在所有节点操作,选择一台节点当ntp时间服务器,其他节点当时间服务器客户端跟服务器同步时间。

[root@admin ~]# yum install -y ntp

[root@admin ~]# vim /etc/ntp.conf  #有4行server的位置,把那4行server行注释掉,填写以下两行
server 127.127.1.0 # local clock
fudge  127.127.1.0 stratum 10

[root@admin ~]# systemctl start ntpd
[root@admin ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

其他节点

 yum install ntpdate  -y
 ntpdate  时间服务器ip

部署集群

无特殊说明以下操作均在admin节点,cephu用户执行

  • 创建cephu操作的目录,ceph-deploy命令操作必须在该目录下执行

    [root@admin ~]# su - cephu
    Last login: Tue Jul 11 10:09:09 EDT 2023 on pts/0
    [cephu@admin ~]$ mkdir my-cluster
    
    sudo yum install  wget unzip -y
    
  • 创建集群

    wget https://files.pythonhosted.org/packages/5f/ad/1fde06877a8d7d5c9b60eff7de2d452f639916ae1d48f0b8f97bf97e570a/distribute-0.7.3.zip
    
    [cephu@admin ~]$ ls
    distribute-0.7.3.zip  my-cluster
    [cephu@admin ~]$ unzip distribute-0.7.3.zip
    [cephu@admin ~]$ cd distribute-0.7.3
    [cephu@admin distribute-0.7.3]$ sudo python setup.py install
    
    [cephu@admin distribute-0.7.3]$ cd ../my-cluster/
    [cephu@admin my-cluster]$ ceph-deploy new node1
    [cephu@admin my-cluster]$ ls
    ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring
    
    
    
  • 在三台node节点上安装ceph-radosgw主包

    (三台node节点操作)

     #安装epel源
        yum install -y epel*
     #创建Ceph源,内容如下:阿里源
         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
    gpgcheck=0
    type=rpm-md
    gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
    priority=1
    
    [Ceph-noarch]
    name=Ceph noarch packages
    baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
    enabled=1
    gpgcheck=0
    type=rpm-md
    gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
    priority=1
    
    [ceph-source]
    name=Ceph source packages
    baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
    enabled=1
    gpgcheck=0
    type=rpm-md
    gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
    priority=1
    
  • 在三台node节点执行命令安装软件

    su - cephu
    sudo yum install ceph ceph-radosgw  -y 
    
     ceph --version
    ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
    
    

初始化集群

  • 初始化mon(cephu@admin)

    [cephu@admin my-cluster]$ ceph-deploy mon create-initial
    
    ceph-deploy admin node1 node2 node3
    
    ceph-deploy mgr create node1
    
    
    
  • 添加osd

    #查看node节点的磁盘名称
    
    [cephu@node3 ~]$ lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   20G  0 disk
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   19G  0 part
      ├─centos-root 253:0    0   17G  0 lvm  /
      └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
    sdb               8:16   0    5G  0 disk
    sr0              11:0    1  918M  0 rom
    
    
    [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
    [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
    [cephu@admin my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
    

    DashBoard配置

    node1操作

    #创建管理域密钥
    [cephu@node1 ~]$ sudo ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
    [mgr.node1]
            key = AQCUXa5kZcSGIhAAqRGiZM7wLa3PQpfhR3dJbA==
    #开启管理域
    
    [cephu@node1 ~]$ sudo ceph-mgr -i node1
    #查看状态
    [cephu@node1 ~]$ sudo ceph status
      cluster:
        id:     4f902c45-53fb-4048-9697-77b959811be9
        health: HEALTH_OK
    
      services:
        mon: 1 daemons, quorum node1
        mgr: node1(active, starting)
        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:
    
    
    #打开dashboard模块
    
    [cephu@node1 ~]$  sudo ceph mgr module enable dashboard
    
    #绑定dashboard模块
     sudo ceph config-key set mgr/dashboard/node1/server_addr 192.168.182.129
    
    
    # ip地址为mgr节点的ip地址,也就是node1的ip地址
    

    访问
    在这里插入图片描述

配置客户端

配置客户端使用rbd,创建块设备需要创建存储池,相关命令需要mon节点执行(node1节点)

[cephu@node1 ~]$ sudo ceph osd pool create rbd 128 128
pool 'rbd' created


#初始化存储池
[cephu@node1 ~]$ sudo rbd pool init rbd

#升级内核

[root@client ~]# uname -r
3.10.0-957.el7.x86_64

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org


[root@client ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

#查看可用系统内核包

[root@client ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel                                                                     | 3.0 kB  00:00:00
elrepo-kernel/primary_db                                                          | 3.2 MB  00:00:17
Available Packages
elrepo-release.noarch                               7.0-6.el7.elrepo                        elrepo-kernel
kernel-lt.x86_64                                    5.4.249-1.el7.elrepo                    elrepo-kernel
kernel-lt-devel.x86_64                              5.4.249-1.el7.elrepo                    elrepo-kernel
kernel-lt-doc.noarch                                5.4.249-1.el7.elrepo                    elrepo-kernel
kernel-lt-headers.x86_64                            5.4.249-1.el7.elrepo                    elrepo-kernel
kernel-lt-tools.x86_64                              5.4.249-1.el7.elrepo                    elrepo-kernel
kernel-lt-tools-libs.x86_64                         5.4.249-1.el7.elrepo                    elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                   5.4.249-1.el7.elrepo                    elrepo-kernel
kernel-ml.x86_64                                    6.4.3-1.el7.elrepo                      elrepo-kernel
kernel-ml-devel.x86_64                              6.4.3-1.el7.elrepo                      elrepo-kernel
kernel-ml-doc.noarch                                6.4.3-1.el7.elrepo                      elrepo-kernel
kernel-ml-headers.x86_64                            6.4.3-1.el7.elrepo                      elrepo-kernel
kernel-ml-tools.x86_64                              6.4.3-1.el7.elrepo                      elrepo-kernel
kernel-ml-tools-libs.x86_64                         6.4.3-1.el7.elrepo                      elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                   6.4.3-1.el7.elrepo                      elrepo-kernel
perf.x86_64                                         5.4.249-1.el7.elrepo                    elrepo-kernel
python-perf.x86_64                                  5.4.249-1.el7.elrepo                    elrepo-kernel

yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y
#内核默认启动顺序
[root@client ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (6.4.3-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-3e4185a101a24cd88c8db432a7f43144) 7 (Core)


grub2-set-default 0

 reboot
 
 #删除旧内核
 yum remove kernel -y
 
 
 yum  -y install python-setuptools 

创建epel源

yum install -y epel*

[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[root@client ~]# vim /etc/yum.conf  #开启yum缓存
keepcache=1

yum clean all
su - cephu


admin节点对client授权


[cephu@admin my-cluster]$ ceph-deploy admin client
#client修改读写权限
[cephu@client ~]$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
[cephu@client ~]$ sudo vi /etc/ceph/ceph.conf #在global section下添加:
rbd_default_features = 1


client节点创建块设备镜像

rbd create foo --size 4096
---映射---
#映射到主机
[cephu@client ~]$ sudo rbd map foo --name client.admin
/dev/rbd0
#格式化块设备
sudo mkfs.ext4 -m 0 /dev/rbd/rbd/foo

[cephu@client ~]$ sudo mkdir /mnt/ceph-block-device
[cephu@client ~]$ sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
[cephu@client ~]$ cd /mnt/ceph-block-device
[cephu@client ceph-block-device]$ df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  452M     0  452M   0% /dev
tmpfs                   tmpfs     465M     0  465M   0% /dev/shm
tmpfs                   tmpfs     465M  6.6M  458M   2% /run
tmpfs                   tmpfs     465M     0  465M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  2.0G   16G  12% /
/dev/sda1               xfs      1014M  141M  874M  14% /boot
tmpfs                   tmpfs      93M     0   93M   0% /run/user/0
/dev/rbd0               ext4      3.8G   24K  3.8G   1% /mnt/ceph-block-device
[cephu@client ceph-block-device]$ sudo touch test.txt

客户端重起后,设备需要重新作映射,否则可能卡死。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jenkins 关闭关闭CSRF Protection(跨站请求伪造保护)

jenkins版本 我的jenkins版本是:2.332.4 背景 Jenkins版本自2.204.6以来的重大变更有:删除禁用 CSRF 保护的功能。 从较旧版本的 Jenkins 升级的实例将启用 CSRF 保护和设置默认的发行者,如果之前被禁用。 解决方法 老版本Jenkins的CSRF…

亚马逊云科技,迈向十年新进阶

编辑:阿冒 设计:沐由 自2013年进入国内至今,亚马逊云科技见证了中国数字经济开启量质齐升的十年。在这十年里,亚马逊云科技持续不断地帮助广大中国企业实现上云重塑和云上创新。 从一间公司的时间节点而言,无论是中文的…

mac批量修改文件名为不同名字

mac批量修改文件名为不同名字怎么弄?很多小伙伴通过私信向我求助,用什么方法可以在mac电脑上批量修改文件名称,将大量文件修改成不同的名称。这可能是一项比较麻烦的操作,在电脑上进行过批量重命名的小伙伴都知道,一般…

达梦sql执行计划、HINT、索引简单应用

目录 收集统计信息. 3 1. 通过DBMS_STATS包中的方法. 3 2、删除指定表的统计信息. 3 执行计划. 3 常用执行计划操作符. 4 统计指定sql执行号的所有操作符的执行时间. 5 HINT 5 并行操作:. 6 查询计划重用、结果集重用. 7 示例. 8 1、收集统计信息&#x…

上手vue2的学习笔记5之在vue2项目中调用elment-ui

前言 上手vue2的学习笔记4之搭建vue环境 参考链接:vue2.0项目引入element-ui 一、安装elment-ui 进入搭建的vue项目中 cd vue_bing_test 安装 element npm i element-ui二、引入elment-ui elment官方教程 将main.js改成如下内容: import Vue fro…

Proxy代理前后,Httpheader 的变化

Vite.config 配置Proxy服务器, 解决Rest API 访问SpringBoot接口时,跨域的Session一致性。 import { defineConfig, loadEnv } from viteexport default defineConfig({server: {proxy: {/rest: {target: loadEnv(, process.cwd()).VITE_API_URL,changeOrigin: tru…

argparse 模块参数

官方文档:https://docs.python.org/3.7/library/argparse.html 示例 def parse_config():parser argparse.ArgumentParser(descriptionarg parser) # 创建一个 ​​ArgumentParser​​ 对象(parser)parser.add_argument(--cfg_file, typestr, defaultNone, hel…

[相遇 Bug] - ImportError: numpy.core.multiarray failed to import

背景: 因为最近在看点云模型, 在自己的环境上部署该项目: https://github.com/open-mmlab/OpenPCDet/tree/master 执行命令: 这里执行github项目给的demo.py文件, 命令格式如下: python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --ckpt xxx/pointpillar_772…

WPF Prims框架详解

文章目录 前言Prism基本使用Prism选择,DryIoc还是UnityPrism基本框架搭建Prism动态更新View和ViewModel对应关系参数动态更新函数动态绑定 prism新建项目模板region使用事例测试是否限制空间 消息订阅如何使用消息订阅使用建议 路由导航对话框/弹窗功能实现代码 前言…

Element分页组件自定义样式

样式效果 页面代码 <el-paginationsize-change"handleSizeChange"current-change"handleCurrentChange":current-page"page.page":page-sizes"[10, 20, 30, 40]":page-size"page.size"layout"total, sizes, prev, …

HTML <map> 标签

实例 带有可点击区域的图像映射: <img src="planets.jpg" border="0" usemap="#planetmap" alt="Planets" /><map name="planetmap" id="planetmap"><area shape="circle" coords=&q…

Spring Boot 中的 @Field 注解详解

Spring Boot 中的 Field 注解详解 引言 Spring Boot 是目前 Java 生态圈中最受欢迎的 Web 应用开发框架之一&#xff0c;它提供了很多优秀的功能和工具&#xff0c;可以帮助开发者快速构建高效、可靠的 Web 应用程序。其中一个重要的功能就是数据绑定和验证&#xff0c;Sprin…

(阿里云)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到阿里云物联网平台

1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内&#xff08;注意不要弄错方向&#xff09; 同时接入天线 2.2 连接ST-Link仿真器 用3条杜邦线接…

DP485替代MAX485 RS485/RS422 收发器芯片

DP485E 是一款 5V 供电、半双工、低功耗、低摆率&#xff0c;完全满足 TIA/EIA-485 标准要求的 RS-485收发器。DP485E 工作电压范围为 4.75~5.25V&#xff0c;具备失效安全&#xff08;fail-safe&#xff09;、过温保护、限流保护、过压保护&#xff0c;控制端口热插拔输入等功…

飞行动力学 - 第10节-空间机动性、稳定性与操纵性概述 之 基础点摘要

飞行动力学 - 第10节-空间机动性、稳定性与操纵性概述 之 基础点摘要 1. 协调盘旋性能计算流程2. 一般盘旋2.1 动力学方程2.2 角点速度2.3 典型战斗机盘旋曲线 3. 空间机动能力4. 飞行动力学&#xff1a;飞行性能稳定性与操纵性5. 稳定性定义6. 飞行品质6.1 品质等级6.2 品质评…

从字节出来的测试总监,让我们用这份《测试用例规范》,再也没加班过。

经常看到无论是刚入职场的新人&#xff0c;还是工作了一段时间的老人&#xff0c;都会对编写测试用例感到困扰&#xff1f;例如&#xff1a; 固然&#xff0c;编写一份好的测试用例需要&#xff1a;充分的需求分析能力 理论及经验加持&#xff0c;作为测试职场摸爬打滚的老人&…

数据科学分析全流程步骤

知识图谱以结构化的“知识”来存储与表示海量数据&#xff0c;作为承载底层海量知识并支持上层智能应用的重要载体&#xff0c;它在智能时代中扮演了极其重要的角色。然而&#xff0c;由于知识图谱高度结构化的特点&#xff0c;我们常常需要构建结构化查询语句&#xff08;SPAR…

使用 jmeter 进行审批类接口并发测试

目录 前言&#xff1a; 背景&#xff1a; 难点&#xff1a; 场景 a&#xff1a; 场景 b&#xff1a; 前言&#xff1a; 使用JMeter进行审批类接口的并发测试是一种有效的方法&#xff0c;可以模拟多个用户同时对接口进行审批操作&#xff0c;以评估系统在高负载情况下的性…

LLM - DataCollatorForLanguageModeling 样本生成 by transformers

目录 一.引言 二.生成样本 By API 1.样本处理样式 2.DataCollatorForLanguageModeling 2.1 样本准备 2.2 API 生成 三.生成样本 By DIY 1.样本准备 2.data_colloator 实现 3.使用自定义 data_colloator 四.总结 一.引言 前面我们讲了 Baichuan7B 的 lora 微调步骤&a…

Qt添加第三方字体

最近开发项目时&#xff0c;据说不能用系统自带的微软雅黑字体&#xff0c;于是找一个开源的字体&#xff0c;思源黑体&#xff0c;这个是google和Adobe公司合力开发的可以免费使用。本篇记录一下Qt使用第三方字体的方式。字体从下载之家下载http://www.downza.cn/soft/266042.…