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
私の問題:
インスタンスを停止/開始したときに自動的にマウントされないようです。修正/デバッグの方法がわかりません。
手動でマウントすると、作成されたフォルダはルートに属し、ユーザーとしてアクセスできません。
私の目標は、インスタンスを起動し、ドライブをマウントしてユーザーがアクセスできるようにすることです。
表示される200GB SSDディスクはインスタンスストレージと呼ばれます(またはephemeralストレージ)および破棄されるたびにstopインスタンスおよび新しく作成されます毎回startインスタンス。
つまり、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の起動時にシェルスクリプトを自動的に実行する方法
それが役に立てば幸い:)