摘要: 海量小文件存储(简称LOSF,lots of small files)出现后,就一直是业界的难题,众多博文(如[1])对此问题进行了阐述与分析,许多互联网公司也针对自己的具体场景研发了自己的存储方案(如taobao开源的TFS,facebook自主研发的Haystack),还有一些公司在现有开源... 阅读全文
posted @ 2015-08-15 13:59 it_arch_notes 阅读(20090) 评论(0) 推荐(3) 编辑
摘要: 在Ceph被越来越多地应用于各项存储业务过程中,其性能及调优策略也成为用户密切关注讨论的话题,影响性能表现关键因素之一即OSD存储引擎实现;Ceph基础组件RADOS是强一致、对象存储系统,其OSD底层支持的存储引擎如下图所示:其中,ObjectStore层封装了下层存储引擎的所有IO操作,向上... 阅读全文
posted @ 2015-11-03 22:20 it_arch_notes 阅读(3177) 评论(0) 推荐(1) 编辑
摘要: 存储系统上线前要做资源评估,通常需要在性能(即iops、带宽等)和容量维度进行业务评估;而具体到本地文件系统存储的容量时,需要根据具体业务对文件系统的可用数据空间和可用inode数进行评估,作者通过工作中一事例对此有了更深刻的认识: 由于系统需求,要将linux服务器A的本地磁盘数据(数据量2... 阅读全文
posted @ 2015-10-19 16:17 it_arch_notes 阅读(5460) 评论(0) 推荐(0) 编辑
摘要: 在使用和设计分布式存储系统时,非常重要的一个环节是数据寻址,即定位一个key的数据副本存放在哪个机器(甚至哪块磁盘);目前有几种常用的解决方案:中心节点管理元数据,分布式管理元数据,无元数据设计;本文结合自身经验谈谈三种方案的特点:1.中心节点管理元数据:在设计分布式(存储)系统时,使用中心节点... 阅读全文
posted @ 2015-09-06 12:13 it_arch_notes 阅读(5256) 评论(1) 推荐(2) 编辑
摘要: I/O wait is a per-CPU performance metric showing time spent idle, when there are threads on the CPU dispatcher queue (in sleep state) that are blocked... 阅读全文
posted @ 2015-08-29 14:14 it_arch_notes 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 最近,在测试基于ceph的小文件合并方案(见上个博文)时,遇到一个怪异的现象:将librados提供的append接口与我们封装的WriteFullObj接口(osd端是append操作和kvdb的put操作)对比,在处理同样大小的文件时(如4KB,8KB等),WriteFullObj比libr... 阅读全文
posted @ 2015-08-27 23:26 it_arch_notes 阅读(2929) 评论(0) 推荐(0) 编辑
摘要: 本文转自这里,blktrace在这种情况下的使用方法值得借鉴学习。-----------------------------------------------------------------------------------------------------当出现iowait高时,最重要的... 阅读全文
posted @ 2015-07-15 23:00 it_arch_notes 阅读(2619) 评论(0) 推荐(0) 编辑
摘要: 本文节选自这里,原文以mysql innodb系统为例,介绍了数据经过的各层级的buffer和cache,其它系统也有相似的原理,摘录于此。3.VFS层该层的缓冲都放在主机内存中,它的目的主要是在操作系统层缓冲数据,避免慢速块设备读写操作影响了IO的响应时间。3.1.细究O_DIRECT/O_SYN... 阅读全文
posted @ 2015-07-15 16:25 it_arch_notes 阅读(5303) 评论(0) 推荐(0) 编辑
摘要: For sockets, readability means there is some unread data in thereceivebuffer. That is well-known and probably the most common use case for non-blockin... 阅读全文
posted @ 2015-06-21 17:17 it_arch_notes 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 三种基本类型的缓存:绕写式(write-around),直写式(write-through)和回写式(write-back)。绕写式(write-around)缓存意味着所有数据首先被写入到硬盘区,当它成为合格的后,再基于读操作将它复制(注意不是移动)到闪存区。这意味着数据总是驻留在硬盘层,通常由R... 阅读全文
posted @ 2015-05-13 19:46 it_arch_notes 阅读(655) 评论(0) 推荐(0) 编辑