如何在FreeBSD服务器上添加加密的ZFS池
在基于FreeBSD的服务器上添加了一个新硬盘。
如何配置加密的ZFS池以在该磁盘上存储数据?
如何在FreeBSD 11.x服务器上添加加密的ZFS池?
说明:ZFS是FreeBSD操作系统的文件系统。
它是最初由Sun Microsystems设计的文件系统和逻辑卷管理器。
VDEV就是物理磁盘(例如/dev/vtbd2)文件镜像或ZFS软件RAID设备(ZFS RAID的热备用)的集合。
zpool就是由VDEVS构成的存储(VDEVS的集合)。
您可以组合两个或多个物理磁盘或文件,或两者结合。
该页面显示了在FreeBSD服务器上添加第二块硬盘时如何在服务器上创建加密的ZFS池。
如何在FreeBSD上列出现有的硬盘驱动器
执行以下任一命令:
# camcontrol devlist
或者
# geom disk list
列出当前分区
运行以下命令:
# gpart show
列出您现有的zpool
执行以下命令:
# zfs list # zpool list # zpool status
很明显,zroot将/dev/vtbd0和/dev/vtbd1用作镜像设备。
因此,/dev/vtbd2保留为未使用的设备。
如何在FreeBSD上添加加密的ZFS池
执行以下gpart命令以在vtbd2上创建新的分区方案。
-s gpt`选项确定要使用的方案:
# gpart create -s gpt vtbd2 `vtbd2 created`
接下来,将新分区添加到geom给出的分区方案中:
# gpart add -t freebsd-zfs -l disk2-vol0 vtbd2 `vtbd2p1 added`
其中:
- -t freebsd-zfs:将分区的类型设置为freebsd-zfs,即包含ZFS卷的FreeBSD分区。
-l disk2-vol0
:将分区标签名称设置为disk2-vol0,即/dev/gpt/disk2-vol0vtbd2
:设备名称
如何在FreeBSD for ZFS上使用Geli启用加密
我将存储关键数据。
因此,加密对我来说至关重要。
使用esni驱动程序,geli和ZFS可以很容易地进行设置。
geli只是为使用GEOM磁盘框架的FreeBSD编写的块设备层磁盘加密系统。
aesni驱动程序用于Intel CPU上的AES加速器,以加速磁盘加密。
首先将以下行添加到/boot/loader.conf中:
# echo 'aesni_load="YES"' >> /boot/loader.conf
使用kldload命令加载FreeBSD aesni驱动程序:
# kldload aesni
我将为/dev/gpt/disk2-vol0设置加密,运行:
# geli init -l 256 /dev/gpt/disk2-vol0
解决方法:您需要使用以上密码在引导时或在重新引导FreeBSD裸机或云服务器后连接加密的设备。
geli命令的选项如下:
init
:geli实用程序用于在GEOM提供程序上配置加密。初始化名为/dev/gpt/disk2-vol0的提供程序,该提供程序需要加密。- `-l 256':默认和推荐的算法是AES-XTS,并将数据密钥长度设置为256以与给定的加密算法一起使用。
/dev/gpt/disk2-vol0
:设备名称
最后追加给定的提供程序,即/dev/gpt/disk2-vol0。
加密的主密钥将从元数据中加载,并使用给定的密码短语解密,并使用给定的提供者名称(后缀为.eli)创建新的GEOM提供者,即/dev/gpt/disk2-vol0.eli。
# geli attach /dev/gpt/disk2-vol0 # ls -l /dev/gpt/disk2-vol0*
查看GEOM设备的状态
# geli status
输出示例:
Name Status Components vtbd0p3.eli ACTIVE vtbd0p3 vtbd1p3.eli ACTIVE vtbd1p3 mirror/swap.eli ACTIVE mirror/swap gpt/disk2-vol0.eli ACTIVE gpt/disk2-vol0
我将使用/dev/gpt/disk2-vol0.eli创建zfs池。
创建zfs池
最后,解决方法:您需要使用zpool命令设置ZFS池:
# zpool create backup /dev/gpt/disk2-vol0.eli
验证一下:
# zpool list # zpool status # zfs list backup
系统重启后如何挂载设备
解决方法:您需要执行以下命令:
# geli attach /dev/gpt/disk2-vol0 # zfs mount -a # zfs get mounted backup # zpool list # zpool status ## use it again ## # cd /backup # ls -l
如何在FreeBSD上添加两个磁盘并配置加密的ZFS池镜像块存储
假设您有/dev/vtbd2和/dev/vtbd3:
# gpart create -s gpt vtbd2 # gpart create -s gpt vtbd3 # gpart add -t freebsd-zfs -l disk2-vol0 vtbd2 # gpart add -t freebsd-zfs -l disk3-vol0 vtbd3 # geli init -l 256 /dev/gpt/disk2-vol0 # geli init -l 256 /dev/gpt/disk3-vol0 # geli attach /dev/gpt/disk2-vol0 # geli attach /dev/gpt/disk3-vol0 # geli status # zpool create backupdisk mirror gpt/disk2-vol0.eli gpt/disk3-vol0.eli # zpool list # zpool status
重新引导留下的FreeBSD服务器后,编写一个shell脚本来挂载zpool,作为读者的练习。