Как настроить раздел подкачки, используя cloud-init? - PullRequest
1 голос
/ 06 февраля 2020

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

Мы хотим добавить своп к этому экземпляру и правильно настроили подходящий диск, однако мы не можем выяснить, как заставить cloudinit инициализировать диски подкачки, как это делает cloudinit со всеми остальными дисками на машине.

Наша конфигурация наших дисков, включая swap, выглядит следующим образом:

fs_setup:
  - label: vidi
    device: /dev/xvde
    filesystem: ext4
  - label: swap
    device: /dev/xvdg
    filesystem: swap
mounts:
- [ /dev/xvde, /var/lib/vidispine, ext4, defaults, 0, 0 ]
- [ /dev/xvdg, none, swap, sw, 0, 0 ]

Это приводит к / etc / fstab следующим образом:

LABEL=cloudimg-rootfs   /    ext4   defaults,discard    0 0
/dev/xvde   /var/lib/vidispine  ext4    defaults,comment=cloudconfig    0   0
/dev/xvdg   none    swap    sw,comment=cloudconfig  0   0

Диск / dev / xvde правильно отформатирован при запуске. Диск / dev / xvdg игнорируется.

Какие дополнительные шаги требуются для того, чтобы cloudinit "mkswap" и "swapon" на диске / dev / xvdg?

1 Ответ

0 голосов
/ 08 февраля 2020

В ответ на «Какие дополнительные шаги требуются для cloudinit для« mkswap »и« swapon »диска / dev / xvdg?», Короткий ответ «ничто».

Более длинный ответ таков: вам нужно запустить версию cloud-init со следующим исправлением ошибки:

https://github.com/canonical/cloud-init/pull/143

, которое исправляет следующую ошибку при запуске mkswap:

mkswap: invalid block count argument: ''

В частности, Ubuntu Bioni c образы 20200131 и новее работают должным образом.

В старых версиях cloudinit для загрузки, описанной выше, требуется следующее, добавленное в сценарии runcmd при загрузке:

- mkswap /dev/xvdg
- swapon -a
...