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

目录

部署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

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

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

相关文章

807.力扣每日一题7/14 Java(执行用时分布击败100%)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 解题思路 解题过程 时间复杂度 空间复杂度 Code 解题思路 首先…

C语言--递归

曾经有一个段子&#xff1a;上大学时&#xff0c;我们的c语言老师说&#xff1a;学c时&#xff0c;如果有50%的同学死在了循环上面&#xff0c;那么就有90%的同学死在了递归上面。接下来&#xff0c;就来看看递归是怎么个事&#xff1f; 一.递归的介绍 递归是指一个函数直接或…

护佑未来!引领儿童安全新时代的AI大模型

引领儿童安全新时代的AI大模型 一. 前言1.1 AI在儿童安全方面的潜在作用1.2 实时监控与预警1.3 个性化安全教育与引导1.4 家长监护与安全意识提升 二. AI大模型的优势2.1. 保护儿童隐私和安全的重要性2.2. AI大模型如何应用于儿童安全领域2.1 儿童内容过滤2.2.1 儿童行为监测 2…

算法力扣刷题记录 四十四【222.完全二叉树的节点个数】

前言 二叉树篇继续。 记录 四十四【222.完全二叉树的节点个数】 一、题目阅读 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都…

Java时间复杂度介绍以及枚举

时间复杂度 从小到大&#xff1a; O(1) 常数阶。复杂度为O(1)与问题规模无关 线性阶 O&#xff08;n&#xff09;比如一个for循环中代码执行n遍 n阶 对数阶 int n9; int i1; while(i<n) { i*2; } 2^x>n时候退出。次数xlog2^n 时间复杂度为O(logN) 根号阶 int…

09 函数基础

目录 一、定义一个函数 二、调用函数 三、函数的参数 1.形参和实参 2. 参数的分类 3.参数默认值 4.参数类型说明 5.不定长参数 四、函数的返回值 1.定义 2.关键字return 五、变量的作用域 六、匿名函数 七、实参高阶函数 1.定义 2.常见实参高阶函数 max、min、so…

数据结构回顾(Java)

1.数组 线性表 定义的方式 int[] anew int[10] 为什么查询快&#xff1f; 1.可以借助O(1)时间复杂度访问某一元素&#xff0c; 2.地址连续&#xff0c;逻辑连续 3.数组长度一旦确定就不可以被修改 当需要扩容的时候需要将老数组的内容复制过来 在Java中数组是一个对象 Ar…

SpringBoot开发的AI导航站技术架构剖析 —— 技术如何选型 - 第520篇

历史文章&#xff08;文章累计520&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

C#与PLC通信——如何设置电脑IP地址

前言&#xff1a; 我们与PLC通过以太网通信时&#xff0c;首先要做的就是先设置好电脑的IP&#xff0c;这样才能实现上位机电脑与PLC之间的通信&#xff0c;并且电脑的ip地址和PLC的Ip地址要同处于一个网段&#xff0c;比如电脑的Ip地址为192.168.1.1&#xff0c;那么PLC的Ip地…

【Android面试八股文】请描述一下 android 的系统架构?

Android 是一个基于 Linux 的开源软件堆栈,针对多种不同设备类型打造。下图显示了 Android 平台的主要组件。 早期的Android架构如下图所示 官方网站最新的Android平台架构图,如下所示: Linux 内核 Android 平台的基础是 Linux 内核。例如,Android 运行时 (ART) 依赖…

css-grid布局(栅格布局)

css新世界-auto-fit grid 一个比flex更强大的布局,适合做整体布局 grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); auto-fit的话有strech效果gap 不仅可以用于grid 也可用flex. 在grid-template-areas表示这个位置空着grid area 的 [a b]命名可重复命名 表示的…

RHCA II之路---EX442-6

RHCA II之路---EX442-6 1. 题目2. 解题3. 确认 1. 题目 2. 解题 sysctl -a|grep shmall echo kernel.shmall 367001 >> /etc/sysctl.conf sysctl -p3. 确认 去人这里max total shared memory的值使我们之前设定的即可.这里的值单位是kb所以只需要2个1024就可以了 ipc…

如何快速区分电子原件极性

表贴式电阻电容无极性 1表贴式.二极管 如图所示:有横杠的表示负极&#xff08;竖杠标示&#xff09;&#xff0c;注意一定要查阅数据手册在引脚信息栏一般会有 铝电解电容 手册一般会对正负极有说明 钽电容有极性 发光二极管 芯片 一般规律&#xff1a;1.看丝印朝向正对丝印的…

监控易V7.6.6.15升级详解7,日志分析更高效

随着企业IT系统的日益复杂&#xff0c;日志管理成为了保障系统稳定运行、快速定位问题的重要工具。为了满足广大用户对日志管理功能的更高需求&#xff0c;监控易系统近日完成了重要版本升级&#xff0c;对日志管理功能进行了全面优化和新增。 一、Syslog日志与SnmpTrap日志统…

uniapp踩坑之项目:uni-table垂直居中和水平居中

uni-table 中的水平居中uni-td align"center" //html 水平居中<uni-table ref"table" :loading"loading" border stripe emptyText"暂无更多数据"><uni-tr><uni-th :width"tdWidth/6" align"center&quo…

7-Zip解压缩软件

7-Zip是一款完全免费而且开源的压缩软件&#xff0c;相比其他软件有更高的压缩比而且相对于WinRAR不会消耗大量资源 下载地址&#xff1a;7-Zip解压缩软件安装包_压缩软件安装包资源-CSDN文库

【Python3】自动化测试_用Playwright操作浏览器

创建浏览器实例 # 启动浏览器实例 myBrowser myPlaywright.chromium.launch(headlessFalse) # myBrowser myPlaywright.firefox.launch(headlessFalse) # myBrowser myPlaywright.webkit.launch(headlessFalse) args < List [ str ] >传递给浏览器实例的附加参数。 c…

仓颉语言 -- 函数

1、定义函数 仓颉使用关键字 func 来表示函数定义的开始&#xff0c;func 之后依次是函数名、参数列表、可选的函数返回值类型、函数体。其中&#xff0c;函数名可以是任意的合法标识符&#xff0c;参数列表定义在一对圆括号内&#xff08;多个参数间使用逗号分隔&#xff09;…

PyTorch论文

2019-12 PyTorch: An Imperative Style, High-Performance Deep Learning Library 设计迎合4大趋势&#xff1a; 1. array-based (Tensor) 2. GPU加速 3. 自动求导 (Auto Differentiation) 4. 拥抱Python生态 4大设计原则&#xff1a; 1. 使用算法和数据开发者熟悉的Python做编…

【Python学习笔记】:Python爬取音频

【Python学习笔记】&#xff1a;Python爬取音频 背景前摇&#xff08;省流可以不看&#xff09;&#xff1a; 人工智能公司实习&#xff0c;好奇技术老师训练语音模型的过程&#xff0c;遂请教&#xff0c;得知训练数据集来源于爬取某网页的音频。 很久以前看B站同济子豪兄的《…