ceph手动部署
ceph手动部署

一、 节点规划
| 主机名 | IP地址 | 角色 |
|---|---|---|
| ceph01.example.com | 172.18.0.10/24 | mon、mgr、osd、mds、rgw |
| ceph02.example.com | 172.18.0.20/24 | mon、mgr、osd、mds、rgw |
| ceph03.example.com | 172.18.0.30/24 | mon、mgr、osd、mds、rgw |
操作系统版本: Rocky Linux release 8.8 (Green Obsidian)
二、 准备工作
以下操作所有主机都要操作
1. 替换YUM源
sed -e 's|^mirrorlist=|#mirrorlist=|g'
-e 's|^#baseurl=Index of /$contentdir|baseurl=rockylinux安装包下载_开源镜像站-阿里云|g'
-i.bak
/etc/yum.repos.d/Rocky-.repo
dnf makecache
2. 关闭防火墙和SELINUX
systemctl disable --now firewalld.service
setenforce 0
vim /etc/sysconfig/selinux
3. 配置时间同步
echo “server ntp.aliyun.com iburst” >> /etc/chronyd.conf
systemctl enable --now chronyd
chronyc sources
4. 主机名与IP进行映射
vim /etc/hosts
172.18.0.10 ceph01.example.com ceph01
172.18.0.20 ceph02.example.com ceph02
172.18.0.30 ceph03.example.com ceph03
5. 节点安装ceph软件包
yum install centos-release-ceph-pacific -y 此处使用P版 目前企业级存储使用的稳定版
yum install ceph -y
三、配置MON
1. 生成集群UUID
uuidgen
eb6d6dab-6854-4663-ba7f-eadf2758e681
2. 创建ceph.conf配置文件
vim /etc/ceph/ceph.conf
[global]
fsid=eb6d6dab-6854-4663-ba7f-eadf2758e681
mon_initial_members=ceph01,ceph02,ceph03
mon_host=172.18.0.10,172.18.0.20,172.18.0.30
public_network=172.18.0.0/24
auth_cluster_required=cephx
auth_service_required=cephx
auth_client_required=cephx
osd_pool_default_size=3
osd_pool_default_min_size=2
osd_pool_default_pg_num=128
osd_pool_default_pgp_num=128
storage_type=bluestore
osd_objectstore=bluestore
osd_mkfs_type=xfs
bluestore_block_size=5628755968
3. 生成monitor keyring
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow '
4. 生成admin管理员key
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow ' --cap osd 'allow ' --cap mds 'allow ' --cap mgr 'allow '
5. 生成OSD引导key
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
6. 将admin和osd引导key导入到mon key中
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
chown ceph:ceph /tmp/ceph.mon.keyring
7. 生成monmap映射视图
monmaptool --create --add ceph01 172.18.0.10 --add ceph02 172.18.0.20 --add ceph03 172.18.0.30 --fsid eb6d6dab-6854-4663-ba7f-eadf2758e681 /tmp/monmap
8. 拷贝文件到其他节点
scp /etc/ceph/ceph.conf root@ceph02:/etc/ceph/
scp /etc/ceph/ceph.conf root@ceph03:/etc/ceph/
scp /tmp/monmap root@ceph02:/tmp/
scp /tmp/monmap root@ceph03:/tmp/
scp /tmp/ceph.mon.keyring root@ceph02:/tmp/
scp /tmp/ceph.mon.keyring root@ceph03:/tmp/
scp /etc/ceph/ceph.client.admin.keyring root@ceph02:/etc/ceph/
scp /etc/ceph/ceph.client.admin.keyring root@ceph03:/etc/ceph/
9. 从映射视图导入集群关系(在所有节点上操作)
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-ceph01(ceph01改成不同的主机名)
ceph-mon --mkfs -i ceph01 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring(ceph01改成不同的主机名)
chown ceph.ceph -R /var/lib/ceph
10. 启动mon服务并查看集群状态(在所有节点上操作)
systemctl enable --now ceph-mon@ceph01.service (ceph01改成不同的主机名)
ceph -s 查看集群状态
问题1:3 monitors have not enabled msgr2
ceph mon enable-msgr2 ()
问题2:mons are allowing insecure global_id reclaim
ceph config set mon auth_allow_insecure_global_id_reclaim false(禁用不安全模式)
四、配置MGR
1-3以下所有节点均需要操作
1. 创建mgr key存放目录
sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-$(hostname -s)
2. 生成mgr key
ceph auth get-or-create mgr. $(hostname -s) mon 'allow profile mgr' osd 'allow ' mds 'allow ' > /var/lib/ceph/mgr/ceph-$(hostname -s)/keyring
3. 启动mgr服务
systemctl enable --now ceph-mgr@ceph01.service (ceph01在不同节点上换成不同主机名)
4. 配置dashboard图形化控制台
4.0 安装dashboard模块并启用
yum install ceph-mgr-dashboard -y
4.1 生成自签名证书
openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650
-keyout dashboard.key -out dashboard.crt -extensions v3_ca
4.2 导入证书
ceph dashboard set-ssl-certificate -i dashboard.crt
ceph dashboard set-ssl-certificate-key -i dashboard.key
4.3 配置地址和端口
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/ssl_server_port 8443
4.4 禁用rgw api校验自签名证书(如果启用rgw ssl则需要)
ceph dashboard set-rgw-api-ssl-verify false
4.5初始化 dashboard 用户
echo redhat123 > pass.txt
ceph dashboard ac-user-create admin administrator -i pass.txt
4.6 启用http关闭ssl
mgr-dashboard默认使用ssl进行访问,关闭ssl可以使用http
ceph config set mgr mgr/dashboard/ssl false
4.7 启用或禁用dashboard
ceph config module disable dashboard
ceph config module enable dashboard
五、配置OSD
1. 拷贝OSD的密钥环(ceph01操作)
scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@ceph02:/var/lib/ceph/bootstrap-osd/
scp /var/lib/ceph/bootstrap-osd/ceph.keyring root@ceph03:/var/lib/ceph/bootstrap-osd/
拷贝后修改文件的权限chown ceph.ceph /var/lib/ceph/bootstrap-osd/ceph.keyring
2. 创建OSD
ceph-volume lvm create --data /dev/sdb --bluestore
说明:
--bluestore 不接时默认为bluestore后端驱动,使用--filestore则使用文件级filestore驱动,cephadm不支持管理后端驱动为filestore的OSD
上述过程可以拆分成两步:
准备OSD:ceph-volume lvm prepare --data /dev/sdb
激活OSD:ceph-volume lvm activate {ID} {FSID}
ceph-volume lvm list 查看OSD的ID
3. 查看集群状态以及添加的OSD
ceph -s 查看集群状态是否ok
ceph osd ls
六、配置MDS
以下操作所有节点都要做
1. 创建mds key存放目录
sudo -u ceph mkdir /var/lib/ceph/mds/ceph-$(hostname -s)
2. 生成mds keyring
ceph auth get-or-create mds.$(hostname -s) osd "allow rwx" mds "allow" mon "allow profile mds" > /var/lib/ceph/mds/ceph-$(hostname -s)/keyring
chown ceph.ceph -R /var/lib/ceph/mds/ceph-ceph02/keyring
3. 启动mds 服务
systemctl start ceph-mds@ceph01.service
systemctl start ceph-mds@ceph02.service
systemctl start ceph-mds@ceph03.service
4. 创建文件系统测试
ceph osd pool create fspool_meta 创建文件系统元数据池
ceph osd pool create fspool_data 创建文件系统数据池
ceph fs new fs01 fspool_meta fspool_data 创建fs01的文件系统
ceph fs status 查看文件系统的主从节点
ceph fs authorize fs01 client.wangwu / rw 创建文件系统使用用户王五并授权
mount -t ceph ceph01:/ /media/ -o name=wangwu,fs=fs01,secret=AQB3ryJl1Z2QMRAAH1C/qRaBGIKKBWET5lM1eg== 挂载测试
七、配置RGW
1.安装软件包(所有节点操作)
yum install ceph-radosgw -y
2.创建 rgw key(ceph01操作)
ceph auth get-or-create client.rgw.ceph01 osd 'allow rwx' mon 'allow rwx' >> /etc/ceph/ceph.client.radosgw.keyring
ceph auth get-or-create client.rgw.ceph02 osd 'allow rwx' mon 'allow rwx' >> /etc/ceph/ceph.client.radosgw.keyring
ceph auth get-or-create client.rgw.ceph03 osd 'allow rwx' mon 'allow rwx' >> /etc/ceph/ceph.client.radosgw.keyring
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring
scp /etc/ceph/ceph.client.radosgw.keyring root@ceph02:/etc/ceph/
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring (ceph02操作)
scp /etc/ceph/ceph.client.radosgw.keyring root@ceph03:/etc/ceph/
chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring (ceph03操作)
4.编辑配置文件(ceph01操作)
vim /etc/ceph.conf 新增rgw配置
[client.rgw.ceph01]
host=ceph01
keyring=/etc/ceph/ceph.client.radosgw.keyring
log file=/var/log/radosgw/client.radosgw.gateway.log
rgw frontends = civetweb port=172.18.0.10:8080
[client.rgw.ceph02]
host=ceph02
keyring=/etc/ceph/ceph.client.radosgw.keyring
log file=/var/log/radosgw/client.radosgw.gateway.log
rgw frontends = civetweb port=172.18.0.20:8080
[client.rgw.ceph03]
host=ceph03
keyring=/etc/ceph/ceph.client.radosgw.keyring
log file=/var/log/radosgw/client.radosgw.gateway.log
rgw frontends = civetweb port=172.18.0.30:8080
scp /etc/ceph/ceph.conf root@ceph02:/etc/ceph/
scp /etc/ceph/ceph.conf root@ceph03:/etc/ceph/
5. 创建日志目录(所有节点操作)
sudo -u ceph mkdir /var/log/radosgw/
6. 启动RGW服务(对应节点操作)
systemctl enable --now ceph-radosgw@rgw.ceph01.service
systemctl enable --now ceph-radosgw@rgw.ceph02.service
systemctl enable --now ceph-radosgw@rgw.ceph03.service
服务启动后rgw将自动创建以下存储池
.rgw.root #包含 realm(领域信息),比如 zone 和 zonegroup
default.rgw.log #存储日志信息,用于记录各种 log 信息
default.rgw.control #系统控制池,在有数据更新时,通知其它 RGW 更新缓存
default.rgw.meta #元数据存储池,通过不同的名称空间分别存储不同的 rados 对象
7. 创建s3用户测试
radosgw-admin user create --uid=user1 --access-key=123 --secret=456 --email user1@example.com --display-name user1
7. s3对象存储测试(任意选择一个节点测试)
7.1 安装s3工具
yum install epel-release -y 使用epel源
yum install aws -y 安装s3客户端工具
7.2 配置s3访问凭据
aws configure --profile=ceph 凭据名为ceph
输入ak和sk
7.3 创建存储桶
aws --profile=ceph --endpoint-url=http://172.18.0.10:8080 s3 mb s3://bucket1
7.4 上传文件到桶
aws --profile=ceph --endpoint-url http://172.18.0.10:8080 s3 cp /etc/passwd s3://bucket1/passwd
相关文章:
ceph手动部署
ceph手动部署 一、 节点规划 主机名IP地址角色ceph01.example.com172.18.0.10/24mon、mgr、osd、mds、rgwceph02.example.com172.18.0.20/24mon、mgr、osd、mds、rgwceph03.example.com172.18.0.30/24mon、mgr、osd、mds、rgw 操作系统版本: Rocky Linux release …...
superset load_examples加载失败解决方法
如果在执行load_examples命令后,出现上方图片情况,或是相似报错(url error\connection error),大概率原因是python程序请求github数据,无法访问. 因此我们可以将数据下载在本地来解决. 1.下载zip压缩文件,存放到本地 官方示例地址:GitHub - apache-superset/examples-data …...
wareshark分析mysql协议的数据包
使用wareshark 分析mysql协议的数据包,是每个dba都应该掌握的技能,掌握以后,就可以通过tcpdump抓包分析,得到连接报错的信息了。 tcpdump抓包命令: tcpdump -nn -i bond0 dst 10.21.6.72 and port 4002 -w 1129_tcpdu…...
HarmonyOS4+NEXT星河版入门与项目实战(25)------UIAbility启动模式(文档编辑案例)
文章目录 1、启动模式2、Specified启动模式实现步骤3、文档编辑案例1、文件创建2代码实现3、Statge 创建4、添加配置1、启动模式 Singleton启动模式: 每个 UIAbility 只存在一个实例,是默认的启动模式,任务列表中只会存在一个相同的 UIAbilityStandard启动模式: 每次启动 U…...
webpack 项目访问静态资源
使用 webpack dev serve 启动 react 项目后,发现无法使用 http://localhost:8080/1.png 访问到项目的 /static 目录下的 1.png 文件。我的 webpack-dev.js 配置如下: const webpack require(webpack) const webpackMerge require(webpack-merge) cons…...
UNION和UNION ALL区别
文章目录 结果集的处理方式:对重复记录的处理:排序处理:执行效率: UNION和UNION ALL的主要区别在于结果集的处理方式、对重复记录的处理、排序处理以及执行效率。 结果集的处理方式: UNION…...
Rook入门:打造云原生Ceph存储的全面学习路径(下)
文章目录 六.Rook部署云原生CephFS文件系统6.1 部署cephfs storageclass6.2 创建容器所需cephfs文件系统6.3创建容器pod使用rook-cephfs提供pvc6.4 查看pod是否使用rook-cephfs 七.Ceph Dashboard界面7.1 启用dashboard开关7.2 ceph-dashboard配置外部访问7.3 Dashboard web ad…...
RabbitMQ消息可靠性保证机制6--可靠性分析
在使用消息中间件的过程中,难免会出现消息错误或者消息丢失等异常情况。这个时候就需要有一个良好的机制来跟踪记录消息的过程(轨迹溯源),帮助我们排查问题。 在RabbitMQ中可以使用Firehose实现消息的跟踪,Firehose可…...
k8s容器存储接口 CSI 相关知识
容器存储接口 CSI 相关知识 参考: https://blog.csdn.net/lovely_nn/article/details/122880876 https://developer.aliyun.com/article/783464 https://www.cnblogs.com/varden/p/15139819.html存储商需实现 CSI 插件的 NodeGetVolumeStats 接口,Kube…...
jmeter基础_打开1个jmeter脚本(.jmx文件)
课程大纲 方法1.菜单栏“打开” 菜单栏“文件” - “打开” (或快捷键,mac为“⌘ O”),打开文件选择窗口 - 选择脚本文件,点击“open”,即可打开脚本。 方法2.工具栏“打开”图标 工具栏点击“打开”图标&…...
Linux---对时/定时服务
文章目录 目录 文章目录 前言 一.对时服务 服务端配置 客户端配置 二.定时服务 单次定时任务 循环定时任务 前言 在当今信息化高速发展的时代,时间的准确性和任务的定时执行对于各种系统和服务来说至关重要。Linux操作系统,凭借其强大的功能和灵活的…...
Agent
Agent核心 1、自主性 2、交互性 3、适应性 4、目的性 ReAct Reasoning and Acting范式 模型的推理过程分为 推理 Reason 和行动 Action 两个步骤,交替执行,直至获得最终结果。 推理 Reason 生成分析步骤,解释当前任务的上下文或状态…...
Oracle 数据库执行增删改查命令的原理与过程
摘要: 本文深入探讨当向 Oracle 数据库发送一个增删改查(CRUD)命令时,数据库内部的执行机制与详细过程。从用户发起命令开始,逐步剖析命令在 Oracle 数据库体系结构各组件中的流转、解析、优化以及执行路径,…...
HBase难点
查询优化 一次Scan会返回大量数据,客户端向HBase发送一次Scan请求,实际上并不会将所有数据加载到本地,而是通过多次RPC请求进行加载,防止客户端OOM。禁止缓存优化:批量读取数据时会全表扫描一次业务表,这种…...
Y20030023 PHP+thinkphp+MYSQL+LW+基于PHP的健身房管理系统的设计与实现 源代码 配置 初稿
基于PHP的健身房管理系统 1.项目摘要2. 系统开发的背景及意义3.项目功能4.界面展示5.源码获取 1.项目摘要 近年来,随着社会发展和科技进步,人们越来越重视健康养生并关注电子商务对日常交流方式的影响。随着健身行业消费人群的增加,竞争变得…...
mongodb下载与使用
下载地址: Install MongoDB Community Kubernetes Operator | MongoDB 1、安装MongoDB (5.0.30) 将压缩包移动到C:\Program Files 下,然后解压创建C:\data\db目录,mongodb 会将数据默认保存在这个文件夹以mongodb 中 bin目录作为工作目录&…...
【Linux基础】Linux基本指令
目录 1、pwd 指令 2、clear 指令 3、ls 指令 1、ls 显示当前路径下的文件或者目录名称 2、ls -l 显示当前路径下的文件或者目录的更详细的属性信息 3、ls -a :显示所有文件,包括隐藏文件 4、ls -d 将目录像文件一样显示,而不是显示其…...
【RISC-V CPU debug 专栏 3 -- Debugging RISC-V Cores】
文章目录 RISC-V 调试规范开源与多样性挑战调试规范的重要性外部调试支持的主要组件调试功能Lauterbach 的贡献RISC-V 调试规范 调试 RISC-V 内核涉及许多独特的挑战,这是由 RISC-V 的开源特性和多样化的生态系统所决定的。为了避免专有调试接口的泛滥,RISC-V 基金会内的工作…...
思科实现网络地址转换(NAT)和访问控制列表(ACL)和动态路由配置并且区分静态路由和动态路由配置。
实验拓扑(分为静态路由和动态路由两种) 静态路由互通 动态路由互通 实验背景 这个是想实现外网与内网的连接跟网络的探讨,最终实现互通以及使用并且在网络地址转换后能使用网络然后再这个基础上再配置访问控制列表和网络地址转换的的学习过程。 实验需了解的知识…...
基于 Python、OpenCV 和 PyQt5 的人脸识别上课打卡系统
大家好,我是Java徐师兄,今天为大家带来的是基于 Python、OpenCV 和 PyQt5 的人脸识别上课签到系统。该系统采用 Python 语言开发,开发过程中采用了OpenCV框架,Sqlite db 作为数据库,系统功能完善 ,实用性强…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
