我有一个 Amazon EC2 实例,它使用实例存储作为其根设备。它没有附加任何 EBS 卷。它上面有一个数据库和一个正在运行的 Web 应用程序。如果我理解正确的话,这是一个糟糕的设置,因为如果重新启动,我将丢失实例上的所有数据。我想纠正这个错误。我想将正在运行的实例上的所有数据移动到新的 EBS 卷,并将该新卷设为根设备。我该怎么做?
谢谢!
答案1
基本上,您只需将正在运行的实例复制到 EBS 卷即可。执行此操作之前,请停止任何更改文件系统的服务(mysql 等...)
因此,创建一个卷,确保它与 s3 支持的实例位于同一可用区域,然后将其附加到该实例。
ec2-create-volume -s 10 -z us-east-1d
ec2-attach-volume -i i-instance_id -d /dev/sdh
将所有内容复制到 ebs 卷并验证。
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
然后,您可以创建该卷的快照,然后可以通过 ec2 注册将其作为 ami,您必须从命令行执行此操作,我认为您不能使用 Web 界面从快照注册 ami。
答案2
从高层次来看,您:
a) 创建 EBS 卷
b) 将 EBS 卷附加到正确的实例
c) 格式化并安装该卷,以便操作系统可以使用它。
前两个任务可以通过 AWS 管理控制台轻松完成。最后一个任务取决于您的操作系统,但对于 Linux,这里有一个链接可以帮助您:http://www.randomtools.net/how-to-mount-amazon-ec2-ebs-volume-on-an-instances-file-system-76.html