什么是文件管理系统,顾名思义,就是管理文件的一套系统,比如用于对文件的编辑、移动、拷贝、粘贴等。主要用于控制所有程序在不使用数据时如何存储数据、如何访问数据等等。
centos7.0开始默认文件系统是xfs
centos6默认文件系统是ext4
centos5默认文件系统是ext3
实际上最早使用的是MINIX文件系统,MINIX文件系统用于IBM PC/AT 微型计算机,作为该微型计算机的文件扩展系统。但是它并不是自由开源的系统,是需要付费才能使用的。大家可以来看一下IBM PC/AT微型计算机的样式,感觉还是不错的,挺有年代感。
第一代文件扩展系统,该文件系统解决了MINIX文件系统中数据存储容量、性能等问题。ext可以处理高达2GB存储空间并处理 255个字符的文件名。而MINIX文件系统最多能处理14个字符的文件名,并且只能处理64MB的存储空间。
第二代扩展文件系统,文件由inode进行唯一标识,因此该文件系统也被称“索引式文件系统”,是LINUX内核所用的文件系统,它取代了EXT文件系统。最大可支持2TB的文件系统,到linux核心2.6版时,扩展到可支持32TB。但由于目前核心2.4所能使用的单一分割区最大只有2048GB(2TB),实际上能使用的文件系统容量最多也只有 2048GB(2TB)。该文件系统也存在一些问题,如果在将数据写入到磁盘的时候,系统发生崩溃或断电,则容易发生灾难性的数据损坏。
第三代扩展文件系统,它属于一种日志文件系统,是对ext2系统文件的扩展及数据存储安全性能的优化,同时它也兼容ext2文件系统。所谓“日志式文件系统” ,其最大的特点是:它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪。
第四代文件扩展系统,由ext3文件系统改进而来。Theodore Ts’o(是当时 ext3 主要开发人员)在2006年发表的ext4,于两年后在2.6.28内核版本中被加入到了Linux 主线。Ts’o 将ext4描述为一个显著扩展ext3但仍然依赖于旧技术的临时技术。它支持大文件系统,提高了对碎片的抵抗力。EXT家族文件系统有以下几个特点:
备份工具 | 数据恢复工具 |
---|---|
xfsdump | xfsrestore |
本次的xfs文件系统的备份和备份后的数据恢复用的就是以上两个工具。
XFS文件系统提供了xfsdump和xfsrestore工具协助备份XFS文件系统中的数据,xfsdump按inode顺序备份一个XFS文件系统。
与传统的UNIX文件系统不同,XFS不需要在备份前被卸载,对于使用中的XFS文件系统做备份就可以保证镜像的一致性。在备份和恢复的过程是可以被中断然后继续的,无需冻结文件系统,xfsdump提供了高性能的多线程备份操作,即它可以把一次备份的数据拆分为多个数据流,每个数据流可以被发往不同的目的地。
0 --完全备份(文件系统默认备份等级)
1—9 --增量备份
事先做好准备测试环境:做文件系统并挂载使用。
(1)查看磁盘情况:
lsblk
df -Th
ls /dev/sd*
fdisk /dev/sdb
mkfs.xfs /dev/sdb1
mkdir /sdb --创建挂载点
mount /dev/sdb1 /sdb --挂载
df -Th --查看挂载情况
mkdir /sdb/test
cd /sdb/test
echo 系统文件拷贝 > a.txt
echo 系统文件备份 > b.txt
tree /sdb/ --以树状形式查看
(1)备份整个分区:
采用交互式操作。
语法:xfsdump -f [备份存放路径] [要备份的的设备或挂载点]
-----------------------------------------------------------------------------------------
【注意】:备份的路径这里不能写/sdb1/,可以写成/dev/sdb1或/sdb1
mkdir /back --创建用于存放系统文件备份的目录
xfsdump -f /back/dump_sdb1 /dev/sdb1 --把分区备份到/back/目录下并命名为dump_sdb1
免交互式操作,方便做后期通过任务计划做定时备份。
语法:xfsdump -f [备份存放路径] [要备份的的设备或挂载点] -L [会话标签名] -M [设备标签名]
-----------------------------------------------------------------------------------------
参数解释:
-f --指定备份到哪个目录
-L --指定会话标签
-M --指定设备标签
xfsdump -f /back/dump_sdb1_0 /dev/sdb1 -L dump_sdb1_0 -M sdb1_0
语法:xfsrestore -f [备份存放路径] [要备份的目录或文件的相对路径] -L [会话标签名] -M [设备标签名]
xfsdump -f /back/dump_sda1_0 -s grub2/grub.cfg /boot -L dump_sda1_0 -M sda1_0
每次备份成功后,都会在/var/lib/xfsdump/inventory 目录下生成档案信息,详细记录备份的信息,如挂载点、挂载设备、会话标签、设备标签、备份目录等相关信息。
cd /var/lib/xfsdump/inventory
xfsdump -I
拷贝的数据恢复工具使用的是xfsrestore,而且只能用这个工具来解析。
语法:xfsrestore -f [已备份文件路径] [恢复后的文件路径]
(1)先删除挂载点下的内容:
(2)恢复文件系统数据:
(3)tree查看,数据成功恢复:
【注意】:
(1)xfsdump不支持没有挂载的文件系统备份,所以只能备份已挂载的文件系统;
(2)xfsdump必须使用root的权限才能操作;
(3)xfsdump只能备份xfs文件系统;
(4)xfsdump备份下来的数据只能让xfsrestore来解析;
(5)xfsdump是通过文件系统的UUID来分辨备份档案的,因此不能备份两个具有相同UUID的文件系统。
(1)向挂载目录增加新内容:
mkdir /sdb/test1
echo "第一次增量备份" > /sdb/test1/a1.txt
echo "第一次增量备份" > /sdb/test1/b1.txt
tree /sdb/
(2)一次增量备份:
等级为1的一次增量备份
【注意】前提得先完整备份一次:
xfsdump -f /back/dump_sdb1_0 /sdb1 -L dump_sdb1_0 -M sdb1_0 --先完整备份一次
xfsdump -l 1 -f /back/dump_sdb1_1 /dev/sdb1 -L dump_sdb1_1 -M sdb1_1
-----------------------------------------------------------------------------------------
参数解释:
l ---指定备份等级
(1)再次向挂载目录增加新内容:
mkdir /sdb/test2
echo "第二次增量备份" > /sdb/test1/a2.txt
echo "第二次增量备份" > /sdb/test1/b2.txt
tree /sdb/
等级为2的二次增量备份
xfsdump -l 1 -f /back/dump_sdb1_2 /dev/sdb1 -L dump_sdb1_2 -M sdb1_2
先删掉挂载点/sdb/下的数据(为了测试效果)。
此时会有两种情况,不同情况的恢复方式不同,需注意。
xfsrestore -f /back/dump_sdb1_0 /sdb/ --完全恢复
xfsrestore -f /back/dump_sdb1_1 /sdb/ --恢复第1次备份
xfsrestore -f /back/dump_sdb1_2 /sdb/ --恢复第2级备份