云计算学习路线教程大纲课件:EXT2/3/4文件系统
云计算学习路线教程大纲课件:EXT2/3/4文件系统:
索引式文件系统
====================================================================================
Ext3/Ext4文件系统基本结构
• superblock:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式等;
• inode:记录文件的属性(文件的元数据metadata),一个文件占用一个inode,同时记录此文件数据所在的block number;
• block:实际存储文件的內容,若文件太大时,会占用多个block。
Superblock 沒有Superblock ,就沒有filesystem
• block 与 inode 的总量;
• 未使用与已使用的 inode / block 数量;
• block 与 inode 的大小 (block 为 1, 2, 4K,inode 为 128bytes 或 256bytes);
• filesystem 的挂载时间、最近一次写入数据的时间、最近一次检查 (fsck) 的时间等文件系统相关信息;
• 每个block group 都可能含有 superblock,这样可以进行用于 superblock 的修复;
inode table: 存储文件的元数据
• 文件的权限(read/write/excute);
• 文件的属主/属组(owner/group);
• 文件的大小;
• 文件的(ctime);
• 文件的(atime);
• 文件的(mtime);
• 记录文件内容所在的block number (pointer);
data block: 存储文件的实际数据
查看文件系统的信息
dumpe2fs
[root@tianyun ~]# dumpe2fs /dev/sda2
tune2fs
[root@tianyun ~]# tune2fs -l /dev/sda3
tune2fs 1.39 (29-May-2006)
Filesystem volume name: yang
Last mounted on: <not available>
Filesystem UUID: 28459f88-87dc-4624-94a7-07b0f3eb2420
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 48960
Block count: 195312
Reserved block count: 9765
Free blocks: 183410
Free inodes: 48946
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
Journal inode: 8
EXT2/EXT3/EXT4 日志式文件系統
新建一个文件的过程:
先确定使用者对于想新创建文件目录是否具有 w 与 x 的权限;
根据 inode bitmap 找到沒有使用的 inode 号码,并将文件的权限和属性写入;
根据 block bitmap 找到沒有使用的 block号码,将文件的实际数据写入 block 中,且更新 inode 的 block 指向信息;
将刚刚写入的 inode 与 block 信息同步更新 inode bitmap 与 block bitmap,并更新 superblock 的內容。
• 文件的不一致 (Inconsistent) 状态
例如突然断电、kernel发生错误等。这样可能写入的信息仅有 inode table 及 data block 而已,最后一个同步更新的步
骤并沒有做完,此时就会发生 metadata 的內容与实际信息产生不一致 (Inconsistent) 的情況。
• 日志式文件系統 (Journaling filesystem)
准备:当系統要写入一个文件时,会先在日志区记录某个文件准备写入的信息;
实际写入:写入文件的权限与数据,更新 metadata 的信息;
结束:完成数据与 metadata 的更新后,在日志记录区块中完成文件的记录。
修复文件系统 fsck,e2fsck -fy
案例1: 系统无法启动
案例二:Read-only file system
如果运行中的服务器的某一个分区出现readonly,导致进程无法写这个分区(比如nginx进程无法写日志文件到此分区,
手动测试touch到此分区也显示:cannot touch ‘xxxxx’:Read-only file system),该怎么办?
解决:磁盘read-only的原因一般有2种,一种是没有正常关机导致,还有一种是硬盘故障导致。
如果是/分区,这种情况只能下线报修磁盘了。
如果是其它分区,则可以尝试三步解决此问题:
先取消挂载此分区
再fsck.ext4 -fy /dev/sdb1
最后挂载此分区,检查是否可以正常读写。
如果仍旧不可以正常读写,请报修磁盘。
注:以上操作过程,请保证服务器不在线上提供服务。
案例三:修复superblock
找到备份的superblock
[root@tianyun ~]# dumpe2fs -h /dev/datavg/lv1 |grep 'Blocks per group'
dumpe2fs 1.42.9 (28-Dec-2013)
Blocks per group: 8192
利用备份的 superblock恢复superblock
[root@tianyun ~]# fsck.ext4 -b 8192 /dev/datavg/lv1
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
云计算学习路线教程大纲课件:EXT2/3/4文件系统
下载Word文档到电脑,方便收藏和打印~
相关文章
- 如何在同一项目中巧妙地混合使用 Node.js 与 Java?(如何在同一项目中混合使用Node.js与Java)
- 如何在 Java 中设置时间间隔?(java怎么设置时间间隔)
- 如何解决 Java 反向代理错误?(java反向代理错误怎么解决)
- Java 中的 trimend 在大数据处理中是如何应用的?(Java trimend在大数据处理中的应用)
- Java 中字符串数组初始化的方式有哪些?(java字符串数组初始化的方法是什么)
- 在 Java 中,enum 能否继承其他类?(java中enum可以继承其他类吗 )
- 在 Java 中进行字符串截取时,有哪些需要特别注意的事项?(java中字符串截取时要注意哪些事项)
- Apache APISIX Java 的社区支持情况如何?(apisix Java的社区支持情况)
- 提升Ruby代码安全:有效管理策略与实践
- 如何在 Java 中实现文件上传和下载功能?(Java怎么实现文件上传和下载功能)
猜你喜欢
云计算学习路线教程大纲课件:EXT2/3/4文件系统
云计算学习路线课程大纲资料:文件属性 chattr
云计算教程学习路线视频源码课件:Linux性能监控工具-gtop
编程热搜
Python 学习之路 - Python
一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-chatgpt的中文全称是什么
chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列C/C++可变参数的使用
可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃Python 3 教程
Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 PythonPython pip包管理
一、前言 在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install 和 pip , 目前官方推荐使用 pip。
编程资源站
- 资料下载
- 历年试题