Amazon-Web-Services

在 Ubuntu 16.04 的 AWS EC2 上自動掛載 SSD 實例儲存

  • December 21, 2020

我在 c5d.2xlarge 硬體上使用來自 AWS 的 Ubuntu 16.04 EC2。它帶有一個 200 GB 的 SSD,稱為/dev/nvme1n1.

我可以使用以下方法安裝此驅動器:

$ sudo mkfs.ext4 -E nodiscard /dev/nvme1n1

$ sudo mount -o discard /dev/nvme1n1 /home/ubuntu

為了嘗試讓它自動掛載,我還添加了/etc/fstab

/dev/nvme1n1 /home/ubuntu/spda ext4 defaults,users,nofail,discard 0 2

我的問題:

  • 當我停止/啟動實例時,它似乎不會自動掛載。我不確定如何修復/調試。
  • 當我手動安裝它時,創建的文件夾屬於根目錄,我無法以使用者身份訪問它。

我的目標是能夠啟動實例並且已經安裝了驅動器並可供使用者訪問。

您看到的200GB SSD 磁碟稱為**Instance storage(或ephemeral storage),每次停止實例時都會銷毀,每次啟動實例時都會創建新**的。

這意味著兩件事:

  1. 不要在停止/啟動時儲存您想要保留的任何*寶貴數據- 當您停止它時,它會全部消失。*這些實例儲存磁碟非常適合記憶體、臨時目錄、交換空間等。任何可以在失去時輕鬆重新創建的東西。
  2. 每次啟動實例時*,磁碟都是空白的*- 您必須先對其進行格式化(例如mkfs.ext4),然後才能使用它。下次您停止/啟動時,它將再次為空白,您必須mkfs再次使用它。

這就是為什麼僅僅添加它/etc/fstab是不夠的——在引導腳本嘗試掛載它時,磁碟不會被格式化。

要解決您的問題,您將必須創建一個自定義腳本,例如/usr/local/sbin/mount-instance-store.sh大致包含以下內容:

mkfs.ext4 -E nodiscard -m0 /dev/nvme1n1
mount -o discard /dev/nvme1n1 /home/ubuntu/spda
chown ubuntu:ubuntu /home/ubuntu/spda

然後,您必須確保腳本在啟動時執行。對於不同的發行版,這樣做的方法是不同的,對於 Ubuntu 16.04,這應該可以工作:How to automatically execute shell script at startup boot on systemd Linux

希望有幫助:)

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