Introduction to the Storage Performance Development Kit (SPDK) | SPDK概述 By Jonathan S. (Intel), Updated December 5, 2016 Solid-state storage media is in the process of taking over the data center. Current-generation flash storage enjoys significant a…
1. NVMe概述 NVMe是一个针对基于PCIe的固态硬盘的高性能的.可扩展的主机控制器接口. NVMe的显著特征是提供多个队列来处理I/O命令.单个NVMe设备支持多达64K个I/O 队列,每个I/O队列可以管理多达64K个命令. 当主机发出一个I/O命令的时候,主机系统将命令放置到提交队列(SQ),然后使用门铃寄存器(DB)通知NVMe设备. 当NVMe设备处理完I/O命令之后,设备将处理结果写入到完成队列(CQ),并引发一个中断通知主机系统. NVMe使用MSI/MSI-X和中断聚合来提…
源代码及NVMe协议版本 SPDK : spdk-17.07.1 DPDK : dpdk-17.08 NVMe Spec: 1.2.1 基本分析方法 01 - 到官网http://www.spdk.io/下载spdk-17.07.1.tar.gz 02 - 到官网http://www.dpdk.org/下载dpdk-17.08.tar.xz 03 - 创建目录nvme/src, 将spdk-17.07.1.tar.gz和dpdk-17.08.tar.xz解压缩到nvme/src中,然后用Open…
说明: 之所以要翻译这篇论文,是因为参考此论文可以很好地理解SPDK/NVMe的设计思想. NVMeDirect: A User-space I/O Framework for Application-specific Optimization on NVMe SSDs NVMeDirect: 面向基于NVMe固态硬盘存储应用优化的一种用户空间I/O框架 Hyeong-Jun Kim, Sungkyunkwan University, hjkim@csl.skku.edu Young-Sik L…
毫无疑问地,用来取代iSCSI/iSER(iSCSI Extensions for RDMA)技术的NVMe over Fabrics着实让RDMA又火了一把.在介绍NVMe over Fabrics之前,先科普一下RDMA. 1. DMA和RDMA的概念 1.1 什么是DMA? Direct Memory Access(DMA) is a capability provided that allows data to be sent directly from an attached devi…
注: 之所以要中英文对照翻译下面的文章,是因为SPDK严重依赖于DPDK的实现. Introduction to DPDK: Architecture and PrinciplesDPDK概论:体系结构与实现原理 Linux network stack performance has become increasingly relevant over the past few years. This is perfectly understandable: the amount of data…
在多核(SMP)多线程的情况下,如果不知道CPU乱序执行的话,将会是一场噩梦,因为无论怎么进行代码Review也不可能发现跟内存屏障(MB)相关的Bug.内存屏障分为两类: 跟编译有关的内存屏障: 告诉编译器,不要优化我,俺不需要 跟CPU有关的内存屏障: 告诉CPU, 不要乱序执行,谢谢 1. NVMeDirect中的内存屏障 /* nvmedirect/include/lib_nvmed.h */ 38 #define COMPILER_BARRIER() asm volatile("&qu…
OFA定义了一组标准的Verbs,并提供了一个标准库libibvers.在用户态实现NVMe over RDMA的Host(i.e. Initiator)和Target, 少不了要跟OFA定义的Verbs打交道.但是,仅仅有libibverbs里的API是不够的,还需要对应的RDMA硬件的用户态驱动支持.在前文中,我们分析了内核态ib_post_send()的实现,理解了内核空间的回调函数post_send()是如何跟mlx5卡的设备驱动函数mlx5_ib_post_send()关联在一起的.本…
使用RDMA, 必然关系到内存区域(Memory Region)的注册问题.在本文中,我们将以mlx5 HCA卡为例回答如下几个问题: 为什么需要注册内存区域? 注册内存区域有嘛好处? 注册内存区域的实现过程 1. 为什么需要注册内存区域? 首先,我们知道,由于DMA设备只访问物理内存地址,因此,DMA引擎需要主机系统内存的物理地址连续,这一点无可非议,因为如果物理地址不连续,即便DMA引擎知道buffer开始的地址(虚拟地址)和buffer长度,也不知道怎么搬数据.试想一下,如果让DMA引擎知…
NVMe over PCIe最新的NVMe协议是1.3. 在7.2.1讲了Command Processing流程.有图有真相. This section describes command submission and completion processing. Figure 251 shows the steps that are followed to submit and complete a command. The steps are:本节描述了命令提交和命令完成处理.图251列出…
本文是对论文Dissecting a Small InfiniBand Application Using the Verbs API所做的中英文对照翻译 Dissecting a Small InfiniBand Application Using the Verbs API Gregory Kerr∗ College of Computer and Information Science Northeastern University Boston, MA kerrg@ccs.neu.edu…
OFA定义了一组标准的Verbs,并在用户态提供了一个标准库libibverbs.例如将一个工作请求(WR)放置到发送队列的Verb API是ibv_post_send(), 但是在Linux内核,对应的API则是ib_post_send().本文将使用Linux内核提供的mlx5卡(Mellanox公司生产的一种HCA卡)的驱动(mlx5_ib.ko)分析内核Verb API ib_post_send()的实现原理.分析用到的源代码包有: libibvers源代码: libibverbs-1.…
在NVMe over PCIe中,I/O命令支持SGL(Scatter Gather List 分散聚合表)和PRP(Physical Region Page 物理(内存)区域页), 而管理命令只支持PRP;而在NVMe over Fabrics中,无论是管理命令还是I/O命令都只支持SGL.NVMe over Fabrics既支持FC网络,又支持RDMA网络.众所周知,在RDMA编程中,SGL(Scatter/Gather List)是最基本的数据组织形式. SGL是一个数组,该数组中的元素被…
注: 要进一步搞清楚SSD盘对应的PCI的BAR寄存器的映射,有必要先了解一下UIO(Userspace I/O). UIO(Userspace I/O)是运行在用户空间的I/O技术.在Linux系统中,一般的设备驱动都是运行在内核空间,而在用户空间使用应用程序调用即可.而UIO则是将设备驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能.那么,在内核空间UIO要做的事情就变得很简单,分为两种: 分配和记录设备需要的资源和注册UIO设备 实现必须在内核空间实现的中断处理函数 为了…
来源: https://zcopy.wordpress.com/ 说明: 本文不是对原文的逐字逐句翻译,而是摘取核心部分以介绍RDMA Send操作(后面凡是提到RDMA send, 都对应于IBA里的send操作).文中给出的例子非常浅显易懂,很值得一读. 1. What is RDMA | 什么是RDMA RDMA is Remote Direct Memory Access which is a way of moving buffers between two applications…
前言 WaterfallTree(瀑布树) 是最强纯C#开源NoSQL和虚拟文件系统-STSdb专有的(版权所有/专利)算法/存储结构. 参考 关于STSdb,我之前写过几篇文章,譬如: STSdb,最强纯C#开源NoSQL和虚拟文件系统 STSdb,最强纯C#开源NoSQL和虚拟文件系统 4.0 RC2 支持C/S架构 C#开源磁盘/内存缓存引擎 技术分析 STSdb其中一个最重要的部分是WaterfallTree(瀑布树)这个新发现的存储结构. 详细的官方原文,可以在这里找到:Waterfa…
本文由“合天智汇”公众号首发,作者:b1ngo Ripple 20:Treck TCP/IP协议漏洞技术分析 Ripple20是一系列影响数亿台设备的0day(19个),是JSOF研究实验室在Treck TCP/IP协议栈中发现的[1],该协议栈广泛应用于嵌入式和物联网设备.而由于这些漏洞很底层,并且流传版本很广(6.0.1.67以下),通过供应链的传播,使得这些漏洞影响十分广泛和深远.这也是这个漏洞代称Ripple的由来:The damaging effects of a these vuln…
http://www.educity.cn/tx/429084.html 互联网技术DAS.NAS和SAN存储方案的比较 按照设备位置和接入方式,磁盘存储可以分为内置存储和外挂存储,外挂存储又分为直连存储和网络存储(Fabric-Attached Storage,FAS)等方式,如图10-31所示. yxr注:其实是存储历史发展的一个过程,从附属部分走向独立,从单独硬件走向网络! 1.DAS与NAS存储方案的比较 DAS是大型服务器主要采用的外挂存储方式,由于存储利用率和扩展的原因, DAS必须…
HTTP Live Streaming直播(iOS直播)技术分析与实现 发布于:2014-05-28 13:30阅读数:12004 HTTP Live Streaming直播(iOS直播)技术分析与实现http://www.cocoachina.com/industry/20140528/8584.html iOS RTMP视频直播开发http://www.360doc.com/content/15/1020/15/19175681_507079027.shtml iOS音频AAC视频H264编…
随着企业网络应用的时间和应用的数据量的加大,企业已经感觉到存储容量和性能落后与网络的应用发展需求,特别是流媒体企业,在这种应用条件下满足用户的存储需求的技术应用诞生,DAS.NAS和SAN三种存储技术成为当今主流的存储技术. 发现自己知识还是非常匮乏的,首先我还是来总结一下基础知识吧,当然这些都是存储互联网上找到的资料,原创不属于本作者,这里也是为了分析存储知识而已.希望能够跟更多的人来探讨存储,从而学到更多的知识. 今天我们来看一下存储的分类,根据服务器类型分为:封闭系统的存储和开放系统的存储…
下午去參加一个Oracle有关海量数据存储技术的培训讲座了. 地址在广州市林和西路101号天河区计经大楼西側三楼. 培训发起机构为:广州中睿信息技术有限公司. 以下就简要总结一下所听到的一些东西,也算是学到的这些技术.只是有的东西不知道总结的对不正确,暂且囫囵吞枣吧. Oracle的存储技术 大体上分为两种,一种是合的技术,一种是分的技术.合的技术即将各个分层存储的数据整合在一起.分的技术即将数据分布式存储,也即到处存储. 而Oracle中採用了高可用性技术,在数据库的存储和优化方面涉及到例如以…
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 这部分的内容官方英文文档讲的不是很透,因此我在参考Solidity官方文档(当前最新版本:0.4.20)的同时加入了深入分析部分,欢迎订阅专栏. 数据位置(Data location) 在系列第一篇,我们提到 Solidity 类型分为两类: 值类型(Value Type) 及 引用类型(Reference Types), 前面我们已经介绍完了值类型,接下…
存储技术应用存储是根据不同的应用环境通过采取合理,安全,有效的方式将数据保存到某些介质上并能保证有效的访问另一方面,它是保证数据完整安全存放的方式或行为存储就是把这两方面结合起来,向客户提供一套数据存放解决方案 存储技术分类SCSI:小型计算机系统接口DAS:直连式存储NAS:网络技术存储SAN:存储区域网络FC:光纤通道 常见存储技术SCSI:作为输入/输出接口,主要用于硬盘,光盘,磁带机等设备 DAS:将存储设备通过SCSI接口或光纤通道直接连接到计算机上 不能实现数据与其他主机共享,占用服…
原文地址:http://blog.nsfocus.net/nssock2-dll-module-malicious-code-analysis-report/ NetSarang是一家提供安全连接解决方案的公司,该公司的产品主要包括Xmanager, Xmanager 3D, Xshell, Xftp 和Xlpd.最近,官方在2017年7月18日发布的软件被发现有恶意后门代码,该恶意的后门代码存在于有合法签名的nssock2.dll模块中.从后门代码的分析来看,该代码是由于攻击者入侵的开发者的主…
前言 学习Android相关知识,数据存储是其中的重点之一,如果不了解数据,那么让你跟一款没有数据的应用玩,你能玩多久呢?答案是这和没有手机几乎是差不多的.我们聊QQ,聊微信,看新闻,刷朋友圈等都是看里面的数据,所以在Android中数据对我们是多么重要. 数据,如今是数据大时代,谁拥有数据,谁就能掌握未来,这一点很可怕的,现在你用的手机APP中存在着你的大量数据信息,大数据的积累可以掌握出你的作息时间,生活规律等. 对数据的存储有着良好的技术支持,是一个好的开发平台的体现,如果不能长时间保持数…
目前最快的是苹果NVME,当然UFS2.1也不差 iPhone6s与iPhone6s Plus在硬件的规格上有了很大的提升,但是它们身上的变化远没有苹果在发布会上所提到的A9处理器.1200万摄像头以及3D Touch那么简单,内存升级到2GB LPDDR4苹果就只字没提到,其实这两台手机上有着更大的秘密,它们的存储设备既不是eMMC也不是UFS规范,而是NVMe. Anandtech透过深度发掘手机内的系统文件,发现iPhone 6s所用的是型号为AP0128K的苹果SSD,而2015版Mac…
文章主体转载自: 1.zol摩尔定律全靠它 CPU光刻技术分析与展望 2.wiki:Extreme ultraviolet lithography 3.ITRS 2012 1. 光刻技术组成和关键点 ● 光刻技术的组成与关键点 光刻的基本原理是利用光致抗蚀剂(或称光刻胶)感光后因光化学反应而形成耐蚀性的特点,将掩模板上的图形刻制到被加工表面上. 主要组成部分如下: 光源 功率W 波长$ \lambda $ 光学透镜 透射式透镜(248nm.193nm) 反射式透镜(157nm) 掩膜版 由透光的…
http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html HTTP Live Streaming直播(iOS直播)技术分析与实现 不经意间发现,大半年没写博客了,自觉汗颜.实则2012后半年,家中的事一样接着一样发生,实在是没有时间.快过年了,总算忙里偷闲,把最近的一些技术成果,总结成了文章,与大家分享. 前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器…
http://blog.talkingdata.com/?p=6172 在前一篇文章(Fabric和Sawtooth技术分析(上))中,我们着重跟大家分享了 Fabric 相关的内容,在本篇文章中,我们将围绕着 Sawtooth 进行一些分析和探讨. Sawtooth 结构及分析Sawtooth 是 Intel 公司推出的企业级区块链,2018年 Intel 将其贡献给 Hypherlegder 项目.本文中笔者主要从 Sawtooth 的存储结构.数据结构.网络结构方面做简要介绍. Sawto…
HTTP Live Streaming直播(iOS直播)技术分析与实现 不经意间发现,大半年没写博客了,自觉汗颜.实则2012后半年,家中的事一样接着一样发生,实在是没有时间.快过年了,总算忙里偷闲,把最近的一些技术成果,总结成了文章,与大家分享. 前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的.其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HL…