技术前提:
- 掌握TrueNAS的一般操作
- 掌握esxi的一般操作
- 可以在esxi中基于iSCSI使用TrueNAS数据集做为虚拟机硬盘
本文主要完成了以下需求:
- 基于当前的FreeBSD系统快照复制出新的系统。
有效地处理新系统及原系统均包括的两块系统盘:
- 其中一块为读写更快的SSD,该系统盘无保护,会随着SSD的故障而故障,数据不可恢复。
- 其中另一块为读写较慢的HD,该HD由TrueNAS通过iSCSI提供,所以该系统盘有保护,有定期快照,有硬盘冗余,不会随着某些硬盘的损坏而损坏,数据可恢复。
- 快速完成复制
实现步骤
克隆系统盘
首先我们需要为原系统的HD打快照,然后在快照列表中找到刚刚打的快照,然后点击右侧的查看后继续点击:克隆到新数据集。
接着指定新的数据名称,比如我在此根据需要将其指定为:healthtraining
点击确认后,系统盘复制完成。
创建iSCSI挂载点
有了新的数据集后,我们下一步基于此创建iSCSI。基本步骤为:
- 创建target
- 创建Extent
- 关联target与Extent
创建虚拟机
接收我们创建虚拟机,指定硬盘: 刚刚在上一步中创建的块设备healthtraining
,再设置网络等其它信息后,开机。
注意:为了避免IP冲突,尽量在首次启动时,将网络设置为不同于源虚拟机的网络
加载新硬盘
成功开机后,继续编辑虚拟机,并添加第二块空硬盘,在进行硬盘的大小设置,一定要注意必须略大于第一块硬盘,比如:
保存后freebsd将自动检测到新硬盘:
分区并进行硬盘替换
接着我们切换到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块硬盘后,开机,系统正常。
- 关机,添加回第1块硬盘后,开机,系统正常。
- 关机,移除第2块硬盘后,开机,系统正常。
- 关机,添加回第2块硬盘后,开机,系统正常。
验证完毕。
定制
最后,根据实际情况定制系统的主机名,ip地址,并添加到正确的网络中即可。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。