ファイルシステムレベルのRAIDでデータを一度だけ暗号化する方法は?

ファイルシステムレベルのRAIDでデータを一度だけ暗号化する方法は?

ファイルシステムにビットロート保護があるので、btrfsでdm-cryptを使用したいと思います。私の興味は、RADI1がdm-cryptより高いファイルシステムレベルにあるので、ファイルに書き込むと2回暗号化されることです。

HDD.x ⇄ dm-crypt.x ↰
                    btrfs-raid1 ⇒ btrfs
HDD.y ⇄ dm-crypt.y ↲

dm-crypt.xたとえば、2つのハードドライブに同じコピーを保存するなど、データを一度だけ暗号化する方法はありますか? (によるとbtrfs FAQ次のタスクを実行するにはencryptfsが必要です。

HDD.x ↰
       btrfs-raid1 ⇒ btrfs ⇄ ecryptfs
HDD.y ↲

ただし、btrfs RAID1 を使用してさらにパフォーマンスの低下を回避できる場合は、dm-crypt を使用することをお勧めします。

答え1

現在、BTRFSには直接統合するオプションはありません。過去には、BTRFSメーリングリストでVFS暗号化APIサポートを追加することについての議論がありましたが(ext4およびF2FS透過ファイル暗号化も同じAPIを使用しました)、何の進展もないようです。

現在望むことを達成する唯一の方法は、BTRFSの外部にレプリケーションを配置することです。これにより、BTRFSでチェックサムを実行したときに得られる利点がほとんどなくなります。 eCryptFS はオプションですが、BTRFS で dm-crypt を使用するよりもほぼ常に遅くなります。 EncFSはオプションかもしれませんが、パフォーマンスについてはまったくわかりません。 FUSEに基づいていますが、通常、BTRFSの上にあるFUSEレイヤーは非常に遅いです。

これに代わるものとして、通常のRAID、dm-integrityターゲット(保存されたデータに対して暗号化検証を実行する)の上に、より伝統的なファイルシステム(MDまたはLVM経由)を使用することを検討できます。 AndroidとChromeOSがシステムパーティションの整合性を検証するために使用するdm-verityターゲットの書き込み可能バージョン。次にそれをdm-cryptの上に階層化します。これには、dm-integrityをサポートするカーネル(いつ追加されたのか覚えていませんが、昨年追加されたもの)とそれをサポートするcryptsetupバージョンが必要です。これにより、AEADスタイルの暗号化と同じレベルの整合性チェックが提供されます。ただし、残念ながらBTRFSと同じエラー修正を提供するには、dm-cryptとdm-integrityをRAIDレイヤーの下に置く必要があります(そうしないと、RAIDはdm-integrityのI / Oエラーを見ることはできません)。決して正しく修正されません。)

答え2

次の設定では、同じドライブの単一のLUKSコンテナ内でRAID 1を設定する方法について説明します。

ビデオの説明: https://youtu.be/PWxxV98DB4c

必要に応じて削除(ディスクを使用)

どの開発者と協力しているかを確認してください

lsblk

sdbを使用していると仮定すると、二重チェック - 問題が発生した場合に備えて、すべてのデータをバックアップします。

Luksコンテナの作成

sudo cryptsetup luksFormat /dev/sdb

オープンコンテナ

sudo cryptsetup luksOpen /dev/sdb mount_name

mount_name を希望の名前に変更できます。

任意に選択できる:

sudo wipefs --all --backup /dev/mapper/mount_name

LVM2 PVの作成:

sudo pvcreate /dev/mapper/mount_name 

オプションでPVが作成されたことを確認します。

sudo pvdisplay

ボリュームグループの作成

sudo vgcreate backup /dev/mapper/mount_name

論理ボリュームの作成

sudo lvcreate -n part_one -l 50%FREE backup

sudo lvcreate -n part_two -l 100%FREE backup

%必要なものに変更してください。 part_oneとpart_twoを好きなように変更してください。

ディスクに移動:次のようにインストールされます。

/dev/backup/part_one

/dev/backup/part_two

攻撃隊を作る:

sudo mkfs.btrfs -L laptop_backup_c -d raid1 -m raid1 -f /dev/backup/part_one /dev/backup/part_two

laptop_backup_c はタグです。好きなものに変えてください。

gnome ディスクを使用してこれらのいずれかをインストールします。現れるでしょう

/media/<user>/laptop_backup_c

ユーザーはあなたのユーザー名です

または、マウントフォルダを作成してマウントし、マウントフォルダを削除します。

削除:

sudo umount /media/<user>/laptop_backup_c

グループで開いているすべてのボリュームを閉じます。

sudo lvchange -an backup

Luksコンテナを閉じます。

sudo cryptsetup luksClose mount_name

ドライブを接続すると、パスワードを一度だけ尋ねます。/media/<user>/laptop_backup_cgnomeディスクまたはCLI(ここでは表示されていません)を使用して論理ボリュームをマウントすると、RAID 1がマウントされます。

関連情報