Following up on my notes about running WordPressMU on EC2, I am still working on a clean implementation for setting up the disks on the EC2 m1.large instance the way I want. Once, I’ve made things work the way I want then I will go back and finish my other notes on running WordPressMU.
This is a collection of notes on what I think I want the disks to look like on first boot and reboot…
m1.large instances come with 850GB of disk space configured as:
- 850 GB instance storage (2 x 420 GB plus 10 GB root partition)
- /dev/sdb (/mnt on large and extra large instance types)
- /dev/sdc (on large and extra large instance types, not mounted)
I like the idea of creating a single large volume group on both physical disks, let’s call it “vgall” and then creating all of our logical volumes on that volume group:
- two database volumes (“lv_master”/”lv_slave”)
- one volume for back up (“lv_backup”)
- one volume for blog data (“lv_blogdata”)
- one swap volume (“lv_swap”)
Ok, so, we can’t create these logical volumes in the AMI setup, but we can create a script to run in rc.local that will set these up for us, and we can add these volumes to fstab to survive reboot.
So, our setupscript…
### BEGIN OF SCRIPT ####!/bin/sh # # Script to make EC2 /mnt into a LVM volume umount /mnt pvcreate /dev/sdb /dev/sdc vgcreate vg /dev/sdb /dev/sdc lvcreate -L150G -n lv_master vg mkfs -t ext3 /dev/vg/lv_master mkdir -p /data/mysql_master mount /dev/vg/lv_master /data/mysql_master lvcreate -L150G -n lv_slave vg mkfs -t ext3 /dev/vg/lv_slave mkdir -p /data/mysql_slave mount /dev/vg/lv_slave /data/mysql_slave lvcreate -L150G -n lv_backup vg mkfs -t ext3 /dev/vg/lv_backup mkdir -p /data/mysql_backup mount /dev/vg/lv_backup /data/mysql_backup lvcreate -L150G -n lv_blogdata vg mkfs -t ext3 /dev/vg/lv_blogdata mkdir -p /data/blog-data mount /dev/vg/lv_blogdata /data/blog-data lvcreate -L140G -n lv_swap vg mkswap /dev/vg/lv_swap swapon /dev/vg/lv_swap lvdisplay mkdir -p /data/mysql_master/data mkdir -p /data/mysql_slave/data chown -R mysql:mysql /data/mysql_master chown -R mysql:mysql /data/mysql_slave chown -R mysql:mysql /data/mysql_backup chown -R apache:apache /data/blog-data ### END OF SCRIPT ###
Our fstab:
# /etc/fstab # modified to include lvm and swap # original items /dev/sda / ext3 defaults 1 1 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 # our LVM volumes and such /dev/mapper/vg-lv_master /data/mysql_master ext3 defaults 0 0 /dev/mapper/vg-lv_slave /data/mysql_slave ext3 defaults 0 0 /dev/mapper/vg-lv_backup /data/mysql_backup ext3 defaults 0 0 /dev/mapper/vg-lv_blogdata /data/www ext3 defaults 0 0 /dev/mapper/vg-lv_swap / swap defaults 0 0
Some supporting notes:
- LVM can’t be set up and included in an AMI, so you need to write a script to set up the Volume groups and the logical volumes and run it in rc.local (Notes here)
- Notes on fstab – Take note of the comment on running swap on an LVM managed disk.
ffcwD4 comment3 ,
Comment by Yjupmwgy — May 8, 2009 @ 8:53 am