zoukankan      html  css  js  c++  java
  • 转换实例存储支持为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

  • 相关阅读:
    列表推导式和生成器表达式
    迭代器和生成器
    闭包和装饰器
    函数命名空间和作用域
    华为笔试题06
    华为笔试题05
    华为笔试题04
    华为笔试题03
    华为笔试题02
    华为笔试题01
  • 原文地址:https://www.cnblogs.com/jancco/p/5588180.html
Copyright © 2011-2022 走看看