今回は、OpsWorksのことをメモ代わりに書いていく。
OpsWorksでは、何も考えずStackを作成して、インスタンスを起動すると 追加したEBSボリュームは"XFS"でフォーマットを指定される。これをStackのCustom JSONを使うことで、任意のファイルシステムやRAIDを組むことができる。
Custom JSON to Modify the Stack Configuration JSON
DefaultでEBSボリュームを追加すると下記のように。
$df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 ext4 7.8G 1.9G 5.8G 25% /
devtmpfs devtmpfs 990M 60K 990M 1% /dev
tmpfs tmpfs 1003M 0 1003M 0% /dev/shm
/dev/xvdi xfs 10G 33M 10G 1% /root/volume
Custom JSON を指定
{"ebs": {"devices": {"/dev/xvdi": {"fstype": "ext4"}}}}
$df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 ext4 7.8G 1.9G 5.8G 25% /
devtmpfs devtmpfs 990M 60K 990M 1% /dev
tmpfs tmpfs 1003M 0 1003M 0% /dev/shm
/dev/xvdi ext4 10G 35M 10G 1% /root/volume
また、RAIDを組むには
LayersでEBSボリュームをRAID構成にする。
例) DISK ×4 で RAID 10 を指定。
Mount point : /root/volume , RAID level : 10 , # Disks : 4 , Size total (GiB) : 40 , per disk (GiB) : 20.00 , Volume Type : standard
Custom JSON を指定
{
"ebs": {"raids": {
"/dev/md0":{
"fstype":"ext4",
"mount_point":"/root/volume",
"raid_level":10,
"size":4,
"disks":["/dev/xvdi","/dev/xvdj","/dev/xvdk","/dev/xvdl"]
}
}
}
}
$df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 ext4 7.8G 1.9G 5.8G 25% /
devtmpfs devtmpfs 2.0G 84K 2.0G 1% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/mapper/lvm--raid--0-lvm0 ext4 40G 48M 38G 1% /root/volume
なお、現在のところOpsWorksではdevice point については /dev/xvdi,/dev/xvdj,/dev/xvdk ・・ /dev/xvdz と連番で自動的に振られるようだ。
そのため、たとえば最初から/dev/xvdzと指定するとそんなものないと怒られてエラーがでる。これは仕方ないのかな・・。