2018.5.24 lvm创建pool
摘要:在调试生产环境时遇到以下情况: 好奇心驱使下,发现是lvm的一个功能——lvm创建pool,就手动创建了相似的环境,操作截图如下: 主要命令:
阅读全文
2018.5.2 日志式文件系统
摘要:假设我们新增一个文件时,文件系统的行为是: 1:先确定用户对于欲新增文件的目录是否有w与x的权限,有的话才能新增。 2:根据inode bitmap找到没有使用的inode号码,并将新的权限、属性写入。 3:根据block bitmap找到没有使用的block号码,并将实际数据写入block中,且更
阅读全文
2018.5.2 文件系统基本概念
摘要:inode位图(inode Bitmap) 本身占一个块,其中每个bit表示一个inode是否空闲可用。 block位图(block Bitmap) 本身占一个块,其中每个bit表示一个inode是否空闲可用。 inode表(inode Table) 我们知道,一个文件除了数据需要存储之外,一些描述
阅读全文
2018.5.2 file结构体
摘要:f_flags,File Status Flag f_pos,表示当前读写位置 f_count,表示引用计数(Reference Count): dup、fork等系统调用会导致多个文件描述符指向同一个file结构体,例如有fd1和fd2都引用同一个file结构体,那么它的引用计数就是2,当clos
阅读全文
2018.4.17 VFS
摘要:总结: VFS是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的进程看来都是相同的。 严格的说,VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。 虚
阅读全文
2017.8.23 shell判断文件,目录是否存在或者具有权限
摘要:#!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi
阅读全文
2017.7.11 fuse工作原理
摘要:FUSE的工作原理如图所示。假设基于FUSE的用户态文件系统hello挂载在/tmp/fuse目录下。当应用层程序要访问/tmp/fuse下的文件时,通过glibc中的函数进行系统调用,处理这些系统调用的VFS中的函数会调用FUSE在内核中的文件系统;内核中的FUSE文件系统将用户的请求,发送给用户
阅读全文
2017.7.11 linux 挂载
摘要:挂载:Liunx采用树形的文件管理系统,也就是在Linux系统中,可以说已经没有分区的概念了。分区在Linux和其他设备一样都只是一个文件。要使用一个分区必须把它加载到文件系统中。这可能难于理解,继续往下看。Linux中树形的文件结构,最顶层是/ 目录。在安装系统时,你必须选择把一个主分区挂载在/
阅读全文