Como criar uma partição de troca 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 /dev/xvdb. Estou correcto?

Posso apenas usar isso:

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

será que vai dar certo?

Pandora
fonte

Respostas:

8

O / dev / xvdb está realmente montado, você precisa verificar se há algo armazenado lá que deseja manter, embora manter coisas importantes em uma unidade efêmera seja uma péssima idéia.

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

Enquanto você pode

mkswap /dev/xvdb 

isso criará um espaço de troca de toda a unidade efêmera, da qual 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.

Enfim, de volta para trocar partições!

Melhor usar o sfdisk como Abhishek menciona ou criar manualmente uma partição de swap usando o 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 depois ative-o com

swapon /dev/xvdb1

Uma palavra de aviso, no entanto, e peço desculpas Se estou "ensinando a avó a chupar ovos" Mas, como o nome indica, um impulso efêmero é ... bem, efêmero. Se você desligar sua instância, precisará recriar sua partição de troca e ativá-la. Por esse motivo, não adicione seu espaço de troca recém-criado ao seu fstab.

Reiniciar deve estar bem no entanto.

GeoSword
fonte
1
Eu coloquei esse código de criação de swap rc.local. está tudo bem? de modo que troca recebe automaticamente toda vez que o criou começa
Pandora
1
Eu não. Se o host reiniciar, o espaço de troca ainda estará lá, portanto, não há necessidade de recriá-lo. Se o host terminar (desligar) e for reiniciado, a unidade efêmera que você tinha antes não estará mais disponível; portanto, de qualquer forma, você precisará criar o espaço de troca do zero.
GeoSword
A vantagem de recriar sempre é que você tem um ambiente estável que não requer intervenção manual para reiniciar. Apenas um pensamento; não tenho certeza se leva muito tempo para recriar a troca ou não (e se isso acontecer, talvez uma partição menor possa ser usada).
Brian C
3

Eu criei um script que pode ser útil para criar trocas em dispositivos efêmeros. Ele usa o lvm para criar o volume de troca e também cria um volume que pode ser útil como / tmp. Você pode usar o cloud-init para acioná-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 ]
Taavi Tuisk
fonte
2

Primeiro desmonte seu armazenamento 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
Abhishek Anand Amralkar
fonte
Como faço para inserir as linhas como 1024. , ;;. Quero dizer, eu preciso inserir linha por linha de copiar tudo e colar. Além disso, quanto você está fazendo a unidade de troca. i pode torná-lo 10GB
Pandora
2
O que esse código faz deve ser documentado. Faz uma partição swap e XFS de tamanhos específicos, e não está claro como esses comandos persistiriam durante as reinicializações.
Mark Stosberg