方法 1

方法 1

我有一个旧的 73gb SAS SCSI 驱动器,所以我插入了一个新的 73gb SAS SCSI,我想将所有内容从中克隆到新驱动器。我想将 SCSI 硬盘驱动器 SD20 克隆到 SD21。在 Solaris 中有没有简单的方法可以完成此操作?我是 Red Hat Linux 用户。我不熟悉 Solaris。

如果无法做到这一点,那么我必须克隆该驱动器上的实际数据。

当我运行格式时,我得到了这个:

       0. c1t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
          /pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000020378deaf4,0
       1. c1t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
          /pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf22de9f,0
       2. c2t5d0 <QUANTUM-ATLAS10K3_73_WLS-020W cyl 31014 alt 2 hd 8 sec 579>
          /pci@8,700000/scsi@6,1/sd@5,0
       3. c2t6d0 <QUANTUM-ATLAS10K3_73_WLS-020W cyl 31014 alt 2 hd 8 sec 579>
          /pci@8,700000/scsi@6,1/sd@6,0

我认为 2 是旧驱动器(我想要从中克隆),3 是新驱动器(我想要克隆到的驱动器)

当我查看 2 的分区图(验证)时,我得到:

Part      Tag    Flag     Cylinders         Size            Blocks
  0 unassigned    wm       0                0         (0/0/0)             0
  1 unassigned    wm       0                0         (0/0/0)             0
  2     backup    wu       0 - 31013       68.50GB    (31014/0/0) 143656848
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0 - 11318       25.00GB    (11319/0/0)  52429608
  5 unassigned    wm   11319 - 31013       43.50GB    (19695/0/0)  91227240
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

当我查看 3 的分区图(验证)时,我得到:

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -    56      128.92MB    (57/0/0)       264024
  1       swap    wu      57 -   113      128.92MB    (57/0/0)       264024
  2     backup    wu       0 - 31013       68.50GB    (31014/0/0) 143656848
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6        usr    wm     114 - 31013       68.25GB    (30900/0/0) 143128800
  7 unassigned    wm       0                0         (0/0/0)             0

df -k 命令的输出:

Filesystem            kbytes    used   avail capacity  Mounted on
/dev/md/dsk/d1       5040814 2947078 2043328    60%    /
/proc                      0       0       0     0%    /proc
fd                         0       0       0     0%    /dev/fd
mnttab                     0       0       0     0%    /etc/mnttab
/dev/md/dsk/d3       5040814 1959374 3031032    40%    /var
swap                 6968984      24 6968960     1%    /var/run
swap                 6969040      80 6968960     1%    /tmp
/dev/md/dsk/d7       25815139 4844450 20712538    19%    /d001
/dev/md/dsk/d8       44918294 21617527 22851585    49%    /d002
/dev/md/dsk/d4       5040814 3897382 1093024    79%    /opt

我相信,基于 2 的分区图(上面),/d001 和 /d002 是从旧磁盘(我想要从中克隆)挂载的唯一分区。

如果我无法直接克隆硬盘,那么也许我可以在 3 上创建与 2 相同的分区映射,并将数据从 /d001 和 /d002 复制到新驱动器,这引出了我最大的疑问:我如何验证 /d001 和 /d002 是唯一从旧驱动器安装的东西?!

答案1

由于某种原因,c2t5d0s4 (/d001) 和 c2t5d0s5 (/d002) 在 SDS 中设置为单向镜像。也许有人metattach在某个时候忘记了另一个磁盘?

为了实现您的目标,有两种方法。

方法 1

正如您所建议的,dd可以使用。我首先将通过安装 c2t6d0s6 并查看文件系统内容来验证您不需要 c2t6d0s6 上的数据。

mount /dev/dsk/c2t6d0s6 /mnt

磁盘的开头还有两个小分区。检查metadb这些分区是否不是 SDS 所要求的。如果列出了它们,并且磁盘上有分区其他元数据库中的磁盘,删除它们:

metadb -d c2t6d0s0
metadb -d c2t6d0s1

然后您将能够使用dd克隆:

umount /d001
umount /d002
dd if=/dev/rdsk/c2t5d0 of=/dev/rdsk/c2t6d0

方法 2

由于您已经配置了 SDS,因此您可以使用它来完成镜像。

首先需要复制分区表:

prtvtoc /dev/rdsk/c2t5d0s2 | fmthard -s - /dev/rdsk/c2t6d0s2

然后创建元设备:

metainit d72 1 1 c2t6d0s4
metainit d82 1 1 c2t6d0s5

然后将这些附加到现有的镜子上:

metattach d7 d72
metattach d8 d82

警告:元设备 d71 已由 SDS 记录错误并已进入维护状态。它可能会拒绝复制此分区。

定期检查镜像是否同步:

metastat

您将在每个正在重建的子镜像旁边看到进度。State:重建完成后,该字段将显示“OK”。

移除旧驱动器

断开每个镜像分区。

metadetach d7 d71
metadetach d8 d81

我不记得 Solaris 8 是否有cfgadm,但如果有,请运行:

cfgadm -al

检查要删除的设备(可能是 c2::dsk/c2t5d0),然后取消配置它:

cfgadm -c unconfigure c2::dsk/c2t5d0

然后就可以安全地将其移除。

我如何验证 /d001 和 /d002 是否是从旧驱动器安装的唯一东西?!

简单:它们是磁盘上唯一的分区。(第 2 个分区是整个磁盘,而不是实际可用的分区。)

相关内容