AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1301828
Accepted
kaulex
kaulex
Asked: 2020-12-22 05:52:20 +0800 CST2020-12-22 05:52:20 +0800 CST 2020-12-22 05:52:20 +0800 CST

使用镜像扩展现有 Single Disk ZFS,无需格式化现有 HDD

  • 772

我的服务器上有一个格式化为单盘 zfs 系统的 HDD。它如下所示: 在此处输入图像描述

现在我想在不格式化原始磁盘的情况下将其转换为 zfs 镜像。有任何想法吗?

结果应该是这样的:

hdd0
   mirror0
       ata-........................
       ata-........................

  
server zfs
  • 1 1 个回答
  • 3062 Views

1 个回答

  • Voted
  1. Best Answer
    Carles Mateo
    2020-12-29T11:10:21+08:002020-12-29T11:10:21+08:00

    我在虚拟机中复制了您的案例,并逐步粘贴到此处。:)

    注意:首先,请备份您的数据。我添加了一个空的新磁盘,因此 ZFS 毫不怀疑主驱动器是什么。虽然您应该没有问题,因为第一个驱动器已经构成池的一部分,但建议进行备份。

    快速回答:您需要zpool attach命令。

    基本上: sudo zpool attach hdd0 existinghdd blankhdd

    之后,执行:

    zpool status
    

    你会看到已经创建了一个镜像。您在现有驱动器上的数据将被保留,并将被复制到新驱动器(重新同步)。

    由于 ZFS 仅复制实际信息,因此此过程将或多或少地取决于数据量。在我的虚拟机中,3 秒内复制了 300 GB,而我使用 SAS 和 SATA 驱动器的经验,我在不到 24 小时内重新同步了 10 TB(因为我使用的是 10TB 到 14TB SAS 的驱动器)。

    现在,我在 Virtual Box VM 中所做的一切都得到了长长的回答:

    lsblk --scsi
    

    通过 ls /dev/disk/by-id/ 识别两个空驱动器

    选择其中一个并创建一个像您这样的池: sudo zpool create hdd0 id_of_mydrive

    看到池 /hdd0 已创建并安装在 root 上。

    sudo zpool status
    sudo zpool list
    sudo ls -al /hdd0
    

    填充一些随机数据(或在那里更好地复制文件)以生成像您这样的数据驱动器。我从随机生成: 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 status=progress sudo dd id=/dev/urandom of=/hdd0/file.002 bs=1M count=100 status=progress

    然后我得到校验和并保存以供以后验证。

    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
    

    zpool list 显示将近 100GB 的空间。

    zpool attach hdd0 id_of_mydrive id_of_the_drive_to_add
    

    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
    

    我验证了校验和。

    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 开头。

    • 7

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve