编译rocksdb报错: error: implicitly-declared ‘constexpr rocksdb::FileDescriptor::FileDescriptor error: implicitly-declared ‘constexpr rocksdb::FileDescriptor::FileDescriptor(const rocksdb::FileDescriptor&)’ is deprecated [-Werror=deprecated-copy],
pip安装boto3 最后没办法,下载了一个pip的新包,直接手动安装。由于最近在研究ceph 对象存储的生命周期,用到了boto3,所以打算安装一个boto3,以下是一步一步遇到的问题,查看pip的版本是8.1。但是还是显示下面2.7版本那个事儿,又想把 pip从20一直升级到23,Python2.7支持的最高版本就是20。我已经安装过升级的python,但是python3查看版本才是3.8,python的软链接没动。最后又用python3升级pip也报错,没办法,就用同样手动安装的办法升级了python3。
数据库测压工具Sysbench的安装和使用 sysbench是一个很不错的数据库性能测试工具。官方站点:https://github.com/akopytov/sysbench/rpm包下载:el/7/sysbench-1.0.15-1.el7.centos.x86_64.rpm - akopytov/sysbench · packagecloud源码包下载:https://github.com/akopytov/sysbench/archive/1.0.15.tar.gz
ceph bluestore中的磁盘空间管理 一个设计良好的磁盘空间管理器,需要兼顾空间和时间效率;bluestore中提供了空间管理器FreelistManager来支持空间管理,当前提供了一种基于位图的实现,包含:位图持久化以及内存分配器Allocator两部分。其中,位图的持久化是指将空间分配(置1)和回收(置0)的位图状态持久化到磁盘中,基于rocksdb实现;内存分配器是磁盘位图的一致性视图,用来加速空间分配的速度,基于不同的内存组织形式,包括:stupid,bitmap, avl,hybrid四种。bluestore中,当前基于bitmap
删除ceph数据量较多的bucket 线上环境ceph对象存储的bucket有大概180多万个对象,都是小文件,总体bucket不算太大,100G左右。经过测试,用rclone挂载以后打开挂载的目录会使集群的IO或者iops太高,害怕集群不稳定,所以换个方法删除,尽量在不影响线上集群使用的情况下删除这些对象。由于小文件数量太多,目录结构也太多,我看了大概有十几级目录,用s3cmd ls bucket的时候也出现超时,稍后重试的现象。但是把rgw的日志级别调整到20/20以后,出现下列日志:cls_bucket_list_ordered 把所有的
Visual Studio添加整个目录到空项目中 我用的是Visual Studio Express 2013 for Windows Desktop,大多时候当做代码阅读器使用,但是对于如何将包含项目代码的整个目录导入到VS的空项目中,一直不得其法。今天特地研究了一下,并将结果与大家分享。1. 在VS中新建空项目。解决方案是不是同时新建,取决于你的需求。此处示例采用的是同时新建解决方案。如下图所示:2. 之后在文件系统中的目录和文件状态如下图所示:在openssl文件夹的内容是,3. 将源代码整个目录拷贝到项目目录(即op
ceph peering机制-状态机 本章介绍ceph中比较复杂的模块:Peering机制。该过程保障PG内各个副本之间数据的一致性,并实现PG的各种状态的维护和转换。本章首先介绍boost库的statechart状态机基本知识,Ceph使用它来管理PG的状态转换。其次介绍PG的创建过程以及相应的状态机创建和初始化。然后详细介绍peering机制三个具体的实现阶段:GetInfo、GetLog、GetMissing。statechart状态机1.1 状态1.2 事件1.3 状态机的响应1.4 状态机的定义1.5 context
为Linux的cp和mv命令添加进度条 cp和mv可能是大家日常中使用最多的Linux命令之一。但是有一个突出的问题是这两个命令都不会有任何提示信息,这在操作大文件时候只能干等。可能大家对此已经习以为常,但是其实上也有解决解决方法,本文我们就介绍一个Gnu Coreutils(cp和mv的源代码包)的补丁Advanced Copy,用于给其增加进度条的功能。Advanced Copy是cp和mv 程序mod。它通过给cp和mv添加了一个进度条,在进行文件(夹)复制或移动操作时候提供进度条,数据传输速率,估计的剩余时间以及当前正在操作文...
python脚本运行报错问题 1.运行python脚本线上如下错误:根据网上查的用pip安装,执行pip install requests,继续显示如下错误执行:pip install --upgrade pip,继续报错执行:python3 -m pip install -U pip,终于成功了,如下:执行pip install requests的时候继续报错执行以下命令:查看bin目录发现有pip好几个版本,所以执行pip3.6 install requests终于成功!!!...
rclone挂载基于rsync的增量同步到ceph的验证(二) ceph版本:12.2.12 一.在上一篇增量同步文章中提到,我用rclone挂载以后在计算机上打开挂载盘的时候有如下报错:其实这个主要原因是rclone挂载的时候access_key_id、secret_access_id配置的问题。s3cmd是提供访问RGW的开源命令行工具,通过这个工具我们可以实现类似于s3接口的访问方式。通过radosrgw-admin创建访问的用户以后,产生access_key和secret_key。s3cmd 安装完毕后,需要对 s3cmd 进行配置,这里就需..
Ceph RGW 对象上传源码分析 RGW中OP请求处理函数的入口都是process_request,process_request会根据传入的RGWRados参数获取RGWOp,然后当请求合法性通过后去调用rgw_process_authenticated函数执行OP的具体动作。请求的处理 Collapse sourceint process_request(RGWRados* const store, RGWREST* const rest,
趣解 ceph rgw multisite data sync 机制 multisite是ceph rgw对象数据异地容灾备份的一个有效方案,笔者希望深入理解该技术,并应用于生产环境中,然而rgw的这部分代码晦涩难懂,笔者多次尝试阅读,仍云里雾里不解其意,最终流着泪咬着牙坚持多看了几遍,总结出了data sync的流程,这里以通俗易懂的形式呈现出来,希望对大家有所帮助~首先,认识下 data sync机制 的三个角色Data、DataLogShard、BucketShard rgw的multisite同步分为两部分:metadata数据同步 和 d...
rclone挂载基于rsync的增量同步到ceph的验证(一) 一.软件的下载和安装1.下载rsyncRsync是一款远程同步的软件,需要在客户端和服务端同时安装配置。但是如果只在本地同步,就只需要下载安装客户端就行先下载rsync,参考链接:https://blog.csdn.net/qqchaozai/article/details/41245955安装好客户端,cmd命令到安装路径的bin路径下,执行同步指令2.下载rclone参考链接:https://www.cnblogs.com/xzy186/p/14430650.html。链接这
Rsync:Windows和Linux下本地同步及远程同步 一、什么是rsync rsync,remote synchronize 一款远程同步功能的软件。Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ,等待对方 Rsync 连接。连接时, Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。 Rsync 支持大多数的类 Unix 系统,无论是 Lin
ceph(luminous)-Bluestore,更换ssd和wal位置(不改变大小)_pyrl的博客-程序员秘密 简介随着业务的增长,osd中数据很多,如果db或者wal设备需要更换,删除osd并且新建osd会引发大量迁移。本文主要介绍需要更换db或者wal设备时(可能由于需要更换其他速度更快的ssd;可能时这个db的部分分区损坏,但是db或者wal分区完好,所以需要更换),如何只更换db或者wal设备,减少数据迁移(不允许db或者wal设备容量变大或者变小).具体步骤如下:设置osd noout ,停止相应osd[root@test-1 ~]# ceph osd set nooutnoout is