自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 MDS中的caps和Locker

详细介绍MDS中caps和Locker的基础

2022-07-04 20:25:10 1435

原创 手动修复某节点/var/lib/ceph/osd/ceph-X/下内容丢失导致OSD无法启动的方法

有时重启某个Ceph节点时,出现一种异常情况,就是该节点下所有osd都无法启动,且挂载目录(/var/lib/ceph/osd/ceph-x/)下所有文件也均消失;有时误删除也可能导致此现象。本文提供一种手动修复的方法。这种情况下,先找正常的节点,查看该目录下本来应有的文件:首先从其他正常节点的/var/lib/ceph/osd/ceph-x/下拷贝如下文件到故障节点的/var/lib/ceph/osd/ceph-x/下:scp activate.monmap bluefs ceph_fsid .

2021-10-26 16:51:38 2107 2

原创 nfs-ganesha(用户态NFS)编译、安装和使用

前面的文章介绍了基于社区或自己项目编译rpm包搭建Ceph分布式存储集群的方法。本篇介绍使用nfs-ganesha源码编译、安装,客户端使用用户态nfs协议挂载使用Ceph文件存储和对象存储的方法。<一> 编译与安装nfs-ganesha一、 获取源码源码可直接从github上git clone,也可以使用自己库维护的代码:github:git clone git@github.com:nfs-ganesha/nfs-ganesha.gitgit checkout V3.4自.

2021-10-19 10:13:21 4424 1

原创 基于ceph源码的rpm编译、部署、升级、清理说明

在之前写的《ceph-ansible安装部署指南(centos-7.6)》中,主要是直接使用社区发布的release版本,进行部署与安装。但大部分情况是,开发人员自己进行了二次开发或其他代码修改,那每次部署时还使用社区发布的版本部署后再手动替换就很不方便。所以本文档针对这种自编译的Ceph工程提供编译和部署的方式和说明。首先确定环境可以正常编译Ceph代码,确定方法就是直接在Ceph代码中运行:bash install-deps.sh将所有需要安装的依赖都装成后,运行:bash do_cmak.

2021-10-15 10:59:36 1607

原创 ceph-ansible安装部署指南(centos-7.6)

本文档主要讲述如何基于社区发布的Ceph-N版进行搭建Ceph九节点集群(EC策略,bluestore)。以及对搭建过程中遇到的一些问题进行了解答。

2021-10-13 11:32:41 4133 1

原创 pthread线程库使用介绍

多线程的开发和应用在平时的项目中使用非常频繁。Linux C++中,一般使用pthread库操作线程相关业务,不少公司一般都会基于该线程库的基本接口进行封装,使用起来更加方便易用。本文对该线程库的常用接口和使用方法做个介绍。一、创建线程前的工作——设置线程属性1、线程属性结构体的成分 线程具有属性,属性结构体用pthread_attr_t表示。它的结构如下...

2019-06-16 18:34:51 4412

原创 inline函数的使用和理解

在C++中,inline函数是一种比较小巧的函数。将函数声明为inline,该函数就成为内联函数。内联函数使函数的调用成本大大降低,因为编译器通常会对内联函数进行优化,如果inline函数的本体很小,编译器对内联函数的优化会使编译后产生的目标码比不使用内联函数产生的目标码更小,编译器对内联函数一般都是对每一个调用到该内联函数的地方都以函数本体替换,所以也使其执行速率大大提高。但如果...

2019-04-21 15:54:34 4563

原创 设计与声明

C++是一个面向对象(OOP)的语言,继承、封装和多态是其三大特性。所以在我们通过C++设计一个类的时候,需要考虑很多因素,比如重载函数、操作符、控制内存的分配与归还、定义对象的初始化和终结等。设计较好的类有自然地语法、直观的语义,所以如何设计好一个高效的类是我们在编程时需要仔细考虑的问题。 在设计类之前,Effective C++中将设计类比作是设计type,提...

2019-04-14 14:46:03 219

原创 资源管理

在C++中,最常使用的就是动态分配内存,当我们在程序中分配出一块内存时,最终就要释放掉它,否则会造成内存泄漏。在一些大型项目中,在稳定性测试中,功能正常的程序,也许在跑一段时间或很久之后出现死机、异常重启等莫名错误,其实有可能就是内存泄漏引起的问题。内存泄漏十分难以查找,有时,我们在一个类中声明了一块空间,由于复杂的处理过程,忘记或者由于某些程序的异常跳转,导致空间最终没有释放,最...

2019-04-02 22:47:08 187

原创 jsoncpp库常用源码解析及使用介绍(三)

前面两节介绍了jsoncpp库中使用最频繁的Value类,介绍了它的多种构造函数、重载符号、判断函数、转换函数以及其他功能性函数,同时,还举例对这些函数进行了使用说明。在jsoncpp库中,还有两个很重要的类Reader和Writer,本篇对Reader类的源码及使用进行介绍。 Json::Reader类顾名思义主要用于读取,它可以将字符串转换成Json::Valu...

2019-03-03 15:56:17 2667

原创 jsoncpp库常用源码解析及使用介绍(二)

        上一节介绍了jsoncpp库的下载及编译方式,中Value类中最基础的一部分功能的源码,包括Value的构造形式、重载"="、"&gt;"、"&lt;"、"&lt;="、"&gt;="、"!="、"[]"符号、一部分功能函数,以及对它们各自举了示例进行了展示。本节将继续对Value类的剩余常用源码进行介绍并做示例分析。

2019-02-12 11:32:31 5288

原创 jsoncpp库常用源码解析及使用介绍(一)

       JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON的应用场景非...

2019-02-09 14:16:20 4423 1

原创 static用法总结

        static关键字在C/C++中用处非常普遍,但是,在平时的工作中,一直没有好好地总结过static关键字的具体用法,有时定位问题或写代码时,遇到需要使用static关键字的地方,只有临时上网去查。这一次,对static常用方法做一个总结。        首先,在C语音中,static可以用来修饰变量和函数。看过自我修养的人都知道,程序在编译和链接过程中,会分为许多“段”结构,...

2019-01-29 23:26:09 301

原创 使用cblus_sgemm接口进行CPU矩阵乘法运算

        上一篇博客讲过了GPU比对乘法运算,使用的是cublas库的cublasSegmm和cublasGemmEx接口,速度很快,但当时也提出了问题,就是GPU的内存不够大,就算是损失一定精度压缩成int8型数据,也只是会比FP32型多存储4倍数据。如果在很大型的千亿级别数据项目中,就需要很大很大的显存才可以放得下这么多数据。但GPU成本比较高,显然也存在不便之处。并且在效能上,GPU比...

2019-01-20 20:09:41 840

原创 使用cublasGemmEx接口在GPU中进行int8型矩阵乘法运算

        在一些诸如特征比对等等的应用场景中,特征值其实就是一个个的浮点数(float)组成的矩阵,这些浮点数每一个都是4个字节(32位),然后对这两个矩阵进行乘法计算,A * B = C,得出的C矩阵就是能够代表两个特征矩阵相似性的值。毫无疑问矩阵乘法可以在CPU中进行计算,但是,在一些需要实时性的场合下,CPU的运算速度可能就不能满足要求,而通过GPU去做矩阵乘法反而再合适不过,GPU处...

2019-01-20 15:09:12 3443

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除