LoginSignup
6
6

More than 5 years have passed since last update.

EC2でインスタンスストアをRAID0で組む手順/起動スクリプト化

Last updated at Posted at 2015-10-06

サンプルとしてインスタンスストア×2で組むパターンを書く

前提

CentOS6系、ファイルシステムはとりあえずext4で設定。

備考

AmazonLinuxでやる場合は、インスタンスストアの自動マウント機能を無効化する必要があるので注意。
http://askubuntu.com/questions/405442/how-can-i-disable-cloud-init

インスタンスストアを追加する手順

公式ドキュメント参照
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/add-instance-store-volumes.html

EC2インスタンスをLaunchする時にアタッチする。
既存EC2インスタンスに後から追加したい場合はAMIから再作成してその時にアタッチする。

RAID0で組む

単純に組むだけの手順

yum install mdadm
yes Y | mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/xvd[bc]
mkfs.ext4 /dev/md0
mkdir -p /media/ephemeral0
mount -o rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered /dev/md0 /media/ephemeral0

ただし、この方法で組んだ場合, インスタンスストアのデータが失われるタイミングでRAID0とマウントが外れてしまう。

起動スクリプト化する

データが失われるのはともかく、RAIDとマウントが外れるのはサーバとしては困る。
OS起動と共にRAIDを組み、OSシャットダウンと共にRAIDを破棄する起動スクリプトを作ることで解決する。

/etc/init.d/ephemeral-raid0

#!/bin/sh
# chkconfig: 23456 99 01
# description: Creates the Ephemeral RAID0 volume by using the instance store of EC2.

prog=ephemeral-raid0
lockfile=/var/lock/subsys/$prog

start() {
  [ -x /sbin/mdadm ] || exit 1
  echo -n $"mounting $prog: "
  yes Y | mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/xvd[bc]
  mkfs.ext4 /dev/md0
  mkdir -p /media/ephemeral0
  mount -o rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered /dev/md0 /media/ephemeral0
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch $lockfile
  return $RETVAL
}

stop() {
  echo -n $"unmounting $prog: "
  [ ! -f /dev/md0 ] || exit 1
  umount /dev/md0
  mdadm --stop /dev/md0
  mdadm --zero-superblock /dev/xvd[bc]

  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f $lockfile
  return $RETVAL
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    cat /proc/mdstat
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart}"
    exit 2
esac

設定

$ chkconfig --add ephemeral-raid0
$ chkconfig ephemeral-raid0 on

使う

service ephemeral-raid0 start
service ephemeral-raid0 status
6
6
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
6
6