Como posso criar uma partição swap no Amazon EC2 com armazenamento efêmero?

8

Esta é a saída de 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

Estou usando a imagem de inicialização do Centos EBS.

Eu li várias perguntas sobre isso, mas eles dizem para montar a nova unidade. Mas acho que essa unidade já está montada em /dev/xvdb . Estou correto?

Posso simplesmente usar isso:

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

Funcionará?

    
por Pandora 09.07.2013 / 06:27

3 respostas

8

/ dev / xvdb está de fato montado, você precisa checar se alguma coisa está armazenada lá que você deseja manter, embora manter coisas importantes em um disco efêmero seja uma idéia MUITO ruim.

Você precisará desmontar / dev / xvdb antes de fazer qualquer coisa com ele.

Enquanto você pode

mkswap /dev/xvdb 

ele fará um espaço de troca de todo o disco efêmero, o que você quase certamente não precisa. Além disso, se você particionar sua troca, poderá usar o restante da unidade efêmera para coisas como a pasta tmp ou armazenar sessões (se o seu host for um servidor da Web). Os impulsos efémeros são muito rápidos, mas infelizmente não são muito persistentes.

De qualquer forma, volte para as partições de swap!

Melhor para sfdisk como Abhishek menciona, ou manualmente criar uma partição 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

Agora você pode criar seu espaço de troca com

mkswap /dev/xvdb1

E, em seguida, ative-o com

swapon /dev/xvdb1

Uma palavra de aviso no entanto, e peço desculpas Se Im "Ensinar vovó a chupar ovos" Mas como o nome indica, uma unidade efêmera é ... bem, efêmera. Se alguma vez você desligar sua instância, você terá que recriar sua partição swap e ativá-la. Por esse motivo, não adicione seu espaço de troca recém-criado ao seu fstab.

No entanto, a reinicialização deve ser boa.

    
por 09.07.2013 / 11:09
3

Eu criei um script que pode ser útil para criar a troca de dispositivos efêmeros. Ele usa lvm para criar o volume de troca e também cria um volume que pode ser útil como / tmp. Você poderia usar o cloud-init para ativá-lo.

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 ]
    
por 21.06.2016 / 12:28
2

Primeiro, desmonte seu armazenamento de epermal e remonte como abaixo

  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
    
por 09.07.2013 / 06:50