Amazon-Ec2

如何找出我的 ec2 儲存的哪一部分是臨時的

  • May 10, 2020

這可能是一個愚蠢的問題,請原諒我的無知。

我有一個這樣執行的實例: AWS 控制台

Root Device : EBS是否意味著我的整個系統都在 EBS 上?

我在這裡配置了 apache 和 perl 應用程序,我所有的配置和文件都**不會消失,**對吧?

我如何知道在臨時儲存上執行什麼以及在 EBS 上執行什麼?如果我點擊管理控制台中的實例並查看底部的詳細資訊,它會顯示:EBS Optimized: false這到底是什麼意思?

這是我的儲存的樣子:

[ec2-user@<MY_IP> ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  1.7G  6.2G  22% /
tmpfs                 298M     0  298M   0% /dev/shm

[ec2-user@<MY_IP> ~]$ mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

根設備是你的’/’。在這種情況下,它是 /dev/xvda1 並且是 EBS 驅動器。

臨時設備是(據我所知):

  • sdb(xvdb)
  • sdc(xvdc)
  • sdd (xvdd)
  • sde (xvde)

您始終可以使用 AWS UI 檢查哪些設備是 EBS 驅動器:EC2 -> Instances ->

$$ choose yours $$-> 塊設備

Ephemeral 和 ebs 設備幾乎可以採用任何字母設備文件名,因此不要僅僅依賴設備名。但是,設備名稱對於確定它是否是臨時的很重要,我將在下面概述。依賴帶有“臨時”或“ebs”字樣的掛載點名稱同樣不可靠。

雖然其中一些可以通過 EC2 GUI 完成,但仍然需要在伺服器本身上執行一些命令,所以在這裡,我只是給你一個“所有命令行”的方法。我將為您提供來自 m3.medium CentOS 最小 6.5 實例儲存(即臨時)支持的 AMI 的範例。

  1. 安裝 wget 實用程序yum install -y wget

  2. 執行wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ -O -

在此範例中,實例儲存支持 AMI - 上面命令 #2 的輸出是:

ami ephemeral0

出於比較目的,以下是僅具有 EBS 卷(無臨時驅動器)的 EBS 支持的 CentOS 伺服器的範例輸出:

ami ebs2 ebs3

稍後我將返回使用 EBS 卷的 EBS 支持的實例。現在,讓我們繼續使用原始實例儲存支持的 AMI 範例,該範例向我們展示了一個臨時驅動器。

要找出哪個設備文件映射到您的臨時驅動器,請再次執行 wget,這次將上面 #2 中發現的臨時驅動器的名稱添加到 url:

3)wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0 -O -

並且,在這個例子中,輸出是/是:

sdb

這強調了我上面的觀點,您不能假設 /dev/sdb 到 /dev/sde 是 ebs 設備。/dev/xvdb 到 /dev/xvde 可能是 ebs,但我的****系統總是以 /dev/xvde1 開頭,因此這些設備字母的存在可能取決於您正在使用的作業系統、區域、AMI 等。順便說一句,您可以針對“ebs”名稱執行#3,如果有的話(例如ebs2),將產生類似的輸出。

4)接下來,執行lsblk

在這種情況下,輸出如下所示:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvde1 202:65 0 8G 0 disk / xvdf 202:80 0 4G 0 disk

這從上面強調了我的觀點,即您不能依賴安裝點來告訴您設備是否是臨時的。

您還會注意到 EC2 設備卷字母和作業系統的映射字母之間的映射不匹配。這裡有一個好消息是驅動器號將以相同的順序遞增,即使字母本身不匹配。因此,讓我們從設備映射元數據中獲取“其他”驅動器號。正如您在上面看到的,有兩個設備映射,一個稱為ami,另一個稱為ephemeral0。我們已經檢查了 ephemeral0,所以讓我們檢查 ami:

5)wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ami -O -

輸出如下:

sda1

我們可以自信地得出結論,作業系統映射中的最低字母是 EC2 塊設備映射的最低字母,我們可以從那裡向上遞增。因此:

/dev/sda1 = /dev/xvde1/dev/sdb = /dev/xvdf

最後但並非最不重要的一點 - 您會注意到塊儲存設備映射ami不會立即適用於它是 EBS 支持還是 Instance Store 支持。我們還有一個命令要執行。

6)wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -

確信EBS 支持的 AMI 沒有清單路徑,因為只有實例儲存卷有清單(清單列出了 S3 中 AMI 的捆綁段的名稱和路徑)。在我檢查過的情況下,上面的#6 在執行實例儲存 ami 時的結果類似於:

someamibucketname/someamidescription/someamidescription.manifest.xml

然而,當 #6 針對 EBS 支持的 AMI 執行時,您會得到:

(unknown)

引用自:https://serverfault.com/questions/470783