【问题标题】:AWS EC2 Instance store is disappeared after rebootingAWS EC2 实例存储在重启后消失
【发布时间】:2021-01-03 08:58:28
【问题描述】:

我从我的另一个 AMI 启动了 EC2 实例 (i3en.xlarge),然后挂载了 2 个 EBS 卷,其中一个是 根设备。 意外重启我的 EC2 实例后,它的 Instance Store 已DISAPPEARED。我找不到它 lsblk 或 `df -Th.

我了解实例存储中的数据会在意外重启时丢失。然而,它完全消失了。

ubuntu@ip-10-0-0-10:~$ lsblk -p
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
/dev/loop0         7:0    0 28.1M  1 loop /snap/amazon-ssm-agent/2012
/dev/loop1         7:1    0   18M  1 loop /snap/amazon-ssm-agent/1566
/dev/loop2         7:2    0 97.1M  1 loop /snap/core/9993
/dev/loop3         7:3    0 96.6M  1 loop /snap/core/9804
/dev/nvme0n1     259:0    0  500G  0 disk /data-2
/dev/nvme1n1     259:1    0  500G  0 disk 
└─/dev/nvme1n1p1 259:2    0  500G  0 part /


ubuntu@ip-10-0-0-10:~$ df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs   16G     0   16G   0% /dev
tmpfs          tmpfs     3.1G  896K  3.1G   1% /run
/dev/nvme1n1p1 ext4      485G  358G  128G  74% /
tmpfs          tmpfs      16G   36K   16G   1% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs      16G     0   16G   0% /sys/fs/cgroup
/dev/loop0     squashfs   29M   29M     0 100% /snap/amazon-ssm-agent/2012
/dev/loop1     squashfs   18M   18M     0 100% /snap/amazon-ssm-agent/1566
/dev/loop2     squashfs   98M   98M     0 100% /snap/core/9993
/dev/loop3     squashfs   97M   97M     0 100% /snap/core/9804
/dev/nvme0n1   ext4      492G   62G  405G  14% /data-2
tmpfs          tmpfs     3.1G     0  3.1G   0% /run/user/111
tmpfs          tmpfs     3.1G     0  3.1G   0% /run/user/1001
tmpfs          tmpfs     3.1G     0  3.1G   0% /run/user/1000

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    我刚刚尝试使用 i3en 实例重现您的情况。

    我按照Add instance store volumes to your EC2 instance - Amazon Elastic Compute Cloud 的指示安装了一个实例存储卷:

    sudo mkfs -t xfs /dev/nvme1n1
    sudo mkdir /data
    sudo mount /dev/nvme1n1 /data
    

    然后我将一个文件放在/data 目录中并重新启动。

    你猜怎么着……它也消失了!

    但后来我注意到该卷没有安装。

    我再次运行了这个命令:

    sudo mount /dev/nvme1n1 /data
    

    卷又出现了。

    如果您希望在重新启动后保留已安装的卷,请使用 fstab。

    见:Making an Amazon EBS volume available for use on Linux - Amazon Elastic Compute Cloud

    【讨论】:

    • 当实例存储未挂载时,我认为它应该列在lsblkdocs.aws.amazon.com/AWSEC2/latest/UserGuide/… 下使用 lsblk 查看在启动时映射但未格式化和挂载的所有卷。跨度>
    • 我想再次挂载实例存储,但无法列出它以获取其 UUID/名称。实例存储为2.5TB,您可以看到lsblk下没有2.5TB磁盘。
    【解决方案2】:

    (没有足够的声誉发表评论)

    请注意,如果您只是重新启动(如实际问题中所示),John 的答案将起作用。 这是因为临时磁盘将保持格式化但不再被挂载。

    但是,如果您停止并启动实例,那么您将获得新硬件并且临时磁盘将不再被格式化。 您需要在用户数据中添加一个启动脚本,以便在每次启动时格式化/挂载磁盘等。

    见https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html 但是您需要在每次开始时运行,而不仅仅是在 Launch 上。 所以也见https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/

    您希望添加类似这样的内容作为用户数据:

    Content-Type: multipart/mixed; boundary="//"
    MIME-Version: 1.0
    
    --//
    Content-Type: text/cloud-config; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="cloud-config.txt"
    
    #cloud-config
    cloud_final_modules:
    - [scripts-user, always]
    
    --//
    Content-Type: text/x-shellscript; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="userdata.txt"
    
    #!/bin/bash
    mkfs -t xfs /dev/nvme1n1
    mount /dev/nvme1n1 /tmp
    chmod 777 /tmp
    
    --//--
    

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 2020-03-03
      • 2013-12-18
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多