LoginSignup
2
2

More than 5 years have passed since last update.

r3.largeでswap領域としてエフェメラルディスクをマウントする

Last updated at Posted at 2016-06-22

◆実施したいこと
・r3.largeで新規にAmazon Linux(ami-6154bb00)を構築
・EC2を再起動しようが停止しようがインスタンスストアを
 恒久的にswap領域として利用したい

◆手順
①インスタンスストアボリュームのデバイス名を確認
 # lsblk -p

 例えば、以下のようなコマンド出力結果の場合、
 # lsblk -p
 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 /dev/xvda 202:0 0 8G 0 disk
 └─/dev/xvda1 202:1 0 8G 0 part /
 /dev/xvdb 202:16 0 30G 0 disk

 上記のケースでは /dev/xvdb が対象となる。
 MOUNTPOINT が / のボリュームではない方を対象にすること。

②インスタンスストアボリュームのアンマウント
 # umount /dev/(①で確認したボリューム)

③デバイスに Linux スワップ領域をセットアップ
 # mkswap /dev/(①で確認したボリューム)

④新しいスワップ空間を有効
 # swapon /dev/(①で確認したボリューム)

⑤新しいスワップ空間が使用されていることを確認
 # swapon -s

⑥システム起動毎にスワップ空間を自動的に有効化
 # vi /etc/fstab
 (下記内容を追加)
 /dev/(①で確認したボリューム) none swap sw 0 0
 →既に/dev/xvdb/media/ephemeral0autodefaults,nofail,comment=cloudconfig02
  という記載がある場合、その項目を削除して置き換える。

  (公式ドキュメント抜粋)
  ======
  /etc/fstab ファイルに /dev/xvdb(または /dev/sdb)用の項目がある場合は、
  それを以下の行に合わせて変更。
  このデバイス用の項目がない場合は、/etc/fstab ファイルに
  以下の行を追加(システムのスワップデバイス名を使用)。
  http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html
  ======

⑦/etc/cloud/cloud.cfg の設定を修正
 # vi /etc/cloud/cloud.cfg

 <修正前(例)>
 ---
 mounts:
 - [ ephemeral0, /media/ephemeral0 ]
 - [ swap, none, swap, sw, "0", "0" ]
 ---
 <修正後(例)>
 ---
 mounts:
  - [ ephemeral0, swap, swap ,"defaults", "0", "0"]
 ---
 ※注意:mounts: の次の行の先頭のハイフンの前に半角スペースが必要。

⑧swapの有効化のため、/etc/rc.local の編集
 # vi /etc/rc.local

 末尾に以下を追加(---は回答上の区切り文字のため、実ファイルには反映しないこと)
 ---
 mkswap /dev/xvdb
 swapon -a
 ---
 ※ /dev/xvdb は手順①で確認したボリュームを記載すること。

⑨インスタンスを再起動して、swap が設定されているか確認
 # lsblk -p
 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 /dev/xvda 202:0 0 8G 0 disk
 mq/dev/xvda1 202:1 0 8G 0 part /
 /dev/xvdb 202:16 0 4G 0 disk

2
2
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
2
2