Назад | Перейти на главную страницу

Автоматически монтировать хранилище инстансов SSD на AWS EC2 в Ubuntu 16.04

Я использую Ubuntu 16.04 EC2 от AWS на c5d.2xlarge HW. Он поставляется с твердотельным накопителем емкостью 200 ГБ, который называется /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

Мои проблемы:

Моя цель - иметь возможность запустить экземпляр и уже установить диск, доступный для пользователей.

В SSD-диск на 200 ГБ то, что вы видите, называется Хранилище экземпляров (или эфемерное хранилище) и является уничтожен каждый раз, когда ты стоп экземпляр и создал новый каждый раз, когда ты Начало экземпляр.

Это означает две вещи:

  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 это должно работать: Как автоматически запустить сценарий оболочки при загрузке в systemd Linux

Надеюсь, это поможет :)

добавьте соответствующие строки в файл / etc / fstab в следующем формате

<device> <mount_point> <filesystem> <options> <dump-freq> <pass-num>

EX. если у вас есть раздел ext4 и вы хотите автоматически монтировать его в / home / ubuntu

/dev/nvme1n1 /home/ubuntu ext4 defaults,rw,noatime 0 0

после того, как файловая система была смонтирована, вы должны предоставить ей право собственности на доступ к ней, но сделайте это после ее монтирования

chown ubuntu /home/ubuntu -R

прокомментируйте этот ответ, если вам нужно больше объяснений