私はMac OS Xの機能を再現したいと思いました。希少バンドル(ディスクイメージは小さなファイルで構成されているため、小さな変更後でも簡単にバックアップできます。)これを行うには、小さなファイルからリンクされた単一のファイルを「仮想」として作成する方法を探しています(big.fileはそのスペースです。をすべて使用してはいけません。協会ファイルとして):
4096 0.file
4096 1.file
4096 2.file
4096 3.file
4096 4.file
20480 big.file
これにより、btrfsでフォーマットされたループデバイスを使用してbig.fileをマウントでき、そのディスクに書き込むときにデータを簡単にバックアップできるように、特定の.filesにのみ書き込む必要があります。
これを達成する方法に関する提案はありますか?たぶんFUSEと関係がありますか?
答え1
私も同様の理由でこの機能を探しています(クラウドストレージのリモートバックアップ)。また、MacOSのスパースバンドルディスクイメージのように、ディスクイメージが小さく開始され、データが追加されるにつれて拡大したいと思います。
Linuxでは同様のものが見つかりませんでした。モザイクFS。
4MBスライスファイル(76800ファイル)で構成される300GB mosaicFSディスクイメージを作成するには、次の手順を実行する必要があります。
# Create MosaicFS disk image
# (the individual tile files will be stored in the directory 'disk.img')
mosaicfs create --number 76800 --size 4M disk.img
# Mount disk image
# (the virtual image is mounted as 'myimage' with a size of 300 GB)
mosaicfs mount disk.img myimage
# Create file system
mkfs.ext4 myimage
# Mount it
mkdir -p /media/mydrive
mount -o loop myimage /media/mydrive
# Unmount everything
umount /media/mydrive
fusermount -u myimage
Linuxでサポートされているすべてのファイルシステムを使用できます。または、dm-crypt(ファイルシステムの下)またはEncFS(ファイルシステムの上)を使用して暗号化層を追加することもできます。
詳細とソースコードについては、以下を確認してください。GitHubのmosaicFS
答え2
これを行う1つの方法は、各ファイルをLVM物理ボリュームとして作成し、物理ボリュームをボリュームグループに結合してから、そのスペースを使用してLVM論理ボリュームを作成することです。しかし、これは面倒な作業です。ファイルをループデバイスに関連付ける必要があります。
dd if=/dev/zero of=0.file bs=1024k count=4
losetup /dev/loop0 0.file
pvcreate /dev/loop0
# … repeat for all parts …
vgcreate -s 1m foo /dev/loop0 /dev/loop1 …
lvcreate -l 19 -n big foo
mkfs.btrfs /dev/mapper/foo-big
ブートスクリプトが部品の組み立てを直接サポートすることはほとんどないため、多くの部分を手動で作成する必要があります。
わかりません。ファイルを分割すると、バックアップはどのように簡単になりますか?多くの変更がボリューム全体に分散される可能性があります(たとえば、複数のセクションにスーパーブロックのコピーが含まれています)。変更された部分をバックアップするだけでは多くの利点が得られません。とにかく、その部分をもっと詳しく見てください。
増分バックアップを実行するには、ファイルシステムレベルでバックアップします。
イメージ全体をフルバックアップしたいが空き領域を無視したい場合は、必ずバックアップを作成してください。スパースファイル、まれなファイルで効率的に動作し、定期的にファイルシステムの空き領域を0と0で埋めるバックアップツールを使用してください。希少化するそれ。