• linux-文件系统


    目录

    一、文件系统

    1.分区

    2.文件系统分类

    3.文件系统创建工具

    4.查看文件系统的属性

    5.挂载

    6.buffer和cache


    一、文件系统

    1.分区

    1-4个主分区

    第五个序号开始,是逻辑分区

    2.文件系统分类

    vfs文件系统 ------------- virtualenv file System,不同系统的文件格式不同,互相传输文件不需要担心内核的编译问题

    linux系统的文件系统格式有

    • ext2
    • ext3
    • ext4

    不同的文件系统,使用的文件系统也各不相同

    windows98平台

    • fat
    • fat16
    • fat32

    windows2000

    • ntfs文件系统

    linux的文件系统

    • ext2
    • ext3 centos5
    • ext4 centos6
    • xfs centos7

    网络共享文件系统

    • nfs,network file system
    • smb,server message block 服务消息块

    集群文件系统

    • gfs google file system 是goole公司为了存储海量的数据而开发的文件系统
    • ocfs oracle cluster file system 是 oracle 公司为了数据库研发平台,而定制的文件系统
    • ceph 为了存储的可靠性和扩展性的分布式文件系统

    交换文件系统

    • swap

    区别主要在于 是否是日执行类文件系统

    3.文件系统创建工具

    • 创建文件系统

    mkfs命令

    mkfs把分区格式化为某种文件系统

    mkfs

    • 修复文件系统

    检查并修复Linux文件系统

    fsck

    4.查看文件系统的属性

    对于centos7之前的文件系统,使用dumpe2fs命令,打印文件系统的块组信息,适用于ext2、ext3、ext4

    对于centos7之后的系统而言默认用的是xfs文件系统,使用xfs_info打印文件系统信息

    tune2fs命令

    设置linux是否开机自动检查文件系统正常与否

    lsblk命令

    列出所有的设备以及文件系统信息

    5.挂载

    挂载通常是将一个存储设备挂接到另外一个已经存在的文件夹中,访问这个文件夹,就是访问该存储设备的内容了

    #windows 分区 C盘 D盘 E盘

    #U盘

    将linux本身的普通文件夹和u盘的设备文件合二为一,这个过程就是挂载的过程

    挂载完事之后,linux的普通文件夹,称为挂载点

    mount 命令常用参数

    -l 显示系统所有挂载的设备信息

    -t 指定设备的文件系统类型,如果不指定,mount自动选择挂载的文件系统类型

    -o 添加挂载的功能选项,用的很多

    -r read,挂载后的设备,是只读

    -w 读写参数,-o rw权限,允许挂载后读写操作

    mount -o 参数

    async 以一部的方式处理文件系统IO,加速写入,数据不会同步的写入磁盘,写入到另外一个缓冲区,提高系统性能,存世数据安全性

    sync 所有的io操作同步处理,数据同步写入到磁盘,提高数据读写的安全性

    atime/noatime 文件被访问的时候,是否修改其时间戳,能够提升磁盘IO速度

    auto/noauto 可以通过-a参数自动挂载,不自动挂载

    defaults 这个默认参数,覆盖了 rw,suid,dev,dev,exec,auto,nouser,

    exec/noexec 是否允许执行挂载点内的可执行命令,使用noexec,提升安全性

    对于centos7的mount选项有:

    att2 在磁盘上存储内连续扩展属性,提升磁盘性能

    inode64 允许在文件系统的任意位置创建inode

    noquota 强制关闭文件系统的限额功能

    6.buffer和cache

    buffer是写入加速

    cache是读取加速

    我的内存被吃掉了,无辜提示内存不足了怎么办,但是cache,buffer中又有大量内存空间,我们如何释放buffer和cache来扩充内存

    1. root@ou-virtual-machine:~# free -m
    2. total used free shared buff/cache available
    3. Mem: 1941 883 74 16 984 880
    4. Swap: 3897 746 3151
    5. root@ou-virtual-machine:~# echo 1 > /proc/sys/vm/drop_caches
    6. root@ou-virtual-machine:~#
    7. root@ou-virtual-machine:~# free -m
    8. total used free shared buff/cache available
    9. Mem: 1941 895 840 16 205 872
    10. Swap: 3897 746 3151
    11. root@ou-virtual-machine:~#

    等同于 sysctl -w vm.drop_caches=1

    清除目录缓存和inodes

    1. root@ou-virtual-machine:~# echo 2 > /proc/sys/vm/drop_caches
    2. root@ou-virtual-machine:~#

    相当于sysctl -w vm.drop_caches=2

    清除内存页的缓存

    root@ou-virtual-machine:~# echo 3 > /proc/sys/vm/drop_caches 

    相当于 sysctl -w vm.drop_caches=3

    以上三种都是临时释放缓存的命令

    除了以上三个命令,还可以清理文件系统缓存,使用sync命令,可以用于清理僵尸进程

  • 相关阅读:
    ffmpeg将一个视频中的音频合并到另一个视频
    Linux基础认知——Linux系统文件、目录结构认知
    ProSci LAG3抗体的化学性质和应用说明
    git提示:remote origin already exists
    sklearn MLP红酒分类
    9.2.5 TIMESTAMP类型
    【store商城项目01】注册功能的开发
    Bootstrap 标签
    Java中的锁
    早期的Haar Cascade 哈尔级联人脸识别
  • 原文地址:https://blog.csdn.net/bmxch/article/details/134045237