centos 7.3 快速安装ceph

2023-11-02

Ceph简介

     Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统

 

 

部署逻辑架构

 

 

准备3台主机,并且修改主机名(hostnamectl set-hostname xxx 后重启)

 

IP地址            主机名(Hostname)

 

192.168.1.24                    node1(用该主机同时作为管理和监控节点)

192.168.1.25                    node2 (osd.0 节点)

192.168.1.26                    node3 (osd.1 节点)

 

 

 

在各节点上安装启用软件仓库,启用可选软件库

 

# sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*

 

# sudo yum install yum-plugin-priorities

 

 

修改node1节点/etc/hosts文件,增加以下内容:

 

192.168.1.24              node1

192.168.1.25              node2

192.168.1.26              node3

 

 

分别这三个节点上存储创建用户且赋予它root权限(本人这里用 ytcwd)

执行

# sudo useradd -d /home/ytcwd  -m  ytcwd

# sudo passwd ytcwd( 输入密码这里建议三台服务器密码设为一致)

  

//授予无密码sudo权限

#echo "ytcwd ALL = (root) NOPASSWD:ALL" >> /etc/sudoers.d/ytcwd

#sudo chmod 0440 /etc/sudoers.d/ytcwd

 

 

允许无密码 SSH 登录 因为 ceph-deploy 不支持输入密码,你必须在管理节点上生成 SSH 密钥并把其公钥分发到各 Ceph 节点。 ceph-deploy 会尝试给初始 monitors 生成 SSH 密钥对。生成 SSH 密钥对,使用创建的用户不要用 sudo 或 root 。

# ssh-keygen(提示 “Enter passphrase” 时,直接回车,口令即为空如下)

 

Generating public/private key pair.

Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /ceph-admin/.ssh/id_rsa.

Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.

 

 

//把公钥拷贝到各 Ceph 节点上

#ssh-copy-id  ytcwd@node1

#ssh-copy-id  ytcwd@node2

#ssh-copy-id  ytcwd@node3

 

 

在管理节点node1 上修改~/.ssh/config文件(若没有则创建)增加一下内容:

 

Host    node1

Hostname  192.168.1.24

User              ytcwd

Host    node2

Hostname  192.168.1.25

User              ytcwd

Host    node3

Hostname  192.168.1.26

User              ytcwd

 

在各节点上安装ntp(防止时钟偏移导致故障)、openssh

 

#sudo yum install ntp ntpdate ntp-doc

#sudo yum install openssh-server

 

 

在各节点上配置防火墙开放所需要的端口和selinux,更新系统

 

#sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent

//或者关闭防火墙

#sudo systemctl stop firewalld

#sudo systemctl disable firewalld

 

//关闭selinux

#sudo vim /etc/selinux/config

修改 SELINUX=disabled

 

 

 

 

在各节点上创建ceph 源(本人这里选择的jewel,这里推荐使用网易或阿里的ceph源,若用官方源文件会很慢而且容易出现下载失败中断等问题,本人深受下载官方源的坑害)

 

在 /etc/yum.repos.d/目录下创建 ceph.repo然后写入以下内容


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

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

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

 

 

在管理节点nod1上进行安装准备(使用ytcwd用户)

 

//新建文件夹ceph-cluster

$cd ~

$mkdir ceph-cluster

$cd ceph-cluster

 

//安装ceph-deploy

# sudo yum install ceph-deploy

 

//若安装ceph后遇到麻烦可以使用以下命令进行清除包和配置

#ceph-deploy purge node1 node2 node3

#ceph-deploy purgedata node1 node2 node3

#ceph-deploy forgetkeys

 

安装ceph创建集群

 

//进入到创建ceph-cluster文件夹下,执行命令

#ceph-deploy new node1 node2 node3

 

//在生成的ceph.conf中加入(写入[global] 段下)

osd pool default size = 2

 

//如果你有多个网卡,可以把 public network 写入 Ceph 配置文件的 [global] 段下

#public network = {ip-address}/{netmask}

 

//安装ceph

#ceph-deploy install node1 node2 node3

 

//配置初始 monitor(s)、并收集所有密钥

# ceph-deploy mon create-initial

 

新建osd

 

//添加两个 OSD ,登录到 Ceph 节点、并给 OSD 守护进程创建一个目录。

#ssh node2

#sudo mkdir /var/local/osd0

#exit

 

#ssh node3

#sudo mkdir /var/local/osd1

#exit

 

//然后,从管理节点执行 ceph-deploy 来准备 OSD

#ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1

 

//最后,激活 OSD

#ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1

 

//确保你对 ceph.client.admin.keyring 有正确的操作权限。

    #sudo chmod +r /etc/ceph/ceph.client.admin.keyring

 

//检查集群的健康状况

#ceph health等 peering 完成后,集群应该达到 active + clean 状态。

 

 

安装过程中可能遇到的问题的解决方法:

 

#ceph-deploy install node1 node2 node3 时报错:

(1) [ceph_deploy][ERROR ]RuntimeError: Failed to execute command: yum -y install epel-release

 

解决方法:

#yum -y remove ceph-release

 

(2)   [admin-node][WARNIN] Anotherapp is currently holding the yum lock; waiting for it to exit...

 

解决方法:

  #rm -f /var/run/yum.pid

 

#ceph-deploy osd activate node1 node2 node2报错

(1)若出现l类似错误:ceph-disk: Error: No cluster conf found in /etc/ceph with fsid c5bf8efd-2aea-4e32-85ca-983f1e5b18e7

 

   解决方法:

   这是由于fsid的配置文件不一样,导致的,修改对应节点的fsid与管理节点的fid一致即可

 

 

   (2)若出现[ceph_deploy][ERROR ] RuntimeError: Failedto execute command: /usr/sbin/ceph-disk -v activate --mark-init systemd --mount/var/local/osd0 

 

解决方法:

 

在各个节点上给/var/local/osd1/和/var/local/osd1/添加权限

 

如下:

 

  chmod 777  /var/local/osd0/

 

  chmod 777  /var/local/osd0/*

 

  chmod 777  /var/local/osd1/

 

  chmod 777  /var/local/osd1/*

 

 

当你的ceph集群出现如下状况时,
$ ceph -s
    cluster 3a4399c0-2458-475f-89be-ff961fbac537
     health HEALTH_WARN clock skew detected on mon.1, mon.2
     monmap e17: 3 mons at {0=192.168.0.5:6789/0,1=192.168.0.6:6789/0,2=192.168.0.7:6789/0}, election epoch 6, quorum 0,1,2 0,1,2
     mdsmap e39: 0/0/1 up
     osdmap e127: 3 osds: 3 up, 3 in
      pgmap v280: 576 pgs, 3 pools, 0 bytes data, 0 objects
            128 MB used, 298 GB / 298 GB avail
                 576 active+clean

$ ceph health detail
HEALTH_WARN clock skew detected on mon.1, mon.2
mon.1 addr 192.168.0.6:6789/0 clock skew 8.37274s > max 0.05s (latency 0.004945s)
mon.2 addr 192.168.0.7:6789/0 clock skew 8.52479s > max 0.05s (latency 0.005965s)
这说明几个节点之间的时间同步出现了问题。

一个简单的解决办法就是:
1)停掉所有节点的ntpd服务,如果有的话
$ /etc/init.d/ntpd stop

2) 同步国际时间
$ ntpdate time.nist.gov

3) 如果执行完以上两步仍有报错,则需要重启所有monitor

另外一个办法就是重新配置ntp服务。

 

 

mon故障问题:

故障现象:            health HEALTH_WARN 1 mons down, quorum 0,1 ceph-mon1,ceph-mon2

具体解决办法:

mon 故障处理:

[root@TDXY-ceph-01 ~]# ceph -s

    cluster 00000000-0000-0000-0001-000000000010

     health HEALTH_WARN 23 pgs degraded; 41 pgs peering; 31 pgs stale; 12 pgs stuck inactive; 24 pgs stuck unclean; recovery 7/60 objects degraded (11.667%); too few pgs per osd (4 < min 20); 4/45 in osds are down; 1 mons down, quorum 0,1,2,3 TDXY-ceph-02,TDXY-ceph-04,TDXY-ceph-05,TDXY-ceph-07

     monmap e1: 5 mons at {TDXY-ceph-01=0.0.0.0:0/1,TDXY-ceph-02=10.10.120.12:6789/0,TDXY-ceph-04=10.10.120.14:6789/0,TDXY-ceph-05=10.10.120.15:6789/0,TDXY-ceph-07=10.10.120.17:6789/0}, election epoch 38, quorum 0,1,2,3 TDXY-ceph-02,TDXY-ceph-04,TDXY-ceph-05,TDXY-ceph-07

 

[root@TDXY-ceph-01 ~]# ceph mon remove TDXY-ceph-01

[root@TDXY-ceph-01 ~]# rm -rf /var/lib/ceph/mon/ceph-TDXY-ceph-01

[root@TDXY-ceph-01 ~]# ceph-mon --mkfs -i TDXY-ceph-01 --keyring /etc/ceph/ceph.mon.keyring

[root@TDXY-ceph-01 ~]# touch /var/lib/ceph/mon/ceph-TDXY-ceph-01/done

[root@TDXY-ceph-01 ~]# touch /var/lib/ceph/mon/ceph-TDXY-ceph-01/sysvinit

[root@TDXY-ceph-01 ~]# service ceph start mon

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos 7.3 快速安装ceph 的相关文章

  • AES加解密local_policy.jar包下载

    AES加密 AES加密的五种模式 ECB Electronic Codebook Book 电码本模式 将明文分成若干段相同的小段 不足补齐 然后依次对每一小段进行加密后输出密文 ECB模式的弱点在于 相同的明文会产生相同的密文 容易遭到字
  • 【转载】C#之密封类(sealed class)

    C 之密封类 sealed class 密封类 sealed 修饰符可以应用于类 实例方法和属性 密封类不能被继承 密封方法会重写基类中的方法 但其本身不能在任何派生类中进一步重写 当应用于方法或属性时 sealed 修饰符必须始终与 ov
  • 单细胞测序的原理及应用

    单细胞测序技术自2009年问世 2013年被Nature Methods评为年度技术以来 越来越多地被应用在科研领域 2015年至今 10X Genomics Drop seq Micro well Split seq等技术的出现 彻底降低
  • LeetCode - 数独类题目总结

    什么是数独 数独是源自18世纪瑞士的一种数学游戏 是一种运用纸 笔进行演算的逻辑游戏 玩家需要根据9 9盘面上的已知数字 推理出所有剩余空格的数字 并满足每一行 每一列 每一个粗线宫 3 3 内的数字均含1 9 不重复 1 数独盘面是个九宫
  • PS工具的使用

    PS工具的使用 要求 1 会简单的抠图 2 会简单的修改PSD效果图 3 熟练的切图 4 与设计师 美工沟通 1 按拖拽工具 可以将其他的图片拖拽到另一个图片里面去 2 ctrl T可以改变图像的大小 变换过程中 按住shirt键 可以等比
  • JS逆向04之xhr断点webpack抠代码,图文并茂,导出加密函数。

    说明 本文只针对新手入门了解 高手绕道 只做技术性研究 请勿用于非法渠道 目标 https www gm99 com 前言 1 首先准备Chrome内核浏览器 我用的360极速版浏览器 2 打开目标网址 按F12或者网页空白处右键审查元素
  • 1 如何在计算机中表示一个词的意思?

    本章主要介绍了 如何在计算机中表示一个词的意思 从WordNet OneHot 到最重要的Word2Vec算法 参考 https www zhihu com column c 1507074362628374528 https zhuanl
  • Linux服务器-Linux服务器的类型

    Linux系统发行版本 当前市面上流行的Linux系统主要分为Readhat和Debian两大系列 而android底层直接用linux原版内核 2 一 Redhat系列 Redhat 主要是服务器型Linux 商用收费 RHEL是Red
  • CSS ul li 缩进控制,各版本兼容设置,文章第一行缩进两汉字

    CSS ul li 缩进控制 各版本兼容设置 将margin 和padding 都设置成0 ul list style type none margin 0px padding 0px text indent 2em 这句话的目的就是为了让
  • UncaughtExceptionHandler示例使用

    概述 UncaughtExceptionHandler是用来catch线程内的没有被捕获到的exception 可以在uncaughtException方法中对这些异常进行统一处理 用法 UncaughtExceptionHandler是一
  • windows切换窗口快捷键

    切换窗口实际看上去也不复杂 但是一旦打开的软件窗口多了 单纯的用眼搜索查找 鼠标点击效率还是有点低 IDE有快捷键 windows也有快捷键 感觉也可以总感觉汇总一个 这里就是关于windows切换窗口的几个快捷键 1 crtl tab 这
  • 西门子S120常见故障F7900及其排查方法

    西门子S120作为一款高性能伺服驱动器 其强大的功能和优越的控制性能得到了广大用户的一致好评和青睐 借助强大的调试软件可以方便完成S120的调试 但对于初步接触和使用该产品的工程师来说 调试过程中往往会遇到一些简单的问题 由于缺乏经验而导致
  • 线性代数学习笔记4——矩阵的逆

    在进行矩阵的运算的时候 我们会发现我们没有定义矩阵的除法 但是经常又需要做类似的操作 因而我们引入矩阵的逆的概念 用以填补这个空白 矩阵的逆 由于我们在定义矩阵运算的时候只定义了数乘和矩阵乘法 而没有除法运算 和逆元的产生一样 我们为了定义
  • AutoDL算力平台租用GPU服务器+VSCode远程开发同步代码

    文章目录 一 关于租GPU服务器 二 使用XShell连接刚租的服务器 三 VSCode远程开发 四 VSCode SFTP插件实现本地代码与远程代码同步 一 关于租GPU服务器 理由 便宜好用 性价比高 https www autodl
  • Mybatis-plus3.5.1+版代码自动生成(FastAutoGenerator)

    该方法仅适用于mybatis plus 3 5 1 以上的版本 准备工作 Maven依赖 注意版本 该方法有可能因为版本的问题出现错误
  • 初学编程100个代码

    Java Python等主流编程语言如今火的不行 初学编程都有哪100个代码呢 笔者结合实际开发经验和同学们最迫切关注的技术热点 总结了100个常用的代码实现 具体如下 1 输出 Hello World print Hello World
  • 客户端负载均衡及透明应用切换(TAF)tnsnames failover=on

    客户端负载均衡及透明应用切换 TAF 这是客户端的一种功能 要在客户端的tnsnames ora中设置本地服务命名相应的参数 LOAD BALANCE ON和FAILOVER ON FAILOVER MODE参数 来启用客户端负载均衡和TA
  • springboot-mvc+扩展SpringMVC+@EnableWebMvc+修改自动化配置

    1 Spring MVC auto configuration https docs spring io spring boot docs 1 5 9 RELEASE reference htmlsingle boot features s
  • 定时器0工作方式1

    include
  • 在GPU上运行pytorch程序(指定单/多显卡)

    目录 1 使用CUDA VISIBLE DEVICES 2 使用cuda 和torch cuda set device 3 使用device 4 使用torch nn DataParallel 1 使用CUDA VISIBLE DEVICE

随机推荐

  • error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token

    头文件函数声明少了 分号 转载于 https www cnblogs com xuyh p 3794479 html
  • 分治算法例题

    分治算法例题 leetcode 23 给你一个链表数组 每个链表都已经按升序排列 请你将所有链表合并到一个升序链表中 返回合并后的链表 示例 1 输入 lists 1 4 5 1 3 4 2 6 输出 1 1 2 3 4 4 5 6 解释
  • WPF混合开发之WebView2(一) 简介及环境搭建

    目录 引言 WebView2系统要求 WebView2下载安装 结语 引言 在WPF开发中 经常会有混合开发的需求 即在WPF中加载网页 目前最常用也是最流行的方式是CefSharp 它的功能非常强大 可以提供较为完善的开发和使用体验 但是
  • 输出过压保护电路的设计思路

    输出过压保护电路的设计思路 开关电源在使用过程中会发生输出电压过高或者过低的现象 开关电源存在一个额定电压 如果超出额定电压就可能超出输出电容的耐压值 电源会因此发热击穿而烧毁甚至起火 因此设计出不同类型的保护电路 当控制电路失效或其他故障
  • nginx基础1——工作原理、安装配置、命令参数

    文章目录 一 基本了解 1 1 特性优点 1 2 功能应用 1 3 工作模块分类 1 4 模块配置方法 二 工作原理 三 安装与配置 四 常用命令 一 基本了解 nginx简介 nginx是一款轻量级的Web服务器 反向代理服务器及电子邮件
  • error:Spring项目启动卡死在parsed mapper file: */*.xml 无报错日志

    1 报错如下 Parsed mapper file file D 2401 JavaWorkSpace rmt dec service target classes mapper RirdMapper xml 2 解决办法 1 检查项目本身
  • LeetCode 477. Total Hamming Distance

    题目链接 点击这里 题意 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量 计算一个数组中 任意两个数之间汉明距离的总和 class Solution public int totalHammingDistance vect
  • Nginx 性能优化有这篇就够了!

    目录 1 Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2 如果不了解cpu的核数 可以top命令之后按1看出来 也可以查看 proc cpuinfo文件 grep processor proc cp
  • 饼图、柱形图、堆积柱、折线图、散点图,到底应该怎么选?

    随着数字经济的发展 各行业的数据都出现了爆炸式的增长 如何快速从海量数据中提取出有效信息 最大化地挖掘数据价值 是所有转型的企业都在面临的问题 想要快速直观地以易于理解 内容简单的方式了解相关数据 就需要数据可视化来帮忙 数据可视化作为当今
  • 微前端总结

    微前端 核心价值 微前端架构具备以下几个核心价值 技术栈无关 主框架不限制接入应用的技术栈 微应用具备完全自主权 独立开发 独立部署 微应用仓库独立 前后端可独立开发 部署完成后主框架自动完成同步更新 增量升级 在面对各种复杂场景时 我们通
  • 限流-漏桶算法、令牌桶算法

    1 问题 系统的某个接口访问量突然激增 没多久接口崩溃 形成连锁反应 导致整个系统崩溃 如何应对这种情况呢 为我们的接口加上 保险丝 预防这种突发情况 接口压力过大 造成整个系统瘫痪 当接口流量过大时 我们可以通过拒绝访问或等待等机制 即限
  • 【Python 基础篇】Python中的 __name__ == ‘__main__’ 详解

    学习过C语言或者Java语言的盆友应该都知道程序运行必然有主程序入口main函数 而python却不同 即便没有主程序入口 程序一样可以自上而下对代码块依次运行 然后python不少开源项目或者模块中依然存在 name main 这种写法
  • avalonjs 中的if else实现的几种方法

    在学习avalonjs的过程中 发现模板中并没有if else这样的写法 不像tempalte ejs这些 所以总结了三种方法来实现 仅供在使用avalonjs的同学参考 主要是通过ms if 表达式和方法来实现 1 开始前的准备 首先是做
  • SparkSQL DSL 语法

    SparkSQL DSL 语法 DataFrame 提供一个特定领域语言 domain specific language DSL 去管理结构化的数据 可以在 Scala Java Python 和 R 中使用 DSL 使用 DSL 语法风
  • 模型解释性:PFI、PDP、ICE等包的用法

    本篇主要介绍几种其他较常用的模型解释性方法 1 Permutation Feature Importance PFI 1 1 算法原理 置换特征重要性 Permutation Feature Importance 的概念很简单 其衡量特征重
  • Linux下使用TCP协议完成一个简单的client-service通信

    最近学习了网络编程 简单分享一下自己学习的内容 TCP协议简介 TCP向应用层提供了一个可靠的 有序的 面向连接的 基于字节流的全双工的通信协议 它能提供高可靠性通信 即数据无误 数据无丢失 数据无失序 数据无重复 三次握手协议 TCP是面
  • 详解Java中的Base64原理跟用法

    简介 Base64编码 是我们程序开发中经常使用到的编码方法 它是一种基于用64个可打印字符来表示二进制数据的表示方法 它通常用作存储 传输一些二进制数据编码方法 也是MIME 多用途互联网邮件扩展 主要用作电子邮件标准 中一种可打印字符表
  • Qt源码重新编译QtMultimedia模块解决XP播放视频问题

    当用qml的MediaPlayer在XP系统下播放视频时 会报错 QtMultimedia defaultServiceProvider requestService no service found for org qt project
  • Mac和Linux远程连接服务器异常修复(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)

    一 今天在使用SSH 连接远程服务器的时候 刚开始是没问题的 后来阿里云主机重装了一下系统后 再也连不上了 一直报一个错 22 49 52 ssh root 47 98 233 15 WARNING REMOTE HOST IDENTIFI
  • centos 7.3 快速安装ceph

    Ceph简介 Ceph是一种为优秀的性能 可靠性和可扩展性而设计的统一的 分布式文件系统 部署逻辑架构 准备3台主机 并且修改主机名 hostnamectl set hostname xxx 后重启 IP地址 主机名 Hostname 19