安装 2 个新的子镜(更大尺寸)

父元设备 d3 的大小为 33 GB,带有 2 个子镜像 d30 和 d31.

# metastat d3
   d3: Mirror
       Submirror 0: d30
         State: Okay
       Submirror 1: d31
         State: Okay
       Pass: 1
       Read option: roundrobin (default)
       Write option: parallel (default)
       Size: 70574080 blocks (33 GB)
   d30: Submirror of d3
       State: Okay
       Size: 70574080 blocks (33 GB)
       Stripe 0:
           Device     Start Block  Dbase        State Reloc Hot Spare
           c3t0d0s0          0     No            Okay   Yes
   d31: Submirror of d3
       State: Okay
       Size: 70574080 blocks (33 GB)
       Stripe 0:
           Device     Start Block  Dbase        State Reloc Hot Spare
           c3t0d1s0          0     No            Okay   Yes

为了增加元设备,我们将添加 2 个更大的子镜像 d32. d33(来自磁盘 c4t0d0 和 c4t0d1),使其成为 4 路镜像,同步它,然后删除原始的 2 个子镜像。

# metainit d32 1 1 c4t0d0s0
# metainit d33 1 1 c4t0d1s0
# metattach d3 d32
# metattach d3 d33

现在我们有一个 4 向镜像:

# metastat d3
   d3: Mirror
       Submirror 0: d30
         State: Okay
       Submirror 1: d31
         State: Okay
       Submirror 2: d32
         State: Okay
       Submirror 3: d33
         State: Okay
       Pass: 1
       Read option: roundrobin (default)
       Write option: parallel (default)
       Size: 70574080 blocks (33 GB)
   d30: Submirror of d3
       State: Okay
       Size: 70574080 blocks (33 GB)
       Stripe 0:
           Device     Start Block  Dbase        State Reloc Hot Spare
           c3t0d0s0          0     No            Okay   Yes
   d31: Submirror of d3
       State: Okay
       Size: 70574080 blocks (33 GB)
       Stripe 0:
           Device     Start Block  Dbase        State Reloc Hot Spare
           c3t0d1s0          0     No            Okay   Yes
   d32: Submirror of d3
       State: Okay
       Size: 141148160 blocks (67 GB)
       Stripe 0:
           Device     Start Block  Dbase        State Reloc Hot Spare
           c4t0d0s0          0     No            Okay   Yes
   d33: Submirror of d3
       State: Okay
       Size: 141148160 blocks (67 GB)
       Stripe 0:
           Device     Start Block  Dbase        State Reloc Hot Spare
           c4t0d1s0          0     No            Okay   Yes
Solaris Volume Manager (SVM):在线扩大镜像元设备

下面显示的示例使用元设备 d3,它是一个 33Gb 镜像,带有已挂载的文件系统。

扩展镜像元设备 d3 的步骤包括:

  1. 将另外 2 个子镜像(较大的 d32 和 d33)添加到父元设备 d3.

  2. 同步后分离旧的子镜像 d30 和 d31.

  3. 增加父元设备 d3 以反映新的大小。

  4. 扩大文件系统。

扩大文件系统

我们现在可以使用growfs 为文件系统提供新空间。

# growfs -M /d3 /dev/md/rdsk/d3
/dev/md/rdsk/d3: 141148160 sectors in 68920 cylinders of 64 tracks, 32 sectors
68920.0MB in 1407 cyl groups (49 c/g, 49.00MB/g, 6144 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 100416, 200800, 301184, 401568, 501952, 602336, 702720, 803104, 903488, 140595008, 
140695392, 140795776, 140896160, 140996544, 141096928,

验证文件系统的新大小:

# df -k /d3
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d3 69470954 34730557 34393047 51% /d3
on  it road.com

分离旧的子镜

我们会让新的子镜像同步,然后分离原始子镜像 d30 和 d31.

# metadetach d3 d30
   d3: submirror d30 is detached
# metadetach d3 d31
   d3: submirror d31 is detached

这为我们留下了一个双向镜像,其中每个子镜像的大小是原来的两倍,但父镜像仍然是原始大小。
因此,我们不能使用growfs 来利用新空间。
仔细注意子镜像与父镜像的大小不同。

# metastat d3
   d3: Mirror
       Submirror 2: d32
    State: Okay 
    Submirror 3: d33
    State: Okay 
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
       Size: 70574080 blocks (33 GB)
    d32: Submirror of d3
       State: Okay 
       Size: 141148160 blocks (67 GB)
       Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c4t0d2s0 0 No Okay Yes 

   d33: Submirror of d3
    State: Okay 
    Size: 141148160 blocks (67 GB)
    Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c4t0d1s0 0 No Okay Yes

关键步骤是使用“metatach mirror”。
这告诉父镜像增长到其当前最小的子镜像的大小。

# metattach d3

注意父尺寸是如何改变的。

# metastat d3
   d3: Mirror
    Submirror 2: d32
    State: Okay 
    Submirror 3: d33
    State: Okay 
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 141148160 blocks (67 GB)
   d32: Submirror of d3
    State: Okay 
    Size: 141148160 blocks (67 GB)
    Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c3t0d2s0 0 No Okay Yes 

   d33: Submirror of d3
    State: Okay 
    Size: 141148160 blocks (67 GB)
    Stripe 0:
    Device Start Block Dbase State Reloc Hot Spare
    c3t0d3s0 0 No Okay Yes
日期:2020-09-17 00:15:26 来源:oir作者:oir