I've configured a new MySQL server on Amazon EC2 and decided to store my data on a EBS RAID0 Array. So far so good, and I've tested taking snapshots of those devices with ec2-consistent-snapshot, great.
Now, how do you rebuild the array on a new instance, from these snapshots, quickly?
When you use ec2-consistent-snapshot to create a snapshot of multiple volumes, you have no way to tell which volume was used for each device in the RAID. I maybe completely wrong, but since you're striping data across the volumes, it would stand to reason that you have to put each NEW volume in the same location on the RAID as the volume from which the snapshot was created.
An example:
- 3x200gb volumes in a RAID0 configuration.
- vol-1 is /dev/sdh device 0 in the RAID
- vol-2 is /dev/sdh1 device 1 in the RAID
- vol-3 is /dev/sdh2 device 2 in the RAID
you create an ec2 snapshot with: ec2-consistent-snapshot <options> vol-1 vol-2 vol-3
.
You now have 3 snapshots, and the only way to trace back which device they are is to look at the source volume id, then look at which device the source volume id is mounted as on the instance, and then check the details of the RAID configuration on the source volume's instance.
This is obviously incredibly manual...and not fast (which obviously makes it hard to bring up a new mysql instance quickly if the other one fails. not to mention, you'd have to record the device positions on the RAID at the time of snapshot, because if the source volume instance crashes, you have no way to get to the RAID configuration).
So, in conclusion:
- Am I missing something with how ec2-consistent-snapshot and a software RAID0 array work?
- If not, are there any known solutions / best practices around the problem of not knowing to which device/position in the RAID array a snapshot belongs?
I hope this was clear, and thanks for your help!