我想build立一个RAID1 / BTRFS / Luks设置。 我到目前为止发现的是:
可以在dm_crypt磁盘encryption子系统和Linux统一密钥设置(LUKS)层之上创buildencryption的Btrfs文件系统,该层支持各种encryption标准。 但是,这种方法会禁用在原始块设备上使用Btrfs的某些function和优点,例如自动固态磁盘支持和检测。
实施此解决scheme的最佳方法是什么?
/dev/sda1 < 500 Gb /dev/sdb1 < 500 Gb /dev/md0 < RAID1 stripe < Luks < BTRFS < snapshots
这样的设置工作?
我看不到另一种方法,而不会丢失BTRFS-es快照function。 我可以设置raid没有mdadm与btrfs像:
mkfs.btrfs -m raid1 -d raid1 /dev/sda /dev/sdb
但后来我得到了正确的顶部,我只能放弃encryption图像。 即使图像内的1位更改也会影响btrfs的快照(也就是说它会复制整个图像文件)。
需要注意的是,如果使用md进行镜像并在“-d single”上创buildbtrfs,则将失去从bitrot错误中恢复的能力(btrfs仍会检测到它们)
所以你的案例的最佳解决scheme将是你的第二个例子:
原始设备 – > LUKS – >来自LUKS设备的btrfs RAID1
贷款已经回答了TRIM /丢弃部分给你,没有什么可以补充的
但是,这种方法会禁用在原始块设备上使用Btrfs的某些function和优点,例如自动固态磁盘支持和检测。
cryptsetup支持传递TRIM请求; 在使用/etc/crypttab时,只需要在执行cryptsetup open时使用参数--allow-discards cryptsetup open ,或者使用discard作为选项。 在执行mkfs.btrfs之前执行此操作,您将看到它检测到SSD并打开TRIM。 您可能还需要确保在稍后安装文件系统时使用discard,ssd作为选项。
即使图像内的1位更改也会影响btrfs的快照(也就是说它会复制整个图像文件)。
BTRFS将检测数据/元数据块中的任何位损坏,并使用另一个副本(不会复制该文件)更正该块。 快照引用现有的数据/元数据块,通常不会占用额外的空间。 如果一个块的一部分(文件的一部分)稍后发生变化,将会单独制作和引用副本(除非块包含整个文件,否则不会复制文件)。 未更改的块不会被复制,只是引用。