linux1t文件误删,linux – 复制1TB稀疏文件

我有一个1TB的稀疏文件,其在Linux上存储实际的32MB数据.

是否有可能“有效”地制作一个包来存储稀疏文件?应该将软件包拆包成另一台计算机上的1TB稀疏文件.理想情况下,“包”应该在32MB左右.

然而,对于1TB稀疏文件,尽管焦油球可能很小,但是归档稀疏文件将需要太长的时间.

编辑1

我测试了tar和gzip,结果如下(注意这个稀疏文件包含0字节的数据).

$du -hs sparse-1

0 sparse-1

$ls -lha sparse-1

-rw-rw-r-- 1 user1 user1 1.0T 2012-11-03 11:17 sparse-1

$time tar cSf sparse-1.tar sparse-1

real 96m19.847s

user 22m3.314s

sys 52m32.272s

$time gzip sparse-1

real 200m18.714s

user 164m33.835s

sys 10m39.971s

$ls -lha sparse-1*

-rw-rw-r-- 1 user1 user1 1018M 2012-11-03 11:17 sparse-1.gz

-rw-rw-r-- 1 user1 user1 10K 2012-11-06 23:13 sparse-1.tar

包含0字节数据的1TB文件稀疏-1可以通过’tar’存档到10KB的tar球或通过gzip压缩到〜1GB的文件. gzip占用tar时间的2倍左右.

从比较来看,’tar’似乎比gzip好.

但是,对于包含0字节数据的稀疏文件,96分钟太长.

编辑2

rsync似乎完成了复制文件的时间比tar还要小于gzip:

$time rsync --sparse sparse-1 sparse-1-copy

real 124m46.321s

user 107m15.084s

sys 83m8.323s

$du -hs sparse-1-copy

4.0K sparse-1-copy

因此,对于这个非常稀疏的文件,tar cp或scp应该比直接rsync更快.

编辑3

感谢@mvp指出新的内核中的SEEK_HOLE功能. (我以前在2.6.32 Linux内核上工作).

在更新的内核和Fedora版本(17)上,tar和cp非常有效地处理稀疏文件.

[zma@office tmp]$ls -lh pmem-1

-rw-rw-r-- 1 zma zma 1.0T Nov 7 20:14 pmem-1

[zma@office tmp]$time tar cSf pmem-1.tar pmem-1

real 0m0.003s

user 0m0.003s

sys 0m0.000s

[zma@office tmp]$time cp pmem-1 pmem-1-copy

real 0m0.020s

user 0m0.000s

sys 0m0.003s

[zma@office tmp]$ls -lh pmem*

-rw-rw-r-- 1 zma zma 1.0T Nov 7 20:14 pmem-1

-rw-rw-r-- 1 zma zma 1.0T Nov 7 20:15 pmem-1-copy

-rw-rw-r-- 1 zma zma 10K Nov 7 20:15 pmem-1.tar

[zma@office tmp]$mkdir t

[zma@office tmp]$cd t

[zma@office t]$time tar xSf ../pmem-1.tar

real 0m0.003s

user 0m0.000s

sys 0m0.002s

[zma@office t]$ls -lha

total 8.0K

drwxrwxr-x 2 zma zma 4.0K Nov 7 20:16 .

drwxrwxrwt. 35 root root 4.0K Nov 7 20:16 ..

-rw-rw-r-- 1 zma zma 1.0T Nov 7 20:14 pmem-1

我使用的是3.6.5内核:

[zma@office t]$uname -a

Linux office.zhiqiangma.com 3.6.5-1.fc17.x86_64 #1 SMP Wed Oct 31 19:37:18 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值