如何在FreeBSD服务器上添加并配置ZFS池

时间:2019-11-20 08:53:39  来源:igfitidea点击:

ZFS是FreeBSD操作系统的文件系统。
它是最初由Sun Microsystems设计的文件系统和逻辑卷管理器。

如何在FreeBSD服务器上配置加密的ZFS池?
如何在FreeBSD 11服务器上添加加密的ZFS池?

如何在FreeBSD上查看现有的硬盘

执行下面的命令之一:

# camcontrol devlist

或者

# geom disk list

输出示例:

Geom name: vtbd0
Geom name: vtbd1
Geom name: vtbd2

查看当前分区

运行以下命令:

# gpart show

查看当前的zpool

执行以下命令:

# zfs list
# zpool list
# zpool status

输出示例:

pool: zroot
state: ONLINE 
scan: none requested
config:
NAME  STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
vtbd0p3. eli ONLINE 0 0 0
vtbd1p3. eli ONLINE 0 0 0

可以看到/dev/vtbd0和/dev/vtbd1 组成了镜像池zroot。
我们可以使用/dev/vtbd2来创建另外一个池。

如何在FreeBSD上配置加密的ZFS池

执行gpart命令在vtbd2创建新的分区方案

# gpart create -s gpt vtbd2
`vtbd2 created`

根据分区方案,创建新的分区

# 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-vol0
  • vtbd2:设备名称

在FreeBSD中如何使用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

在连接加密的设备时,需要使用上面指定的密码。

geli命令的选项说明:

  • init:geli实用程序用于在GEOM提供程序上配置加密。初始化名为/dev/gpt/disk2-vol0的提供程序,该提供程序需要加密。
  • -l 256:默认和推荐的算法是AES-XTS,并将数据密钥长度设置为256以与给定的加密算法一起使用。
  • /dev/gpt/disk2-vol0:设备名称

创建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