コミュニティ

ubuntuでソフトウェアRAID1

この記事は最終更新日から3年以上が経過しています。

参考

状態の確認

$ sudo mdadm  -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug  7 17:54:10 2013
     Raid Level : raid1
     Array Size : 488253248 (465.63 GiB 499.97 GB)
  Used Dev Size : 488253248 (465.63 GiB 499.97 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Wed Aug  7 18:31:49 2013
          State : active, resyncing 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

  Resync Status : 15% complete

           Name : ubuntu:0  (local to host ubuntu)
           UUID : 8ea3f796:8fbde6a7:2e29e863:c9927e23
         Events : 14

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

リビルドの進行状況

$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb1[1] sda1[0]
      488253248 blocks super 1.2 [2/2] [UU]
      [===>.................]  resync = 16.4% (80454976/488253248) finish=217.9min speed=31185K/sec

unused devices: <none>

障害時の対応

$ sudo mdadm /dev/md0 --remove /dev/sda1
mdadm: hot remove failed for /dev/sda1: Device or resource busy

sda1を切り離す準備(障害通知を送る)

sdaを障害扱いにする。
$ sudo mdadm /dev/md0 --fail /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb1[1] sda1[0](F)
      488253248 blocks super 1.2 [2/1] [_U]

unused devices: <none>
  • (F)というマークがついた
  • [2/1] [_U]
faulty
$ sudo mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug  7 17:54:10 2013
     Raid Level : raid1
     Array Size : 488253248 (465.63 GiB 499.97 GB)
  Used Dev Size : 488253248 (465.63 GiB 499.97 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Wed Aug  7 18:42:22 2013
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           Name : ubuntu:0  (local to host ubuntu)
           UUID : 8ea3f796:8fbde6a7:2e29e863:c9927e23
         Events : 216

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       17        1      active sync   /dev/sdb1

       0       8        1        -      faulty spare   /dev/sda1

sda1を切り離す

$ sudo mdadm /dev/md0 --remove /dev/sda1
mdadm: hot removed /dev/sda1 from /dev/md0

交換のため、HDDの型番確認

smartctl
smartctl -a /dev/sda  | egrep "Device Model|Serial Number"
smartctl -a /dev/sdb  | egrep "Device Model|Serial Number"
これでもなんとなくわかる
$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST3500418AS      Rev: CC44
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: Hitachi HDS72105 Rev: JP2O
  Type:   Direct-Access                    ANSI  SCSI revision: 05
  • サーバーの電源を落とし、Seagate Barracuda 7200.12 を引っこ抜いて、新しいHDDに交換。

sda1を組み込む

$ sudo mdadm /dev/md0 --add /dev/sda1
mdadm: added /dev/sda1

同期の速度

同期の速度
$ cat /proc/sys/dev/raid/speed_limit_max
20000 #=20M
$ cat /proc/sys/dev/raid/speed_limit_min
1000 #=1M

echo 1000 > /proc/sys/dev/raid/speed_limit_max
echo 20000 > /proc/sys/dev/raid/speed_limit_max

grubをインストール

grub.png

$ sudo dpkg-reconfigure grub-pc
Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
Installation finished. No error reported.
Generating grub configuration file ...
Linux イメージを見つけました: /boot/vmlinuz-4.4.49-1-pve
Found initrd image: /boot/initrd.img-4.4.49-1-pve
Linux イメージを見つけました: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64

番外編 切り離したsda

sdaでOS起動できるか確認しました。

GRUBの画面が出るが、その後は画面真っ暗で起動しませんでした。

LiveCDで起動した環境からHDDマウントする方法

  • UbuntuのLiveCDの場合、レスキューモードからRAID設定ができ、そこからマウントやgrubの再インストールが出来、簡単です。

  • 他のLiveCDの場合

$ sudo mdadm --stop /dev/md127
mdadm: stopped /dev/md127
$ sudo mdadm --create /dev/md127 --level=1 --raid-devices=2 missing /dev/sda1
mdadm: /dev/sda1 appears to contain an ext2fs file system
    size=488384512K  mtime=Thu Jan  1 00:00:00 1970
mdadm: /dev/sda1 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Aug  7 08:54:10 2013
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md127 started.
$ sudo mount /dev/md127 /mnt

$ sudo umount /mnt
$ sudo mdadm --stop /dev/md127

RAIDの状態監視で、テストメールを送ってみる

$ sudo mdadm --monitor --test --oneshot --scan
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザーは見つかりませんでした