Neu*_*ter 5 linux compression backup rsync container
我试图找到一种rsync将ext4文件系统的内容作为常规备份的一部分的有效方法,但我认为合适的压缩和最小的所需空间。
我可以只使用普通rsync然后tar/gzip结果目录,但压缩本身会比前面的 rsyncing 慢几个数量级。
我不能使用squashfs它,因为它们是只读的。
我可以为此备份创建一个特殊类型的分区,使用内置压缩,例如btrfs或reiser4但我必须以特定大小创建它并且它不会扩展。
我想知道是否有任何具有内置压缩功能的容器技术,可以根据数据量透明地自动调整其大小,并同步到它?
顺便说一下,我使用 Debian GNU/Linux。
@Tetsujin 给了我一个正确的方向,OS X捆绑sparse/图像在 Linux 中确实有模拟,这是稀疏文件。
稀疏文件随着其中数据的增长而增长。它们可以包含任何 Linux 文件系统,包括具有内置压缩功能的任何现代变体,例如btrfs。
下面展示了如何创建稀疏压缩的 btrfs 镜像。Debian 及其衍生版本(例如 Ubuntu)中的btrfs支持可以通过安装btrfs-tools软件包 ( sudo apt-get install btrfs-tools) 来启用。我还添加了一个稀疏的ext4图像来比较速度和大小。所有操作均在 Debian 7.8 Wheezy(截至 2015 年 4 月 30 日的旧稳定版)上执行。
创建任意大小的空稀疏文件。假设为 5 TB:
me@wheezy:~$ truncate -s 5T ext4.sparse btrfs.sparse
Run Code Online (Sandbox Code Playgroud)
设置它们的格式
到ext4:
me@wheezy:~$ mkfs.ext4 ext4.sparse
mke2fs 1.42.5 (29-Jul-2012)
<...>
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Run Code Online (Sandbox Code Playgroud)
到btrfs:
me@wheezy:~$ mkfs.btrfs btrfs.sparse
WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using
fs created label (null) on btrfs.sparse
nodesize 4096 leafsize 4096 sectorsize 4096 size 5.00TB
Btrfs Btrfs v0.19
Run Code Online (Sandbox Code Playgroud)
创建挂载点:
me@wheezy:~$ mkdir ext4_mount btrfs_mount
Run Code Online (Sandbox Code Playgroud)
安装它们。不要忘记loop选项:
外部4:
me@wheezy:~$ sudo mount -o loop -t ext4 ext4.sparse ext4_mount
Run Code Online (Sandbox Code Playgroud)
btrfs(不要忘记compress选项(可以是zlib或lzo)):
me@wheezy:~$ sudo mount -o loop,compress=lzo -t btrfs btrfs.sparse btrfs_mount
Run Code Online (Sandbox Code Playgroud)
df:
me@wheezy:~$ df -h | grep _mount
/dev/loop0 5.0T 189M 4.8T 1% /home/a/ext4_mount
/dev/loop1 5.0T 120K 5.0T 1% /home/a/btrfs_mount
Run Code Online (Sandbox Code Playgroud)
杜:
me@wheezy:~$ du -h *.sparse
4.3M btrfs.sparse
169M ext4.sparse
Run Code Online (Sandbox Code Playgroud)
cp添加到两个新创建的文件系统:外部4:
me@wheezy:~$ time sudo cp /store/share/bigtextfile ext4_mount/
real 0m12.344s
user 0m0.008s
sys 0m1.708s
Run Code Online (Sandbox Code Playgroud)
btrfs:
me@wheezy:~$ time sudo cp /store/share/bigtextfile btrfs_mount/
real 0m3.714s
user 0m0.016s
sys 0m1.204s
Run Code Online (Sandbox Code Playgroud)
正如在上一步中所见,事实证明,与良好的 ol' ext4相比, btrfs在传输高度可压缩数据时要快得多。之后让我们检查文件系统的大小:
me@wheezy:~$ df -h | grep _mount
/dev/loop0 5.0T 1.5G 4.8T 1% /home/a/ext4_mount
/dev/loop1 5.0T 46M 5.0T 1% /home/a/btrfs_mount
Run Code Online (Sandbox Code Playgroud)
事实证明, btrfs 的空间效率更高。最后,让我们检查一下稀疏文件的大小:
me@wheezy:~$ du -h *.sparse
50M btrfs.sparse
1.4G ext4.sparse
Run Code Online (Sandbox Code Playgroud)
就是这样。如果需要,稀疏文件可以进一步放大。btrfs 也可以在线调整大小。
定期备份的酷解决方案rsync。但也不要忘记以更传统的方式备份这些文件,因为它仍然btrfs是一个实验性文件系统。
有关 Arch Wiki 的更多信息: https: //wiki.archlinux.org/index.php/Sparse_file和https://wiki.archlinux.org/index.php/Btrfs
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |