Come posso creare una partizione di swap su Amazon EC2 con memoria temporanea?


8

Questo è l'output di df -k:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1            10317860   7059008   2734732  73% /
none                    847584         0    847584   0% /dev/shm
/dev/xvdb            153899044    192068 145889352   1% /mnt/ephemeral

Sto usando l'immagine di avvio di Centos EBS.

Ho letto varie domande a riguardo ma dicono di montare la nuova unità. Ma penso che l'unità sia già montata su /dev/xvdb. Ho ragione?

Posso semplicemente usare questo:

mkswap -f /dev/xvdb
#add in /etc/fstab
/dev/xvdb       swap    swap    defaults        0       0
swapon /dev/xvdb

Funzionerà?

Risposte:


8

/ dev / xvdb è effettivamente montato, è necessario controllare per vedere se qualcosa è memorizzato lì che si desidera conservare, anche se tenere cose importanti su un disco effimero è davvero una cattiva idea.

Dovrai smontare / dev / xvdb prima di fare qualsiasi cosa con esso.

Mentre puoi

mkswap /dev/xvdb 

farà uno spazio di scambio dell'intera unità effimera, che quasi sicuramente non ti serve. Inoltre, se si partiziona lo swap, è possibile utilizzare il resto dell'unità effimera per cose come la cartella tmp o la memorizzazione di sessioni (se l'host è un server web). Le pulsioni effimere sono molto veloci, ma purtroppo non molto persistenti.

Comunque, torniamo a scambiare le partizioni!

Meglio sfdisk come menziona Abhishek o creare manualmente una partizione di swap usando fdisk:

fdisk /dev/xvdb
Press N to create a new partition
P for primary
1 for the first partition
Press Enter to accept the first location
Enter +xG where x is the size of the swapspace you want. I typically use twice the amount of RAM, but this is not a hard and fast rule
Enter T to change the type
Enter 82 for Linux Swap
Enter W to write the changes
Enter q to quit

Ora puoi creare il tuo spazio di swap con

mkswap /dev/xvdb1

E quindi abilitarlo con

swapon /dev/xvdb1

Una parola di avvertimento, tuttavia, e mi scuso se sono "Insegnare alla nonna a succhiare le uova" Ma come suggerisce il nome, un impulso effimero è ... beh, effimero. Se chiudi l'istanza, dovrai ricreare la partizione di swap e abilitarla. Per questo motivo, non aggiungere lo spazio di swap appena creato al tuo fstab.

Il riavvio dovrebbe comunque andare bene.


1
Ho inserito quel codice per la creazione di swap rc.local. è ok. in modo che lo swap venga creato automaticamente ogni volta che inizia
Pandora

1
Non lo farei. Se l'host si riavvia, lo spazio di scambio sarà ancora lì, quindi non è necessario ricrearlo. Se l'host termina (si spegne) e viene riavviato, l'unità effimera che avevi prima non sarà più disponibile, quindi in entrambi i casi dovrai creare lo spazio di swap da zero.
GeoSword,

Il vantaggio di ricreare ogni volta è che si ha un ambiente stabile che non richiede un intervento manuale per riavviare. Solo un pensiero; non sono sicuro se ci vuole molto tempo per ricreare lo swap o meno (e in tal caso, forse potrebbe essere utilizzata una partizione più piccola).
Brian C,

3

Ho creato uno script che può essere utile per la creazione di swap su dispositivi effimeri. Usa lvm per creare il volume di scambio e crea anche un volume che potrebbe essere utile come / tmp. È possibile utilizzare cloud-init per attivarlo.

bootcmd:
 - [ cloud-init-per, once, mk-eph, /usr/local/sbin/mk-eph.sh]

# Filesystem setup
fs_setup:
 - label: 'tmp'
   filesystem: 'xfs'
   device: '/dev/ephemeral/tmp'
   partition: 'auto'

mounts:
 - [ /dev/ephemeral/tmp, /tmp, auto, "defaults,nobootwait" ]
 - [ ephemeral0, null ]

runcmd:
 - [ chmod, 1777, /tmp ]

2

Per prima cosa smonta il tuo deposito epermal e rimontalo come sotto

  umount /dev/xvdb # in case it is already mounted
  sfdisk /dev/xvdb << EOF
  ,1024,82
  ,
  ;
  ;
  EOF
  mkswap /dev/xvdb1 && swapon /dev/xvdb1
  mkfs.xfs -f /dev/xvdb2 && mount /dev/xvdb2 /mnt

come posso inserire le righe come, 1024. , ;;. Voglio dire, devo inserire riga per riga di copia tutto e quindi incollare. Inoltre quanto stai facendo l'unità di scambio. posso farlo 10 GB
Pandora

2
Ciò che questo codice fa dovrebbe essere documentato. Crea una partizione di scambio e XFS di dimensioni particolari e non è chiaro come questi comandi persisterebbero al riavvio.
Mark Stosberg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.