web-dev-qa-db-ja.com

Ubuntu 16.04のAWS EC2にSSDインスタンスストレージを自動的にマウントする

AWSのUbuntu 16.04 EC2をc5d.2xlarge HWで使用しています。 /dev/nvme1n1という200 GB SSDが付属しています。

このドライブを使用してマウントできます:

$ 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

私の問題:

  • インスタンスを停止/開始したときに自動的にマウントされないようです。修正/デバッグの方法がわかりません。

  • 手動でマウントすると、作成されたフォルダはルートに属し、ユーザーとしてアクセスできません。

私の目標は、インスタンスを起動し、ドライブをマウントしてユーザーがアクセスできるようにすることです。

6
John Corson

表示される200GB SSDディスクインスタンスストレージと呼ばれます(またはephemeralストレージ)および破棄されるたびにstopインスタンスおよび新しく作成されます毎回startインスタンス。

つまり、2つのことを意味します。

  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

次に、スクリプトが起動時に実行されることを確認する必要があります。これを行う方法は、ディストリビューションによって異なります。Ubuntu16.04の場合、これは機能します。 systemd Linuxの起動時にシェルスクリプトを自動的に実行する方法

それが役に立てば幸い:)

5
MLu