2020/08/02

mdadmによるRAID1の縮小とRAID1・RAID0の拡張(アレイの復旧)

2本のディスクでLinuxを走らせているが、キャッシュ的なファイルを保存しているパーティション(mdadmを使ったRAID0で構築)を広げたくなった。 
RAID1で構築しているパーティションが余っていたので、その領域を縮小させ、こちらのパーティションを拡張する。
ここからは、アレイを復旧していく。

ここまでの作業で、縮小したいディスクスペースについては、
  1. ファイルシステムのサイズの縮小
  2. ファイルシステムが入ったRAID1ボリュームのサイズの縮小
  3. ファイルシステムが入ったRAID1構成から、ディスクの片方の取り外し
  4. 取り外したディスク1本のパーティションサイズの縮小
を行った。

加えて、拡張したいディスクスペースについては、RAID1においては
  1. ファイルシステムが入ったRAID1構成から、ディスクの片方の取り外し
  2. 取り外したディスク1本のパーティションサイズの拡張
を行った。

また、拡張したいRAID0においては、
  1. ファイルシステムが入ったRAID0構成は、RAID0を停止
  2. 取り外したディスク1本のパーティションサイズの拡張
を行った。

次は、取り外していたディスクをRAIDに戻す。
なお、戻すのはRAID1のみ。RAID0はファイルシステムとして成り立たないので、もう一本のディスクの作業が終わってから、新規にRAID0を再構築する。


まずは現状のmdstatを確認する。 
片肺で動いていることが確認できる。
root@edo /
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath]
md3 : active raid1 sda3[2]
      33553336 blocks super 1.2 [2/1] [U_]

md4 : active raid1 sda4[2]
      125829120 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sda1[0]
      524224 blocks [2/1] [U_]

unused devices: <none>

まずは容量の小さいmd1に、sdb1を戻す。
mdadm --addを使用する。
root@edo /
# mdadm --add /dev/md1 /dev/sdb1
mdadm: hot added /dev/sdb1

同期の状態を確認する。
サイズが小さいので一瞬で同期完了。
root@edo /
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath]
md3 : active raid1 sda3[2]
      33553336 blocks super 1.2 [2/1] [U_]

md4 : active raid1 sda4[2]
      125829120 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sdb1[1] sda1[0]
      524224 blocks [2/2] [UU]

unused devices: <none>

続いて、md3にsdb3を戻す。
こちらはそこそこ容量があるので、同期に時間がかかっていることがわかる。
root@edo /
# mdadm --add /dev/md3 /dev/sdb3
mdadm: added /dev/sdb3

root@edo /
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath]
md3 : active raid1 sdb3[3] sda3[2]
      33553336 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  1.1% (401792/33553336) finish=2.7min speed=200896K/sec

md4 : active raid1 sda4[2]
      125829120 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sdb1[1] sda1[0]
      524224 blocks [2/2] [UU]

unused devices: <none>

root@edo /
# mdadm -D /dev/md3
/dev/md3:
           Version : 1.2
     Creation Time : Fri Nov 30 02:19:12 2012
        Raid Level : raid1
        Array Size : 33553336 (32.00 GiB 34.36 GB)
     Used Dev Size : 33553336 (32.00 GiB 34.36 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sun Aug  2 13:10:36 2020
             State : clean, degraded, recovering
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

    Rebuild Status : 12% complete

              Name : edo:/  (local to host edo)
              UUID : 1a4518b9:879d5121:f1651760:8b1a1f02
            Events : 32836

    Number   Major   Minor   RaidDevice State
       2       8        3        0      active sync   /dev/sda3
       3       8       19        1      spare rebuilding   /dev/sdb3


暫く待つと、同期が完了する。
root@edo /
# mdadm -D /dev/md3
/dev/md3:
           Version : 1.2
     Creation Time : Fri Nov 30 02:19:12 2012
        Raid Level : raid1
        Array Size : 33553336 (32.00 GiB 34.36 GB)
     Used Dev Size : 33553336 (32.00 GiB 34.36 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sun Aug  2 13:13:12 2020
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : edo:/  (local to host edo)
              UUID : 1a4518b9:879d5121:f1651760:8b1a1f02
            Events : 32900

    Number   Major   Minor   RaidDevice State
       2       8        3        0      active sync   /dev/sda3
       3       8       19        1      active sync   /dev/sdb3

root@edo /
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath]
md3 : active raid1 sdb3[3] sda3[2]
      33553336 blocks super 1.2 [2/2] [UU]

md4 : active raid1 sda4[2]
      125829120 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sdb1[1] sda1[0]
      524224 blocks [2/2] [UU]

unused devices: <none>


最後にmd4に、sdb4を戻す。
root@edo /
# mdadm --add /dev/md4 /dev/sdb4
mdadm: added /dev/sdb4

root@edo /
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath]
md3 : active raid1 sdb3[3] sda3[2]
      33553336 blocks super 1.2 [2/2] [UU]

md4 : active raid1 sdb4[3] sda4[2]
      125829120 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.3% (447424/125829120) finish=9.3min speed=223712K/sec
      bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sdb1[1] sda1[0]
      524224 blocks [2/2] [UU]

unused devices: <none>

root@edo /
# mdadm -D /dev/md4
/dev/md4:
           Version : 1.2
     Creation Time : Sat Aug  1 16:49:39 2015
        Raid Level : raid1
        Array Size : 125829120 (120.00 GiB 128.85 GB)
     Used Dev Size : 125829120 (120.00 GiB 128.85 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sun Aug  2 13:14:42 2020
             State : clean, degraded, recovering
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : bitmap

    Rebuild Status : 1% complete

              Name : edo:/data  (local to host edo)
              UUID : 8f55590b:38f15e8a:4ea20fad:c34229d8
            Events : 7305

    Number   Major   Minor   RaidDevice State
       2       8        4        0      active sync   /dev/sda4
       3       8       20        1      spare rebuilding   /dev/sdb4


こちらも、同期完了にしばらく時間がかかった。
root@edo /
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath]
md3 : active raid1 sdb3[3] sda3[2]
      33553336 blocks super 1.2 [2/2] [UU]

md4 : active raid1 sdb4[3] sda4[2]
      125829120 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sdb1[1] sda1[0]
      524224 blocks [2/2] [UU]

unused devices: <none>

root@edo /
# mdadm -D /dev/md4
/dev/md4:
           Version : 1.2
     Creation Time : Sat Aug  1 16:49:39 2015
        Raid Level : raid1
        Array Size : 125829120 (120.00 GiB 128.85 GB)
     Used Dev Size : 125829120 (120.00 GiB 128.85 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sun Aug  2 13:25:11 2020
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : edo:/data  (local to host edo)
              UUID : 8f55590b:38f15e8a:4ea20fad:c34229d8
            Events : 7429

    Number   Major   Minor   RaidDevice State
       2       8        4        0      active sync   /dev/sda4
       3       8       20        1      active sync   /dev/sdb4


同じ作業をsdaに対しても行う。

0 件のコメント: