自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (7)
  • 收藏
  • 关注

原创 PureFlash存储系统介绍与上手指南

PureFlash是一个开源的分布式存储系统,项目起始于2016年。本文介绍将介绍PureFlash系统的主要特点,以及基于容器的快速上手体验。PureFlash的开源项目位置:https://github.com/cocalele/PureFlash一、PureFlash整体介绍PureFlash是一个开源的ServeSAN实现,也就是通过大量的通用服务器,加上PureFlash的软件系统,构造出一套能满足企业各种业务需求的分布式SAN存储。PureFlash是为全闪存时代而设计的存储系.

2021-03-06 21:05:10 1254 6

原创 分布式存储系统设计的若干问题(三)

问题9:网络连接问题10: 线程模型问题11: multipath与failover,load balance问题12:内部探针其他功能:audit, log

2021-01-08 23:08:19 416

原创 分布式存储系统设计的若干问题(二)

问题5:快照实现方案一个现代的存储系统,快照已经成为了必选项。快照除了直接用于保存系统的中间状态(比如VM的中间状态),还是其他功能包括克隆,备份,容灾功能的基础。快照就是的功能就是给存储拍一个照片,记住某个时刻的数据内容以备随时提取和回退。后面无论对数据再做读写操作,快照的内容总是保持不变。从这个原理上讲,如果在用户发出做快照命令时,迅速把某个volume的数据复制一份,这就是做了快照了,这个基本的做法就是SNIA定义的Split mirror。然而一个存储系统的实现往往不能采取这么简单粗暴的方法,一

2020-09-01 23:34:00 305

原创 分布式存储系统设计的若干问题(一)

本文要讨论的分布式存储系统是指狭义存储系统,即提供块存储,文件存储和对象存储的分布式系统。进一步对分布式的限定,我们这里讨论的是部署在同一个机房内的,由商用服务器构成的分布式存储系统。跨机房,跨地域的分布式系统暂不讨论。作为第一篇,我们先罗列定义问题,并说明这些问题对整个系统的意义。每个问题都有不同的答案并各有优缺点,本篇并不讨论具体的优缺点以及该如何进行选择。问题1: 集中式元数据管理vs分布式元数据集中式元数据管理的典型例子就是HDFS的NameServer,所有数据在集群中的分布信息集中在Name

2020-08-25 00:44:13 1125

原创 ViveNAS性能调试笔记(一)

ViveNAS是一个开源的NAS文件服务软件,有一套独立自创的架构。基于PureFlahs, rocksdb, ganesha。本文是开发过程的性能调试与分析记录,方便开发者了解项目的状态,以及调试思路。

2024-03-31 20:59:08 678

原创 PureFlash v1.9.1特性介绍

开源分布式存储系统PureFlash v1.9.1版本特性介绍

2024-02-26 23:09:04 759

原创 PureFlash云原生存储部署方法

介绍在K8S环境中部署PureFlash云原生存储的方法步骤。PureFlash是一个开源的云存储系统,能提供超过100万IOPS每节点的高性能。

2023-10-24 23:08:30 2207

原创 CXL内存池化应用模型

CXL互连技术这两年比较火热,是自从NAND SSD发明以来计算机硬件技术最大的变革。但是CXL的技术落地恐怕要比SSD艰难的多。前者只是一个部件的代替,后者需要大量架构的适配。本文罗列了一些我自己的思考点,也有一些业界的状态汇总。

2023-08-19 23:46:35 422

原创 使用qemu模拟CXL.mem设备

CXL可以说是自PCIe技术诞生几十年以来最具变革性的新技术了。可以想象有了CXL以后机箱的边界将被彻底打破,服务器互相使用对方的内存,网卡,GPU。整个机架甚至跨机架的超级资源池化成为可能,云计算也将进入一个新的时代。当前Intel, AMD 目前最新CPU型号也都已经支持CXL接口,三星也有支持CXL的内存模组提供,但是普及性还是非常低,可能只有极个别的研究人员才能拿到真正的物理设备。作为不那么有实力的普通IT从业者如何才能体验这一最前沿的科技成果呢?使用模拟器便是最方便的选择。

2023-05-27 10:23:13 2464 13

原创 ViveNAS - 一个基于LSM tree的文件存储实现 (一)

正如libvivefs在图中的位置,他的下层是LSM tree, 在当前的实现里面我直接选用了rocksdb。区别与以hash算法为基础的分布式系统,PureFlash的数据分布是完全人为可控的,这提供了企业存储在运行时所需的稳定能力,因为数据分布的掌控权最终在“人”而不在“机器”。PureFlash是一个分布式的ServerSAN存储系统,他的核心思想继承自NetBRIC S5,一个以全FPGA硬件实现的全闪存储系统,因此PureFlash拥有一个极度简单的IO栈,最小的IO开销。

2023-05-01 17:29:57 762

原创 用qemu + gdb调试linux内核

使用gdb跟踪调试linux内核的技巧与方法

2022-11-22 00:04:21 572

原创 RDMA编程-2 client端流程

RDMA编程client端流程与实例RDMA编程时的client端和socket编程也是大体类似的,只是有一些跟设备相关的细节,包括地址解析,queue pair, memory region 等要自己显式处理。 rdma_getaddrinfo retrieve address information of the destination rdma_create_event_channel creat

2022-10-11 23:04:52 790

原创 利用RocksDB 的plugin机制对接ServerSAN

本文示例了一个rocksdb plugin的开发,包括编码过程与编译方法。本文示例的了rocksdb跳过文件系统与ServerSAN进行直接对接的方法。

2022-03-07 23:26:59 2600

翻译 io_uring异步IO框架介绍与示例

https://blogs.oracle.com/linux/an-introduction-to-the-io_uring-asynchronous-io-framework

2021-06-20 23:29:22 1596

原创 ServerSAN前端接口设计

前端接口从大的概念分可以分为标准接口和私有接口。标准接口也就是业界广为接受,并且被内置在操作系统里的接口。对于SAN存储也就是SCSI/iSCSI, 以及未来可能出现的NVMe over Fabric(NoF)

2021-06-05 09:51:36 302

转载 NetBRIC S5:“另类”设计的全闪存阵列

NetBRIC S5:“另类”设计的全闪存阵列转自:https://aijishu.com/a/1060000000131182自从开启《企业存储技术》这个公众号以来,我写了不少PCIe SSD闪存组件的东西,这次也来写一篇闪存系统方面的。应该有不少同行朋友听说了,今年的Facebook OCP峰会上有一家中国公司做了演讲,主题为“the ALL-FLASH Software Defined Storage for CLOUD”——所指的产品就是NetBRIC S5。软件定义这个词,似乎总是

2021-04-18 23:35:32 386

原创 ServerSAN的数据一致性设计

这一篇我们来谈一下ServerSAN的数据一致性。就一致性这个概念而言,从工程可理解的角度可以分为三个类型,严格一致性,强一致性,弱一致性。**严格一致性:**对于数据项x的任何读操作将返回最近一次对x进行的写操作的结果所对应的值。严格一致性中存在的问题是它依赖于绝对的全局时间。对于所有的进程来说,所有写操作都是瞬间可见的,系统维持着一个绝对的全局时间顺序。举个例子来说,住在新疆的阿凡提给北京的康熙火车托运箱葡萄干,立刻又给康熙打了个电话说:‘我给你托运了箱葡萄干,快去接站’。康熙马上到火车站一看真就

2021-02-24 23:44:38 334 1

原创 ServerSAN系统元数据管理设计

本文首先就ServerSAN系统的元数据管理做一般的探讨,然后重点以PureFlash为例说明元数据管理的实践。元数据,也就是数据的说明书。当一块硬盘插到电脑上,电脑就看到一个块设备,这个块设备从LBA 0开始到LBA N,顺序编址,无比平滑。然而我们知道在物理上HDD实际是按Cylinder(柱面),Header(磁头), Sector(扇区),SSD则可能更复杂,哪个Chip, 哪个die, 哪个Block, 哪个Page。记录这些物理规格信息(CHS)以及逻辑信息与之的对应关系就是元数据。对于

2021-02-06 19:55:19 621 2

翻译 C++ 异常使用须知

本文翻译自 https://dzone.com/articles/some-useful-facts-to-know-when-using-c-exceptions

2019-11-07 00:22:14 726

原创 Ragel学习笔记(一)

Ragel是一个状态机编译器,类似Lex, 主要是用来处理字符输入,用于语法解析。简单的文本处理工作一般用正则表达式,或者用awk/sed这些工具就可以处理。之所以用Ragel是为了这样的场景,你的代码的核心任务是解析文本,而且需要高效的处理,比如一个SMTP引擎, HTTP引擎。那么Ragel可以按你定义好的语法,生成一个状态机嵌入到你的代码中。因为这个状态机是专门针对你预定义的语法,且以你的原...

2019-04-06 22:13:03 5805

原创 ceph rados ls命令卡死不返回

在测试ceph故障时,发现如果osd节点故障,那么 rados ls命令将长时间hang住,一直不返回。测试是这样进行的,搭建一个由1个monitor, 3个OSD组成的集群。创建一个pool tp, size=3,关闭osd2, osd3运行命令rados -p tp ls ,会发现命令一直不返回。从ceph的bug库里面看到一个类似的记录: http://tracker.cep...

2018-11-29 23:39:58 3857

原创 IPFS尝试

安装IPFS# go get github.com/jbenet/go-ipfs/cmd/ipfs# wget https://dist.ipfs.io/go-ipfs/v0.4.13/go-ipfs_v0.4.13_linux-amd64.tar.gztar xfz go-ipfs_v0.4.13_linux-amd64.tar.gzcd go-ipfs ./install.sh...

2018-01-29 21:47:16 3669

原创 两个host上的qemu VM使用bridge互通

两个host上的qemu VM网络如何互通?两个host上的qemu VM网络使用bridge互通,要使两个VM互通,必须使两个VM暴露在外部网络上,而不能仅仅在host内部。因此需要使用网桥。网桥是一个二层设备,和二层交换机是一个意思。 bridge作为一个二层交换机,是不需要IP地址的,然而网桥在使用时总是配置一个IP地址,更像一个普通的linux网卡。这是为什么?

2017-03-26 00:26:48 2016

原创 Mellanox RoCE卡调试笔记

拿到3块mellanox 的XC3卡,装到3个服务器上,开始RDMA调试。代码都是我自己的,使用rdma_cm库进行开发。Mellanox的RDMA是基于ROCE协议的,因此需要物理层保证可靠传输,不能丢包。为此交换机需要支持DCB, PFC等流控技术。这样子系统一下子就复杂了,为了简化系统,决定不使用交换机,把服务器之间用光纤直连。好在我只有3台服务器,刚好可以连起来,1台对2台即可。ubuntu

2016-09-24 22:20:29 15838 1

原创 RDMA编程1 建立侦听

RDMA编程 server端开发Server端如何进行侦听和建立连接

2016-06-28 16:11:50 11631 3

原创 MySQL batch 命令与transcation

1. 如果是自动提交,batch命令中个别语句错误,其他语句仍正常执行,并提交。2. 如果是手动提交,个别语句错误,rollback,则全部语句都被回滚;commit,正确的语句被提交,错误的不产生结果。

2012-02-03 12:29:04 960

原创 找到一个在Android上创建阻塞式模态对话框的方法

给个例子好了import android.app.Activity;import android.app.Dialog;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.text.method.PasswordTransformationMethod...

2011-03-23 00:47:00 17035 17

原创 关于Windows消息队列的几个问题

<br />1.是否所有的消息都是以WM_开头?<br />   否,还有<br />PrefixMessage categoryDocumentationABM and ABNApplication desktop toolbarShell Messages and NotificationsACM and ACNAnimation controlAnimation Control Messages and Animation Control NotificationsBCM, BCN, BM, and

2011-01-31 23:27:00 1448

原创 活动窗口(active),焦点窗口(focused),前台窗口(foreground)的区别

<br />搞了十几年的Windows开发,今天才发现这几个概念一直没有彻底的弄明白,今天终于仔细理了理<br />Active Window,字面意思就是活动窗口,其实就是Windows上面标题栏高亮的那个窗口。关键就在标题栏高亮。活动窗口必须是顶层窗口。<br />Focused Window,就是拥有键盘输入的窗口。可以是活动窗口里面的一个控件<br />Foreground Window,一般就是活动窗口。但有例外,当一个窗口处于ALWAYS ON TOP时,活动窗口可能是别的,但Always on

2011-01-31 19:58:00 4831

原创 .NET中获得hInstance的几个方法

<br />1.  只在PC平台上工作<br />  this.GetType().Module.ModuleHandle<br />2. 在WinCE和PC上都工作<br />    GetModuleHandle(NULL)<br />3. 只在PC平台上工作<br />    GetWindowLongPtr( hwndApp, GWLP_HINSTANCE )<br />4. 在WinCE和PC上都工作<br />BOOL GetClassInfo( <br />HINSTANC

2010-11-01 11:27:00 1465

原创 MSVC与GCC的差异(收集中)

1. 变长数组的支持. void f(int len) { char buf[len]; }   GCC支持,MSVC不支持  2. 临时变量作为函数参数传递 f(const QString& s);g(QString& s); f("abc");  //MSVC通过,GCC不通过g("abc"); //MSVC和GCC都通过  3

2010-05-21 18:00:00 4492

原创 sed 技巧

只替换符合上下文环境的pattern, 比如:如果c后面紧跟的不是字母A,就将c换成becho "c.cAcf" | sed s/c/([^A]/)/b/1/g输出 b.cAbf 在符合规则的行前面,插入一个特定字符 echo "abcef" | sed /ab/ s/^/#/ 其中/ab/是正则表达式,用来匹配某一行,s/^/#/ 命令是替换, ^表示

2010-04-28 18:13:00 1515

原创 eVC4编的程序不能在emulator上运行

eVC4里面用配置STANDARDSDK, Win32(WCE emulator) Debug, STANDARDSDK Emulator编译出来的程序下载到emulator上不能运行,提示不是有效的Win32程序,我用的是emulator v3, WM6 professional发现要把eVC的配置改成STANDARDSDK, Win32(WCE ARMV4I) Debug, STANDAR

2010-04-16 23:39:00 944

转载 如何让自己的网站快速被搜索引擎找到

摘录自http://topic.csdn.net/u/20100207/20/a491faef-7151-474c-8498-6f64c88d0479.html我的网站淘引擎http://www.taoyinqing.com终于被搜索引擎收录了,现在总结一下经验,给各位新开站的站长做个参考。一. 选好关键字。关键字是搜索引擎找到我们的网站的关键。

2010-04-01 00:25:00 3365

原创 cygwin下面用mysql client连接服务器的问题

 mysql -h localhost -u root -p就有这个问题,  mysql -h 127.0.0.1 -u root -p就能正常用

2010-04-01 00:24:00 1045

原创 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

 mysql -h localhost -u root -p就有这个问题,  mysql -h 127.0.0.1 -u root -p就能正常用

2010-03-02 12:31:00 701

原创 find 查找不同扩展名的文件

每次用到都要找半天资料,这次把它记下来两个方法 find . -regex .*/./(cpp/|h/) find . -name "*.cpp" -or -name "*.h"

2009-12-21 18:57:00 2259

原创 WinCE 下 ListCtl virtual mode的使用

调试了几天才把ListCtrl弄好,一个小问题困扰了半天。 把LIST_VIEW设置成REPORT View和Owner Data模式,也就是工作在virtual data模式下。然后去处理LVN_GETDISPINFO消息。好久以前是用过的,不过是在Windows + VC6下面,这次是在WinCE + EVC下面。先后犯了几个错误 1) 用ClassWizard添加消息响应函数

2009-10-08 22:38:00 876

转载 调试中的虚变量和格式化字符

Pseudo VariablesProbably the most common pseudo variable is $err, which displays the last error value set with the function SetLastError. The value that is displayed represents what would be returne

2009-06-02 11:02:00 698

原创 Powershell 函数在数学表达式中的使用

 这几天小试了一把powershell,里面一个函数的使用问题把我气的够呛。先自定义一个函数 function g($x) = { $x*$x }然后用命令 g(5)+g(5),居然输出25, 而不是50!但是发现,如果这么用$a = g(5)$b = g(5)$a+$b就能输出50 最后终于发现,要这么写才行(g(5))+(g(5)), 或者 (g 5)

2009-03-31 15:44:00 1248

Putty支持快捷键重连和自动重连

中文版Putty,并且增加了快捷键用于在连接断开时重新连接,这比每次从系统菜单选择重新连接方便的多。 另外还增加了自动重连功能。从系统菜单勾选自动重连后,当异常断开时都会自动建立连接。 源代码:https://github.com/cocalele/PuTTY

2017-09-23

C++ GUI Programming with Qt4 2nd Edition

C++ GUI Programming with Qt4 2nd Edition 英文版

2009-11-05

将bmp转成C数组,用于生成WinCE启动画面需要的数据

把bmp文件转成16位色的C数组文件。用于WinCE的启动画面。 supervivi的启动画面。 包含源代码 自己用的,当时在网上找不到合适的,就自己写了一个。

2008-11-10

C++垃圾回收器

在C++程序中进行垃圾回收的代码,使用标记-回收算法,支持多继承,对象数组的回收。详细的介绍在我的blog<br>http://blog.csdn.net/winux/archive/2007/09/01/1768777.aspx

2007-10-21

用.Net和C 写的在XP时钟区显示股票价格 源代码

将股票价格显示在XP的时钟区域。只要按下快捷建Ctrl-Alt-A显示第一个股票价格,Ctrl-Alt-B显示第二个,依次类推。 改目录下的url.txt文件可以该成你想要的股票的价格。上海的股票用s_sh 股票代码,深圳的股票用s_sz 股票代码。 Ctrl-Alt-F12退出。 摁“Start”按钮开始使用。摁下等几秒种初始数据下载成功后快捷键才能开始工作 摁下后窗口自动隐藏,要摁Ctrl-Alt-F12才能退出。 适合办公室炒股,怕被老板发现的人

2007-09-19

在XP时钟区域显示股票价格

已更新,请下载 http://download.csdn.net/source/250486

2007-09-18

空空如也

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

TA关注的人

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