como descubro qual parte do meu armazenamento ec2 é efêmera

8

Esta pode ser uma pergunta boba, desculpe minha ignorância.

Eu tenho uma instância em execução assim:

O Dispositivo raiz: EBS significa que todo o meu sistema está no EBS?

Eu configurei o apache e um aplicativo perl aqui, todas as minhas configurações e arquivos não irão embora , certo?

Como sei o que está sendo executado no armazenamento efêmero e o que está sendo executado no EBS? Se eu clicar na instância no console de gerenciamento e olhar os detalhes na parte inferior, ele diz: EBS Optimized: false O que exatamente isso significa?

Aqui está o meu armazenamento:

[ec2-user@<MY_IP> ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  1.7G  6.2G  22% /
tmpfs                 298M     0  298M   0% /dev/shm

[ec2-user@<MY_IP> ~]$ mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
    
por gideon 20.01.2013 / 10:23

3 respostas

2

O dispositivo raiz é o seu '/'. Neste caso, é / dev / xvda1 e é a unidade EBS.

Dispositivos efêmeros são (como eu sei):

  • sdb (xvdb)
  • sdc (xvdc)
  • sdd (xvdd)
  • sde (xvde)

Você sempre pode verificar quais dispositivos são unidades EBS, usando a interface do usuário da AWS: EC2 - > Instâncias - > [escolha o seu] - > Dispositivos de bloco

    
por 20.01.2013 / 11:34
9

Dispositivos efêmeros e ebs podem receber praticamente qualquer nome de arquivo de dispositivo com letras, portanto, não confie apenas no nome do dispositivo. O nome do dispositivo é importante para determinar se é efêmero ou não, no entanto, como descreverei abaixo. Confiar em um nome de ponto de montagem com as palavras "efêmero" ou "ebs" também não é confiável.

Embora parte disso possa ser feito através da GUI do EC2, alguns comandos ainda precisariam ser executados no próprio servidor, então, aqui, eu apenas forneço um método 'all command-line'. Eu lhe darei exemplos de um AMI de m3.medium CentOS mínimo 6.5 store (ou seja, efêmero) apoiado.

1) Instale o utilitário wget com yum install -y wget

2) Executar wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ -O -

Neste exemplo, exemplo de armazenamento suportado pela AMI - a saída para o comando # 2 acima é:

ami ephemeral0

Para fins de comparação, abaixo está um exemplo de saída de um servidor CentOS apoiado pelo EBS apenas com volumes do EBS (sem drives efêmeros):

ami ebs2 ebs3

Eu retornarei à instância do EBS com volumes EBS mais tarde. Por enquanto, vamos continuar com o exemplo de AMI com backup de instância original que nos mostra uma unidade efêmera.

Para descobrir qual arquivo de dispositivo está mapeado para sua unidade efêmera, execute wget novamente, desta vez adicionando o nome da unidade efêmera conforme descoberto no item 2 acima à URL:

3) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0 -O -

e, neste exemplo, a saída é / foi:

sdb

Isto sublinha o meu ponto acima que você não pode assumir / dev / sdb através de / dev / sde são dispositivos ebs. pode ser verdade que / dev / xvdb através de / dev / xvde são ebs - mas meus sistemas sempre começam com / dev / xvde1 , então a existência dessas letras de dispositivo provavelmente depende no SO, região, AMI, etc, você está usando. Como um aparte, você pode executar # 3 contra nomes 'ebs', se houver (por exemplo, ebs2 ), e produzirá resultados semelhantes.

4) Em seguida, execute lsblk

Nesse caso, a saída é assim:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvde1 202:65 0 8G 0 disk / xvdf 202:80 0 4G 0 disk

Isso ressalta o meu ponto de vista acima de que você não pode confiar em um ponto de montagem para dizer se um dispositivo é efêmero ou não.

Você também notará que o mapeamento entre as letras de volume do dispositivo EC2 e as letras de mapeamento do sistema operacional não coincidem. Uma pequena boa notícia aqui é que as letras de unidade serão incrementadas na mesma ordem, mesmo que as letras não correspondam. Então, vamos pegar a letra da unidade dos nossos meta-dados de mapeamento de dispositivos. Como você viu acima, havia dois mapeamentos de dispositivos, um chamado ami e o outro chamado ephemeral0 . Nós já examinamos o ephemeral0, então vamos examinar o ami:

5) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ami -O -

A saída é / foi da seguinte forma:

sda1

Podemos concluir com confiança que a letra mais baixa no mapeamento de SO é a letra mais baixa do mapeamento de dispositivo de bloco EC2, e podemos incrementar a partir daí. Assim:

/dev/sda1 = /dev/xvde1 e /dev/sdb = /dev/xvdf

Por último, mas não menos importante - você notará que o mapeamento de dispositivo de bloco ami não se presta imediatamente para o fato de ser suportado pelo EBS ou pelo Backup de Instância. Temos mais um comando para executar.

6) wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -

Estou certo de que as EBSs suportadas pela AMI não têm um caminho de manifesto porque apenas os volumes de armazenamento de instâncias têm um manifesto (o manifesto lista os nomes e o caminho dos segmentos de pacotes da AMI no S3). Nos casos que eu verifiquei, o resultado de # 6 acima quando executado e instância store ami é algo semelhante a:

someamibucketname/someamidescription/someamidescription.manifest.xml

ao passo que, quando o # 6 é executado em um AMI protegido pelo EBS, você recebe:

(unknown)

    
por 22.01.2015 / 17:53
1

sudo lsblk deve dar algumas dicas. I.E.

[ec2-user@ec2-host ~]$ sudo lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdb    202:16   0   4G  0 disk /media/ephemeral0
    
por 03.10.2014 / 22:14