2014年1月26日日曜日

自己満足的自宅サーバーディスク構成変更(3)~システムパーティションの移動

前回LVMから外した3.0TBのディスクに/bootと/を持ってきます。切りなおしてファイルコピーでもいいんですが、せっかくなのでRAID 1の機能を使って行きましょう。

まず現状を確認です。
# parted
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit b                                                           
(parted) print                                                            
Model: ATA WDC WD20EARS-00M (scsi)
Disk /dev/sda: 2000398934016B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start          End             Size            Type     File system  Flags
 1      1048576B       537919487B      536870912B      primary  ext4         boot, raid
 2      537919488B     9127854079B     8589934592B     primary               raid
 3      9127854080B    284005761023B   274877906944B   primary               raid
 4      284005761024B  2000396321279B  1716390560256B  primary               raid

(parted) select /dev/sde
Using /dev/sde
(parted) print                                                            
Model: ATA WDC WD30EZRX-00D (scsi)
Disk /dev/sde: 3000592982016B
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start           End             Size            File system  Name  Flags
 1      1048576B        2000398843903B  2000397795328B                     raid
 2      2000398843904B  3000592498687B  1000193654784B

(parted)
ここでsdaの1と3が/bootと/なのでこれと同じサイズのパーティションを作成します。
(parted) rm 1                                                             
(parted) rm 2                                                             
(parted) unit mib                                                         
(parted) mkpart                                                           
Partition name?  []?                                                      
File system type?  [ext2]?                                                
Start? 1                                                                  
End? 513                                                                  
(parted) mkpart                                                           
Partition name?  []?                                                      
File system type?  [ext2]?                                                
Start? 513                                                                
End? 262657                                                               
(parted) set 1 raid on                                                    
(parted) set 2 raid on                                                    
(parted) unit b                                                           
(parted) print                                                            
Model: ATA WDC WD30EZRX-00D (scsi)
Disk /dev/sde: 3000592982016B
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start       End            Size           File system  Name  Flags
 1      1048576B    537919487B     536870912B                        raid
 2      537919488B  275415826431B  274877906944B                     raid

(parted) 
これでサイズも全く同じパーティションができました。これをアレイに追加します。
# mdadm --add /dev/md0 /dev/sde1
mdadm: added /dev/sde1
# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md0 : active raid1 sde1[2](S) sdb1[1] sda1[0]
      524276 blocks super 1.0 [2/2] [UU]

スペアとして追加されてることがわかります。それを3台構成のRAID 1として定義しなおします。
# mdadm --grow /dev/md0 --raid-devices=3
raid_disks for /dev/md0 set to 3
# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md0 : active raid1 sde1[2] sdb1[1] sda1[0]
      524276 blocks super 1.0 [3/2] [UU_]
      [============>........]  recovery = 62.5% (327680/524276) finish=0.0min speed=109226K/sec
問題なさそうですね。同じことを / 用のアレイにも行えば /boot と / を3.0TBのディスクに移動したのと等価になります。

さて、あとは忘れずにこのディスクにもGRUBを入れなければいけません。
grub> root (hd4,0)
root (hd4,0)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd4)
setup (hd4)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd4)"... failed (this is not fatal)
 Running "embed /grub/e2fs_stage1_5 (hd4,0)"... failed (this is not fatal)
 Running "install /grub/stage1 (hd4) /grub/stage2 p /grub/grub.conf "... succeeded
Done.
果たしてこれで立ち上がってくれるのか?

一応確認のため、UEFIの起動順をこのディスクに変えて起動。大丈夫そうです。まあ厳密には他のディスクを外してみないと、本当にこのディスクだけから立ち上がってるかどうかの確認はできてないですが。

最後の仕上げで、今は3台のRAID 1になってるので、それから1台抜いて2台に戻します。
# mdadm --fail /dev/md0 /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md0 : active raid1 sdb1[1] sde1[2] sda1[0](F)
      524276 blocks super 1.0 [3/2] [_UU]

# mdadm --remove /dev/md0 /dev/sda1
mdadm: hot removed /dev/sda1 from /dev/md0
You have new mail in /var/spool/mail/root
# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md0 : active raid1 sdb1[1] sde1[2]
      524276 blocks super 1.0 [3/2] [_UU]

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.0
  Creation Time : Fri Dec 21 23:57:28 2012
     Raid Level : raid1
     Array Size : 524276 (512.07 MiB 536.86 MB)
  Used Dev Size : 524276 (512.07 MiB 536.86 MB)
   Raid Devices : 3
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Fri Jan 24 08:24:51 2014
          State : clean, degraded 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       17        1      active sync   /dev/sdb1
       2       8       65        2      active sync   /dev/sde1
一瞬 degraded になりますが(当然メールも飛びますが)、2台体制に戻します。
# mdadm --grow /dev/md0 --raid-devices=2
raid_disks for /dev/md0 set to 2
# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.0
  Creation Time : Fri Dec 21 23:57:28 2012
     Raid Level : raid1
     Array Size : 524276 (512.07 MiB 536.86 MB)
  Used Dev Size : 524276 (512.07 MiB 536.86 MB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Fri Jan 24 08:26:04 2014
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

    Number   Major   Minor   RaidDevice State
       1       8       17        0      active sync   /dev/sdb1
       2       8       65        1      active sync   /dev/sde1

これで問題なく移動が完了しました。/ 用のアレイについても同様に処理しました。

まあこの移行の間にディスクが故障するってことを警戒しなければ、3つにして1つ抜くなんてしないでいきなり1つ抜いて別のと sync すりゃいいんだと思うんですが、基本ディスクは壊れるものという信念で作業しておりますw

0 件のコメント:

コメントを投稿