EC2 - Сохранение тома хранилища экземпляра с сохранением после остановки / запуска

У меня есть экземпляр EC2, для которого я хочу настроить том экземпляра подкачки.

Я могу сделать это относительно легко, запустив экземпляр с подключенным томом хранилища экземпляров, а затем выполнив следующие команды...

$ sudo mkswap /dev/xvdb
$ sudo swapon -p 1 /dev/xvdb

Затем я могу запустить следующую команду, чтобы убедиться, что она сработала...

$ sudo swapon -s
Filename                                Type            Size    Used    Priority
/dev/xvdb                               partition       335515644       0 1

Я могу сделать это после перезагрузки, добавив такую ​​строку в / etc / fstab

/dev/xvdb swap swap pri=1 0 0

Проблема в том, что, если я остановлю экземпляр, а затем запустлю его снова. Обмен исчезает. Я должен воссоздать его с помощью mkswap и swapon.

Как правильно настроить экземпляр для автоматического подключения тома экземпляра в качестве пространства подкачки?

Я попытался добавить следующее к пользовательским данным экземпляра...

#!/bin/sh

mkswap /dev/xvdb
swapon -p 1 /dev/xvdb

Однако это ничего не сделало. Мне все еще нужно заново создавать своп каждый раз, когда я запускаю экземпляр.

1 ответ

через пользовательские данные, выполняемые после остановки и запуска, как описано в этом документе AWS.

      Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
DISK=/dev/nvme1n1

mkswap $DISK
swapon -p 1 $DISK
--//

или через rc.local в системах с настроенной инициализацией добавьте в /etc/rc.local:

      DISK=/dev/xvdb
mkswap $DISK
swapon -p 1 $DISK
Другие вопросы по тегам