He leído bastantes publicaciones sobre esto, pero todavía no estoy seguro sobre el enfoque correcto, suponiendo:
Tengo una máquina virtual Ubuntu 14.04 LTS predeterminada creada y ejecutada en Azure, que no viene con un intercambio
Me gustaría crear un intercambio utilizando el almacenamiento de VM existente, en lugar de crear un nuevo disco con almacenamiento adicional
Publicaciones que he leído:
- https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-how-to-inject-custom-data/
- https://wiki.ubuntu.com/AzureSwapPartitions
- https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1374166
Se discutieron muchas soluciones, pero parece que no puedo encontrar una que persista durante los reinicios del servidor (probablemente debido a que cloud-init tiene su propia idea sobre la partición de imágenes), ¿alguien puede aconsejarme sobre las mejores prácticas?
fuente
ResourceDisk.Format
,ResourceDisk.EnableSwap
yResourceDisk.SwapSizeMB
. PERO el paso importante es hacer un manualsudo service walinuxagent restart
para crear el archivo de intercambio, ya que simplemente reiniciar el servidor no funciona para mí.swapon -s
aún se muestra una lista vacía de archivos de intercambio.La respuesta de Bruno es un excelente punto de partida, pero solo funcionó después de reiniciar y le di otro minuto después de arrancar.
a. Habilitar intercambio
/etc/waagent.conf
, líneas relevantes:si. Haga lo siguiente como root, que incluye reiniciar su máquina:
C. Después de arrancar, todavía llevará algún tiempo antes de que el intercambio esté realmente habilitado. Puedes consultarlo con
swapon -s
.fuente
Creo que la manera correcta de hacer esto para que tanto cloud-init como waagent jueguen 'bien' juntos (de los documentos de Cloud-Init Azure ) es mantener estos valores establecidos en este
Intenté cambiar el punto de montaje pero no parecía funcionar correctamente, por lo que los documentos probablemente sean precisos sobre los valores
Y luego puede personalizar las opciones de intercambio como desee
Un reinicio básico recoge el nuevo intercambio bien
fuente
También necesitaba esto (en realidad, 16.04 en lugar de 14.04, pero mi respuesta se aplicará a ambos, creo).
Pero cuando vi que tenía que leer ensayos tan largos que usted señala, me iba a rendir ... Pero de repente recordé un artículo muy sencillo en el blog de DigitalOcean:
Cómo agregar intercambio en Ubuntu 14.04
Es tan simple que incluso he escrito un script para él (al menos en su mayor parte, aún no la configuración de intercambio y otras cosas avanzadas):
Para que lo anterior funcione,
sudo apt install fsharp
primero debe hacerlo (al menos Ubuntu 16.04 tiene fsharp en los repositorios, no estoy seguro acerca de 14.04).También necesitas este
InfraTools.fs
archivo:La parte que hace que mi respuesta funcione a través de reinicios del servidor es la escritura en el archivo / etc / fstab.
Lo bueno de esta solución es que debería funcionar en Azure, DigitalOcean, YouNameIt, ...
¡Disfrutar!
fuente
Ahora hay instrucciones en la documentación oficial de Azure: https://support.microsoft.com/en-us/help/4010058/how-to-add-a-swap-file-in-linux-azure-virtual-machines
fuente