如何找出我的 ec2 儲存的哪一部分是臨時的
這可能是一個愚蠢的問題,請原諒我的無知。
我有一個這樣執行的實例:
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 的範例。
安裝 wget 實用程序
yum install -y wget
執行
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)