旧博客, 不希望从网络消失

云硬盘的Burst功能

[toc] 云计算的挑战 云计算把计算、存储、网络资源进行池化,这样多个租户就可以同时使用这些资源,那么如何保证所有的租户可以公平的使用这些资源,互不影响?如何保证整个云平台不会过载呢? ...

January 28, 2015 · 8 min · 3549 words · 朱荣泽

基于Ceph打造高性能高可靠的分布式块存储系统

 存储是云计算的基石。 – Jack Ma 块存储系统 分布式存储有出色的性能,可以扛很多故障,能够轻松扩展,所以我们使用Ceph构建了高性能、高可靠的块存储系统,并使用它支撑公有云和托管云的云主机、云硬盘服务。 由于使用分布式块存储系统,避免了复制镜像的过程,所以云主机的创建时间可以缩短到10秒以内,而且云主机还能快速热迁移,方便了运维人员对物理服务器上硬件和软件的维护。 用户对于块存储系统最直观的感受来源于云硬盘服务,现在我们的云硬盘的特点是: 每个云硬盘最大支持 6000 IOPS和170 MB/s的吞吐率,95%的4K随机写操作的延迟小于2ms 。 所有数据都是三副本,强一致性,持久性高达10个9。 创建、删除、挂载、卸载都是秒级操作。 实时快照。 提供两种云硬盘类型,性能型和容量型。 ...

November 12, 2014 · 10 min · 4922 words · 朱荣泽

如何测试云硬盘

问题 UOS公有云开放以来,一些用户反应用dd命令测试出来的1TB云硬盘的吞吐率(MBPS)只有128MB/s,而不是我们SLA保证的170MB /s ,这是为什么?下面我会简单介绍如何测试硬盘,RAID,SAN,SSD,云硬盘等,然后再来回答上面的问题。 测试前提 我们在进行测试时,都会分清楚: 测试对象:要区分硬盘、SSD、RAID、SAN、云硬盘等,因为它们有不同的特点 测试指标:IOPS和MBPS(吞吐率),下面会具体阐述 测试工具:Linux下常用Fio、dd工具, Windows下常用IOMeter, 测试参数: IO大小,寻址空间,队列深度,读写模式,随机/顺序模式 测试方法:也就是测试步骤。 测试是为了对比,所以需要定性和定量。在宣布自己的测试结果时,需要说明这次测试的工具、参数、方法,以便于比较。 ...

September 8, 2014 · 13 min · 6023 words · 朱荣泽

Ceph的架构

介绍 云硬盘是IaaS云平台的重要组成部分,云硬盘给虚拟机提供了持久的块存储设备。目前的AWS 的EBS(Elastic Block store)给Amazon的EC2实例提供了高可用高可靠的块级存储卷,EBS适合于一些需要访问块设备的应用,比如数据库、文件系统等。 在OpenStack中,可以使用Ceph、Sheepdog、GlusterFS作为云硬盘的开源解决方案,下面我们来了解Ceph的架构。 Ceph是统一存储系统,支持三种接口。 Object:有原生的API,而且也兼容Swift和S3的API Block:支持精简配置、快照、克隆 File:Posix接口,支持快照 Ceph也是分布式存储系统,它的特点是: 高扩展性:使用普通x86服务器,支持10~1000台服务器,支持TB到PB级的扩展。 高可靠性:没有单点故障,多数据副本,自动管理,自动修复。 高性能:数据分布均衡,并行化度高。对于objects storage和block storage,不需要元数据服务器。 ...

September 9, 2013 · 10 min · 4738 words · 朱荣泽

更快的学习 - 如何用一年时间在MIT通过33门课程

更快的学习 更快的学习有很多好处,但是大多数人不愿意去学习如何学习,也许是因为他们不太相信这是可能的,他们觉得学习快是因为基因和天才的关系。 下面的内容来自于 The MIT Challenge 。 加快理解 一个学生会使用典型学习方法去上课、读书、做练习、读笔记,但是效率很低。我们需要一种系统化的方法去加快理解,没有系统的方法,更快的理解几乎不可能,因为产生见解的心理机制被完全隐藏了。 而且,“理解"不像开关一样,它更像洋葱,我们要学会如何剥离它。第一步是揭开这过程,获得理解跟两件事情有关: 建立连接(Making connections) 排查错误(Debugging errors) ...

April 30, 2013 · 4 min · 1700 words · 朱荣泽

如何成为OpenStack工程师

0 阅读指南 希望本文能够解开你心中萦绕已久的心结,假如是死结,请移步到 https://wiki.openstack.org/wiki/Main_Page 学习OpenStack其实就是学习各种Python库的过程。 把OpenStack的设计原则贴在你的墙上。 https://wiki.openstack.org/wiki/BasicDesignTenets 1 OpenStack Hacker 态度:开放、主动、沟通 影响力:能说、能写、能分享 四化:自动化、流程化、系统化、文档化 ...

April 18, 2013 · 7 min · 3108 words · 朱荣泽

Linux内核态抢占机制分析

Linux内核态抢占机制分析 **【摘要】**本文首先介绍非抢占式内核(Non-Preemptive Kernel)和可抢占式内核(Preemptive Kernel)的区别。接着分析Linux下有两种抢占:用户态抢占(User Preemption)、内核态抢占(Kernel Preemption)。然后分析了在内核态下:如何判断能否抢占内核(什么是可抢占的条件);何时触发重新调度(何时设置可抢占条件);抢占发生的时机(何时检查可抢占的条件);什么时候不能抢占内核。最后分析了2.6kernel中如何支持抢占内核。 ...

April 17, 2013 · 10 min · 4756 words · 朱荣泽

多协议存储系统 MPX系列磁盘阵列

 2011年12月 MPX多协议存储系统完工,下面是整个系统的截图。http://photo.163.com/zrzhit@yahoo.com.cn

April 17, 2013 · 1 min · 72 words · 朱荣泽

第0章 无中生有

每个学计算机的同学都想写一个操作系统,每个学存储的同学都想开发一款磁盘阵列。每当看到“操作系统”四个字我就冲动,那是大脑皮层的强烈反应,无奈能力不济,绕了一大圈都没入门。 今年5月刚好没啥正事,所以打算重整旗鼓,写一个非常简单的OS,想用来敲开“操作系统”这个大门。这个系列的文章只记录开发过程的点滴经验,如有不妥,请各位过路神仙指教。 ...

April 17, 2013 · 1 min · 448 words · 朱荣泽

第10章 时钟中断(PIT编程)

设置时钟中断就是给操作系统加上心跳。设置时钟中断就是是设置PIT(8253/54芯片),可参考 《IBM-PC汇编语言程序设计 第2版》p384。 PIT有一个控制寄存器(0x43)和三个计数寄存器(0x400x42)。三个计数寄存器是16位的,有两种表示形式(BCD和二进制),有6种模式。控制寄存器中bit7bit6用来选择计数寄存器,bit5bit4用来选择写入方式,bit3bit1用来选择计数模式,bit0用来选择表示形式。 ...

April 17, 2013 · 2 min · 780 words · 朱荣泽