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