当前位置: 首页 > news >正文

ceph-deploy bclinux aarch64 ceph 14.2.10【2】vdbench rbd 块设备rbd 测试失败

上篇

ceph-deploy bclinux aarch64 ceph 14.2.10-CSDN博客

安装vdbench

下载vdbench

下载页面

Vdbench Downloads (oracle.com)

包下载

需要账号登录,在弹出层点击同意才能继续下载

用户手册

https://download.oracle.com/otn/utilities_drivers/vdbench/vdbench-50407.pdf

解压vdbench

mkdir vdbench
cd vdbench/
unzip ../vdbench50407.zip 

安装jdk8

yum install java-1.8.0-openjdk

故障处理

Module 'restful' has failed dependency: No module named werkzeug.serving

# 目前看,python3应该不对
yum install python3-werkzeug -y
ssh ceph-1 yum install python3-werkzeug -y
ssh ceph-2 yum install python3-werkzeug -y
ssh ceph-3 yum install python3-werkzeug -y
yum install python2-werkzeug -y
ssh ceph-1 yum install python2-werkzeug -y
ssh ceph-2 yum install python2-werkzeug -y
ssh ceph-3 yum install python2-werkzeug -y

重启ceph-mon(ssh 执行方式发现不能批量输入到终端执行,需要一条一条跑)

systemctl restart ceph-mon@ceph-0.service
ssh ceph-1 systemctl restart ceph-mon@ceph-1.service
ssh ceph-2  systemctl restart ceph-mon@ceph-2.service
ssh ceph-3  systemctl restart ceph-mon@ceph-3.service

结果依旧,reboot所有主机

重启后故障,只有osd进程在,其他服务均未自启动

配置服务自启动

所有服务文件参考如下

[root@ceph-0 ~]# systemctl enable --now  ceph-mon@ceph-0.service
[root@ceph-0 ~]# systemctl enable --now  ceph-mgr@ceph-0.service
[root@ceph-1 ~]# systemctl enable --now  ceph-mon@ceph-1.service
[root@ceph-1 ~]# systemctl enable --now  ceph-mgr@ceph-1.service
[root@ceph-2 ~]# systemctl enable --now  ceph-mon@ceph-2.service
[root@ceph-2 ~]# systemctl enable --now  ceph-mgr@ceph-2.service 

[root@ceph-3 ~]# systemctl enable --now  ceph-mon@ceph-3.service
[root@ceph-3 ~]# systemctl enable --now  ceph-mgr@ceph-3.service 

4台服务器禁用防火墙

systemctl disable firewalld --now

手动恢复服务,关闭防火墙后ceph -s

1 pool(s) have non-power-of-two pg_num

clock skew detected(需要一段时间后才会恢复)

ntpdate ceph-0 重启ntpd效果依旧

原来的语句有错,应该设置为2的次方

ceph osd pool create vdbench 250 250

查看pool列表

修改 pg pgs

ceph osd pool set vdbench pg_num 256
ceph osd pool set vdbench pgp_num 256

搞定了以上两个问题

too many PGs per OSD (256 > max 250)

一天后

ceph osd pool set vdbench pg_num 128
ceph osd pool set vdbench pgp_num 128

由于防火墙中途其他事项开启了,导致配置未同步。后续重启ceph-mon后,该问题已消失!

发现块设备消失了

删除image pool(失败)

[root@ceph-0 ~]# rbd ls vdbench
image1
[root@ceph-0 ~]# rbd rm vdbench/image1
Removing image: 100% complete...done.
[root@ceph-0 ~]# ceph osd pool rm vdbench vdbench --yes-i-really-really-mean-it
Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool

删除pool 需要提前设置配置文件

mon_allow_pool_delete

修改/etc/ceph/ceph.conf,[global]下添加一句

mon_allow_pool_delete = true

推送配置到其他节点

cd /etc/ceph/
ceph-deploy --overwrite-conf config push ceph-1 ceph-2 ceph-3

重启4个节点的ceph-mon

systemctl restart ceph-mon@ceph-0.service
ssh ceph-1 systemctl restart ceph-mon@ceph-1.service
ssh ceph-2  systemctl restart ceph-mon@ceph-2.service
ssh ceph-3  systemctl restart ceph-mon@ceph-3.service

ceph -s 已恢复

继续删除pool vdbench

 
[root@ceph-0 ceph]# ceph osd pool rm vdbench vdbench --yes-i-really-really-mean-it
pool 'vdbench' removed

注意,删除指令需要重复写一次pool名字,后面加上参数--yes-i-really-really-mean-it

重新创建pool,指定pg pgs 128

[root@ceph-0 ceph]# ceph osd pool create vdbench 128 128
pool 'vdbench' created
[root@ceph-0 ceph]# ceph osd pool application enable vdbench rbd
enabled application 'rbd' on pool 'vdbench'
[root@ceph-0 ceph]# rbd create image1 --size 20G --pool vdbench --image-format 2 --image-feature layering
[root@ceph-0 ceph]# rbd map vdbench/image1
/dev/rbd0
[root@ceph-0 ceph]# fdisk -l /dev/rbd0 
Disk /dev/rbd0: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4194304 bytes / 4194304 bytes

在ceph-0测试vdbench(报错)

配置文件/root/vdbench/single-rawdisk.conf

sd=sd1,lun=/dev/rbd0 ,openflag=o_direct
wd=wd1,sd=sd1,seekpct=0,rdpct=0,xfersize=1M
rd=rd1,wd=wd1,iorate=max,warmup=60,elapsed=600,interval=2

执行测试

./vdbench -f single-rawdisk.conf

故障:File /root/vdbench/linux/aarch64.so does not exist

下载源码

Vdbench Source Code Downloads (oracle.com)

解压
cd vdbench-src/
unzip ../vdbench50407.src.zip 
安装jdk-devel
yum install -y java-1.8.0-openjdk-devel
修改make.linux

差异如下

[root@ceph-0 vdbench-src]# diff -Npr src/Jni/make.linux src/Jni/make.linux.bak 
*** src/Jni/make.linux	2023-11-13 10:32:04.279529185 +0800
--- src/Jni/make.linux.bak	2023-11-13 10:27:42.571098663 +0800
***************
*** 34,49 ****! vdb=/root/vdbench-src/src
! java=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-10.oe1.aarch64jni=$vdb/Jniecho target directory: $vdb! INCLUDES32="-w -DLINUX -I$java/include -I/$java/include/linux -I/usr/include/ -fPIC"
! INCLUDES64="-w -DLINUX -I$java/include -I/$java/include/linux -I/usr/include/ -fPIC"cd /tmp
--- 34,49 ----! vdb=$mine/vdbench504
! java=/net/sbm-240a.us.oracle.com/export/swat/swat_java/linux/jdk1.5.0_22/jni=$vdb/Jniecho target directory: $vdb! INCLUDES32="-w -m32 -DLINUX -I$java/include -I/$java/include/linux -I/usr/include/ -fPIC"
! INCLUDES64="-w -m64 -DLINUX -I$java/include -I/$java/include/linux -I/usr/include/ -fPIC"cd /tmp
*************** gcc ${INCLUDES32} -c $jni/chmod.c
*** 62,68 ****echo Linking 32 bitecho! gcc  -o   $vdb/linux/linux32.so vdbjni.o vdblinux.o vdb_dv.o vdb.o chmod.o -lm -shared  -lrtchmod 777 $vdb/linux/linux32.so--- 62,68 ----echo Linking 32 bitecho! gcc  -o   $vdb/linux/linux32.so vdbjni.o vdblinux.o vdb_dv.o vdb.o chmod.o -lm -shared  -m32 -lrtchmod 777 $vdb/linux/linux32.so*************** gcc ${INCLUDES64} -c $jni/chmod.c
*** 82,88 ****echo Linking 64 bitecho! gcc  -o   $vdb/linux/linux64.so vdbjni.o vdblinux.o vdb_dv.o vdb.o chmod.o -lm -shared -lrtchmod 777 $vdb/linux/linux64.so 2>/dev/null--- 82,88 ----echo Linking 64 bitecho! gcc  -o   $vdb/linux/linux64.so vdbjni.o vdblinux.o vdb_dv.o vdb.o chmod.o -lm -shared -m64 -lrtchmod 777 $vdb/linux/linux64.so 2>/dev/null
编译
[root@ceph-0 vdbench-src]# mkdir src/linux
[root@ceph-0 vdbench-src]# ./src/Jni/make.linux

覆盖到安装目录

[root@ceph-0 vdbench-src]# cp -v src/linux/linux64.so ~/vdbench/linux/aarch64.so
'src/linux/linux64.so' -> '/root/vdbench/linux/aarch64.so'
[root@ceph-0 vdbench-src]# file /root/vdbench/linux/aarch64.so 
/root/vdbench/linux/aarch64.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d49dcabfff65992a8e8ac6b97bea67394190e3de, not stripped
 

2再次在ceph-0测试vdbench(报错)

cd ~/vdbench
./vdbench -f single-rawdisk.conf

故障:Raw device 'sd=sd1,lun=/dev/rbd0 ' does not exist, or no permissions.

手动挂载测试 ok

手动挂载测试成功

dd测试 ok

[root@ceph-0 src]# dd if=/dev/zero of=/mnt/rbd0/test.bin bs=1M count=1024 oflag=direct
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 33.4447 s, 32.1 MB/s
虚拟机带宽太低了

vdbench sd lun修改为挂载目录测试 fail

这个测试应该用fsd

参考

【精选】【存储测试】vdbench存储性能测试工具-CSDN博客

Ceph 命令记录 - 代码先锋网 (codeleading.com)

ceph 中的 PG 和 PGP - 简书 (jianshu.com)

问题处理--ceph集群告警 too many PGs per OSD - 象飞田 - 博客园 (cnblogs.com)

vdbench在ARM服务器上出现共享库aarch64.so问题 - 阿星 (zhoumx.net)

相关文章:

ceph-deploy bclinux aarch64 ceph 14.2.10【2】vdbench rbd 块设备rbd 测试失败

上篇 ceph-deploy bclinux aarch64 ceph 14.2.10-CSDN博客 安装vdbench 下载vdbench 下载页面 Vdbench Downloads (oracle.com) 包下载 需要账号登录,在弹出层点击同意才能继续下载 用户手册 https://download.oracle.com/otn/utilities_drivers/vdbench/vdb…...

split_train_val

# coding:utf-8 import os import random import argparse parser argparse.ArgumentParser() # xml文件的地址,根据自己的数据进行修改 xml一般存放在Annotations下 parser.add_argument(--xml_path, defaultdata_door_white/xml/train, typestr, helpinput xm…...

Linux Mint 21.3 将搭载 Cinnamon 6.0 和实验性 Wayland 支持

导读Wayland 会话可能在 Linux Mint 23 系列中成为默认选项,预计将在 2026 年实现。 Linux Mint 项目今天在他们的每月新闻通讯中 宣布,他们已经开始着手在未来的 Linux Mint 发行版中实施 Wayland 会话,最初将在 Linux Mint 21.3 中提供。 …...

名师助阵龙讯旷腾PWmat+半导体缺陷培训暨半导体缺陷计算大赛

半导体缺陷计算大赛 选拔赛截止日期:11月23日 参与杭州线下培训直接跳过选拔赛 大赛亮点 线上免费培训、线下限时领取免费名额 线下杭州培训可直通决赛,跳过选拔赛 线上培训有3次机会参与考试进入决赛 已购/未购用户均可参加、无身份限定 使用Mc…...

Kotlin与Java写法的变更

目录 获取类的Java Class属性 类型检查 for循环 switch语句 if判断 获取类的Java Class属性 //Java Intent intent new Intent(this, MainActivity.class);//Kotlin val intent Intent(this, MainActivity::class.java) 类型检查 //Java apple instanceof Fruit !(app…...

京东数据软件系统:京东销量和销额数据在哪里看?

京东平台店铺众多,行业同行也数不胜数,若想要在平台中更好的运营店铺,品牌需要做好数据分析。下面结合鲸参谋电商数据分析平台这一数据分析工具,我们来看一看品牌在做数据分析时需要注重哪些数据维度。 *行业数据 京东商家通过鲸…...

美观且功能丰富的控制台:5个.Net开源项目

今天一起盘点下,9月份推荐的5个.Net开源项目(点击标题查看详情)。 1、FTP开源库 FluentFTP是一个基于.Net开发的,可用于FTP和FTPS文件传输。该项目优化了速度,并提供简单易用的API,让开发人员可以快速地集…...

深度学习模型基于Python+TensorFlow+Django的垃圾识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 要使用Python、TensorFlow和Django构建一个垃圾识别系统,您可以按照以下步骤进行操作: 安装…...

​ArcGIS Pro怎么生成山顶点

山顶点是指山脉、山丘或山脉系统中最高的地点,通常是山的最高峰,这是山地地貌中的最高点,往往是山脉的标志性特征之一,这里为大家介绍一下如何使用ArcGIS Pro获取山顶点,希望能对你有所帮助。 数据来源 本教程所使用…...

Anolis 8.6 安装 Drawio

Anolis 8.6 安装 Drawio 22.1.0 一.RPM版(不建议)二.WAR 包部署 一.RPM版(不建议) Draw RPM 包下载链接 RPM 包直接基于Linux图形化能力部署,服务器类型的Linux系统启动RPM包安装的Draw可能比较复杂 系统版本 ## 1.…...

AI图像生成模型LCMs: 四个步骤就能快速生成高质量图像的新方法

在最新的AI模型和研究领域,一种名为Latent Consistency Models(LCMs)的新技术正迅速推动文本到图像人工智能的发展。与传统的Latent Diffusion Models(LDMs)相比,LCMs在生成详细且富有创意的图像方面同样出色,但仅需1-…...

成都瀚网科技有限公司抖音带货正规

随着互联网的蓬勃发展,越来越多的公司开始利用网络平台进行产品销售。其中,抖音作为一款广受欢迎的短视频平台,已经成为众多商家眼中的“香饽饽”。在这场电商狂欢中,成都瀚网科技有限公司(以下简称“瀚网科技”&#…...

php 8 注解的实际应用

前言 学过java的同学应该都知道注解的作用&#xff0c;但是在php中注解有什么用呢&#xff1f;我的理解就是美化代码和便于维护一些类的设计。 说明 我们先设计一个类&#xff0c;声明人类的性别 <?php class Sex {//男人const MAN 1;//女人const WIFE 2;//未知const…...

【数据结构】树与二叉树(十三):递归复制二叉树(算法CopyTree)

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…...

相机突然断电,保存的DAT视频文件如何打开

3-6 本文主要解决因相机突然断电导致拍摄的视频文件打不开的问题。 在平常使用相机拍摄视频&#xff0c;比如使用佳能相机拍摄视频的时候&#xff0c;如果电池突然断电&#xff0c;就非常有可能会导致视频没来得及保存而损坏的情况&#xff0c;比如会产生下图中的这种DAT文件…...

[西湖论剑 2022]real_ez_node

文章目录 前置知识EJS模板注入&#xff08;CVE-2022-29078&#xff09;原型链污染漏洞 &#xff08;CVE-2021-25928&#xff09;HTTP响应拆分攻击&#xff08;CRLF&#xff09; 解题过程代码审计构造payload 前置知识 EJS模板注入&#xff08;CVE-2022-29078&#xff09; EJS…...

如何正确使用GPT工具

引言 在快速发展的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;已成为科研领域的一个不可或缺的工具。特别是像ChatGPT这样的AI聊天机器人&#xff0c;它通过高效的语言模型和深度学习算法&#xff0c;为科研工作者提供了前所未有的辅助。从文献搜索到数据分析&…...

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

Kotlin Multiplatform稳定版本发布&#xff1a;加速跨平台开发的新里程碑 引言 在最新的消息中&#xff0c;JetBrains团队宣布Kotlin Multiplatform&#xff08;KMP&#xff09;将于2023年10月稳定发布。这一消息对于广大开发者来说毫无疑问是一个令人振奋的消息。KMP的正式生…...

Paas-云管理

云管理平台&#xff08;Cloud Management Platform&#xff0c;CMP&#xff09;是由Gartner最先提出的企业云战略中的一种产品形态。Gartner对云管理平台&#xff08;CMP&#xff09;的定义是一种管理公有云、私有云和混合云环境的整合性产品。 什么是云管理平台 云管理平台&a…...

http-server安装使用

前段时间给电脑重装了系统&#xff0c;很多东西都没了&#xff0c;今天想在浏览器打开一个本地的html文件&#xff0c;发现电脑上没有http-server&#xff0c;于是装了一个&#xff0c;并且记录下安装过程 1、安装 nodejs&#xff0c;但如果你电脑上有&#xff0c;就无需下载 …...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...