ubuntu ceph部署
ubuntu ceph部署
参考文档:http://docs.ceph.org.cn/start/
节点配置
1个mon节点,3个osd节点
安装前准备
安装ceph-deploy
- 添加 release key
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
- 添加Ceph软件包源,例如15.2.13版本
echo deb http://download.ceph.com/debian-15.2.13/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
注:需要在每个节点上执行这2步
- 更新你的仓库,并安装 ceph-deploy
sudo apt-get update && sudo apt-get install ceph-deploy
注: 此步如果出错,请手动安装需要的包例如此前已经安装过,没有卸载干净所以需要手动安装
sudo dpkg -i --force-overwrite /var/cache/apt/archives/ceph-deploy_2.0.1-0ubuntu1_all.deb
如果还是出错,则运行sudo apt-get install -f强制修复受损的包
安装NTP 服务
ntp服务用数据服务器时间同步,建议在所有的ceph节点安装ntp服务(特别是 Ceph Monitor 节点)以避免时钟飘逸故障
#安装ntp
sudo apt-get install ntp#配置ntp
vi /etc/ntp.conf
#启动ntp服务
安装ceph
#添加待安装的host hostname到控制机/etc/hosts文件中
#将ceph版本号打进环境变量,确保安装指定版本的ceph
#初始化host,并在部署目录生成ceph.conf(初始化配置,携带有fsid),创建mon前必须要这一步
ssh {hostname} "wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -"
ssh {hostname} "echo deb http://download.ceph.com/debian-15.2.13/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list"
ssh {hostname} "sudo apt-get update"
ceph-deploy install {hostname}
注:如果install错了版本,可以执行ceph-deploy uninstall {hostname}来卸载
报错1:
[ceph_deploy][ERROR ] RuntimeError: AttributeError: module 'platform' has no attribute 'linux_distribution'
原因:
python3.5 之后就废弃了linux_distribution函数,我们的机器默认是python3.8
解决:
修改 /usr/lib/python3/dist-packages/ceph_deploy/hosts/remotes.py 脚本,采用distro.linux_distribution 替换platform.linux_distribution
import distro as dist
dist.linux_distribution
报错2:
sudo apt-get install -f修复包时报错(依赖的包有问题)
dpkg: error processing archive /var/cache/apt/archives/ceph-base_15.2.13-1focal_amd64.deb (--unpack):trying to overwrite '/usr/share/man/man8/ceph-deploy.8.gz', which is also in package ceph-deploy 2.0.1-0ubuntu1
Errors were encountered while processing:/var/cache/apt/archives/ceph-base_15.2.13-1focal_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
解决:
尝试修复对应包
sudo dpkg -i --force-overwrite {filename}
然后执行
sudo apt update && sudo apt upgrade
再重新ceph-deploy install {hostname}就ok了
初始化秘钥
#修改配置ceph.conf. 完成后再初始化好ceph-mon
#部署并启动mon,完成后部署目录会出现集群各节点密钥信息,同时mon节点的/etc/ceph/ceph.conf生成
ceph-deploy mon create-initial
会产生密钥,和在各个节点上部署好ceph-mon 和ceph-crash
拷贝配置文件到各个节点
#该步骤将部署目录的ceph.client.admin.keyring拷贝到远程node的/etc/ceph目录下
ceph-deploy admin node1 node2 node3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
#这样每个节点都可以使用ceph命令了
#查看状态
ceph health
状态warn 解决
cluster:id: 75e147c1-b2a4-4f54-8c11-0ee3ef9fc46ehealth: HEALTH_WARNmon is allowing insecure global_id reclaim
#执行,禁用不安全模式!
ceph config set mon auth_allow_insecure_global_id_reclaim false
添加OSD
#初始化SSD磁盘,先格式化磁盘
mkfs.xfs /dev/sdm1
wipefs -a /dev/sdm1
#出生化HDD磁盘
mkfs.xfs /dev/sdb1
wipefs -a /dev/sdb1#创建lv
pvcreate /dev/sdm1
#创建name=ceph-db-0的volume group,可通过vgdisplay查看
vgcreate ceph-db-0 /dev/sdm1
#创建一个64G的name=db-sdb的lv用来做bluestore osd的db文件,可通过lvdisplay查看
lvcreate -n db-sdb -L 64g ceph-db-0#添加osd
ceph-deploy osd create node1 --data /dev/sdb1 --block-db ceph-db-0/db-sdb --bluestore
##bulustore 添加wal db,自动初始化hdd磁盘
ceph-deploy osd create node2 --data /dev/sde1 --block-db ceph-db-0/db-sde --block-wal ceph-db-0/wal-sde --bluestore注:推荐上面的方式(即wal和db放在一起)#采取同样的办法多添加几个OSD
#查看OSD状态
ceph osd tree
安装mgr
ceph-deploy mgr create node1 node2 node3
开启dashboard
#需要安装 ceph-mgr-dashboard, 需要在mgr的机器上都安装dashboard才行
apt install ceph-mgr-dashboard -y
#启动dashboard
ceph mgr module enable dashboard
#禁用SSL,如果不禁用得添加证书
ceph config set mgr mgr/dashboard/ssl false
#创建用户
echo "admin123" > passwd.txt
ceph dashboard ac-user-create admin administrator -i passwd.txt
#设置端口
ceph config set mgr mgr/dashboard/server_port 8080
#注意: 不要设置server_addr, 一旦设置了server_addr, 当mgr主切换的时候,mgr中的module中服务的IP不会自动更新
#查看服务
ceph mgr services
-----
{"dashboard": "http://ceph-node2:8080/"
}
安装rgw
#安装3台
ceph-deploy install --rgw ceph-node1 ceph-node2 ceph-node3
#安装rgw
ceph-deploy rgw create ceph-node1 ceph-node2 ceph-node3#创建用户及配置dashboard
#创建用户,会返回用户配置信息 --system表示系统用户
radosgw-admin user create --uid=ceph_dashboard --display-name=ceph-dashboard --system#添加access_key 和 secret_key
vi ak
vi sk
#添加用户证
ceph dashboard set-rgw-api-access-key -i ak
ceph dashboard set-rgw-api-secret-key -i sk
ceph dashboard set-rgw-api-ssl-verify False
ceph dashboard set-rgw-api-scheme http
#完成之后在dashboard的ObjectGetway里就有配置了
#可以在dashboard上执行创建用户,bucket等操作
安装cephfs
#安装mds, 3个mds,1主2从
#此时可以修改ceph.conf 通过--overwrite-conf跟新配置
ceph-deploy --overwrite-conf mds create node1 node2 node3
#创建pool
ceph osd pool create cephfs_data 2056
ceph osd pool create cephfs_metadata 64
#创建fs,每个集群只能创建一个fs?
ceph fs new cephfs cephfs_metadata cephfs_data#客户端需要安装ceph-fuse 和ceph-comm
相关文章:
ubuntu ceph部署
ubuntu ceph部署 参考文档:http://docs.ceph.org.cn/start/ 节点配置 1个mon节点,3个osd节点 安装前准备 安装ceph-deploy 添加 release key wget -q -O- https://download.ceph.com/keys/release.asc | sudo apt-key add -添加Ceph软件包源&…...
2024.7.8
2024.7.8 【追逐影子的人,自己就是影子 —— 荷马】 Monday 六月初三 讲的根本听不懂好吧! 目前只写了三道题(但是黑色 确实是没见过这么抽象的数据结构 Gregor and the Two Painters Number of Components Equal LCM Subsets 这个lcm确实…...
Spring 外部jar包Bean自动装配
Spring 外部jar包Bean自动装配 背景介绍 公共代码模块被作为jar包引入业务项目,前者定义的bean即使添加了Component注解由于不会被扫描到也就无法被Spring管理。此处通过Spring SPI机制来完成 使用 spring.factories 在外部 jar 包中创建 spring.factories 文件&a…...
2通道音频ADC解码芯片ES7243L、ES7243E、ES7243,用于低成本实现模拟麦克风转换为IIS数字话筒
前言: 音频解码芯片某创参考价格: ES7243L 500:¥1.36 / 个 ES7243E 500:¥1.66 / 个 ES7243 500: ¥1.91 / 个 其中ES7243L工作电压为1.8V,与其他两款的3.3V工作电压不同&…...
uniapp跨域问题解决
找到menifest文件,在文件的最后添加如下代码: // h5 解决跨域问题"h5":{"devServer": {"proxy": {"/adminapi": {"target": "https://www.demo.com", // 目标访问网址"changeOrigin…...
[C++][ProtoBuf][Proto3语法][一]详细讲解
目录 1.字段规则2.消息类型的定义与使用1.定义2.使用 3.enum类型1.语法2.定义时注意3.代码 1.字段规则 消息的字段可以⽤下⾯⼏种规则来修饰: singular:消息中可以包含该字段零次或⼀次(不超过⼀次) proto3语法中,字段默认使⽤该规则 repeat…...
千古雄文《渔樵问对》原文、译文、解析
邵雍《渔樵问对》:开悟奇文,揭示世界的终极意义 【邵雍《渔樵问对》:开悟奇文,揭示世界的终极意义】 邵雍(1011年1月21日-1077年7月27日,宋真宗大中祥符四年十二月二十五日戌时生至神宗熙宁十…...
uniapp 开发备忘录-防坑指南
uniapp 开发备忘录-防坑指南 npm run dev:mp-weixin 编译微信小程序报错: [plugin:uni:mp-using-component] Expected ‘,’ or ‘}’ after property value in JSON at position 解决方案:升级uniapp 到最新 alpha 版。(2024年7月13日&am…...
Simple_ReAct_Agent
参考自https://www.deeplearning.ai/short-courses/ai-agents-in-langgraph,以下为代码的实现。 Basic ReAct Agent(manual action) import openai import re import httpx import os from dotenv import load_dotenv, find_dotenvOPENAI_API_KEY os.getenv(OPEN…...
window wsl安装ubuntu
文章目录 wsl安装ubuntu什么是wsl安装wsl检查运行 WSL 2 的要求将 WSL 2 设置为默认版本查看并安装linux WSL2的使用如何查看linux文件wsl如何使用代理:方法1:方法2:通过 DNS 隧道来配置 WSL 的网络 如何将 WSL 接入局域网并与宿主机同网段使用VScode连接…...
postmessage()在同一域名下,传递消息给另一个页面
这里是同域名下,getmessage.html(发送信息)传递消息给index.html(收到信息,并回传收到信息) index.html页面 <!DOCTYPE html> <html><head><meta http-equiv"content-type"…...
初始redis:在Ubuntu上安装redis
1.先切换到root用户 使用su命令切换到root 2.使用apt命令来搜索redis相关的软件包 命令:apt search redis 3.下载redis 命令: apt install redis 在Ubuntu 20.04中 ,下载的redis版本是redis5 4.查看redis状态 命令: netst…...
生物素结合金纳米粒子(Bt@Au-NPs ) biotin-conjugated Au-NPs
一、定义与特点 定义:生物素结合金纳米粒子,简称BtAu-NPs或biotin-conjugated Au-NPs,是指通过特定的化学反应或物理方法将生物素修饰到金纳米粒子表面,形成稳定的纳米复合材料。 特点: 高稳定性:生物素的修…...
LeetCode热题100刷题9:25. K 个一组翻转链表、101. 对称二叉树、543. 二叉树的直径、102. 二叉树的层序遍历
25. K 个一组翻转链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), nex…...
PyJWT,一个基于JSON的轻量级安全通信方式的python库
目录 什么是JWT? JWT的构成 PyJWT库简介 安装PyJWT 生成JWT 验证JWT 使用PyJWT的高级功能 自定义Claims 错误处理 结语 什么是JWT? 在介绍PyJWT这个Python库之前,我们首先需要了解什么是JWT。JWT,全称JSON Web Token&am…...
Golang | Leetcode Golang题解之第223题矩形面积
题目: 题解: func computeArea(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2 int) int {area1 : (ax2 - ax1) * (ay2 - ay1)area2 : (bx2 - bx1) * (by2 - by1)overlapWidth : min(ax2, bx2) - max(ax1, bx1)overlapHeight : min(ay2, by2) - max(ay1, by1)…...
新手怎么使用GitLab?
GitLab新手指南: GitLab 是一个非常强大的版本控制和项目管理平台,对于新手来说,开始使用可能会有些许挑战,但只要跟着以下步骤,相信你就能很快上手。 1. 注册与登录 访问网站:打开浏览器,访问 GitLab官网…...
表情包原理
https://unicode.org/Public/emoji/12.1/emoji-zwj-sequences.txt emoji 编码规则介绍_emoji编码-CSDN博客 UTS #51: Unicode Emoji C UTF-8编解码-CSDN博客 创作不易,小小的支持一下吧!...
技术难点思考SpringBoot如何集成Jmeter开发
技术难点思考SpringBoot如何集成Jmeter开发 需求概述 构建一个高性能的压测平台,该平台需通过Spring Boot框架调用JMeter进行自动化压力测试。 解决方案一:使用Runtime类调用外部进程 技术概述 Java的Runtime类提供了与操作系统交互的接口࿰…...
如何快速使用C语言操作sqlite3
itopen组织1、提供OpenHarmony优雅实用的小工具2、手把手适配riscv qemu linux的三方库移植3、未来计划riscv qemu ohos的三方库移植 小程序开发4、一切拥抱开源,拥抱国产化 一、sqlite3库介绍 sqlite3库可从官网下载,当前版本为sqlite3 3.45.3ht…...
百考通智能任务书:贴合你的选题,拒绝空话假大空
毕业设计任务书是高校教学管理中的关键环节,它不仅标志着研究工作的正式启动,更是后续开题、实施、论文撰写和答辩全过程的行动依据。然而,许多学生在撰写时常常因不熟悉本专业写作规范、技术表达能力有限,或缺乏权威模板参考而陷…...
告别FTP龟速:用NTFS-3G在CentOS7上直连移动硬盘拷贝200G大文件
告别FTP龟速:用NTFS-3G在CentOS7上直连移动硬盘拷贝200G大文件当面对数百GB的设计素材、日志文件或数据库备份需要迁移时,传统的FTP传输往往会成为效率瓶颈。我曾在一个视频处理项目中,需要将230GB的4K原始素材从移动硬盘导入服务器ÿ…...
户外实用|艾迪欧 R6000 测评 —— 户外 / 自驾 / 露营的通讯好搭档
户外出行,通讯工具的核心是稳定、清晰、耐用、续航久、功能全。艾迪欧 R6000 作为一款兼顾专业与户外的 DMR 对讲机,全频段覆盖、双模通讯、自定义功能、长续航,完美适配自驾、露营、登山、越野等户外场景,是户外爱好者的靠谱通讯…...
科华UPS电源全品类汇总:选型与场景适配指南
科华UPS电源作为国内智慧电能领域的主流产品,覆盖家用、办公、机房、工业等全场景,产品系列丰富、规格齐全,但多数用户在选型时,常因分不清系列差异、功率适配、架构类型而踩坑。本文系统汇总科华UPS电源的核心分类、主流系列、核…...
Unity Visual Scripting不是拖拽玩具:中阶开发者的编程范式重构指南
1. 为什么Unity官方Visual Scripting不是“拖拽完就能跑”的玩具,而是一套需要重新理解的编程范式很多人第一次点开Unity的Visual Scripting(VS)面板时,看到那些五颜六色的节点和丝滑的连线,下意识觉得:“这…...
ZTE光猫工厂模式解锁:5分钟开启隐藏功能的终极指南
ZTE光猫工厂模式解锁:5分钟开启隐藏功能的终极指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 核心关键词:ZTE光猫工厂模式解锁 长尾关键词: ZT…...
告别杂乱!用FileMenu Tools 8.4.2一键清理Windows 11右键菜单(附隐藏技巧)
Windows 11右键菜单精简指南:用FileMenu Tools打造高效工作流每次在文件上点击右键时,那个缓慢弹出的冗长菜单是否让你感到烦躁?随着安装的软件越来越多,Windows的右键菜单往往会变得臃肿不堪,严重影响工作效率。今天&…...
java项目011-ssm 宠物医院系统
java项目011-ssm 宠物医院系统 是一款基于springspringmvcmybatis的宠物系统, 包含界面布局、医生信息管理、客户信息管理、宠物管理、浏览管理、 诊断管理、医生管理、用户管理 其中医生管理、用户管理只能管理员有权限进行操作。 采用spingboot方式启动 运行截图...
3分钟告别英文恐惧:Android Studio中文界面轻松切换指南
3分钟告别英文恐惧:Android Studio中文界面轻松切换指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 你是否曾经因…...
为什么你的霓虹总像“塑料灯带”?Midjourney光子散射模拟缺陷曝光:3个被官方隐瞒的--sref调参禁区
更多请点击: https://kaifayun.com 第一章:为什么你的霓虹总像“塑料灯带”? 霓虹效果在现代 UI 设计中无处不在——按钮悬停、加载指示器、焦点高亮……但多数实现却流于表面:生硬的 box-shadow、固定色值的渐变边框、缺乏物理感…...
