随笔分类 -  文件系统

摘要:WeiboFS是基于新浪微博的文件系统,它将新浪微博虚拟成一个linux本地文件系统,用户像使用文件系统一样来看微博,发微博。 WeiboFS的开发需要用到FUSE, fusepy, sinatpy2.x FUSE是指用户空间文件系统,通过FUSE,开发人员通过实现一组用户空间的接口即可实现一个文件系统。 fusepy是FUSE的python-binding工具,通过fusepy,开发人员可以... 阅读全文
posted @ 2013-04-19 14:13 ydzhang 阅读(289) 评论(0) 推荐(0)
摘要:1. 与日志相关字段的初始化 <super.c> static int parse_options (char *options, struct super_block *sb, unsigned long *inum, unsigned long *journal_devnum, ext3_fsblk_t *n_blocks_count, int is_remount) { … ca... 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(740) 评论(0) 推荐(0)
摘要:日志文件系统的目标是避免对整个文件系统进行耗时的一致性检查,ext3日志文件系统的思想是对文件系统进行的任何高级修改都分两步进行。首先,把待写块的一个副本存放在日志中;其次,当发往日志的I/O数据传送完成时(把数据提交到日志后),待写块就被写入文件系统。当发往文件系统的I/O数据传送终止时(把数据提交到文件系统后),日志中的块的副本就被丢弃。 当从系统故障中恢复时,e2fsck程序区分以下两种情... 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(1881) 评论(0) 推荐(0)
摘要:FAT文件系统分为三个部分:保留区、FAT区和数据区,如下所示: |--- 保留区 ---|--- FAT1 ---|---FAT2---|---数据区 ---| 1. 保留区中包含文件系统的一些总体信息,类似于unix文件系统里的超级块信息。 2. FAT区包含文件的分配表链。 3. 数据区存放实际的文件数据(目录的数据为目录项列表)。 本人电脑C盘的空间约为40G,簇大小为32k(簇类似... 阅读全文
posted @ 2013-04-19 14:08 ydzhang 阅读(1658) 评论(0) 推荐(0)
摘要:/dev/sda1为ext3格式的分区,使用dumpe2fs /dev/sda1可查看文件系统的总体信息。 #dumpe2fs /dev/sda1 Filesystem OS type: Linux Inode count: 491520 Block count: 1965402 Reserved block count: 98270 Free blocks: 1020744 Free ino... 阅读全文
posted @ 2013-04-19 14:08 ydzhang 阅读(292) 评论(0) 推荐(0)
摘要:每次逛fuse的sourceforge主页都会有新的收获,今天在Filesystem Based on Fuse列表中,发现了一个fusefile的文件系统,其提供将一个文件挂载到另一个文件上的功能(支持偏移和追加模式),如对于/dev/sda的磁盘文件,通常是不推荐用户直接读写磁盘文件的,一旦不小心破坏了超级块或重要的数据块就麻烦了。此时就可通过fusefile,将/dev/sda的一部分挂载... 阅读全文
posted @ 2013-04-19 14:08 ydzhang 阅读(361) 评论(0) 推荐(0)
摘要:为了使问题简单化,在根目录下创建文件dnfs-server.conf,由于根目录的inode节点为2(ls –i –l –d /),且第一个块组的inode table起始块号为483),查看根目录的索引节点信息。 (参考http://blog168.chinaunix.net/space.phpuid=20196318&do=blog&id=31362) hexdump /dev/sda1 -... 阅读全文
posted @ 2013-04-19 14:08 ydzhang 阅读(396) 评论(0) 推荐(0)
摘要:1. 用户空间文件系统 用户空间文件系统位十内核之外,实现为一个用户进程或者一个运行库。在用户空间开发文件系统的主要原因是,开发工作相对比较简单。这种方法避免了内核编程的复杂性,极大的简化了开发工作。用户级文件系统的另一个优点是,文件系统可以由用户自己安装,不需要系统管理员的参与,这给用户使用文件系统提供了很大的灵活性。一个运行在用户空间的文件系统这样与用户进程和操作系统进行交互(以读文件操作为... 阅读全文
posted @ 2013-04-19 14:08 ydzhang 阅读(619) 评论(0) 推荐(0)
摘要:Iometer简介 Iometer 是一个工作在单系统和集群系统上用来衡量和描述I/O子系统的工具。 Iometer 既是工作负载生成器(也就是说,它可以进行输入输出操作,以便增加系统的负荷),它还是一个测量工具(也就是说,它检查并且记录I/O 操作的性能和对系统的影响)。它可以被配置为模拟任何程序或者基准测试程序的磁盘和网络I/O的负载,或者用来产生整个综合的I/O负载。它也可以用来产生并测... 阅读全文
posted @ 2013-04-19 14:07 ydzhang 阅读(950) 评论(0) 推荐(0)
摘要:以前用iozone简单测了下ext3及dnfs的性能,用磁盘测试工具测了一下硬盘的性能。前者在http://blog.chinaunix.net/u2/87570/showart_1944522.html【A】中做了分析;后者在http://blog.chinaunix.net/u2/87570/showart_2191188.html【B】中做了分析。 A中的数据当时让我很吃惊,为什么读写的... 阅读全文
posted @ 2013-04-19 14:05 ydzhang 阅读(1085) 评论(0) 推荐(0)
摘要:SUN RPC是对socket的封装,其底层适用TCP或是UDP协议来传输数据,本文讨论SUN RPC使用的超时和重传策略。 1. 总超时值:一个客户端等待其服务器的应答的总时间量。TCP和UDP都是用该值; 2. 重试超时:只用于UDP, 是一个客户等待其服务器的应答期间每次重传请求的间隔时间; 注:因TCP是可靠的面向连接的协议,有自己的一套机制来保证端到端的传输可靠性,故使用TCP建立的... 阅读全文
posted @ 2013-04-19 14:05 ydzhang 阅读(1225) 评论(0) 推荐(0)
摘要:使用HD Tune Pro测试了下磁盘的性能,在老大的帮助下把测试的结果弄清楚了。 1. 裸盘的测试(读) 测试结果显示,磁盘速率不断跳跃式的下降,应该是从磁盘的沿着磁盘外道到内道读取数据,由于外圈的线速度远大于内圈,故在外圈速率也会高些,而不断的跳跃则是出现在磁盘磁盘换道的时刻。快结束的时候出现了一个大幅度的下降,因为测试时系统运行着很多其他的应用程序,应该是受到其他进程的影响才出现的。 ... 阅读全文
posted @ 2013-04-19 14:05 ydzhang 阅读(488) 评论(0) 推荐(0)
摘要:加密文件系统优势 1,加密文件转移到别的物理介质上时,没有额外的加密/解密开销。 2,支持文件粒度的加密,也就是说,用户可以选择对哪些文件或目录加密。而且,应用程序不用关心文件是否被加密,可以完全透明地访问加密文件。 3,无需预先保留足够的空间,用户可以随时加密或恢复文件。 4,对单个加密文件更改密钥和加密算法比较容易。 5,不同的文件可以使用不同的加密算法和密钥,增大了破解的难度。 6,只有加... 阅读全文
posted @ 2013-04-19 14:04 ydzhang 阅读(1151) 评论(0) 推荐(0)
摘要:一直弄不清楚的IOZONE请求大小终于清楚了,原来IOzone中的记录大小是由其应用层划分的,最简单的情形是多个for循环read。 文件系统的读写速率与读写的文件大小是没有多大关系的,在写的时候可能大文件的在写元数据及数据组织方面比小文件的开销要大,所以写效率随测试文件大小的增加会有小幅度的下降。关键影响文件系统效率的其实是上层的请求大小,大的文件在应用层分为多个请求,请求的大小由应用程序决定... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(820) 评论(1) 推荐(0)
摘要:Ext2设计思想: Ext2 features 1, 支持4TB大文件。 2, 支持255字符的文件名,并可扩展到1012字节。 3, 为root用户预留一些块。 Advanced ext2 features 1, 支持多种块大小,1024,2048,4096. 2, 快速的符号链接实现(小于60个字符的连接名时不需要额外分配块)。 3, 追踪文件系统状态,是否为dirty,是否一致等,设置最大... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(241) 评论(0) 推荐(0)
摘要:受人所托,写了个文件监视器小程序,总共300+行,实现对指定文件的监视功能,当文件新增,删除,或被修改,程序予以记录并报告。 实现是通过不断扫描指定的文件,通过比较两次扫描的状态来判断文件的变化。文件状态数据结构:/* filestat struct for monitoring */typedef struct filestat{ char f_name[FNAME_MAX]; struct s... 阅读全文
posted @ 2013-04-19 14:03 ydzhang 阅读(321) 评论(0) 推荐(0)