文件系统

作者: Miracle001 | 来源:发表于2017-06-17 11:29 被阅读41次

文件系统

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;
即在存储设备上组织文件的方法;
操作系统中负责管理和存储文件信息的软件结构称为文件管理系统, 简称文件系统。
无文件系统,就没有文件、目录和目录结构的概念;软件结构——逻辑层面;
系统角度
文件系统——对文件存储设备的空间进行组织和分配;
文件系统——负责文件存储并对存入的文件进行保护和检索;
文件系统——负责为用户建立文件,存入、读出、修改、转储文件,
         控制文件的存取,安全控制,日志,压缩, 加密等;
支持的文件系统:/lib/modules/`uname –r`/kernel/fs  
windows支持NTFS格式
1.png

文件系统的类型

Linux文件系统:
ext2(Extended file system), ext3, ext4, xfs(SGI), btrfs(Oracle), reiserfs, 
jfs( AIX), swap 
swap介绍
Windows里swap是虚拟内存;
如果系统内存是8G,那么swap文件(隐藏)大小是4G(系统内存的一半)左右;
当磁盘空间不够时,swap可当做内存使用,这样系统就有8+4=12G的内存,但是系统利用虚拟内存,性能
会下降;
光盘:iso9660 
2.png
Windows:FAT32, exFAT,NTFS 
Unix: FFS(fast), UFS(unix), JFS2 
网络文件系统:NFS, CIFS 

访问本机文件(client),可以关联到远程服务端(service);
把网站(WWW.magedu.com)挂载到服务器(apache)上,数据存在服务器的
/var/www/html/index.html上,为了同步,把数据共享在/nfsshare里;
集群文件系统:GFS2, OCFS2(oracle) 
各个服务端之间进行数据同步
分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre 
例如云盘,1G数据——1M/block——数据分多块存放,每块都有备份——安全
RAW:未经处理或者未经格式化产生的文件系统
无文件系统分区,访问数据=访问二进制,优点是少了文件系统代理,速度快;Oracle

文件系统不同,各自的特性(功能)也不相同;

把/dev/sdd1格式化,变为vfat文件系统格式;
3.png
把/dev/sdd1挂载到/mnt下
4.png
5.png
vfat文件格式不支持修改权限、不支持更改所有者,其他文件系统可以支持更改权限和所有者
6.png
根据其是否支持"journal(日志)"功能:
日志型文件系统: ext3, ext4, xfs, ... 
非日志型文件系统: ext2, vfat 
ext文件系统介绍
(1)disk(磁盘)文件被内核读入内存;
(2)在内存中,修改disk文件;
(3)修改后:
ext2:内存中被修改的文件覆盖disk原文件;
ext3、4:文件中被修改之处存放到disk中的日志里;空闲时,内存中被修改的文件覆盖disk原文件;
ext3、4的优点:保证原始文件不被破坏(传输过程断电);  缺点:性能下降,占用disk空间;

日志的“写操作”先于disk的“写操作”:
有顺序的写:新增信息在日志最后处一行增加;
独立分区:日志单独放一个分区  ;

文件系统的组成部分:

内核中的模块:ext4, xfs, vfat 
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat 
Linux的虚拟文件系统:VFS (不同的文件系统,用户如何访问)
用户不是直接访问文件系统,用户应用程序→systemcall  interface(系统调用)→VFS→不同文件系统
查前支持的文件系统:cat /proc/filesystems

文件系统的区别

单节点
xfs        500TB       支持root分区   支持boot分区
ext4       50TB        支持root分区   支持boot分区
btrfs      50TB        支持root分区   支持boot分区

网络/多节点
GFS2       2-16个节点    支持root分区   不支持boot分区

SPOF(单点失败)  解决方案是数据备份多份

创建文件系统

mkfs命令:
(1)mkfs.FS_TYPE  /dev/DEVICE 
centos7.3 有xfs文件系统
centos6.9 有xfs文件系统,缺少工具,需要安装对应的包
cd  /lib/modules/`uname –r`/kernel/fs
7.1.png
7.2.png
7.3.png
查看是否有ntfs文件
7.4.png
(2) mkfs  -t  FS_TYPE  /dev/DEVICE 
          -L 'LABEL': 设定卷标
mke2fs命令:
ext系列文件系统专用管理工具 
mke2fs  /dev/sdb2    把/dev/sdb2分区变为ext2文件系统
mke2fs  默认创建为ext2分区
8.png
mke2fs  -t  {ext2|ext3|ext4}  /dev/DEVICE
mke2fs  -j  =  mke2fs  -t  ext3 
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 
9.png
mke2fs(或mkfs.FS_TYPE)  -b  {1024|2048|4096} 
b就是block,在不同环境中,含义不同;
10.1.png
10.2.png
mke2fs(或mkfs.FS_TYPE) -L  'LABEL' 
10.3.png
mke2fs(或mkfs.FS_TYPE)  -i  #(数字)
为数据空间中每多少(#)个字节创建一个inode;此大小不应该小于block的大小;
11.1.png
11.2.png
mke2fs(或mkfs.FS_TYPE) -N #     指定分区中创建多少个inode
11.3.png
mke2fs(或mkfs.FS_TYPE) -I #   一个inode记录占用的磁盘空间大小,128---4096 
12.png
mke2fs(或mkfs.FS_TYPE) -m #:   默认5%,为管理人员预留空间占总空间的百分比 
13.png
mke2fs(tune2fs) -O FEATURE[,...]     启用指定特性 
19.png
mke2fs(tune2fs) -O ^FEATURE     关闭指定特性
20.png

文件系统标签

指向设备的另一种方法;与设备无关;
blkid  块设备属性信息查看 
blkid  [OPTION]...  [DEVICE] 
blkid -U UUID    根据指定的UUID来查找对应的设备 
21.png
blkid -L LABEL    根据指定的LABEL来查找对应的设备
22.png
e2label:管理ext系列文件系统的LABEL 
e2label DEVICE    查询设备对应的标签(卷标)
e2label DEVICE LABEL  修改设备的卷标
Paste_Image.png
findfs :查找分区 
findfs [options] LABEL=<lable>
findfs [options] UUID=<uuid>
Paste_Image.png
脚本(查询挂载点对应的设备名)
#!/bin/bash
dir=$1;findfs `egrep "$dir[[:space:]]+"  /etc/fstab| cut -d " " -f1`
Paste_Image.png
tune2fs命令
tune2fs   重新设定ext系列文件系统可调整参数的值 
tune2fs -l    查看指定文件系统超级块信息;super block
tune2fs -L 'LABEL'    修改卷标 
tune2fs -m #    修改预留给管理员的空间百分比 
14.png
tune2fs -j    将ext2升级为ext3
17.png
tune2fs -O    文件系统属性启用或禁用, –O ^has_journal (前面有)
tune2fs -o     调整文件系统的默认挂载选项,–o ^acl 
tune2fs -o acl /dev/sdb1      改变文件系统的属性;
mount -o acl /dev/sdb1 /mnt   挂载时,就给予文件系统acl权限;
centos6.9:手动创建的分区,ext文件系统默认无acl权限;xfs有acl权限;

24.png 25.2.png 25.png 25.11.png 25.1.png 26.png
tune2fs -U UUID     修改UUID号 
ext文件系统互相转化(ext2↔ext3),UUID无变化;
重新创建文件系统时,UUID变化;
硬盘换到其他机子上,UUID无变化;
标识一个分区(3类):设备名称、UUID(建议用)、Label、
Paste_Image.png
super block   
为了安全,通常会做备份;
100G的数据 → block的单位4096(4k) → 分为多个block → 分组:块组(元数据+数据)

dumpe2fs     块分组管理,每个块组有32768块;
             显示分组信息和超级块信息;
super block   存放在每个奇数块组(0-1-3-5-7-9)的第一个块中;
              这些块是备份块,文件被破坏后,可以调用这些备份块修复文件; 
Paste_Image.png Paste_Image.png
dumpe2fs -h     查看超级块信息,不显示分组信息

Paste_Image.png

文件系统的检测与修复

常发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”;
filesystem stat是文件系统状态,当文件系统受损时,tune2fs -l 命令不能查询;
文件系统修复是有风险的;
注意:一定不要在挂载状态下修复;

文件系统的检测与修复(两种方法)
1.手工的输入命令,进行检查和修复;
2.系统自发的进行检查和修复:(需要两个条件)
tune2fs -l   可以查看信息
(1)挂载数量 >(大于) 最大挂载数量;
(2)文件系统的使用时间达到规定的期限;
Paste_Image.png
fsck: File System Check
fsck.FS_TYPE   支持ext文件系统,不支持xfs文件系统;
fsck -t FS_TYPE
fsck -p    自动修复错误
fsck -r    交互式修复错误
FS_TYPE    一定要与分区上已有文件类型相同
e2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes
-f:强制修复(文件系统破坏程度小,利用此选项,可以详细检查和修复)
Paste_Image.png
xfs系列的专用检测修复工具
xfs_check  
xfs_repair
tune2fs  -l    不支持查询xfs文件系统信息;
实验:创建一个文件系统,破坏并修复
1.创建文件系统
Paste_Image.png
2.挂载并复制文件到此文件系统
Paste_Image.png
3.取消挂载
Paste_Image.png
4.破坏文件系统
Paste_Image.png
5.修复文件系统
Paste_Image.png
6.检测是否成功修复
Paste_Image.png Paste_Image.png

相关文章

  • 第8章 管理文件系统(不是很懂的一章)

    8.1 探索Linux文件系统 8.1.1 基本的Linux文件系统 ext文件系统扩展文件系统(extended...

  • 文件系统

    第12章:文件系统 文件系统概念文件系统和文件文件描述符目录文件别名文件系统种类 虚拟文件系统 文件缓存和打开文件...

  • 文件系统管理

    目录: 文件系统 创建文件系统 mkfs mke2fs 修改ext格式的参数 查看文件系统信息 修复文件系统 1、...

  • Linux运维之道(14)——Linux文件系统管理

    @(Linux)[文件系统管理] 1. 文件系统 1.1 各个操作系统上的文件系统 Linux文件系统 ext2 ...

  • Linux命令学习手册-fsck

    fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...] 功能 检查文件系统并尝试修复错误。...

  • Docker镜像加载原理

    1.1 UnionFS(联合文件系统)UnionFS(联合文件系统): Union文件系统(UnionFS)是一种...

  • Android - 文件系统与Android11 分区存储

    *认识Android文件系统 *了解分区存储 *分区存储的适配 一、Android文件系统 Android文件系统...

  • Overlay文件系统

    Overlay文件系统 一个Overlay文件系统包含两个文件: 一个upper文件系统 一个lower文件系统l...

  • 6_Node 文件系统

    [toc] NodeJS 文件系统[fs 模块] 1.NodeJS 文件系统 NodeJS 文件系统被封装在fs模...

  • 4)镜像(1)-起源

    1. UnionFS(联合文件系统) UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分...

网友评论

    本文标题:文件系统

    本文链接:https://www.haomeiwen.com/subject/jkvmqxtx.html