@Tetsujin は正しい方向を教えてくれました OS X
の sparse
バンドル/画像にはあります Linux ではアナログで、これはスパース ファイルです。
スパース ファイルは、その中のデータが大きくなるにつれて大きくなります。これらには、btrfs などの圧縮が組み込まれた最新のバリアントを含む、任意の Linux ファイルシステムを含めることができます。
以下は、スパース圧縮 btrfs イメージを作成する方法を示しています。 btrfs Debian およびその派生物 (Ubuntu など) でのサポートは、btrfs-tools をインストールすることで有効にできます パッケージ (sudo apt-get install btrfs-tools
)。スパース ext4 を追加しました 画像も速度とサイズを比較します。すべての操作は Debian 7.8 Wheezy (2015 年 4 月 30 日現在の旧安定版) で実行されました。
任意のサイズの空のスパース ファイルを作成します。 5 テラバイトとします:
[email protected]:~$ truncate -s 5T ext4.sparse btrfs.sparse
フォーマットする
ext4 へ :
[email protected]:~$ 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
btrfs へ :
[email protected]:~$ 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
-
マウント ポイントを作成します:
[email protected]:~$ mkdir ext4_mount btrfs_mount
-
それらをマウントします。
loop
を忘れないでください オプション:
ext4 :
[email protected]:~$ sudo mount -o loop -t ext4 ext4.sparse ext4_mount
btrfs (compress
を忘れないでください オプション (zlib
の場合もあります) または lzo
)):
[email protected]:~$ sudo mount -o loop,compress=lzo -t btrfs btrfs.sparse btrfs_mount
- それだけです!ファイル システムが作成およびマウントされ、OS には 5 TB として表示されますが、実際にはほとんどスペースを占有しません:
df :
[email protected]:~$ 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
だ :
[email protected]:~$ du -h *.sparse
4.3M btrfs.sparse
169M ext4.sparse
- テストのために、反復パターンを含む 1.3 GB の巨大なテキスト ファイルを作成しました。
cp
になります 新しく作成された両方のファイル システムに追加:
ext4 :
[email protected]:~$ time sudo cp /store/share/bigtextfile ext4_mount/
real 0m12.344s
user 0m0.008s
sys 0m1.708s
btrfs :
[email protected]:~$ time sudo cp /store/share/bigtextfile btrfs_mount/
real 0m3.714s
user 0m0.016s
sys 0m1.204s
-
前のステップで見たように、btrfs 古き良きext4と比較して、高度に圧縮可能なデータの転送中にはるかに高速であることが証明されました .後でファイルシステムのサイズを確認しましょう:
[email protected]:~$ 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
-
btrfs スペース効率が大幅に向上することが証明されました。最後に、スパース ファイルのサイズも確認してみましょう:
[email protected]:~$ du -h *.sparse 50M btrfs.sparse 1.4G ext4.sparse
それでおしまい。必要に応じて、スパース ファイルをさらに拡大することができます。 btrfs はオンラインでもサイズ変更できます。
通常の rsync
のクールなソリューション バックアップ。ただし、btrfs
以降、これらのファイルをより伝統的にバックアップすることも忘れないでください。 まだ実験的なファイルシステムです .
Arch Wiki に関する詳細情報:https://wiki.archlinux.org/index.php/Sparse_file および https://wiki.archlinux.org/index.php/Btrfs