CentOS7 运维 - 文件系统与日志分析
一、文件系统概述
①文件、扇区
►文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector
),每个扇区存储512
字节
②块(block)
►一般连续八个扇区组成一个"块"(block
),一个块是4K
大小,是文件存取的最小单位,文件数据存储在“块”中
③文件数据
►文件数据包括实际数据与元信息(类似文件属性)
►文件数据存储在“块”中,文件元信息存储在inode
中
④inode(索引节点)
►inode
不包含文件名。文件名是存放在目录当中的。Linux
系统中一切皆文件,因此目录也是一种文件
►inode
是存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域
⑤super block (超级块)
►用于存储文件系统的控制信息的数据结构。描述文件系统的状态、文件系统类型、大小、区块数、索引节点数等 存放于磁盘的特定扇区中
⑥结论
►当用户在Linux
系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode
号码;通过inode
号码,获取inode
信息;根据inode
信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block
,并读取数据
二、模拟inode节点耗尽实验
fdisk /dev/sdb
//考虑模拟便利性,这里设置空间为20M
mkfs.ext3 /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
for ((i=1;i<=5140;i++));do touch /data/$i;done;
//模拟inode节点耗尽
三、EXT3类型文件恢复
►extundelete
是一个开源的 Linux
数据恢复工具,支持 ext3
、ext4
文件系统(ext4
只能在CentOS6
版本恢复)
►下载地址:extundelete-0.2.4.tar.bz2
►准备工作
fdisk /dev/sdb1
mkfs.ext3 /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
yum -y install e2fsprogs-devel e2fsprogs-libs
//安装环境软件
tar -jxvf extundelete-0.2.4.tar.bz2
//解压缩
cd extundelete-0.2.4
./configure --prefix=/usr/local/extundelete && make && make install
//进入目录编译安装
ln -s /usr/local/extundelete/bin/extundelete /usr/bin
//创建软连接
►开始测试实验
echo a > a
echo b > b
echo c > c
echo d > d
extundelete /dev/sdb1 --inode 2
►恢复文件
extundelete /dev/sdb1 --restore-all
cd RECOVERED_FILES
四、xfs文件备份和恢复
►准备工作
fdisk /dev/sdb1
mkfs.xfs /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
cp /etc/passwd /data
yum install -y xfsdump
//安装xfsdump
►开始备份文件并模拟丢失
xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1
►恢复文件
xfsrestore -f /opt/dump_sdb1 /data