2017-07-18 126 views
4

因此,我創建i3.large與NVME磁盤的每個節點上,這裏是我的過程:安裝在AWS EC2一個NVME盤

  1. lsblk - > nvme0n1(檢查是否nvme尚未安裝)
  2. 須藤對mkfs.ext4 -E nodiscard的/ dev/nvme0n1
  3. 須藤安裝鄰丟棄的/ dev/nvme0n1的/ mnt /我的數據
  4. 的/ dev/nvme0n1的/ mnt /我的數據EXT4默認值,nofail,丟棄0 2
  5. sudo mount -a(檢查一切是否正常)
  6. sudo reboot

因此,所有這些工作,我可以連接回實例。我有500個Go在我的新分區上。

但是在我停止和重新啓動EC2的機器,他們中的一些隨機成了人跡罕至(AWS僅警告1/2測試狀態檢查)

當我看它爲什麼是它告訴我無法訪問日誌,它的關於nvme分區(但是我做了sudo mount -a來檢查這是否正常,所以我不明白)

我沒有準確的AWS日誌,但我得到了一些行:

嘗試打開時超級塊中的壞幻數

那麼超級塊損壞了,你可以嘗試使用備用超級塊運行e2fsck的:

的/ dev/FD/9:2號線:普利茅斯:找不到命令

+1

停止並啓動一個實例將擦除臨時磁盤,將實例移動到新的主機硬件,併爲您提供新的空磁盤......所以臨時磁盤在停止/啓動後將始終爲空。當一個實例停止時,它在任何物理主機上都不存在 - 資源被釋放。你知道嗎? –

+0

不,我不是,所以你暗示我應該把我的EC2實例保持100%?還是有更好的選擇? – tricky

+0

'i3'實例類中的NVMe SSD是[實例存儲卷](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)的示例,也稱爲*短暫* [Disk |卷|駕駛 ]。它們實際上處於實例的內部並且速度非常快,但不是冗餘的,不適用於持久數據...因此,「短暫」。持久數據需要位於[Elastic Block Store(EBS)](https://aws.amazon.com/ebs/)卷或[Elastic File System(EFS)](https://aws.amazon.com)上/ efs /),這兩者都可以在實例停止/啓動,硬件故障和維護中生存。 –

回答

4

停止和啓動一個實例擦除臨時磁盤,將實例移動到新的主機硬件,併爲您提供新的空磁盤......所以臨時磁盤在停止/啓動後將始終爲空。當一個實例停止時,它在任何物理主機上都不存在 - 資源被釋放。

因此,如果您要停止並啓動實例,最好的方法不是將它們添加到/etc/fstab,而是在第一次啓動時對它們進行格式化,然後再安裝它們。測試文件系統是否已存在的一種方法是使用file實用程序和grep的輸出。如果grep找不到匹配項,則返回false。

i3實例類中的NVMe SSD是Instance Store Volume的示例,也稱爲臨時[Disk |卷|駕駛 ]。它們實際上處於實例的內部,速度非常快,但不是冗餘的,不適用於持久性數據...因此,「短暫」。持久性數據需要位於一個Elastic Block Store (EBS)卷或Elastic File System (EFS)上,兩者都可以在實例停止/啓動,硬件故障和維護期間存活。

目前尚不清楚爲什麼您的實例無法啓動,但nofail可能沒有達到您期望的體積時存在但沒有文件系統。我的印象是最終它應該成功。

但是,如果運行Ubuntu 16.04,則可能需要apt-get install linux-aws。 Ubuntu 14.04 NVMe支持不是很穩定,並且not recommended

這三種存儲解決方案各有其優缺點。

實例存儲是本地的,所以速度非常快......但它是短暫的。它可以在硬重啓和軟重啓的情況下存活,但不會停止/啓動週期。如果您的實例發生硬件故障或計劃退休,最終發生在所有硬件上,您必須停止並啓動實例,將其移至新硬件。保留和專用實例不會更改臨時磁盤行爲。

EBS是永久性的冗餘存儲,可以從一個實例中分離出來並移動到另一個實例(這種情況會在停止/啓動時自動發生)。 EBS支持時間點快照,並且這些快照在塊級別上是遞增的,所以您不需要支付存儲快照間沒有變化的數據......但通過一些出色的巫術,您也沒有跟蹤「完整」和「增量」快照 - 快照只是指向備份數據塊的邏輯容器,因此它們本質上都是「完整」快照,但只是按比例計算。刪除快照時,只有不再需要的塊才能從後端存儲系統(實際上透明地使用Amazon S3)中清除該快照和任何其他快照。

EBS卷可作爲SSD和旋轉磁盤磁盤卷提供,同樣需要在成本,性能和適當應用方面進行折衷。見EBS Volume Types。 EBS卷模仿普通硬盤,除了它們的容量可以根據需要手動增加(但不會減少),並且可以在不關閉系統的情況下從一種卷類型轉換爲另一種卷類型。 EBS可以即時完成所有數據遷移,同時降低性能但不會中斷。這是一個相對較新的創新。

EFS使用NFS,因此即使在一個區域內的可用區域內,也可以在任意多個實例上安裝EFS文件系統。 EFS中任何一個文件的大小限制都是52 TB,而您的實例將實際報告8 EB可用空間。實際的可用空間對於所有實際用途都是無限的,但EFS也是最昂貴的 - 如果您確實有一個月存儲了52個TiB文件,那麼這個存儲將花費超過15,000美元。我曾經儲存的最多的是2個星期大約20個TiB,花費我約5千美元,但如果你需要這個空間,空間就在那裏。它每小時收費一次,所以如果您將52 TiB文件存儲了幾個小時然後將其刪除,那麼您可能會支付50美元。 EFS中的「彈性」是指產能和價格。您不會預先在EFS上預留空間。您使用您需要的內容並刪除您不需要的內容,並且計費大小按小時計算。

沒有S3,關於存儲的討論就不完整。它不是一個文件系統,它是一個對象存儲。在EFS價格的1/10左右,S3的容量實際上是無限的,最大物件尺寸爲5TB。一些應用程序可以使用S3對象而不是文件來更好地設計。

無論是在您的數據中心還是在其他雲中,S3也可以被AWS以外的系統輕鬆使用。其他存儲技術旨在EC2內部使用,但有一個undocumented workaround允許EFS在外部或跨區域使用,代理和通道。

0

我剛剛有過類似的經歷!我的C5.xlarge實例檢測到EBS爲nvme1n1。我在fstab中添加了這一行。

/dev/nvme1n1 /data ext4 discard,defaults,nofail 0 2 

經過幾次重新啓動,它看起來工作。它持續運行數週。但是今天,我剛剛得到警報,表明該實例無法連接。我嘗試從AWS控制檯重新啓動它,沒有運氣看起來罪魁禍首是fstab。磁盤安裝失敗。

我提高了AWS支持的票價,還沒有反饋。我必須開始一個新實例來恢復我的服務。

在另一個測試實例中,我嘗試使用UUID(通過命令blkid獲​​取)而不是/ dev/nvme1n1。到目前爲止看起來還在工作......會看到它是否會導致任何問題。

如果有任何AWS支持反饋,我會在這裏更新。

================編輯與我修復===========

AWS不給我反饋,但我發現了這個問題。實際上,在fstab中,無論你裝載/ dev/nvme1n1還是UUID,都沒關係。我的問題是,我的ESB在文件系統中有一些錯誤。我重視它的實例,然後運行

fsck.ext4 /dev/nvme1n1 

後修復了幾個文件系統錯誤,把它放在fstab文件,重新啓動,沒問題了!

+0

你是否曾經能夠製作'/ dev/nvme1n1'的根目錄?或者您是否知道如何修改'fstab'文件,以便在從AWS控制檯作爲/ dev/sda1連接時,以前的'nvme1n1'現在顯示爲'nvme0n1'(即root)?將該卷作爲根卷附加後,我的實例不會啓動並在某個登錄屏幕上(從實例快照)結束。我也正在使用C5實例.. – Alex