- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 kmalloc与vmalloc的区别
《linux内核情景分析》中,有一段提到kmalloc和vmalloc的区别,说kmalloc申请的页是物理连续的,vmalloc是逻辑地址连续,但是物理页并非连续,因此vmalloc可能带来较大的tlb抖动,效率较低。前面就思考过这个问题(当时还没有自己研究过linux内存管理),当时曾经这么理解的:新的x86 cpu是可以支持4M的大页表,物理上连续的小页可以合并为大页,这样申请同样大小的
2013-08-28 17:39:13 1970 1
原创 NFS协议发展漫谈
目前linux 2.6内核支持nfs 4.0版本。但是很多nfs4.0 rfc中规定的功能(例如open delegation等)并未充分实现。RHEL已经支持4.1 的file layout的nfs client,red hat宣称未来的发布版中会支持另外两个block和object的layout。SNIA的报告(www.snia.org/sites/default/files/SNIA
2013-08-21 15:45:38 1357
原创 NFSv 4.0 的变化
很久之前对nfs4.0 rfc文档分析的笔记,笔记不是很完善,后来工作变化了也懒得补充了。共享出来供大家分享吧,有些地方的理解可能会有偏差。以后阅读rfc的时候还是把原文翻一下比较好,笔记的方式容易引起误解,别人看了不方便考证。参考资料标准的rfc文档:rfc3530 NFSV4 1. V4变化1.1. operation的变化V4的RPC的Pr
2013-08-21 14:23:44 7087
原创 linux i/o stack diagram
非常详细的一张图。可以看到,当app取一个jbod/raid上的sas硬盘的文件时,os的内核需要经过这么复杂的转换过程。当然也缺了点东西,例如对于nfs的底层的描述没有,nfs client文件系统的下面应该是:rpc/tcp/ip协议栈/nic驱动。途中的gfs不知道是指什么,不是glusterFS,像是red hat另外一个Global file system吧。把coda做例子不如
2013-08-20 17:47:59 1239
原创 fuse的direct_io
direct_io: 启用该选项后,fuse的kernel模块将不在内核的页缓存中为读写的文件保存缓存(xfs支持,ext2、ext3并未支持)。文件的数据将从用户态的缓冲区和fuse daemon的缓冲区之间直接拷贝。fuse的direct_io选项fcntl里的O_DIRECT选项区别。两者本来是一个目的,都是要取消kernel里的页缓存。但是fuse实现的时候把这个功能的控制权
2013-08-20 12:39:46 3629
原创 fuse中进程通信
| "rm /mnt/fuse/file" | FUSE filesystem daemon shell命令生成一个用户进程 fuse守护进程 | | | | >sys_rea
2013-08-18 17:42:36 1441
原创 硬链接的实现和debugfs工具
有兴趣想研究下文件系统硬链接的实现。硬链接在linux文件系统里,就是给一个普通文件起一个别名。跟软连接(符号链接symbolic link)不同,硬链接要求源文件、目标文件必须在同一个挂载点下面,新建一个硬链接,磁盘文件系统的inode并不会增加,例如123.txt跟321.txt互为硬链接,具有相同的inode号: 查看了VFS的代码,文件的name是存在struct dentry中的
2013-08-18 17:15:59 1141
原创 linux网卡bond的几种模式
linux的网卡bond:将两个物理网卡(或port)映射为具有同一个逻辑ip的接口。bond技术跟交换机之间的端口汇聚以及san技术中常用的存储多路径(multiputh)类似。作用:增加带宽,例如两个前兆的一台网卡通过bond后可以将本地host的单个ip的带宽增加两倍。 增加可用性,做HA保护,单个网口down后ip地址仍然可用。
2013-08-16 14:47:12 2902
文件系统中的write barrier分析
2014-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人