我有一个使用实例存储作为其根设备的Amazon EC2实例。 它没有附加EBS卷。 它有一个数据库和一个正在运行的Web应用程序。 如果我理解正确,这是一个糟糕的设置,因为如果要重启,我将丢失实例上的所有数据。 我想纠正这个错误。 我想将正在运行的实例上的所有数据移动到新的EBS卷,并将该新卷作为根设备。 我怎么去做这个?
谢谢!
基本上你只需要将正在运行的实例复制到EBS卷。 在这之前停止任何改变文件系统上的东西(mysql等)
因此,创build一个卷,确保它与s3支持的实例处于相同的可用区域,并将其附加到该实例。
ec2-create-volume -s 10 -z us-east-1d ec2-attach-volume -i i-instance_id -d /dev/sdh
将所有内容复制到ebs卷并validation。
dd bs=65536 if=/dev/sda1 of=/dev/sdh fsck /dev/sdh
然后安装驱动器
mkdir -p 000 /ebs mount /dev/sdh /ebs
确保/ ebs / etc / fstab不会尝试安装任何不在那里的东西,然后卸载驱动器
umount /dev/sdh
然后你可以创build该卷的快照,然后你可以ec2注册为ami,你必须从命令行这样做,我不认为你可以使用web界面从快照注册ami。
在高层次上,你:
a)创build一个EBS卷
b)将EBS卷连接到正确的实例
c)格式化并挂载卷,以使操作系统可以使用它。
前两项可以通过AWSpipe理控制台轻松完成。 最后一项任务取决于你的操作系统,但对于Linux这里是一个链接,将有助于: http : //www.randomtools.net/how-to-mount-amazon-ec2-ebs-volume-on-an-instances-file-系统-76.html