読者です 読者をやめる 読者になる 読者になる

aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

EC2 : CC2にインスタンスディスク(ローカルディスク、エフェメラルディスク)を使ってRAID0

CC2では、インスタンスディスクが3360GiB( 4 x 840GiB)が使えるが、EBSバックドなHVM AMIをマネジメントコンソールから起動した場合、インスタンスディスク(ローカルディスク、エフェメラルディスク)は無効になっている。計算中の中間ファイルを書き込んだりする際は、高速なストレージがあるとうれしいので、これを使う方法をメモ。(注:stopするとインスタンスディスクのデータはすべて消えるのでそのつもりで)

Amazon EC2 API ToolsもしくはSDK経由で起動する際に指定することになる。

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html#instance-block-device-mapping

AMI's default block device mapping

Windowsのコマンドプロンプトからだとこんな感じ。通常と違うのは、 -bオプションでデバイスマッピングを指定していることと、CC2特有の placement groupsを指定しているあたり。

C:\aws\ec2\bin>ec2-run-instances ami-e965ba80 --region us-east-1 --key id_rsa --group sg-a4866fcc --placement-group test --instance-type cc2.8xlarge -b "/dev/sdb=ephemeral0" - b "/dev/sdc=ephemeral1" -b "/dev/sdd=ephemeral2" "/dev/sdf=ephemeral3"

そうすると、Amazon Linuxだとこのように見える。

$ ls -l /dev/sd*
lrwxrwxrwx 1 root root 4 May  2 09:19 /dev/sda -> xvda
lrwxrwxrwx 1 root root 5 May  2 09:19 /dev/sda1 -> xvda1
lrwxrwxrwx 1 root root 4 May  2 09:19 /dev/sdb -> xvdb
lrwxrwxrwx 1 root root 4 May  2 09:19 /dev/sdc -> xvdc
lrwxrwxrwx 1 root root 4 May  2 09:19 /dev/sdd -> xvdd
lrwxrwxrwx 1 root root 4 May  2 09:19 /dev/sdf -> xvdf

目的達成。このままterminateするのもアレなので、RAID0なxfsでも組んでみる。

RAID0作成

$ sudo su -
# /sbin/mdadm --create /dev/md0 --level=0 -c256 --raid-devices=4 /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvdg
# echo 'DEVICE /dev/xvdb /dev/xvdc /dev/xvdd /dev/svdg' > /etc/mdadm.conf
mdadm --detail --scan  >> /etc/mdadm.conf 

XFSでファイルシステム作成

# yum install xfsprogs-devel
# blockdev --setra 65536 /dev/md0
# mkfs.xfs -f /dev/md0
# mkdir -p /mnt/md0
# mount -t xfs -o noatime /dev/md0 /mnt/md0

fioベンチマーク!のまえに、fioインストール

# wget http://pkgs.repoforge.org/fio/fio-2.0.7-1.el6.rf.x86_64.rpm
# rpm -i fio-2.0.7-1.el6.rf.x86_64.rpm

fioでベンチマーク。かけ方はこのあたり。4kランダムリードを16多重で5回計測。する場合。

# vi randread4k16.fio
# cat randread4k16.fio
[randread4k]
readwrite=randread
blocksize=4k
size=100m
directory=/mnt/md0
direct=1
loops=5
numjobs=16
# fio -group_reporting randread4k16.fio

なお、インスタンスディスク単体、RAID0、EBS単体、EBS RAID0のベンチ結果のブログなどはこちら。

EC2 Ephemeral Disks vs EBS Volumes in RAID | three stacks of high society

Disk IO and throughput benchmarks on Amazon’s EC2 – stu.mp

Boot, ephemeral & EBS storage performance on amazon cc1.4xlarge instance types : BioTeam