Use EBS on EC2 Centos 5.2 and snapshot with cron to S3
Posted by Edmund Haselwanter on Friday, March 06, 2009
Create the volume and assign it to your instance
Attach it to your Centos 5.2 instance
yum install xfsprogs
according to Thread: Debian Lenny and XFS causes kernel panic: Suggested Workaround
mkfs.xfs -l version=1 /dev/sdh
insert into /etc/fstab
/dev/sdh /vol/shared xfs noatime 0 0
mount the volume
mount /vol/shared
Setup ec2-extra-tools
copy over your EC2_CERT and EC2_PRIVATE_KEY
setup /etc/profile.d/ec2.sh
1 export EC2_HOME=/home/ec2
2 export EC2_CERT=/root/.ec2/cert-xxx.pem
3 export EC2_PRIVATE_KEY=/root/.ec2/pk-xxx.pem
4 export AWS_ACCOUNT_NUMBER=
5 export AWS_ACCESS_KEY_ID=
6 export AWS_SECRET_ACCESS_KEY=
7 export PATH=$PATH:/home/ec2/bin/
install http://github.com/cmer/ec2-extra-tools/tree/master
add the binaries to e.g. /home/ec2/bin/
test the setup with:
ec2-xfs-snapshot /dev/sdh
sample output:
<pre class="sunburst"><span class="line-numbers"> 1 </span> [root<span class="Variable"><span class="Variable">@</span>domU</span><span class="Keyword">-</span><span class="Variable">XX</span><span class="Keyword">-</span><span class="Variable">XX</span><span class="Keyword">-</span><span class="Variable">XX</span><span class="Keyword">-</span><span class="Variable">XX</span><span class="Keyword">-</span><span class="Variable">XX</span><span class="Keyword">-</span><span class="Variable">XX</span><span class="Constant"><span class="Constant">:</span>~</span><span class="StringRegexp"><span class="StringRegexp">/</span></span><span class="StringRegexp">] ec2-xfs-snapshot </span><span class="StringRegexp"><span class="StringRegexp">/</span></span>dev<span class="Keyword">/</span>sdh
<span class="line-numbers"> 2 </span> device: <span class="StringRegexp"><span class="StringRegexp">/</span></span><span class="StringRegexp">dev</span><span class="StringRegexp"><span class="StringRegexp">/s</span></span>dh
<span class="line-numbers"> 3 </span> mount point: <span class="StringRegexp"><span class="StringRegexp">/</span></span><span class="StringRegexp">vol</span><span class="StringRegexp"><span class="StringRegexp">/s</span></span>hared
<span class="line-numbers"> 4 </span> ec2<span class="Keyword">-</span>volume<span class="Keyword">-</span>id: vol<span class="Keyword">-</span>67890a
<span class="line-numbers"> 5 </span>
<span class="line-numbers"> 6 </span> <span class="Variable">Freezing</span> <span class="Variable">XFS</span> volume...
<span class="line-numbers"> 7 </span>
<span class="line-numbers"> 8 </span> <span class="Variable">Creating</span> snapshot...
<span class="line-numbers"> 9 </span> <span class="Variable">SNAPSHOT</span> snap<span class="Keyword">-</span>b99bh1d8 vol<span class="Keyword">-</span>67890a pending <span class="Constant">2009</span><span class="Keyword">-</span><span class="Constant">03</span><span class="Keyword">-</span>06T14:<span class="Constant">56</span>:<span class="Constant">17</span><span class="Keyword">+</span><span class="Constant">0000</span>
<span class="line-numbers"> 10 </span> <span class="Variable">Unfreezing</span> <span class="Variable">XFS</span> volume...
<span class="line-numbers"> 11 </span>
<span class="line-numbers"> 12 </span> <span class="Variable">Done</span>!
</pre>
Setup cron
crontab -e
SHELL=/bin/bash
PATH=/usr/bin:/bin:/usr/sbin
5 20 * * * source /etc/profile.d/java.sh; source /etc/profile.d/ec2.sh ; \
ec2-xfs-snapshot /dev/sdh >> /var/log/ebs_snapshots 2>> /var/log/ebs_snapshots
you need both: java.sh and ec2.sh for the amazon tools.

