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)