本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍.如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行.对于上层的部分,特别是RADOS GW和RBD,由于现有的文档中(包括Sage的论文中)并未详细介绍,因而本文或有语焉不详之处,还请读者多多包涵. 本文将首先介绍RADOS中最为核心的.基于计算的对象寻址机制,然后说明对象存取的工作流程,之后介绍RADOS集群维护的工作过程,最后结合Ceph的结构和原理对其技术优势加以回顾和剖析. 寻址流…
在 <"Ceph浅析"系列之二--Ceph概况>中即已提到,关注Ceph的原因之一,就是OpenStack社区对于Ceph的重视.因此,本文将对Ceph在OpenStack中的价值进行简要介绍,并且对Ceph和Swift进行对比. Ceph在OpenStack中的地位 对于一个IaaS系统,涉及到存储的部分主要是块存储服务模块.对象存储服务模块.镜像管理模块和计算服务模块.具体针对OpenStack而言,则分别对应为其中的Cinder.Swift.Glance和Nova四个…
Ceph针对的目标应用场景 理解Ceph的设计思想,首先还是要了解Sage设计Ceph时所针对的目标应用场景,换言之,"做这东西的目的是啥?" 事实上,Ceph最初针对的目标应用场景,就是大规模的.分布式的存储系统.所谓"大规模"和"分布式",是指至少能够承载PB级别的数据,并且由成千上万的存储节点组成. 在大数据口号深入人心的今天,PB已经远远不是一个激动人心的系统设计目标了.但是,应该指出,Ceph项目起源于04年.那是一个商用处理器以单核为…
本文将从逻辑结构的角度对Ceph进行分析. Ceph系统的层次结构 Ceph存储系统的逻辑层次结构如下图所示[1]. Ceph系统逻辑层次结构 自下向上,可以将Ceph系统分为四个层次: (1)基础存储系统RADOS(Reliable, Autonomic, Distributed Object Store,即可靠的.自动化的.分布式的对象存储) 顾名思义,这一层本身就是一个完整的对象存储系统,所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的.而Ceph的高可靠.高可扩展.高性能…
开源技术专家章宇同学(@一棹凌烟)在C3沙龙分享过Ceph之后,最近来了劲头,一口气写了一系列<Ceph浅析>的博文,共8篇: "Ceph浅析"系列之一--前言 "Ceph浅析"系列之二--Ceph概况 "Ceph浅析"系列之三--Ceph的设计思想 "Ceph浅析"系列之四--Ceph的结构 "Ceph浅析"系列之五--Ceph的工作原理及流程 "Ceph浅析"系列之六--…
本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍.如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行.对于上层的部分,特别是RADOS GW和RBD. 本文将首先介绍RADOS中最为核心的.基于计算的对象寻址机制,然后说明对象存取的工作流程,之后介绍RADOS集群维护的工作过程,最后结合Ceph的结构和原理对其技术优势加以回顾和剖析. 寻址流程 Ceph系统中的寻址流程如下图所示[1]. obj_locating上图左侧的几个概念说明如下…
PAM的配置文件: 我们注意到,配置文件也放在了在应用接口层中,他与PAM API配合使用,从而达到了在应用中灵活插入所需鉴别模块的目的.他的作用主要是为应用选定具体的鉴别模块,模块间的组合以及规定模块的行为.下面是一个示例配置文件:   # cat /etc/pam.d/system-auth: #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig i…
Java 详解 JVM 工作原理和流程 作为一名Java使用者,掌握JVM的体系结构也是必须的.说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或…
FastDFS tracker storage 的工作原理及流程 2013 年 3 月 11 日 – 09:22 | 1,409 views | 收藏  (No Ratings Yet) FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务,如相册网站.视频网站等等.FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage).跟踪…
转载:http://blog.csdn.net/u013263917/article/details/73038519 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARKit工作原理 1.3.1-ARSCNView与ARSession 1.3.2-ARWorldTrackingSessionConfiguration与ARFrame 1.4-ARKit工作完整流程 1.1-写在前面的话 初次接触ARKit,很多人会为其复杂的架构关系而感到畏惧.这里笔者将以最基础简介…
1.用自己的图,描述HDFS体系结构.工作原理与流程. 读数据的流程 2.伪分布式安装Hadoop.…
本文将对Ceph的基本情况进行概要介绍,以期读者能够在不涉及技术细节的情况下对Ceph建立一个初步印象. 1. 什么是Ceph? Ceph的官方网站Ceph.com上用如下这句话简明扼要地定义了Ceph: "Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability." 也即,Ceph是一种为优秀的性能.可靠性和可扩展性而设计的…
一.RADOS的对象寻址 Ceph 存储集群从 Ceph 客户端接收数据——不管是来自 Ceph 块设备. Ceph 对象存储. Ceph 文件系统.还是基于 librados 的自定义实现——并存储为对象.每个对象是文件系统中的一个文件,它们存储在对象存储设备上.由 Ceph OSD 守护进程处理存储设备上的读/写操作. 在传统架构里,客户端与一个中心化的组件通信(如网关.中间件. API .前端等等),它作为一个复杂子系统的唯一入口,它引入单故障点的同时,也限制了性能和伸缩性(就是说如果中心…
原博文出于:    http://blog.csdn.net/liutengteng130/article/details/46724081  感谢! 上篇文章介绍了Nginx框架的设计之管理进程以及多个工作进程的设计,master进程用来管理通过fork子进程与子进程通信,子进程通过处理进程信号接到master的通信去处理请求. Nginx工作原理: Nginx会按需同时运行多个进程:一个主进程和几个工作进程,配置了缓存时还会有缓存加载器进程(cache loader)和缓存管理器进程(cac…
上篇文章介绍了Nginx框架的设计之管理进程以及多个工作进程的设计.master进程用来管理通过fork子进程与子进程通信.子进程通过处理进程信号接到master的通信去处理请求. Nginx工作原理: Nginx会按需同一时候执行多个进程:一个主进程和几个工作进程,配置了缓存时还会有缓存载入器进程(cache loader)和缓存管理器进程(cache manager)等.全部进程均是仅含有一个线程,并主要通过"共享内存"的机制实现进程间通信.主进程以root用户身份执行,而work…
AIDL是一种接口定义语言,用于生成可在Android设备上两个进程之间进行进程间通信(IPC)的代码. AIDL的使用 新建一个aidl文件,定义进程间通信的接口 // IStudentManager.aidl package com.tellh.androidart; // Declare any non-default types here with import statements import com.tellh.androidart.Student; interface IStud…
(1)dubbo工作原理 第一层:service层,接口层,给服务提供者和消费者来实现的 第二层:config层,配置层,主要是对dubbo进行各种配置的 第三层:proxy层,服务代理层,透明生成客户端的stub和服务单的skeleton 第四层:registry层,服务注册层,负责服务的注册与发现 第五层:cluster层,集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务 第六层:monitor层,监控层,对rpc接口的调用次数和调用时间进行监控 第七层:protoco…
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息3.通过config.buildSessionFactory();//创建SessionFactory4.sessionFactory.openSession();//打…
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息3.通过config.buildSessionFactory();//创建SessionFactory4.sessionFactory.openSession();//打…
Hibernate工作原理以及为什么要用 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息3.通过config.buildSessionFactory();//创建SessionFactory4.sessionFactory.openSession();//打…
FPGA组成.工作原理和开发流程 备注:下面的描述基于ALTERA系列的FPGA芯片,而且是第一次学习FPGA,其中的一部分内容是参考一些资料总结的,个人独特的分析和见解还偏少. 1. FPGA概述 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL.GAL.EPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点 2…
JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类. 当一个URL被访问时,内存申请过程如下: A. JVM会试图为相关Java对象在Eden中初始化一块内存区域 B. 当Eden空间足够时,内存申请结束.否则到下一步 C. JVM试图释放在Eden中所有不活跃的对…
DTU是无线数据传输模块,采用2G,3G,4G网络,将本地串口数据经DTU打包成TCP或者UDP数据进行远程传输的设备.使用方便.已经在各行业远程数据传输,设备监控等领域大量应用.如智能仪器仪表.智能传感器.数据终端.RTU.触摸屏.工控机等设备.塔石DTU工作原理软件内部结构图如下: DTU通信模式 按通信方式分类,DTU一般采用的通信方式有GPRS/4G/NB-IoT/LoRa/WiFi等等,客户可根据自己的应用场景选择最佳的通信方式:按接口类型分类,DTU一般支持RS485.RS232.I…
本篇文章的内容,主要是笔者在调研分析Ceph过程中产生的一些思考.因为其中的内容比较自由发散,且大多是笔者的个人见解,故此另启一文进行讨论. 关于Ceph的性能 目前为止,本系列的文章中没有涉及到Ceph性能的详细讨论,也没有给出任何的Ceph性能数据.原因很简单:笔者本人没有机会进行详尽的Ceph性能分析研究,也没有见到比较全面的相关数据.因此,为了避免以片面的数据误导读者,便没有提供任何信息. 以笔者个人的经验而言,探讨一个系统领域的开源项目的性能,事实上并不容易.其原因在于,影响一个实际部…
最初决定写这些文章的时候,本打算大致记录一下,几千字也就了事了.可是越写越觉得东西多,不说明白总有些不甘心,于是就越写越长,到这儿为止貌似已经有一万七千多字了.除了博士论文之外,应该是没有写过更长的东西了. 但是,即便如此,仍然有很多内容没能涉及,只能将来有机会再加以补充了. 之所以花这么多时间在这些文章上,归根结底还是因为Ceph是个有意思的东西,多看一看,多想一想,总能有些新收获,很有趣.即便Ceph最终不能大红大紫,凭着其精彩的设计思想和巧妙的技术实现,应该还是会在存储技术领域留下一笔的.…
作为一名Java使用者,掌握JVM的体系结构也是必须的.说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码…
作为一名Java使用者,掌握JVM的体系结构也是必须的. 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器…
作为一名Java使用者,掌握JVM的体系结构也是必须的.说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码…
作为一名Java使用者,掌握JVM的体系结构也是必须的. 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器…
1.什么是SVN ? SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 互联网上很多版本控制服务已从CVS迁移到Subversion.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的. 2.SVN的运行方式 ? svn服务器有2种运行方式:独立服务器和借助apache运行.两种方式各有利弊,用户可以自行选择. 3.如何进行数据存储 ? svn存储版本数据也有2种方式:BDB(一种事务安全…