转换实例存储支持为EBS支持的AMI

转换实例存储支持为EBS支持的AMI

注:不能将实例存储支持的Windows AMI 转换为 EBS 支持的 AMI。并且,你只能转换你所拥有的 AMI。

1. 从一个EBS支持的AMI启动一个Amazon Linux 实例。

2. 上传用于捆绑实例存储支持的 AMI 的 X.509 证书的私钥 。(此私钥将确保只有你能访问你的AMI。)

3. 为你的 Key ID 和 Secret Key 设置环境变量:

[ec2-user ~]$ export AWS_ACCESS_KEY=your_access_key_id
[ec2-user ~]$ export AWS_SECRET_KEY=your_secret_access_key

4. 为你的新 AMI 准备 EBS 卷

a. 在相同的 AZ 创建一个空的 EBS(容量必须等于或大于要复制的实例存储根卷的大小)

[ec2-user ~]$ ec2-create-volume --size 10 --region us-west-2 --availability-zone us-west-2b
VOLUME    volume_id    10        us-west-2b    creating    2014-01-24T23:11:45+0000    standard

注意命令返回的 Volume ID。

b. 将新建的 EBS 卷附加到前述 EBS 支持的实例:

[ec2-user ~]$ ec2-attach-volume volume_id -i instance_id --device /dev/sdb --region us-west-2
ATTACHMENT    volume_id    instance_id    /dev/sdb    attaching    2014-01-24T23:15:34+0000

5. 将基于实例存储的AMI的捆绑下载到 EBS 支持的实例:

ec2-download-bundle -b my-s3-bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY -s $AWS_SECRET_KEY --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle

6. 从捆绑重建镜像文件:

ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

7. 拷贝镜像文件到新附加的 EBS 卷:

sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M

8. 探测所有解除捆绑的新分区的卷:

sudo partprobe /dev/sdb

9. 列出块储存设备以查找要挂载的设备名称

[ec2-user bundle]$ lsblk
NAME         MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda    202:0    0   8G  0 disk
└─/dev/sda1 202:1    0   8G  0 part /
/dev/sdb    202:80   0  10G  0 disk
└─/dev/sdb1 202:81   0  10G  0 part

在此示例中,要挂载的分区是 /dev/sdb1,但您的设备名称可能有所不同。如果您的卷未分区,则要挂载的设备类似于 /dev/sdb(没有设备分区尾部数字)。

10. 为新 Amazon EBS 卷创建安装点并安装该卷

[ec2-user bundle]$ sudo mkdir /mnt/ebs
[ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs

11. 使用常用文本编辑器(如 vim 或 nano)打开 EBS 卷上的 /etc/fstab 文件,并删除任何实例存储(短暂)卷条目。由于 Amazon EBS 卷安装在 /mnt/ebs 上,fstab 文件位于 /mnt/ebs/etc/fstab 中

[ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab
#
LABEL=/     /           ext4    defaults,noatime  1   1
tmpfs       /dev/shm    tmpfs   defaults        0   0
devpts      /dev/pts    devpts  gid=5,mode=620  0   0
sysfs       /sys        sysfs   defaults        0   0
proc        /proc       proc    defaults        0   0
/dev/sdb        /media/ephemeral0       auto    defaults,comment=cloudconfig    0       2

在上面的示例中,应删除最后一行。

12. 从实例中卸载和分离该卷

[ec2-user bundle]$ sudo umount /mnt/ebs
[ec2-user bundle]$ ec2-detach-volume volume_id --region us-west-2
ATTACHMENT    volume_id    instance_id    /dev/sdb    detaching    2014-01-24T23:15:34+0000

13. 按如下所示从新 Amazon EBS 卷创建 AMI

a. 创建新 Amazon EBS 卷的快照。

[ec2-user bundle]$ ec2-create-snapshot --region us-west-2 -d "your_snapshot_description" -O $AWS_ACCESS_KEY -W $AWS_SECRET_KEY volume_id
SNAPSHOT    snapshot_id    volume_id    pending    2014-01-25T00:18:48+000    1234567891011    10    your_snapshot_description

b. 检查快照是否完整。

[ec2-user bundle]$ ec2-describe-snapshots --region us-west-2 snapshot_id
SNAPSHOT    snapshot_id    volume_id    completed    2014-01-25T00:18:48+0000    100%    1234567891011    10    your_snapshot_description

c. 使用 ec2-describe-images 命令确定在原始 AMI 上使用的处理器架构、虚拟化类型和内核映像 (aki)。对于此步骤,您需要实例存储支持的原始 AMI 的 AMI ID。

[ec2-user bundle]$ ec2-describe-images --region us-west-2 ami-id
IMAGE    ami-8ef297be    amazon/amzn-ami-pv-2013.09.2.x86_64-s3    amazon    available    public    x86_64    machine    aki-fc8f11cc    instance-store    paravirtual    xen

在此示例中,架构是 x86_64,内核映像 ID 是 aki-fc8f11cc。在以下步骤中使用这些值。如果上面命令的输出还列出 ari ID,请记下该 ID。

d. 使用新 Amazon EBS 卷的快照 ID 和上一步中得到的值注册新 AMI。如果前一命令输出列出了 ari ID,请通过 --ramdisk ari_id 将其包括在后续命令中。

[ec2-user bundle]$ ec2-register --region us-west-2 -n your_new_ami_name -s snapshot_id --virtualization-type hvm -a x86_64 --kernel aki-fc8f11cc
IMAGE    new-ami-id

14. (可选)测试了您可以从新 AMI 启动实例之后,您可以删除为此过程创建的 Amazon EBS 卷。

$ ec2-delete-volume volume_id

参见:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html

时间: 2024-12-10 11:03:14

转换实例存储支持为EBS支持的AMI的相关文章

实例存储支持的AMI创建步骤

实例存储支持的AMI创建步骤 一.Windows AMI 1. 选择实例存储支持的AMI创建实例. 2. 远程登录实例进行定制化配置. 3. 通过Web控制台或命令行Bundle实例(并自动上传到S3). 控制台操作路径: 选择Instances  >  右键单击要Bundle的实例  >  在 Actions - Image 中选择“Bundle Instance (instance store AMI)” 命令行命令:bundle-instance (AWS CLI) 4. 注册已上传到S

Rancher 1.6发布:EBS支持、密文管理和CLI增强

Rancher v1.6现已全面发布!这是Rancher容器管理平台的最新版本.尽管我们一如既往地建议您使用Rancher最新的稳定版本进行生产或关键任务的部署,然而此刻,我们还是迫不及待地想与你分享Rancher v1.6中的新功能.在这个版本中,我们为用户在他们的存储和机密性方面建立了更大的控制权. 确认支持EBS  当初,在Rancher正式版发布之前,我们就已经首先实现了对EBS的支持.这一次,在v1.6中,我们删除了"实验性"标签. 除修复我们社区标记的一些小问题外,本版本还

使用JAXB实现JAVA对象和XML字符串的互相转换实例

测试类: package com.yanek.test; import java.util.ArrayList; import java.util.List; import com.yanek.test.JaxbUtil.CollectionWrapper; public class Test { /** * @param args */ public static void main(String[] args) { //创建java对象 Hotel hotel=new Hotel(); ho

Android学习路线(十八)支持不同设备——支持不同的屏幕

Android系统使用两个普通属性:尺寸和密度,来对设备屏幕进行分类.你需要先预测你的应用将会在什么样屏幕的设备上安装,包括屏幕尺寸和密度.这样的话,你就需要提供一些可选的资源类让你的应用在不同屏幕的设备上有最佳的展示. 有四种普遍的尺寸:small, normal, large, xlarge 还有四种普遍的密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi) 要为不同的屏幕声明不同的布局和图片,你需要让这些可选的资源放在不

Android学习路线(十七)支持不同设备——支持不同的语言

将UI中的字符串从应用代码中提取出来并存放在额外的文件中是一个好习惯.Android在每个项目中通过一个资源目录让这件事变得很简单. 如果你使用Android SDK工具创建了一个项目,这个工具会在你的项目的顶级目录下创建一个 res/ 目录.在这个目录下有很多子目录用来存放多种类型的资源.同样有一些默认的文件,例如res/values/strings.xml,用来存放字符串. 创建区域目录以及字符串文件 为了支持更多的语言,在res/目录下创建附加的values目录,文件名使用values加上

Android学习路线(十九)支持不同设备——支持不同(Android)平台版本

当最新的Android版本为你的应用提供着很棒的APIs时,你却要在更多的设备更新之前继续支持老的系统版本.这篇课程如何在继续支持低版本的系统的情况下使用新版本的高级API. Platform Versions 仪表板展示了最新的活跃设备上运行的Android系统版本的分布,基于设备访问Google Play商店的次数.通常情况下,支持90%的活跃设备同时使用最新版本作为target是一个好习惯. 贴士: 为了在不同的Android版本上提供最好的特性和功能,你应该在你的应用中使用Android

MVC4 5分页控件,支持Ajax AjaxOption支持

MVC4 5分页控件,支持Ajax AjaxOption支持 /// <summary> /// MVC4 5分页控件,支持Ajax AjaxOption支持 beta 1.0 /// 用法 /// @Ajax.Pages /// @Html.Pages /// </summary> public static class PagesExtension { public static MvcHtmlString Pages(this HtmlHelper htmlHelper, i

XML 与 DataSet/DataTable 互相转换实例(C#)——转载

// <summary>      /// XML形式的字符串.XML文江转换成DataSet.DataTable格式      /// </summary>      public class XmlToData      {          /**//// <summary>          /// 将Xml内容字符串转换成DataSet对象          /// </summary>          /// <param name=&q

TiOps,支持容器,支持多云安全远程运维,疫情期间免费开放,助力远程办公

TiOps,支持多云环境安全远程运维,疫情期间免费对外开放在疫情期间,为减少疾病传染可能性,许多公司的选择了在家远程办公.对于运维来说,既要远程运维,又要保证安全,还要在复杂的IT环境中保持高效,面临很大的挑战. 新钛云服TiOps专为多云环境安全远程运维而生,为了支持疫情期间运维更好的开展工作,新钛云服特别在疫情期间推出TiOps免费100台云主机180天授权! TiOps多云运维平台在新钛云服官网(www.tyun.cn)申请下载就可以全功能使用. 一.TiOps多云运维平台的主要功能 最新