我的服务器上有一个硬盘,格式化为单盘 zfs 系统。它看起来像下面这样:

现在我想将其转换为 zfs 镜像而不格式化原始磁盘。有任何想法吗?
结果应该是这样的:
hdd0
mirror0
ata-........................
ata-........................
Run Code Online (Sandbox Code Playgroud)
Car*_*teo 17
我在虚拟机中复制了您的案例并逐步粘贴到此处。:)
注意:首先,请做好数据备份。我添加了一个空的新磁盘,因此 ZFS 毫不怀疑主驱动器是什么。虽然您应该没有问题,因为第一个驱动器已经构成池的一部分,但建议进行备份。
快速回答:您需要zpool Attach命令。
基本上:
sudo zpool attach hdd0 existinghdd blankhdd
之后,执行以下操作:
zpool status
Run Code Online (Sandbox Code Playgroud)
你会看到一面镜子已经创建了。您在现有驱动器上的数据将被保留,并将被复制到新驱动器(重新同步)。
由于 ZFS 仅复制实际信息,因此此过程将花费或多或少的时间,具体取决于数据量。在我的虚拟机中,300 GB 在 3 秒内复制,而根据我使用 SAS 和 SATA 驱动器的经验,我在不到 24 小时内重新同步了 10 TB(为此我使用了从 10 TB 到 14 TB SAS 的驱动器)。
现在是我在 Virtual Box VM 中所做的一切的长答案:
lsblk --scsi
Run Code Online (Sandbox Code Playgroud)
通过 ls /dev/disk/by-id/ 识别两个空驱动器
选择其中之一并创建一个像您一样的池: sudo zpool create hdd0 id_of_mydrive
查看池 /hdd0 已创建并安装在 root 上。
sudo zpool status
sudo zpool list
sudo ls -al /hdd0
Run Code Online (Sandbox Code Playgroud)
填充一些随机数据(或更好地复制文件)以生成像您一样的驱动器数据。我从随机生成: sudo dd id=/dev/urandom of=/hdd0/file.000 bs=1M count=100 status=progress sudo dd id=/dev/urandom of=/hdd0/file.001 bs=1M count =100状态=进度 sudo dd id=/dev/urandom of=/hdd0/file.002 bs=1M 计数=100状态=进度
然后我得到了校验和并保存以供稍后验证。
sudo su
# Please note I continue as root
sha512sum file.000 > file.000.sha512
sha512sum file.001 > file.001.sha512
sha512sum file.002 > file.002.sha512
Run Code Online (Sandbox Code Playgroud)
zpool list 显示近 100GB 空间。
zpool attach hdd0 id_of_mydrive id_of_the_drive_to_add
Run Code Online (Sandbox Code Playgroud)
zpool 状态将显示:
pool: hdd0
state: ONLINE
scan: resilvered 301M in 0 days 00:00:03 with 0 errors...
NAME STATE READ WRITE CKSUM
hdd0
mirror-0
ata-VBOX_HARDDISK_VBa8... ONLINE 0 0 0
ata-VBOX_HARDDISK_VB8c... ONLINE 0 0 0
errors: No known data errors
Run Code Online (Sandbox Code Playgroud)
我验证了校验和。
zpool list 也将返回 99GB 的可用空间,因为镜像中使用了两个 100GB 的驱动器。
正如 kaulex 提到的,格式是: zpool Attach
其中 device 是您之前包含数据的 vdev(ZFS 池中名为“hdd0”的数据的单个硬盘驱动器)。
正如我所做的那样,您想使用设备的 ID 而不是名称,因此您将使用 /dev/disk/by-id/ 中的标识符,而不是 sdb、sdc...(请注意,添加 /dev/ 是不必要)。不使用 sdb、sdc、sdea 等设备名称的原因是这些名称可能会改变 live 运行或重新启动之间的原因。id 永远不会改变。在真实系统中,而不是 Virtual Box 中,它们可能以 wwn 开头。
| 归档时间: |
|
| 查看次数: |
11667 次 |
| 最近记录: |