本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍.如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行.对于上层的部分,特别是RADOS GW和RBD,由于现有的文档中(包括Sage的论文中)并未详细介绍,因而本文或有语焉不详之处,还请读者多多包涵. 本文将首先介绍RADOS中最为核心的.基于计算的对象寻址机制,然后说明对象存取的工作流程,之后介绍RADOS集群维护的工作过程,最后结合Ceph的结构和原理对其技术优势加以回顾和剖析. 寻址流…
本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍.如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行.对于上层的部分,特别是RADOS GW和RBD. 本文将首先介绍RADOS中最为核心的.基于计算的对象寻址机制,然后说明对象存取的工作流程,之后介绍RADOS集群维护的工作过程,最后结合Ceph的结构和原理对其技术优势加以回顾和剖析. 寻址流程 Ceph系统中的寻址流程如下图所示[1]. obj_locating上图左侧的几个概念说明如下…
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流程,但总感觉少了点什么,应该是少了对安全层的针对性介绍,那么这篇文章就算是对HTTPS 详解一的补充吧.还记得这张图吧. HTTPS 和 HTTP的区别 显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transp…
一.RADOS的对象寻址 Ceph 存储集群从 Ceph 客户端接收数据——不管是来自 Ceph 块设备. Ceph 对象存储. Ceph 文件系统.还是基于 librados 的自定义实现——并存储为对象.每个对象是文件系统中的一个文件,它们存储在对象存储设备上.由 Ceph OSD 守护进程处理存储设备上的读/写操作. 在传统架构里,客户端与一个中心化的组件通信(如网关.中间件. API .前端等等),它作为一个复杂子系统的唯一入口,它引入单故障点的同时,也限制了性能和伸缩性(就是说如果中心…
一.元数据和元数据管理 (1)元数据 在学习Ceph之前,需要了解元数据的概念.元数据又称为中介数据.中继数据,为描述数据的数据.主要描述数据属性的信息,用来支持如指示存储位置.历史数据.资源查找.文件记录等功能.通俗地说,就 是用于描述一个文件的特征的系统数据,比如访问权限.文件拥有者以及文件数据库的分布信息(inode)等等.在集群文件系统中,分布信息包括文件在磁盘上的位置以 及磁盘在集群中的位置.用户需要操作一个文件就必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性…
1.配置ceph.repo并安装批量管理工具ceph-deploy [root@ceph-node1 ~]# vim /etc/yum.repos.d/ceph.repo [ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch enabled= gpgcheck= priority= type=rpm-md gpgkey=https://mi…
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   server:一般redis服务器信息,包含以下域:         redis_version:redis服务器版本号         redis_git_sha1:Git SHA1         redis_git_dirty:Git dirty flag         os:redis服务器…
通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便于管理,而且可以不借助服务器(不联网)在本地仓库来管理它,svn是集中式的,而且必须联网通过服务器来完成代码的管理,git只会在根目录下放.git文件,svn会在每个目录下放.svn文件(当你添加.svn文件到svn时会报错). 1> SourceTree    下载地址:http://www.so…
上篇博文对Spring的工作原理做了个大概的介绍,想看的同学请出门左转.今天详细说几点. (一)Spring IoC容器及其实例化与使用 Spring IoC容器负责Bean的实例化.配置和组装工作有两个接口:BeanFactory和ApplicationContext.其中ApplicationContext继承于BeanFactory,对企业级应用开发提供了更多的支持.在实际应用中都是用该接口. 1)实例化Spring容器(主要有四种) 1.ClassPathXmlApplicationCo…
1.dubbo的工作原理 ①整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口. 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI. 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类. 图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行…
一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2530芯片却需要对IO口进行配置,才能对它进行赋值,需要配置的寄存器有PXSEL,PXDIR,PXINP,x可以代表任意IO口,如P1SEL. 下面介绍PXSEL的功能: 下面介绍PXDIR的功能: 下面介绍PXINP的功能: 通过配置以上寄存器的,就可以控制IO口德输入输出状态,是否做为普通IO口…
这个月装逼有点少了,为什么呢,因为去考软件射鸡师了,快到儿童节了,赶紧写篇博纪念一下逝去的青春,唔,请忽略这句话. 二维码其实有很多种,但是我们常见的微信使用的是一种叫做QRCode的二维码,像下面这样的,可以放心的扫,这只是我的博客主页链接啦: 关于QR码编码的二维码,我们要知道几个特点: 1. 扫描时可以从各个角度去扫,也就是旋转多少度都没关系,不信吗?下次去肯德基买单试试咯. 2. 二维码有容错率,容错率越大,生成的二维码也就越复杂,但是越不容易出错,并且,当二维码被遮挡的时候也越容易扫描…
今天主要学习了列表,python的列表真的事太强大了,由于内容比较多,今天就先简单的介绍一下新学的几个成员函数吧. 首先我们要了解list是一种序列类型,其构造方式有四种形式: (1)空列表 [] (2)直接添加元素 [a] [a,b,c] (3)使用列表解析 [x for x in iterable] (4)使用构造函数 list() or list(iterable) 成员函数: append() 在末尾添加一个元素 extend() 以列表的形式在末尾添加 insert() 两个参数,第一…
一.概念. Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spring…
一.创建配置文件 如图所示,我们在resources文件夹中新建配置文件application.yml   结构图 二.一些基本配置 server: port: 8090 //配置端口 session-timeout: 30 tomcat.max-threads: 0 tomcat.uri-encoding: UTF-8 spring: datasource: //数据库配置 url : jdbc:mysql://localhost:3306/newbirds username : root p…
前言: 原本计划这次写一下搭建eureka群集.但是发现上次写的只是服务的注册,忘了写服务的发现,所以这次先把服务发现补上去. 我们基于上篇文章,再新建两个.net core web api项目,分别起名为order_one,order_two, 作为两个订单服务.我们以order_one为例. 同理先使用nuget添加Pivotal.Discovery.ClientCore库. Startup.cs 中添加 public void ConfigureServices(IServiceColle…
看react.js对我来说真的不是难不难的问题,问题是我的思路太难转变了,真是坑死我了,react里面的坑也很多.算了,这些抱怨没啥用,记录一下今天学习的内容. 今天看了to-do-list经典示例 总结起来可以概括为 1.首先划分组件:父组件--子组件 2.显示数据:创建初始数据,并将数据显示到页面上 3.创建函数:①:添加函数,输入框中输入数据,显示到页面上 ②:删除函数,点击删除按钮,将该条数据删除 代码有很多,一会给一个链接,自己看就行,没必要我重新复制 其中踩过的坑: 1. 首先就是版…
本节重点 理解什么是变量? 掌握各种数据类型 理解可变类型和不可变类型 一.变量和常量 变量: 作用:存贮程序的中间结果在内存里,以备后边的程序调用 定义规范: 变量名只能是 字母.数字活下划线的任意组合 变量名的第一个字符不能是数字 python中的关键字不能作为变量名 命名习惯: 驼峰体  FilePath 下划线体  file_path(官方推荐) 不建议的命名习惯: 变量名为中文.拼音 变量名过长 变量名词不达意 与c#对比:不需要定义变量的类型 变量的应用: a=1 b=a # 给变量…
关于关键字的一个概述 Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构,关键字不能用做变量名.方法名.类名.包名. Java常见的关键字 标识符 什么是标识符? 标识符就是程序员在定义Java程序时,自定义的一些名字,就比如class后的名字.类名就属于标识符的一种.标识符除了应用在类名上,还可以用在变量.函数名.包名上. 标识符的命名规范 标识符由26个英文字符大小写.数字.下划线和美元符号组成的 不能以数字开头,不能使关键字 严格区分大小写 标识符…
上一篇jquery实现checkbox的全选,得到了一些朋友的建议,其中插件的定义我的确不太清楚,也闹了个笑话,有些朋友建议我去看<锋利的Jquery>,说实话正在看了.由于正在学习中,我就想把项目中经常要用的jquery效果自己写成通用方法,可以在大家的帮助下完善这些方法,也可以让不会的了解到一种做法,最后 形成自己的Jquery 方法库,方便以后的使用,这些例子都是我自己写的,没有参考,所以有很多地方需要改进. 1:为什么要写这个方法 在项目中,一些table都要设置样式,为了样式的美观,…
(二)Axure rp的线框图元件 l  图片 图片元件拖入编辑区后,可以通过双击选择本地磁盘中的图片,将图片载入到编辑区,axure会自动提示将大图片进行优化,以避免原型文件过大:选择图片时可以选择图片原始大小,或保持图片元件的大小. l  文本 在网页中文本的名称是lable,用于页面中添加说明文字.文字连接,或一些动态的提示. l  矩形 矩形的应用比较广泛,比如作为页面的背景.按钮.以及一些元件的遮盖等:矩形的形状可以通过鼠标右键点击–编辑选项—改变形状,来变成我们需要的形状,比如做选项…
springcloud中内置了tomcat所以打包的时候是直接把tomcat打入jar包 之后就可以做到, 单独的服务, 独立的jar包, 独立运行的效果了. 一.打jar包 1. 在pom.xml文件中<build>标签中可以新增<finalName>标签自定义jar包名称 2. 点击idea操作界面右侧的"maven" 3. 对每个子工程分别打包, 父工程不需要打包 4. 打包成功 5. target文件夹下可以找到生成的jar包 6. 重复以上步骤生成其他…
之前讲的字符设备驱动程序,只要有一个主设备号,那么次设备号无论是什么都会和同一个 struct file_operations 结构体对应. 而本节课讲的是如何在设备号相同的情况下,让不同的次设备号对应不同的  struct file_operations 结构体. 在本次的驱动程序中,打开/dev/hello0 . /dev/hello1  调用的是hello_open函数.打开/dev/hello2 调用的是 hello2_open 函数.打开其他次设备号的文件,则是打开失败. 驱动程序代码…
基于DM9000C的原厂代码修改dm9000c的驱动程序. 首先确认内存的基地址 iobase. 确定中断号码. 打开模块的初始化函数定义. 配置内存控制器的相应时序(结合DM9000C.C的手册). 程序代码: /* dm9ks.c: Version 2.08 2007/02/12 A Davicom DM9000/DM9010 ISA NIC fast Ethernet driver for Linux. This program is free software; you can redi…
一.协议栈层次对比 设备无关层到驱动层的体系结构 1).网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据.这一层的存在使得上层协议独立于具体的设备.2).网络设备接口层向协议接口层提供统一的用于描述具体网络设备属性和操作的结构体net_device,该结构体是设备驱动功能层中各函数的容器.实际上,网络设备接口层从宏观上规划了具体操作硬件的设备驱动功能层的结构.3).设备…
Nor Flash和Nand Flash的不同: 类型 NOR Flash  Nand Flash  接口 RAM-like,引脚多 引脚少 容量 小(1M.2M...) 大(512M.1G) 读 简单 复杂 写 复杂 复杂 价格 贵 便宜   无坏块.位反转 有位反转.坏块   存储一些重要的文件 可以出错的文件比如视频 xip 可以 不可以 使用uboot来体验nor Flash操作.(Nor的A0接到Soc的A1上.所以地址应该左移1位.) 1. 读数据(NOR Flash可以像内存一样直…
NAND FLASH是一个存储芯片. 在芯片上的DATA0-DATA7上既能传输数据也能传输地址. 当ALE为高电平时传输的是地址. 当CLE为高电平时传输的是命令. 当ALE和CLE都为低电平时传输的是数据. 将数据发给nand Flash后,在发送第二次数据之前还要判断芯片是否处于空闲状态.一般是通过引脚RnB来判断,一般是高电平代表就绪,低电平代表正忙. 操作Nand Flash的一般步骤是: 1. 发命令 选中芯片 CLE设置为高电平 在DATA0-DATA7上输出命令值 发出一个写脉冲…
安装驱动后,可在/dev/目录下发现已经生成了相应的设备文件. 格式化设备:mkdosfs /dev/ramblock. 挂载设备. 读写设备 . 驱动程序代码: /************************************************************************* > File Name: ramblock.c > Author: > Mail: > Created Time: 2016年11月05日 星期六 22时17分28秒 **…
字符设备驱动程序 应用程序是调用C库中的open read write等函数.而为了操作硬件,所以引入了驱动模块. 构建一个简单的驱动,有一下步骤. 1. 创建file_operations 2. 申请设备号 3. 注册字符设备驱动, 4. 驱动入口 5. 驱动出口 检查数据是否到来的方式: 1. 查询方式 2. 休眠唤醒方式 如果设备出现异常而无法唤醒时,则将永远处于休眠状态. 3. poll机制 如果没有被唤醒,则在一定时间内可自己唤醒. 4. 异步通知(信号) 而以上的几种方式通用性不高,…
USB在接入系统的时候,以0的设备ID和主机通信,然后由主机为其分配新的ID. 在主机端,D+和D-都是下拉接地的.而设备端的D-接上拉时,表明此设备为高速设备:12M/s. D+接上拉时则是全速设备:480M/S. PC的USB口中的D+D-有15K的下拉电阻,未接USB设备时,皆为低电平. 而设备中的D+D-则是1.5K的上拉电阻.一旦接入PC中,电脑就会知道有设备接入. USB是主从结构.所有的传输都是由主机发起的,即USB设备没有主动通知USB主机的能力. USB的传输类型: 控制传输.…