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…...

网络模型介绍
网络模型在网络领域中主要指的是用于描述计算机网络系统功能的各种框架,其中最具代表性的两种模型是OSI七层参考模型和TCP/IP四层参考模型。以下是对这两种网络模型的详细解析: 一、OSI七层参考模型 OSI(Open System Interconnection&#…...

Codeforces Round #956 (Div. 2) and ByteRace 2024
A题:Array Divisibility 思路: 大水题 code: inline void solve() {int n; cin >> n;for (int i 1; i < n; i ) {cout << i << " \n"[i n];}return; } B题:Corner Twist 思路࿱…...

域名、网页、HTTP概述
目录 域名 概念 域名空间结构 域名注册 网页 概念 网站 主页 域名 HTTP URL URN URI HTML 超链接 发布 HTML HTML的结构 静态网页 特点 动态网页 特点 Web HTTP HTTP方法 GET方法 POST方法 HTTP状态码 生产环境下常见的HTTP状态码 域名 概念 IP地…...

Redisson分布式锁、可重入锁
介绍Redisson 什么是 Redisson?来自于官网上的描述内容如下! Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端(In-Memory Data Grid)。它不仅提供了一系列的 redis 常用数据结构命令服务,还提供了…...

适合宠物饮水机的光电传感器有哪些
如今,随着越来越多的人选择养宠物,宠物饮水机作为一种便捷的饮水解决方案日益受到欢迎。为了确保宠物随时能够获得足够的水源,宠物饮水机通常配备了先进的光电液位传感器技术。 光电液位传感器在宠物饮水机中起着关键作用,主要用…...

『Python学习笔记』Python运行设置PYTHONPATH环境变量!
Python运行设置PYTHONPATH环境变量! 文章目录 一. Python运行设置PYTHONPATH环境变量!1. 解释2. 为什么有用3. 示例4. vscode配置 一. Python运行设置PYTHONPATH环境变量! export PYTHONPATH$(pwd) 是一个命令,用于将当前目录添…...

2024年06月CCF-GESP编程能力等级认证Python编程三级真题解析
本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证…...

代码随想录算法训练营:20/60
非科班学习算法day20 | LeetCode235:二叉搜索树的最近公共祖先 ,Leetcode701:二叉树的插入操作 ,Leetcode450:删除二叉搜索树的节点 介绍 包含LC的两道题目,还有相应概念的补充。 相关图解和更多版本: 代码随想录 (programmer…...

Apache Seata应用侧启动过程剖析——RM TM如何与TC建立连接
本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata应用侧启动过程剖析——RM & TM如何与TC建立连接 前言 看过官网 README 的第…...

Origin 的使用
官网:OriginLab - Origin and OriginPro - Data Analysis and Graphing Software 安装:Origin2022最新最详细的安装教程 学生免费:Origin 官方正版免费续期教程 更改语言:解决OriginPro2024学生版本的更改中文change language灰…...