Linux文件访问流程

inode是文件的唯一标识,文件名和inode的对应关系存放在上一级目录的block中;inode里有指向文件block的指针和文件的属性,从而通过block获得文件数据。

磁盘的容量由inode和block共同决定

磁盘空间是否满了,是由两项参数决定的:

第一个是inode是否满了,第二是block是否满了,任何一个满了都不能存数据。

有关inode的总结

  1. 磁盘格式化创建文件系统时会生成一定数量的inode和block;
  2. inode称为索引节点,作用是存放文件的属性信息和指向block的指针;
  3. inode是磁盘上的一块存储空间,CentOS6默认inode大小为256字节;
  4. inode编号是唯一的,不同的文件有唯一的inode号;
  5. inode号相同的文件互为硬链接;
  6. 创建一个文件至少要占用一个inode和一个block;
  7. 查看inode总量和使用量 df -i;
  8. 查看文件的inode信息 ls -li 或 stat /etc/hosts;
  9. 生成指定的大小的inode mkfs.ext4 -b 2048 -I 256 /dev/sdb。

有关block的总结

  1. 磁盘存取文件是按block为单位存取的;
  2. 一个文件可能占用多个block,但是每读取一个block就会消耗一次磁盘I/O;
  3. 如果要提升磁盘IO性能,那么block应该大一点,从而能读取更多内容;
  4. block太大,存放小文件就会造成空间浪费;block太小,又会消耗磁盘IO;
  5. 要根据业务需求确定block大小,一般默认设置为4K;
  6. block大小也是格式化时确定的,命令是 mkfs.ext4 -b 2048 -I 256 /dev/sdb。

总的来说

  1. 磁盘格式化文件系统后,会分为inode和block两部分;
  2. inode存放文件属性和指向block的指针;
  3. 文件名和inode对应关系存放在上级目录里的block;
  4. inode默认256B,block默认4K;
  5. 通过df -i 查看inode数量及使用量;
  6. 查看 inode和block大小 dumpe2fs /dev/sda1 | egrep "Inode size|Block size";
  7. 一个文件至少占用一个inode和block,硬链接占用同一个inode;
  8. 一个block只能被一个文件使用,block太小,性能差,block太大,浪费空间;
  9. 通常,一块空间能放多少文件取决于inode和block的数量和大小,如果文件很小,那么block或inode就容易耗尽;如果文件很大,则应该用block的总数除以一个文件占用的block的数量得出存放文件的数目。

Linux文件访问流程及磁盘inode和block总结的更多相关文章

  1. 【转】漫谈linux文件IO--io流程讲的很清楚

    [转]漫谈linux文件IO--io流程讲的很清楚 这篇文章写的比较全面,也浅显易懂,备份下.转载自:http://blog.chinaunix.net/uid-27105712-id-3270102 ...

  2. linux文件系统启动流程、启动脚本

    linux文件系统启动流程.启动脚本 下面是一张Linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/ ...

  3. Linux基础篇学习——Linux文件系统之文件存储与读取:inode,block,superblock

    Linux文件类型 代表符号 含义 - 常规文件,即file d directory,目录文件 b block device,块设备文件,支持以"block"为单位进行随机访问 c ...

  4. [apue] linux 文件访问权限那些事儿

    前言 说到 linux 上的文件权限,其实我们在说两个实体,一是文件,二是进程.一个进程能不能访问一个文件,其实由三部分内容决定: 文件的所有者.所在的组: 文件对所有者.组用户.其它用户设置的权限访 ...

  5. linux文件访问权限(像rw-r--rw-是什么意思)

    Linux的文件访问权限分为 读.写.执行三种 r:可读(4) w:可写(2)对目录来说则可新建文件 x:可执行(1)对目录来说则可进入该目录 可用 ls -l 查看文件 像上图的-rw-r--rw- ...

  6. Linux文件访问和日志

    一.文件系统创建一个文件的过程假设我们想要新增一个文件,此时文件系统的行为是:先确定用户对于欲新增文件的目录是否具有 w 与 x 的权限,若有的话才能新增:根据 inode bitmap 找到没有使用 ...

  7. 『学了就忘』Linux文件系统管理 — 63、磁盘配额介绍

    目录 1.磁盘配额概念 2.磁盘配额条件 3.磁盘配额的相关概念 4.磁盘配额实践规划 1.磁盘配额概念 磁盘配额是限制用户或者用户组在一个分区上可以使用的空间大小和文件个数的限制. 扩展: 管理员可 ...

  8. LINUX文件删除,但磁盘空间未释放

    最近在进行系统压测,由于服务器节点太多,便写了个简单的脚本,在执行过程中发现,日志文件删除后,磁盘空间只释放了一小部分,任有大部分磁盘空间未释放. 使用lsof | grep delete命令,发现已 ...

  9. linux文件访问过程和权限

    第1章 文件访问过程详解 1.1 文件访问过程 第2章 权限 2.1 对于文件rwx含义 r读取文件内容 w修改文件内容 需要r权限配合 只有w权限的时候,强制保存退出会导致源文件内容丢失 x权限表示 ...

随机推荐

  1. 洛谷 P1352 没有上司的舞会

    树形动规入门题 先放题面 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都 ...

  2. 基于ORM实现用户登录

    1. 与数据库中的数据进行比较,检验用户名和密码是否正确. 2. 拿到的是QuerySet类型,类似于一个列表.验证成功/失败,返回到不同的页面. u = request.POST.get('user ...

  3. 【BZOJ4767】两双手(动态规划,容斥)

    [BZOJ4767]两双手(动态规划,容斥) 题面 BZOJ 题解 发现走法只有两种,并且两维坐标都要走到对应的位置去. 显然对于每个确定的点,最多只有一种固定的跳跃次数能够到达这个点. 首先对于每个 ...

  4. Splay 的区间操作

    学完Splay的查找作用,发现和普通的二叉查找树没什么区别,只是用了splay操作节省了时间开支. 而Splay序列之王的称号可不是白给的. Splay真正强大的地方是他的区间操作. 怎么实现呢? 我 ...

  5. Codeforces 894.D Ralph And His Tour in Binary Country

    D. Ralph And His Tour in Binary Country time limit per test 2.5 seconds memory limit per test 512 me ...

  6. org.hibernate.HibernateException: getFlushMode is not valid without active transaction

    Spring & Hibernate 整合异常记录: org.hibernate.HibernateException: getFlushMode is not valid without a ...

  7. UVA 1390 Interconnect

    https://vjudge.net/problem/UVA-1390 题意: 给出n个点m条边的无向图, 每次随机加一条非自环的边,(加完后可出现重边), 添加每条边的概率是相等的 求使图连通的期望 ...

  8. IO流-LineNumberReader

    LineNumberReader继承自BufferedReader,比其多了两个方法,用于设置和获取当前行号, setLineNumber(); getLineNumber();

  9. 【Project Euler】530 GCD of Divisors 莫比乌斯反演

    [题目]GCD of Divisors [题意]给定f(n)=Σd|n gcd(d,n/d)的前缀和F(n),n=10^15. [算法]莫比乌斯反演 [题解]参考:任之洲数论函数.pdf 这个范围显然 ...

  10. 你不知道的Static

    Static静态字段,静态方法,静态代码块 壹  简介 一些场景下会要求一个类的多个实例共享一个成员变量:有时候想定义一些不和具体对象关联.不需要new就调用的方法 举例:Console类的Write ...