Linux 第14天自习 btrfs和压缩归档

时间: 20180731


Btrfs

此文件系统的设计目标是应对大型机器对文件系统的扩展性要求。 如目录文件变多时查找文件

的检索能力不会随之线性增长,数据一致性,快照备份数据等。


特性

1. 此文件系统中所有的metadata都由BTree算法管理,优点是查找,插入和删除

   操作高效。

2. 文件系统采用extent替代block来管理磁盘,extent就是一些连续的block,一个

   extent由起始的block加上长度进行自定义。

   extent能有效地减少元数据开销, 为了管理磁盘空间,文件系统需要知道哪些block

   是空闲的. ext文件系统使用bitmap中的每一个bit对应磁盘上的一个block,当相应

   的block被分配后,bitmap中的相应bit被设置为1. 这是很经典也很清晰的一个设计

   但不幸的是,当磁盘容量变大时,bitmap自身所占用的空间也将变大。这就导致了

   扩展性问题,随着存储设备容量的增加,bit这个元数据所占用的空间也随之增加

   而人们希望无论磁盘容量如何增加,元数据也不应该随之线性增加。而在btrfs中则

   只需要一个元数据。对于大文件,extent表现出相对更加优异的管理性能。

3. 动态inode分配,此前文件系统初始化已经将系统的inode已经固定,至此便限制此

   文件系统所存储文件的最大数量,而在btrfs中用户可以无限制地任意插入新的

   inode,其物理存储位置是动态分配的。所以btrfs没有对文件个数的限制。

4. 数据一致性特性 cow事务,checksum

5. 多设备管理相关的特性 快照和克隆 软raid

6. Delay allocation

7. Inline file 当数据文件太小时会和源数据存放在同一个extent中

8. btrfs目前有一个重要的缺点,当BTree中某个节点出现错误时,文件系统将失去

   该节点之下的所有的文件信息。


Btrfs使用简介

创建文件系统

mkfs.btrfs /dev/sda8

partx -a /dev/sda

mkdir /mnt/btrfs

mount -t btrfs /dev/sda8 /mnt/btrfs


可以使用df -i查看其inode状态,会显示不限制


由于此系统尚处于开发当中,作者本人也学艺不精,目前只介绍到这里。



Linux系统文件的压缩和解压缩

压缩解压缩工具

gzip/gunzip 命令对应的是.gz结尾的压缩格式文件

bzip2/bunzip2 命令对应的是.bz2结尾的压缩格式文件

xz/unxz 其对应的是.xz结尾的压缩格式文件

zip/unzip 其对应的是.zip结尾的压缩格式文件


gzip/gunzip

gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ...  ]

gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ...  ]

zcat [ -fhLV ] [ name ...  ]

-# 指明压缩比1-9,默认为6,数字越大压缩率越高

-d decompress uncompress 解压缩

-c 保留原数据,并把压缩后的数据输出至标准输出

如 gzip -c /path/files > /path/file.gz

-r recursive 递归至目录中对每个文件进行压缩


zcat /path/file.gz 无须显式解压缩查看压缩文件的内容


bzip2/bunzip2

bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ...  ]

bunzip2 [ -fkvsVL ] [ filenames ...  ]

bzcat [ -s ] [ filenames ...  ]

bzip2recover filename


-# 1-9默认为6指定压缩比

-d decompress 相当于bunzip2

-k 压缩后保留原文件


bzcat /path/file.bz2 无须显式解压缩查看压缩文件内容


xz/unxz

-# 指明压缩比

-d decompress 相当于unxz

-k 不删除原文件


xzcat /path/file.xz 无须显式解压缩查看压缩文件的内容


zip/unzip

zip file.zip /path/files


归档工具

归档就是将多个文件打包为单个文件以便于管理,默认的归档不会执行压缩

常用工具有tar, cpio


tar 归档压缩工具

归档

tar -c -f /path/file.tar /path/file

注意:归档不会删除原文件


展开归档

tar -xf /path/fiole.tar [-C /path/dir]


查看归档起来的文件列表

tar -t -f /path/tarfile.tar

归档加压缩

tar -zcf file.tar.gzip /path/files

tar -zxf file.tar.gzip

tar -jcf file.tar.bzip2 /path/files

tar -jxf file.tar.bzip2

tar -Jcf file.tar.xz /path/files

tar -Jxf file.tar.xz

注意:展开归档可以直接使用tar -xf file无须指定压缩工具选项