@Tetsujin mi dal správný směr, OS X
's sparse
svazky/obrázky mají analog v Linuxu a toto jsou řídké soubory.
Řídké soubory rostou s tím, jak rostou data v nich. Mohou obsahovat jakýkoli souborový systém Linux, včetně všech moderních variant s vestavěnou kompresí, jako je btrfs.
Následující text ukazuje, jak vytvořit řídce komprimovaný obraz btrfs. btrfs podporu v Debianu a jeho derivátech (jako je Ubuntu) lze povolit instalací btrfs-tools balíčky (sudo apt-get install btrfs-tools
). Přidal jsem rozptýlený ext4 obrázek také pro porovnání rychlosti a velikosti. Všechny operace byly provedeny na Debianu 7.8 Wheezy (oldstable k 30. dubnu 2015).
-
Vytvářejte prázdné řídké soubory libovolné velikosti. Nechť je to 5 terabajtů:
[email protected]:~$ truncate -s 5T ext4.sparse btrfs.sparse
-
Naformátujte je
na 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
na 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
-
Vytvořte přípojné body:
[email protected]:~$ mkdir ext4_mount btrfs_mount
-
Namontujte je. Nezapomeňte na
loop
možnost:
ext4 :
[email protected]:~$ sudo mount -o loop -t ext4 ext4.sparse ext4_mount
btrfs (nezapomeňte compress
možnost (může být zlib
nebo lzo
)):
[email protected]:~$ sudo mount -o loop,compress=lzo -t btrfs btrfs.sparse btrfs_mount
- To je ono! Souborové systémy jsou vytvořeny a připojeny, operačnímu systému se jeví jako 5 TB, ale ve skutečnosti zabírají velmi málo místa:
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
du :
[email protected]:~$ du -h *.sparse
4.3M btrfs.sparse
169M ext4.sparse
- Pro účely testování jsem vytvořil obrovský 1,3 GB textový soubor s opakujícím se vzorem. Bude to
cp
'd na oba nově vytvořené systémy souborů:
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
-
Jak bylo vidět v předchozím kroku, btrfs ukázalo se, že je mnohem rychlejší při přenosu vysoce komprimovatelných dat ve srovnání se starým dobrým ext4 . Poté zkontrolujeme velikosti souborových systémů:
[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 se ukázalo být mnohem efektivnější z hlediska prostoru. Nakonec zkontrolujme také velikosti řídkých souborů:
[email protected]:~$ du -h *.sparse 50M btrfs.sparse 1.4G ext4.sparse
A je to. V případě potřeby lze řídké soubory dále zvětšit. Velikost btrfs lze měnit i online.
Skvělé řešení pro běžné rsync
zálohy. Ale nezapomeňte zálohovat tyto soubory také tradičněji, protože btrfs
je stále experimentální souborový systém .
Další informace o Arch Wiki:https://wiki.archlinux.org/index.php/Sparse_file a https://wiki.archlinux.org/index.php/Btrfs