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无须指定压缩工具选项
转载于:https://blog.51cto.com/winthcloud/2153451