LoginSignup
8
7

More than 3 years have passed since last update.

RAIDがなかなか覚えられなかったので軽く実践までしてみた

Posted at

RAIDとは

コンピューターの5大機能のうちの記憶の一部を司る、
外部記憶装置の「ディスク」ですが、
主記憶装置にあたるメモリと比較するとアクセス速度が非常に遅いです。

そのため、ディスクへのアクセスを早くすること、
また冗長化し、対障害性を高めることを目的とした技術のことを言います。

いくつかのレベルがありますが、
RAID0はディスクアクセスを高速化するための技術(ストライピング)であり、
残りの1〜6は対障害性を高めるためのミラーリングを中心とした技術です。

レベル 概要
0 データをブロック単位で複数のディスクに分散して記録(ストライピング)する。1台が故障すると全体の故障となるので、信頼性が低下する
1 同じデータを複数のディスクに書き込む(ミラーリング)。信頼性は上がるが、台数を増やしても1台分の容量となるため、効率は悪くなる。
3 データをバイト単位でストライピングし、1台をエラー訂正用のパリティ情報記録用として固定する。パリティ情報からデータを復旧することができる
5 RAID3からパリティ情報に関してもブロック単位に分散して記録する

AWSにおけるRAIDの設定

AWSの外部ストレージ

EC2における外部ストレージとしてEBSというものがあります。
EC2に対してアタッチ、デタッチが柔軟に可能です。
今回はこのEBSをEC2にアタッチしたうえで、RAID構成を作成してまいります。
なお、EC2はすぐに削除するテスト用として作成したので、
セキュリティグループなど含め全てデフォルトで作成。

デフォルトで作成しているEC2では1つだけEBSがアタッチされてます。

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /

まずはボリュームの作成とアタッチ

EBSはボリュームと表記されています。
そのため、ボリュームの作成から行います。
EC2の左側のタブのうち、ボリュームを選択します。

そこからボリュームの作成を選択。
スクリーンショット 2019-09-01 18.43.36.png

すると以下のような画面になります。
なお、ストレージサイズと利用期間での課金となるので、
1GBなどにしておきましょう。

スクリーンショット 2019-09-01 18.43.47.png

作成を完了します。
スクリーンショット 2019-09-01 18.43.54.png

すると左側のボリュームタブないでボリュームがひとつ増えているのがわかります。
まだアタッチされていないボリュームはavailableになってます。

スクリーンショット 2019-09-01 18.44.14.png

今回はミラーリングとストライピングを行いたいので、
合計4つ作成してきます。
作成し終わったらアタッチします。
スクリーンショット 2019-09-01 18.48.08.png

RAIDの設定

以降はインスタンス内で作業を行っていきます。
すべてをアタッチし終わると、
インスタンス内のストレージが増えているのがわかります。
増えた4つのストレージを2台ずつミラーリングし、2グループを作成。
それぞれのグループを対象にストライピングします。


$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0   1G  0 disk 
xvdg    202:96   0   1G  0 disk 
xvdh    202:112  0   1G  0 disk 
xvdi    202:128  0   1G  0 disk 

まず、4つのうち2つをRAID1でミラーリングします。
以下コマンドのうちlevelのオプション部分がRAIDのレベルの指定です。


$ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/xvdg /dev/xvdi
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/md0 started.

もう1組も同様にミラーリング


$ sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/xvdh /dev/xvdf
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/md1 started.

md0とmd1というグループが作成できました。


$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
xvda    202:0    0    8G  0 disk  
└─xvda1 202:1    0    8G  0 part  /
xvdf    202:80   0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
xvdg    202:96   0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 
xvdh    202:112  0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
xvdi    202:128  0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 

最後にストレイピングを行います。


$ sudo mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/md1 /dev/md0
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.

md2が作成できました。


$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
xvda    202:0    0    8G  0 disk  
└─xvda1 202:1    0    8G  0 part  /
xvdf    202:80   0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0 
xvdg    202:96   0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0 
xvdh    202:112  0    1G  0 disk  
└─md1     9:1    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0 
xvdi    202:128  0    1G  0 disk  
└─md0     9:0    0 1023M  0 raid1 
  └─md2   9:2    0    2G  0 raid0

アクセス速度なども暇があれば見てみたいと思います。

参考

【AWS】EBSでRAID1+0をやってみたメモ ~後編:EBSのアタッチからRAID構築~

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7