linux文件系统:linux文件系统基础知识

  这两天看了本fedora 6实战教程下面是有关linux文件系统知识学习笔记:
  1、linux文件系统分配策略:
  块分配( block allocation ) 和 扩展分配  ( extent allocation )
  块分配:磁盘上文件块根据需要分配给文件避免了存储空间浪费但当文件扩充时会造成文件中文件块不连续从而导致过多磁盘寻道时间
  每次文件扩展时块分配算法就需要写入文件块结构信息也就是 meta-dada meta-data总是和文件起写入存储设备改变文件操作要等到所有meta-data操作都完成后才能进行
  因此meta-data操作会明显降低整个文件系统性能
  扩展分配: 文件创建时次性分配连串连续当文件扩展时次分配很多块meta-data在文件创建时写入当文件大小没有超过所有已分配文件块大小时就不用写入meta-data直到需要再分配文件块时候
  扩展分配采用成组分配块方式减少了SCSI设备写数据时间在读取顺序文件时具有良好性能但随机读取文件时就和块分配类似了
  文件块组或块簇 ( block cluster) 大小是在编译时确定大小对文件系统性能有很大影响
  注: meta-data 元信息:和文件有关信息比如权限、所有者以及创建、访问或更改时间等
  2、文件记录形式
  linux文家系统使用索引节点(inode)来记录文件信息索引节点是种数据结构它包含了个文件长度、创建及修改时间、权限、所属关系、磁盘中位置等信息
  个文件系统维护了个索引节点每个文件或目录都和索引节点元素对应每个索引节点在索引号称为索引节点号
  linux文件系统将文件索引节点号和文件名同时保存在目录中所以目录只是将文件名称和它索引节点号结合在张表目录中每对文件名称和索引节点号称为个连接
  对于个文件来说个索引节点号和的对应;而对于个索引节点号却可以对应多个文件名
  连接分为软连接和硬连接其中软连接又叫符号连接
  硬连接: 原文件名和连接文件名都指向相同物理地址目录不能有硬连接;硬连接不能跨文件系统(不能跨越区别分区)文件在磁盘中只有个拷贝
  由于删除文件要在同个索引节点属于唯连接时才能成功因此硬连接可以防止不必要误删除
  软连接: 用 ln -s 命令建立文件符号连接符号连接是linux特殊文件作为个文件数据是它所连接文件路径名没有防止误删除功能
  3、文件系统类型:
  ext2 : 早期linux中常用文件系统
  ext3 : ext2升级版带日志功能
  RAMFS : 内存文件系统速度很快
  NFS : 网络文件系统由SUN发明主要用于远程文件共享
  MS-DOS : MS-DOS文件系统
  VFAT : Windows 95/98 操作系统采用文件系统
  FAT : Windows XP 操作系统采用文件系统
  NTFS : Windows NT/XP 操作系统采用文件系统
  HPFS : OS/2 操作系统采用文件系统
  PROC : 虚拟进程文件系统
  ISO9660 : 大部分光盘所采用文件系统
  ufsSun : OS 所采用文件系统
  NCPFS : Novell 服务器所采用文件系统
  SMBFS : Samba 共享文件系统
  XFS : 由SGI开发先进日志文件系统支持超大容量文件
  JFS :IBMAIX使用日志文件系统
  ReiserFS : 基于平衡树结构文件系统
  udf: 可擦写数据光盘文件系统
  4、虚拟文件系统VFS
  linux支持所有文件系统称为逻辑文件系统而linux在传统逻辑文件系统基础上增加料个蓄念文件系统( Vitual File ,VFS) 接口层
  虚拟文件系统(VFS) 位于文件系统最上层管理各种逻辑文件系统并可以屏蔽各种逻辑文件系统的间差异提供统文件和设备访问接口
  5、文件逻辑结构
  文件逻辑结构可分为两大类: 字节流式无结构文件 和 记录式有结构文件
  由字节流(字节序列)组成文件是种无结构文件或流式文件 不考虑文件内部逻辑结构只是简单地看作是系列字节序列便于在文件任意位置添加内容
  由记录组成文件称为记录式文件 记录是这种文件类型基本信息单位记录式文件通用于信息管理
  6、文件类型
  普通文件 : 通常是流式文件
  目录文件 : 用于表示和管理系统中全部文件
  连接文件 : 用于区别目录下文件共享
  设备文件 : 包括块设备文件和设备文件块设备文件表示磁盘文件、光盘等设备文件按照操作终端、键盘等设备
  管道(FIFO)文件 :  提供进程建通信种方式
  套接字() 文件: 该文件类型和网络通信有关
  7、文件结构: 包括索引节点和数据
  索引节点 : 又称 I 节点在文件系统结构中包含有关相应文件信息个记录这些信息包括文件权限、文件名、文件大小、存放位置、建立日期等文件系统中所有文件索引节点保存在索引节点表中
  数据  : 文件实际内容可以是空也可以非常大并且拥有自己结构
  8、ext2文件系统
  ext2文件系统数据块大小般为 1024B、2048B 或 4096B
  ext2文件系统采用索引节点(inode):
  索引节点采用了多重索引结构主要体现在直接指针和3个间接指针直接指针包含12个直接指针块它们直接指向包含文件数据数据块紧接在后面3个间接指针是为了适应文件大小变化而设计
  e.g: 假设数据块大小为1024B 利用12个直接指针可以保存最大为12KB文件当文件超过12KB时则要利用单级间接指针该指针指向数据块保存有组数据块指针这些指针依次指向包含有实际数据数据块
  假如每个指针占用4B则每个单级指针数据块可保存 1024/4=256 个数据指针因此利用直接指针和单级间接指针可保存 1024*12+1024*256=268 KB文件当文件超过268KB时再利用 2级间接指针直到使用 3级间接指针
  利用直接指针、单级间接指针、 2级间接指针、 3级间接指针可保存最大文件大小为:
  1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB约 16GB
  若数据块大小为2048B指针占4B则最大文件大小为: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB 约 268GB
  若数据块大小为4096B指针占4B则最大文件大小为: 4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744 KB 约 4TB
  注: 命令 tune2fs -l /dev/sda5  可查看文件系统
  ext2文件系统最大文件名长度: 255个
  ext2文件系统缺点:
  ext2在写入文件内容同时并没有同时写入文件meta-data    其工作顺序是先写入文件内容然后等空闲时候才写入文件meta-data若发生意外则文件系统就会处于不致状态
  在重新启动系统时候linux会启动 fsk ( file system check) 扫描整个文件系统并试图修复但不提供保证
  9、ext3文件系统:
  ext3基于ext2代码所以磁盘格式和ext2相同使用相同元数据
  ext2文件系统无损转化为ext3文件系统:  tune2fs  -j /dev/sda6
  日志块设备( Journaling block device layer,JBD)完成ext3文件系统日志功能JBD不是ext3文件系统所特有设计目标是为了向个块设备添加日志功能
  当个文件修改执行时ext3文件系统代码将通知JBD称为个事务(transaction)发生意外时日志功能具有重放功能能重新执行中断事务
  日志中3种数据模式:
  1)、data=writeback :不处理任何形式日志数据给用户整体上最高性能
  2)、data=odered :只记录元数据日志但将元数据和数据组成个单元称为事务(transaction) 此模式保持所句句可靠性和文件系统致性性能远低于data=writeback模式但比data=journal模式快
  3)、data=journal :提供完整数据及元数据日志所有新数据首先被写入日志然后才被定位意外发生过后日志可以被重放将数据和元数据带回致状态这种模式整体性能最慢但数据需要从磁盘读取和写入磁盘时却是3种模式中最快
  ext3文件系统最大文件名长度: 255个
  ext3文件系统优点:可用性、数据完整性、速度、兼容性
  10、ReiserFS文件系统
  ReiserFS文件系统是由Hans Reiser和他领导开发小组共同开发整个文件系统完全是从头设计个非常优秀文件系统也是最早用于Linux日志文件系统的
  ReiserFS特点
  先进日志机制
  ReiserFS有先进日志(Journaling/logging)功能 机制日志机制保证了在每个实际数据修改的前相应日志已经写入硬盘文件和数据安全性有了很大提高
  高效磁盘空间利用
  Reiserfs对些小文件不分配inode而是将这些文件打包存放在同个磁盘分块中而其它文件系统则为每个小文件分别放置到个磁盘分块中
  独特搜寻方式
  ReiserFS基于快速平衡树(balanced tree)搜索平衡树在性能上非常卓越这是种非常高效算法ReiserFS搜索大量文件时搜索速度要比ext2快得多Reiserfs文件系统使用B*Tree存储文件而其它文件系统使用B+Tree树B*Tree查询速度比B+Tree要快很多Reiserfs在文件定位上速度非常快
  在实际运用中ReiserFS 在处理小于 4k 文件时比ext2 快 5 倍;带尾文件压缩功能(默认)ReiserFS 比ext2文件系统多存储6%数据
  支持海量磁盘
  ReiserFS是个非常优秀文件系统直被用在高端UNIX系统上可轻松管理上百G文件系统ReiserFS文件系统最大支持文件系统尺寸为16TB这非常适合企业级应用中
  优异性能
  由于它高效存储和快速小文件I/O特点使用ReiserFs文件系统PC在启动X窗口系统时所花时间要比在同台机器上使用ext2文件系统少1/3另外ReiserFS文件系统支持单个文件尺寸为4G文件这为大型数据库系统在linux上应用提供了更好选择
Tags:  linux2.6文件系统 linux只读文件系统 linux查看文件系统 linux文件系统

延伸阅读

最新评论

发表评论