4

技术前提:

  1. 掌握TrueNAS的一般操作
  2. 掌握esxi的一般操作
  3. 可以在esxi中基于iSCSI使用TrueNAS数据集做为虚拟机硬盘

本文主要完成了以下需求:

  1. 基于当前的FreeBSD系统快照复制出新的系统。
  2. 有效地处理新系统及原系统均包括的两块系统盘:

    1. 其中一块为读写更快的SSD,该系统盘无保护,会随着SSD的故障而故障,数据不可恢复。
    2. 其中另一块为读写较慢的HD,该HD由TrueNAS通过iSCSI提供,所以该系统盘有保护,有定期快照,有硬盘冗余,不会随着某些硬盘的损坏而损坏,数据可恢复。
  3. 快速完成复制

实现步骤

克隆系统盘

首先我们需要为原系统的HD打快照,然后在快照列表中找到刚刚打的快照,然后点击右侧的查看后继续点击:克隆到新数据集。

image.png

接着指定新的数据名称,比如我在此根据需要将其指定为:healthtraining

image.png

点击确认后,系统盘复制完成。

创建iSCSI挂载点

有了新的数据集后,我们下一步基于此创建iSCSI。基本步骤为:

  1. 创建target
  2. 创建Extent
  3. 关联target与Extent

image.png

创建虚拟机

接收我们创建虚拟机,指定硬盘: 刚刚在上一步中创建的块设备healthtraining,再设置网络等其它信息后,开机。

注意:为了避免IP冲突,尽量在首次启动时,将网络设置为不同于源虚拟机的网络

加载新硬盘

成功开机后,继续编辑虚拟机,并添加第二块空硬盘,在进行硬盘的大小设置,一定要注意必须略大于第一块硬盘,比如:

image.png

保存后freebsd将自动检测到新硬盘:

image.png

分区并进行硬盘替换

接着我们切换到root用户,参考 FreeBSD操作系统ZFS文件系统更换硬盘 将第一块硬盘的分区表写入第二块硬盘:

#gpart backup da0 > gpt_backup_da0.txt
#gpart restore -F da1 < gpt_backup_da0.txt

未报错误的话,说明分区表写入成功,也可以执行gpart show来查看分区结果。

# gpart show
=>       40  104857584  da0  GPT  (50G)
         40       1024    1  freebsd-boot  (512K)
       1064        984       - free -  (492K)
       2048    4194304    2  freebsd-swap  (2.0G)
    4196352  100661248    3  freebsd-zfs  (48G)
  104857600         24       - free -  (12K)

=>       34  104878503  da1  GPT  (50G)
         34          6       - free -  (3.0K)
         40       1024    1  freebsd-boot  (512K)
       1064        984       - free -  (492K)
       2048    4194304    2  freebsd-swap  (2.0G)
    4196352  100661248    3  freebsd-zfs  (48G)
  104857600      20937       - free -  (10M)

接着查看zpool状态:

# zpool status
  pool: zroot
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-2Q
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            da0p3   ONLINE       0     0     0  block size: 4096B configured, 32768B native
            da1p3   UNAVAIL      0     0     0  cannot open

获取到获取替换的分区为 da1p3后执行:

#zpool replace zroot da1p3

完成硬盘的替换。此过程将进行数据从第1块硬盘复制到第二块硬盘的操作,需要一些时间,需要静静等待。

最后,将启动信息写入新硬盘。

# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da1
partcode written to da1p1
bootcode written to da1

验证

为了保持数据的完整性,按以下步骤进行测试。

  1. 重新启动系统,验证系统正常运行。
  2. 关机,移除第1块硬盘后,开机,系统正常。
  3. 关机,添加回第1块硬盘后,开机,系统正常。
  4. 关机,移除第2块硬盘后,开机,系统正常。
  5. 关机,添加回第2块硬盘后,开机,系统正常。

验证完毕。

定制

最后,根据实际情况定制系统的主机名,ip地址,并添加到正确的网络中即可。


潘杰
3.1k 声望239 粉丝