Como usar o armazenamento "Volumes de armazenamento de instância" no Amazon EC2?


18

De acordo com a AWS, eu tenho 850 GB de armazenamento no servidor Medium EC2. Mas, quando crio uma Amazon Linux AMI, não consigo usar os 850 GB fornecidos.

Ao criá-lo, mostra na Configuração do dispositivo de armazenamento nos volumes de armazenamento de instância que seu dispositivo estará localizado em / dev / sdb, mas quando inicio a VM, localizo / dev / sda1.

Você pode me ajudar a montar esse armazenamento? Obrigado

Além disso, quando a Amazon afirma que o armazenamento da instância não é seguro para uso a longo prazo e deve preferir o EBS, qual é o sentido desses 850 GB?

obrigado


Que tipo de instância específico você está tentando executar? c1.medium? m1.medium? algo mais?
Eric Hammond

11
Aqui estão dois excelentes recursos para aprender sobre o armazenamento de instância no EC2: docs.amazonwebservices.com/AWSEC2/latest/UserGuide/… e docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…
Eric Hammond

Respostas:


10

O uso do armazenamento local da instância que não é persistente quando uma instância é interrompida é bastante simples: é um pedaço muito grande de espaço útil para coisas transitórias. Eles são o alvo perfeito para montagem /tmpe são extremamente úteis se o servidor manipular arquivos muito grandes de forma transitória.

Por exemplo, se você estivesse criando um grupo de instâncias para fazer a conversão de voz em texto de arquivos de vídeo enviados, o armazenamento local da instância seria exatamente o que você deseja colocar nos arquivos em processo. Pode demorar algumas horas enquanto o arquivo é processado, mas, uma vez concluído, ele pode ser excluído e outro ocupado. Você não precisa do EBS para isso, e é muito mais barato executar esse tipo de armazenamento fora da instância local do que no EBS.

O armazenamento local da instância deve ser usado como espaço de trabalho para executar o processamento, não para armazenamento de longo prazo. Se sua carga de trabalho não usa espaço de trabalho para nada, ou o que precisa é tão pequeno que não seja significativo, então não é uma boa opção para você.


16
O armazenamento efêmero ou a loja de instâncias persistem durante as reinicializações de uma instância! Ele não persiste durante uma parada / partida, nem uma finalização, nem algumas falhas de hardware da instância. Aqui está um artigo que escrevi sobre a diferença entre reboot e stop / start: alestic.com/2011/09/ec2-reboot-stop-start
Eric Hammond

27

Se ainda não estiver montado em eg / mnt e se ainda não tiver um sistema de arquivos criado, faça:

  1. Verifique o nome do dispositivo

    sudo fdisk -l

  2. Crie o diretório para onde você deseja montar o volume

    sudo mkdir / mnt

  3. Crie um sistema de arquivos no seu volume (certifique-se de escolher o volume correto, pois isso cria um novo sistema de arquivos no volume)

    sudo mkfs.ext4 / dev / xvdj

  4. Volume de montagem

    sudo mount -t ext4 / dev / xvdj / mnt

  5. Se você deseja preservar a montagem após, por exemplo, uma reinicialização, abra / etc / fstab e adicione a montagem a ela

    eco "/ dev / xvdj / mnt noatime automático 0 0" | sudo tee -a / etc / fstab

  6. Verifique se não há nada errado com o fstab montando todos

    montar -a


5
Dependendo do tipo de instância, primeiro você precisa anexar os volumes de armazenamento da instância à instância usando as opções de mapeamento de dispositivo de bloco. Se você não fizer isso, você não pode mesmo ver os dispositivos em / dev
Eric Hammond

@ Comentário de EricHammond era realmente a resposta a minha busca - eu não vê-los em qualquer lugar - mesmo emfdisk -l
Peter V. Mørch

Se você não vir o dispositivo, tente usar lsblk.
volker238

Essas instruções montam o volume para mim, mas tentar gravar um novo arquivo no volume fornece "acesso negado". Não consigo entender o que há de errado com as permissões. Alguma ideia?
22718 MikeB

lsblk -fé a melhor maneira de encontrar volumes de disco - todos os volumes montados serão mostrados com o caminho de montagem e mostrarão os rótulos dos volumes (recomendado usar UUIDs ou rótulos ao montar sistemas de arquivos no Linux).
RichVel 19/02

1

Criei um script para o Ubuntu que pode ser executado na inicialização e após um ciclo de start / stop, já que no mundo da AWS essas são duas coisas muito diferentes. Quando você reinicia, você ainda tem o mesmo disco efêmero e tudo o que precisa fazer é montar (/ etc / fstab deve lidar com isso automaticamente), mas quando uma instância é interrompida e reiniciada, você obtém um novo disco efêmero não formatado que precisa de mais amor para obter pronto para uso. Contanto que você tenha a entrada / etc / fstab correta, você poderá executá-la a qualquer momento e ela montará / formatará o dispositivo conforme necessário. será necessário um parâmetro do ponto de montagem, mas se não for fornecido, ele assumirá / mnt. Você pode chamar o script mount_ephemeral.sh e executar como root em um serviço de inicialização.

#!/bin/sh
set -e
mountPoint=${1:-'/mnt'}
rawDevice=$(grep "\s$mountPoint\s" /etc/fstab |cut -f1)
#echo checking $mountPoint on $rawDevice
[ "$rawDevice" = "" ] && { echo -e "$mountPoint not in /etc/fstab"; exit 1; }
mountpoint -q $mountPoint
[  "$?" = "0" ] && { echo -e "$mountPoint mounted"; exit; }
hasFS=$(blkid |grep $rawDevice)
[ ! "$hasFS" = "" ] && { echo -e "$mountPoint has FS:$hasFS"; mount $mountPoint; exit; }
echo initializing $mountPoint on $rawDevice
mkdir -p $mountPoint
mkfs.ext4 $rawDevice
mount $mountPoint
chmod 777 $mountPoint
exit 0

Prefiro não usar /mntcomo ponto de montagem para volumes, porque a convenção /mnt/fooé usada para cada volume. Se você precisar montar outro volume em algum momento, por exemplo /mnt/bar, isso significa que o /mntvolume desmontado não pode ser feito enquanto /mnt/barestiver montado. A grepé perigoso se você estiver usando /mnte há pontos de montagem, tais como /mnt/foo, uma vez que /mntpoderia coincidir com várias linhas - de modo que o poder de script em alguns casos, montar ou mkfs o disco errado.
RichVel 19/02

Não encontrará outras montagens semelhantes, pois precisa corresponder exatamente. O problema é que o espaço em branco usado no seu fstab precisa corresponder ao valor citado no grep. Eu atualizei para usar, \bmas YMMV. O /mnté apenas um padrão, você pode mudar a si mesmo e é apenas um exemplo. Além disso, você pode passar um parâmetro para o script e ele usará esse ponto de montagem. Vou adicionar no set -epara que qualquer falha finalize o script inteiro
DanJGer 20/02

correção: alterada de \bpara\s
DanJGer 20/02

0

A montagem da loja da instância também depende da imagem:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html

Quando você inicia uma instância, o mapeamento de dispositivo de bloco padrão é fornecido pela AMI especificada. Se você precisar de volumes adicionais de armazenamento da instância, adicione-os à instância ao iniciá-lo. Observe que você também pode omitir os dispositivos especificados no mapeamento de dispositivos do bloco AMI.

Algumas imagens usarão todos os recursos disponíveis.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.