加入收藏 | 设为首页 | 会员中心 | 我要投稿 52站长网 (https://www.52zhanzhang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux 系统管理及服务配置实战-第15章 磁盘管理6(连载15)

发布时间:2022-11-17 14:38:15 所属栏目:Linux 来源:转载
导读: Ext文件系统
EXT2/3/4文件系统** 索引式文件系统

Ext3/Ext4文件系统基本结构



? superblock:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式等

Ext文件系统

EXT2/3/4文件系统** 索引式文件系统

Linux 磁盘管理_磁盘配额linux_linux中磁盘配额

Ext3/Ext4文件系统基本结构

磁盘配额linux_Linux 磁盘管理_linux中磁盘配额

linux中磁盘配额_Linux 磁盘管理_磁盘配额linux

linux中磁盘配额_Linux 磁盘管理_磁盘配额linux

? 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 的修复;

data block: 存储文件的实际数据

查看文件系统的信息

dumpe2fs

[root@localhost]# dumpe2fs /dev/sda2
tune2fs
[root@localhost]# tune2fs -l /dev/sda3
tune2fs 1.39 (29-May-2006) 
Filesystem volume name:   test 
Last mounted on:     
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 日志式文件系統

新建一个文件的过程:

1.先确定使用者对于想新创建文件目录是否具有 w 与 x 的权限;

2.根据 inode bitmap 找到沒有使用的 inode 号码,并将文件的权限和属性写入;

3.根据 block bitmap 找到沒有使用的 block号码,将文件的实际数据写入 block 中,且更新 inode 的 block 指向信息;

4.将刚刚写入的 inode 与 block 信息同步更新 inode bitmap 与 block bitmap,并更新 superblock 的內容。

? 文件的不一致 (Inconsistent) 状态

例如突然断电、kernel发生错误等。这样可能写入的信息仅有 inode table 及 data block 而已,最后一个同步更新的步 骤并沒有做完,此时就会发生 metadata 的內容与实际信息产生不一致 (Inconsistent) 的情況

? 日志式文件系統 (Journaling filesystem) 1. 准备:当系統要写入一个文件时,会先在日志区记录某个文件准备写入的信息;

2.实际写入:写入文件的权限与数据,更新 metadata 的信息;

3.结束:完成数据与 metadata 的更新后,在日志记录区块中完成文件的记录.

linux中磁盘配额_Linux 磁盘管理_磁盘配额linux

修复文件系统 fsck,e2fsck -fy

案例1: 系统无法启动

Linux 磁盘管理_磁盘配额linux_linux中磁盘配额

linux中磁盘配额_磁盘配额linux_Linux 磁盘管理

案例二:Read-only file system

如果运行中的服务器的某一个分区出现readonly,导致进程无法写这个分区(比如nginx进程无法写日志文件到此分区, 手动测试touch文件到此分区也显示:cannot touch ‘xxxxx’:Read-only file system),该怎么办?

解决:磁盘read-only的原因一般有2种,一种是没有正常关机导致,还有一种是硬盘故障导致。如果是/分区,这种情况只能下线报修磁盘了。如果是其它分区,则可以尝试三步解决此问题:

1.先卸载此分区

2.再fsck.ext4 -fy /dev/sdb1

3.最后挂载此分区,检查是否可以正常读写。

注:以上操作过程,请保证服务器不在线上提供服务

案例三:修复superblock

linux中磁盘配额_Linux 磁盘管理_磁盘配额linux

找到备份的superblock

[root@localhost]# dumpe2fs -h /dev/datavg/lv1 |grep 'Blocks per group'
dumpe2fs 1.42.9 (28-Dec-2013) 
Blocks per group:         8192  
利用备份的 superblock恢复superblock
[root@localhost]# fsck.ext4 -b 8192 /dev/datavg/lv1

3.1.XFS文件系统

? 数据区 (data section) 数据区就跟之前了解到的 ext 家族一样,包括 inode/data block/superblock 等信息,都放在该区块。

? 文件系统日志区 (log section)

? 实时运行区 (realtime section)

磁盘配额linux_Linux 磁盘管理_linux中磁盘配额

修复 XFS 文件系统 xfs_repair

[root@localhost]# xfs_repair /dev/vda1
xfs_repair: /dev/vda1 contains a mounted filesystem 
xfs_repair: /dev/vda1 contains a mounted and writable filesystem
fatal error -- couldn't initialize XFS library  
[root@localhost]# umount /dev/vda1
[root@localhost]# xfs_repair /dev/vda1
Phase 1 - find and verify superblock... 
Phase 2 - using internal log       
- zero log...    
- scan filesystem freespace and inode maps...         
- found root inode chunk6F6E6963

3.2.FAT文件系统

linux中磁盘配额_磁盘配额linux_Linux 磁盘管理

FTA 文件系统没有 inodeLinux 磁盘管理,所以FAT没有将文件所有的block在一开始就读取出来。每个block number记录在前一个block中, 如果一个文件写入的block过于分散,则读取速度非常慢。可以通过碎片整理的方式将分散的block尽量整理到一起。

创建文件系统vfat

[root@localhost]# mkfs.vfat /dev/vda6

结语:文件系统是组织管理文件的工具。是磁盘底层软件,理解其中的索引和块(inode和block)。对后续的系统管理起着至关重要的作用。

Linux 系统管理及服务配置实战-第15章 磁盘管理6
配套视频教程地址:
链接:https://pan.baidu.com/s/1ZJ5w_ckqaCCxoQFV43MzLw 
提取码:lbvo 

(编辑:52站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!