Ceph集群部署(基于ceph-deploy)

news2024/11/15 10:27:28

目录

部署Ceph集群的方法

Ceph生产环境推荐

部署Ceph实验(基于ceph-deploy)

一、准备工作

二、环境准备

1.关闭selinux与防火墙

2.修改主机名并且配置hosts解析映射

3.admin管理节点配置ssh免密登录node节点

4.安装常用软件和依赖包

5.配置时间同步

6.配置Ceph yum源

7.执行完上面所有的操作之后重启所有主机(可选)

三、部署Ceph集群

1.创建一个Ceph工作目录

2.安装ceph-deploy部署工具

3.手动安装Ceph软件包

4.配置集群网络

5.生成初始配置

6.初始化mon节点

7.使其它节点可以管理Ceph群集

8.部署osd存储节点

9.部署mgr节点

10.解决HEALTH_WARN问题

四、部署监控

1.安装ceph-mgr-dashboard

2.配置监控模块

3.设置账户以及密码

4.验证


部署Ceph集群的方法

ceph-deploy

  • 一个集群自动化部署工具,使用较久,成熟稳定,被很多自动化工具所集成,可用于生产部署

cephadm

  • 从 Octopus 和较新的版本版本后使用 cephadm 来部署 ceph 集群,使用容器和 systemd 安装和管理 Ceph 集群。目前不建议用于生产环境

二进制

  • 手动部署,一步步部署 Ceph 集群,支持较多定制化和了解部署细节,安装难度较大

Ceph生产环境推荐

  • 存储集群全采用万兆网络
  • 集群网络(cluster-network,用于集群内部通讯)与公共网络(public-network,用于外部访问Ceph集群)分离
  • mon、mds 与 osd 分离部署在不同主机上(测试环境中可以让一台主机节点运行多个组件)
  • OSD 使用 SATA 亦可
  • 根据容量规划集群
  • 至强E5 2620 V3或以上 CPU,64GB或更高内存
  • 集群主机分散部署,避免机柜的电源或者网络故障

部署Ceph实验(基于ceph-deploy)

一、准备工作

主机名 Public网络Cluster网络角色
admin 20.0.0.10admin(管理节点负责集群整体部署)、client
node0120.0.0.2020.0.10.20mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node0220.0.0.3020.0.10.30mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node0320.0.0.4020.0.10.40mon、osd(/dev/sdb、/dev/sdc、/dev/sdd)
client20.0.0.50client

5台虚拟机

  • admin:20.0.0.10
  • node01:20.0.0.20
  • node02:20.0.0.30
  • node03:20.0.0.40
  • client:20.0.0.50

二、环境准备

1.关闭selinux与防火墙

5台虚拟机相同操作

systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
mount /dev/sr0/ /mnt

2.修改主机名并且配置hosts解析映射

20.0.0.10(admin)

hostnamectl set-hostname admin
bash

20.0.0.20(node01)

hostnamectl set-hostname node01
bash

20.0.0.30(node02)

hostnamectl set-hostname node02
bash

20.0.0.40(node03)

hostnamectl set-hostname node03
bash

20.0.0.50(client)

hostnamectl set-hostname client
bash

配置host解析(5台虚拟机相同操作)

cat >> /etc/hosts << EOF
20.0.0.10 admin
20.0.0.20 node01
20.0.0.30 node02
20.0.0.40 node03
20.0.0.50 client
EOF

3.admin管理节点配置ssh免密登录node节点

20.0.0.10(admin)

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@admin
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@node01
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@node02
sshpass -p 'jlh123' ssh-copy-id -o StrictHostKeyChecking=no root@node03

4.安装常用软件和依赖包

5台虚拟机相同操作

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum -y install yum-plugin-priorities yum-utils ntpdate python-setuptools python-pip gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel tcl tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo libconfig git bind-utils tmux elinks numactl iftop bwm-ng net-tools expect snappy leveldb gdisk python-argparse gperftools-libs conntrack ipset jq libseccomp socat chrony sshpass

5.配置时间同步

5台虚拟机相同操作

systemctl enable --now chronyd
timedatectl set-ntp true					#开启 NTP
timedatectl set-timezone Asia/Shanghai		#设置时区
chronyc -a makestep							#强制同步下系统时钟
timedatectl status							#查看时间同步状态
chronyc sources -v							#查看 ntp 源服务器信息
timedatectl set-local-rtc 0					#将当前的UTC时间写入硬件时钟

#重启依赖于系统时间的服务
systemctl restart rsyslog 
systemctl restart crond

#关闭无关服务
systemctl disable --now postfix

6.配置Ceph yum源

wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate
rpm -ivh ceph-release-1-1.el7.noarch.rpm --force

7.执行完上面所有的操作之后重启所有主机(可选)

sync         #确保数据写入磁盘
reboot

三、部署Ceph集群

1.创建一个Ceph工作目录

4台节点虚拟机都创建一个 Ceph 工作目录,后续的工作都在该目录下进行

mkdir -p /etc/ceph

2.安装ceph-deploy部署工具

20.0.0.10(admin)

cd /etc/ceph
yum install -y ceph-deploy
ceph-deploy --version

3.手动安装Ceph软件包

4台节点虚拟机

#若阿里云在线源安装较慢,可使用命令切换为清华大学在线源
sed -i 's#download.ceph.com#mirrors.tuna.tsinghua.edu.cn/ceph#' /etc/yum.repos.d/ceph.repo
yum install -y ceph-mon ceph-radosgw ceph-mds ceph-mgr ceph-osd ceph-common ceph

4.配置集群网络

3台node虚拟机添加一个新网卡

3台node虚拟机配置新网卡

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36

systemctl restart network
ifconfig                      #查看设置是否成功

5.生成初始配置

20.0.0.10(admin)

cd /etc/ceph
ceph-deploy new --public-network 20.0.0.0/24 --cluster-network 20.0.10.0/24 node01 node02 node03

6.初始化mon节点

20.0.0.10(admin)

cd /etc/ceph
ceph-deploy mon create node01 node02 node03			
#创建mon节点,由于monitor使用Paxos算法,其高可用集群节点数量要求为大于等于3的奇数台
 
ceph-deploy --overwrite-conf mon create-initial		
#配置初始化 mon 节点,并向所有节点同步配置
# --overwrite-conf 参数用于表示强制覆盖配置文件
 
ceph-deploy gatherkeys node01						
#可选操作,向node01节点收集所有密钥
——————————————————————————————————————————————————————————————————————————————————————-
 
#命令执行成功后会在 /etc/ceph 下生成配置文件
ls /etc/ceph
ceph.bootstrap-mds.keyring			#引导启动 mds 的密钥文件
ceph.bootstrap-mgr.keyring			#引导启动 mgr 的密钥文件
ceph.bootstrap-osd.keyring			#引导启动 osd 的密钥文件
ceph.bootstrap-rgw.keyring			#引导启动 rgw 的密钥文件
ceph.client.admin.keyring			#ceph客户端和管理端通信的认证密钥,拥有ceph集群的所有权限
ceph.conf
ceph-deploy-ceph.log
ceph.mon.keyring
——————————————————————————————————————————————————————————————————————————————————————-
 
#在 node 三个节点上查看自动开启的 mon 进程
ps aux | grep ceph
 
#在管理节点查看 Ceph 集群状态
cd /etc/ceph
ceph -s
  
#查看 mon 集群选举的情况
ceph quorum_status --format json-pretty | grep leader
 
#扩容 mon 节点
ceph-deploy mon add <节点名称>

7.使其它节点可以管理Ceph群集

20.0.0.10(admin)

cd /etc/ceph
ceph-deploy admin node01 node02 node03			
#本质就是把 ceph.client.admin.keyring 集群管理认证文件拷贝到各个节点

ceph -s             #所有节点都可查看集群状态

8.部署osd存储节点

3台node虚拟机各添加三个硬盘

查看3台node虚拟机新硬盘

#主机添加完硬盘后不要分区,直接使用
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan          #在线刷新新硬盘

lsblk          #查看新硬盘

20.0.0.10(admin)

  • 添加osd存储节点
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdb
 
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdc
 
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdd

ceph -s          #查看ceph集群状态

9.部署mgr节点

20.0.0.10(admin)

cd /etc/ceph
ceph-deploy mgr create node01 node02
————————————————————————————————————————————————————————————————————————————————————

#ceph-mgr守护进程以Active/Standby模式运行,可确保在Active节点或其ceph-mgr守护进程故障时,其中的一个Standby实例可以在不中断服务的情况下接管其任务。根据官方的架构原则,mgr至少要有两个节点来进行工作。
————————————————————————————————————————————————————————————————————————————————————

ceph -s            #查看集群
ceph osd status    #查看 osd 状态,需部署 mgr 后才能执行
ceph osd df        #查看 osd 容量,需部署 mgr 后才能执行

10.解决HEALTH_WARN问题

ceph config set mon auth_allow_insecure_global_id_reclaim false     #禁用不安全模式
ceph -s          #查看ceph集群信息

四、部署监控

1.安装ceph-mgr-dashboard

在Active节点上设置:20.0.0.20(node01)

yum install -y ceph-mgr-dashboard
ceph mgr module ls | grep dashboard

2.配置监控模块

在Active节点上设置:20.0.0.20(node01)

开启 dashboard 模块
ceph mgr module enable dashboard --force
 
禁用 dashboard 的 ssl 功能
ceph config set mgr mgr/dashboard/ssl false
 
配置 dashboard 监听的地址和端口
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8000
 
重启 dashboard
ceph mgr module disable dashboard
ceph mgr module enable dashboard --force
 
确认访问 dashboard 的 url
ceph mgr services

3.设置账户以及密码

在Active节点上设置:20.0.0.20(node01)

echo "12345678" > dashboard_passwd.txt
ceph dashboard set-login-credentials admin -i dashboard_passwd.txt

4.验证

浏览器访问:http://20.0.0.20:8000 ,账号密码为 admin/12345678

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

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

相关文章

【全网最全最详细】Spring与SpringBoot最新面试题

目录 一、Spring框架概述 1.1 什么是Spring&#xff1f; 1.2 spring优点有哪些&#xff1f; 二、IOC与DI 2.1 你知道getBean方法的有几种重载方式吗&#xff1f; 2.2 Spring有几种依赖注入方式&#xff1f; 2.3 为什么Spring不建议使用字段注入方式&#xff1f; 2.4 B…

数据结构_顺序表专题

何为数据结构&#xff1f; 咱今天也来说道说道...... 数据结构介绍 准确概念 数据结构就是计算机存储、组织数据的方式 概念分析 从上句分析&#xff0c;数据结构是一种方式。一种管理数据的方式。为了做什么&#xff1f;为的就是计算机存储数据&#xff0c;组织数据。 …

docker部署seata 2.0.0

环境准备 当前使用的环境&#xff1a; MySQL&#xff1a;8.0 nacos&#xff1a;2.2.3 关于如何在docker中部署nacos 2.2.3&#xff0c;请参考之前文章&#xff1a; docker部署nacos 2.2.3 拉取镜像 docker pull seataio/seata-server:2.0.0查看nacos、mysql、宿主机的ip d…

探索Facebook:数字社交的魔力源泉

在当今信息爆炸和全球互联的时代&#xff0c;社交媒体平台成为了人们生活中不可或缺的一部分。而在这些平台中&#xff0c;Facebook无疑是最具影响力和创新性的代表之一。自2004年成立以来&#xff0c;Facebook不仅改变了人们的沟通方式&#xff0c;更通过不断的技术创新和用户…

Oracle查询超时问题,聊聊思路!

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

【系统架构设计师】九、软件工程(面向对象方法|逆向工程)

目录 六、面向对象方法 6.1 基本概念 6.2 面向对象的分析 6.2.1 用例关系 6.2.2 类之间的关系 6.3 面向对象的设计 6.4 面向对象设计原则与设计模式 6.5 面向对象软件的测试 七、逆向工程 历年真题练习 六、面向对象方法 面向对象的分析方法 (Object-Oriented Analys…

C++初阶:类和对象(二)

✨✨所属专栏&#xff1a;C✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 类的默认成员函数 默认成员函数就是用户没有显式实现&#xff0c;编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类&#xff0c;我们不写的情况下编译器会默认⽣成以下6个默认成员函数&#xff0c;需要注…

Verilog基础:简单标识符和转义标识符

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 标识符(identifier)是一个为了引用而给一个对象起的名字。一个标识符可以是一个简单标识符&#xff0c;也可以是一个转义标识符。本文将对两者进行详细阐述。 简…

ctfshow-web入门-php特性(web109-web115)

目录 1、web109 2、web110 3、web111 4、web112 5、web113 6、web114 7、web115 1、web109 正则匹配要求 v1 和 v2 都包含字母&#xff0c;eval 函数将字符串作为 PHP 代码执行&#xff1a;new $v1 创建一个名为 v1 的类的实例&#xff0c;($v2()) 调用 v2 方法&#xff…

使用Nginx OpenResty与Redis实现高效IP黑白名单管理

1、引言 在当今数字化时代&#xff0c;网络安全已成为企业和个人用户关注的焦点。IP黑白名单作为一种有效的网络安全策略&#xff0c;允许我们精确控制对Web资源的访问权限。通过白名单&#xff0c;我们可以确保只有可信的IP地址能够访问敏感资源&#xff1b;而黑名单则可以阻…

gptpdf:使用大模型(如 GPT-4o)将 PDF 解析为 markdown。

今天给大家分享一个开源的项目&#xff0c; 使用视觉大语言模型&#xff08;如 GPT-4o&#xff09;将 PDF 解析为 markdown。 方法非常简单(只有293行代码)&#xff0c;但几乎可以完美地解析排版、数学公式、表格、图片、图表等。 使用 GeneralAgent lib 与 OpenAI API 交互。…

链接追踪系列-08.mac m1安装logstash-番外

下载地址&#xff1a;https://elasticsearch.cn/download/ 配置es相关&#xff1a; #安装plugin&#xff1a; jelexbogon bin % ./logstash-plugin install logstash-codec-json_lines启动&#xff1a;指定配置文件运行 jelexbogon bin % nohup ./logstash -f ../config…

破解YouTube限制:保姆级教程,轻松查看博主邮箱

近期YouTube取消了博主的邮箱展示&#xff0c;这造成了不小的轰动&#xff0c;给想要联系博主的粉丝和想要寻求网红合作的品牌都带来了极大的不便。但这难不倒万能的网友&#xff01;最新发现&#xff0c;通过一串神秘代码可以在YouTube上查看到博主的邮箱&#xff0c;这里Nox聚…

微信小游戏 彩色试管 倒水游戏 逻辑 (二)

最近开始研究微信小游戏&#xff0c;有兴趣的 可以关注一下 公众号&#xff0c; 记录一些心路历程和源代码。 定义一个 Water class 1. **定义接口和枚举**&#xff1a; - WaterInfo 接口定义了水的颜色、高度等信息。 - PourAction 枚举定义了水的倒动状态&#xff0c;…

Gil-Pelaez inversion

一、特征函数 A.随即变量的特征函数定义与性质 B.特征函数与PDF的关系 傅里叶变换:C.特征函数与矩函数关系 二、Gil-Pelaez反演定理 输入功率 P i n P_{in}

Kotlin标准函数(语法糖)let with run also apply快速讲解

目录 1、知识储备——扩展函数 原理 定义扩展函数 调用扩展函数 2、返回值为上下文对象的标准函数 apply also 3、返回值为Lambda表达式结果 let run with 4、一表总结 1、知识储备——扩展函数 原理 Kotlin 在不继承父类或实现接口下&#xff0c;也能扩展一个类的…

Linux进程通信--共享内存

文章目录 概述共享内存基本原理共享内存的操作创建共享内存函数接口形成key--fotk创建共享内存代码演示补充指令集--ipc的指令key和shmid区别创建并获取共享内存代码 删除共享内存函数接口删除共存内存函数代码演示 共享内存段连接到进程地址空间函数接口代码演示 取消关联代码…

真空油炸机的特点是什么?

真空油炸机的特点&#xff0c;如同一位技艺精湛的厨师&#xff0c;不仅确保了食材的完美呈现&#xff0c;更在科技与传统工艺之间找到了完美的平衡。 首先&#xff0c;真空油炸机以其独特的真空环境&#xff0c;为食材打造了一个低氧、低压的烹饪空间。在这样的环境中&#xff…

LabVIEW比例压力控制阀自动测试系统

开发了一套基于LabVIEW编程和PLC控制的比例控制阀自动测试系统。该系统能够实现共轨管稳定的超高压供给&#xff0c;自动完成比例压力控制阀的耐久测试、流量滞环测试及压力-流量测试。该系统操作简便&#xff0c;具有高精度和高可靠性&#xff0c;完全满足企业对自动化测试的需…

vue3中谷歌地图+外网申请-原生-实现地址输入搜索+点击地图获取地址回显 +获取国外的geoJson实现省市区级联选择

一. 效果&#xff1a;输入后显示相关的地址列表&#xff0c;选中后出现标示图标和居中定位 1.初始化谷歌地图 在index.html加上谷歌api请求库 <script src"https://maps.googleapis.com/maps/api/js?key申请到的谷歌地图密钥&vweekly&librariesgeometry,place…