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
    • 最新
    • 标签
主页 / server / 问题 / 641136
Accepted
STW
STW
Asked: 2014-11-01 05:01:08 +0800 CST2014-11-01 05:01:08 +0800 CST 2014-11-01 05:01:08 +0800 CST

是否可以在不需要完全重新同步的情况下分离和重新附加 ZFS 磁盘?

  • 772

我有一个总共有四个驱动器的 ZFS 镜像池。其中两个驱动器旨在用于轮换异地备份。我的期望是,在最初的重新同步之后,我可以detach和以后attach的磁盘只进行增量重新同步 - 但是在测试中,无论附加的磁盘是否已经包含几乎所有池,它似乎都会执行完整的重新同步内容。

使用offline/online方法会给我只更新磁盘而不是完全重建磁盘的预期结果吗?或者要让这项工作按预期进行,我是否需要做一些完全不同的事情——例如将每个备份磁盘用作一个磁盘池,并send在需要更新时将最新的快照添加到它?

zfs
  • 4 4 个回答
  • 20960 Views

4 个回答

  • Voted
  1. ewwhite
    2014-11-01T05:04:54+08:002014-11-01T05:04:54+08:00

    不要走破坏 ZFS 阵列以在异地“旋转”磁盘的道路。如您所见,重建时间很长,重新同步过程将读取/验证数据集的使用大小。

    如果你有能力,快照和向远程系统发送数据是一种干净的、非侵入性的方法。我想你可以经历一个专用的单磁盘池,复制到它,然后 zpool 导出/导入的过程......但这不是很优雅。

    • 14
  2. Best Answer
    STW
    2014-11-01T10:46:47+08:002014-11-01T10:46:47+08:00

    经过进一步的实验,我找到了一个公平的解决方案,但是它带来了重大的权衡。已经offline'd 但未分离的磁盘稍后可以通过增量重新同步操作重新联机(“当设备联机时,已写入池的任何数据都将与新可用的设备重新同步。 ”)。在我的测试中,这将 3 磁盘镜像的重新同步时间从 28 小时缩短到 30 多分钟,大约 40GB 的数据增量。

    权衡是任何具有脱机磁盘的池都将被标记为降级。如果仍然有至少两个在线磁盘(在镜像池中),这实际上是一个警告——完整性和冗余保持不变。

    正如其他人提到的那样,这种整体方法远非理想——将快照发送到远程池会更合适,但在我的情况下是不可行的。

    总而言之,如果您需要从池中删除磁盘,然后在不需要完全重新同步的情况下将其添加回来,那么我推荐的方法是:

    • 使池中的磁盘脱机:zpool offline pool disk
    • 旋转驱动器(如果要物理拉动):hdparm -Y /dev/thedisk
    • 在驱动器脱机的情况下使池处于降级状态
    • 将磁盘添加回池中:zpool online pool disk

    而且,由于这尚未经过测试,因此存在增量重新同步操作不准确的风险。“活动”池和/或脱机磁盘可能会遇到问题。如果这种情况发生在我身上,我会更新,但现在将尝试这种方法。

    • 12
  3. mpb
    2015-10-15T23:04:08+08:002015-10-15T23:04:08+08:00

    2015 年 10 月 15 日更新zpool split:今天我发现了该命令,它从现有池中拆分出一个新池(使用新名称)。 split比 and 干净得多offline,detach因为两个池可以在同一个系统上存在(并单独清理)。export[ed]在从系统中拔出之前,新池也可以干净(且正确) 。

    (我的原始帖子如下。)

    警告! 此页面上的各种评论暗示它是(或可能)zpool detach驱动器,然后以某种方式重新连接驱动器并访问它包含的数据。

    但是,根据这个线程(和我自己的实验) zpool detach从分离的驱动器中删除“池信息”。换句话说, adetach就像驱动器的快速重新格式化。在detach驱动器上可能仍有大量数据之后,但实际上不可能重新安装驱动器并将数据视为可用的文件系统。

    因此,在我看来,它detach比 更具破坏性destroy,因为我相信zpool import可以恢复被破坏的池!

    Adetach不是a ,也不是 a ,也不是a 。umountzpool exportzpool offline

    在我的实验中,如果我先是zpool offline一个设备,然后zpool detach是同一个设备,池的其余部分会忘记该设备曾经存在过。但是,由于设备本身offline[d]之前是detach[ed],设备本身永远不会收到detach. 因此,设备本身仍然有它的池信息,并且可以移动到另一个系统然后import[ed](处于降级状态)。

    为了增加对您的保护,您甚至可以在命令之后、但在发出命令之前从detach物理上拔下设备。offlinedetach

    我希望使用这个offline,然后detach,然后import处理来备份我的池。与最初的海报一样,我计划使用四个驱动器,两个用于固定镜像,两个用于每月、轮换、异地(和离线)备份。我将通过在单独的系统上导入和清理每个备份来验证每个备份,然后再将其传输到异地。与原始海报不同,我不介意每月重写整个备份驱动器。事实上,我更喜欢完全重写,以便获得新鲜的部分。

    • 5
  4. soyayix
    2017-03-14T17:23:09+08:002017-03-14T17:23:09+08:00

    在同一台机器上,您是否尝试过在镜像中创建一个包含 2 个驱动器的新池?接下来,在您的工作池上创建一个快照,然后将该快照发送到新池,重复,然后下一个快照发送将是增量的。这与“向远程系统发送数据”不同,因为这是同一系统/服务器/机器中的一个池。使用此设置,您仍然可以应用 zpool 拆分/离线/分离/附加,但您只能在第二个(复制)池中执行此操作,而不是在源池中执行此操作。

    • 0

相关问题

  • 从现有目录创建 zfs 的正确方法?

  • 如何将 ZFS ACL 从一个文件克隆到另一个文件?

  • ZFS 在演示期间在舞台上失败。这是正常行为吗?

  • Sneakernet 作为备份策略有意义吗?

  • ZFS 与 XFS

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve