Linux_文件系统

  1. Linux文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。

  2. Windows文件系统的挂载原理是将磁盘分成若干个分区,在各个分区中挂载文件系统。而Linux是将磁盘空间挂载在一个目录下。

  3. Linux自己的文件系统包括:ext2、ext3、ext4、reiserfs等

    ext2文件系统:ext2是ext3、ext4的基础。ext2支持反删除,如果误删了文件,有时是可以恢复的,但比较麻烦。ext2支持大文件。

    ext3文件系统:支持大文件,但不支持反删除。较之ext2具有以下特点:
    ① 高可用性:即使在非正常关机后,系统也不需要检查文件系统。发生死机后
    恢复系统只需数十秒。

    ② 数据的完整性:“同时保持文件系统及数据的一致性”模式,将永远不会看
    到由于非正常关机而存储在磁盘上的垃圾文件。

    ③ 文件系统的速度:ext3的日志功能对磁盘驱动器读写头进行了优化,即使在
    存储数据时可能要多次写入数据,性能并没有降低。

    ④ 数据转换:只要简单的命令即可将ext2转换为ext3文件系统,用户不需进 行备份、恢复、格式化分区等。

    ⑤ 多种日志模式:支持对所有的文件数据及metadata进行日志记录,或者只 对metadata进行记录。

    ext4文件系统,相比ext3有以下特点:
    兼容Ext3。 几条命令,就能在线迁移到 Ext4,无须重新格式化磁盘或重装系统。原有 Ext3数据结构保留,Ext4 作用于新数据,整个文件系统可获得Ext4 所支持的更大容量。

    更大的文件系统和更大的文件。 Ext3 支持最大16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB的文件系统,以及 16TB 的文件。

    无限数量的子目录。 Ext3支持 32,000 个子目录,而 Ext4 支持无限数量的子目录。

    Extents。 Ext3 采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在 Ext3 中要建立 25,600 个数据块(每个数据块大小为 4KB)的映射表。而 Ext4 引入了现代文件系统中流行的 extents 概念,每个 extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的 25,600 个数据块中”,提高了不少效率。

    多块分配。 当写入数据到 Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600 次数据块分配器,而 Ext4 的多块分配器 支持一次调用分配多个数据块。⑥

    延迟分配。 Ext3 的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。

    快速 fsck。 以前执行 fsck 第一步就会很慢,因为它要检查所有的 inode,而现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。

    日志校验。 日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4 的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。

    “无日志”模式。 日志总归有一些开销,Ext4 允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。

    在线碎片整理。 尽管延迟分配、多块分配和 extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4 支持在线碎片整理,并将提供 e4defrag 工具进行个别文件或整个文件系统的碎片整理。

    inode 相关特性。 Ext4 支持更大的 inode,较之 Ext3 默认的 inode 大小 128 字节,Ext4 为了在 inode 中容纳更多的扩展属性,默认 inode 大小为 256 字节。Ext4 还支持快速扩展属性和 inode 保留。

    持久预分配。 P2P 软件为了保证下载文件有足够的空间存放,会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 Ext4 在文件系统层面实现了持久预分配并提供相应的 API,比应用软件自己实现更有效率。

    默认启用 barrier。 磁盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写 commit 记录,若 commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4 默认启用 barrier,只有当 barrier 之前的数据全部写入磁盘,才能写 barrier 之后的数据。

    Reiserfs文件系统:
    支持大文件、支持反删除,操作反删除比较容易。

  4. 交换分区的概念

    利用硬盘空间,临时当做内存使用。可以理解为物理内存的扩展,它拥有自己独特的文件格式。

  5. 交换分区的作用

    当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前程序使用。那些被释放出来的空间,如果是“匿名数据”,即在文件系统中没有相应的“储备”文件(malloc和new函数生成的对象的数据),被临时保存到交换分区中,等到那些程序要运行时,再从交换分区中恢复保存的数据到内存中。通常交换分区的大小应是物理内存的2-2.5倍。如果是小的桌面系统,则只需较小的交换分区。如果是大的服务系统,则需要较大的交换分区。

  6. 交换分区的管理:

    vmstat 3
    该命令用于每3秒钟捕获一次系统状态,其中的w表示当前需要释放内存、交换出去的进程数量;swpd表示使用Swap空间的大小;si表示当前(3秒之内)每秒交换回内存的总量;so表示交换出内存的总量。
    以上指标数量越大说明系统越忙。系统管理员应该平时系统正常运行时记下这些指标的数值,以便在系统发生问题时发现问题。
    基于文件进行Swap空间的增加和删除:
    创建一个有连续空间的Swap文件:
    dd if=/dev/zero of=/root/swapfile bs=1024 count=65536
    格式化Swap分区:
    mkswap swapfile
    激活swap分区:
    swapon swapfile
    配置swap文件信息:vim /etc/fstab
    /root/swapfile swap swap default 0 0
    删除一个分区:
    回收交换空间:swapoff swapfile
    编辑/etc/fstab文件,删除相关信息
    删除文件:rm swapfile

  7. 硬盘分区基础知识

    硬盘在记录所谓的“分区”情况时,会在主扇区创建一张硬盘分区表。分区的类型有两种:主分区(primary),扩展分区(extend)
    主分区最多可以有三个,扩展分区最多只能规划一个。扩展分区不能直接使用,需要划分为逻辑分区,逻辑分区最多可以存在12个。即一张硬盘可划分为15个分区,即15个挂载点。
    /etc/fstab 文件记录了硬盘分区情况

  8. 挂载与卸载分区

    挂载的含义就是把磁盘的内容放到某一个目录下。在挂载操作时,目标所指定的目录必须已经存在。Ubuntu挂载文件格式:
    格式 说明 格式 说明
    minix Linux最早的文件系统 ext3 Linux传统文件系统
    jfs IBM技术 vfat FAT/FAT32,Windows的文件系统
    xfs SGI技术(适用于服务器,桌面用户慎用) ext2 不带日志的ext3
    ntfs Windows NT的文件系统 smbfs Windows文件共享
    iso9660 CD-ROW光驱文件系统 nfs 网络文件系统
    mount [参数] -t [类型] [设备名称] [目的地目录]
    mount -t iso9660 /dev/scd0 /mnt/tmp
    在挂载时,需要注意设备的名称和类型,可查看/etc/fstab文件中的信息来识别
    unmount [参数] -t [文件系统类型] [文件系统]
    unmount -t vfat /dev/scd0
    开机自动挂载
    通过修改配置文件/etc/fstab进行配置:
    : 该选项表示在挂载相应设备时,是否启用dump工具进行自动备份。0表示不需要,1表示每天,2表示每两天。
    :该选项表示系统启动时是否使用fsck工具对挂载的该文件系统进行检查。0表示不需要,1表示需要。
    修改文件后,可以运行mount -a 命令来挂载该文件中定义好的所有需要挂载的设备。系统重启后,会扫面该文件进行挂载,并将信息记录到/etc/mtab中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值