Come utilizzare lo spazio di archiviazione "Instance Store Volumes" in Amazon EC2?


18

Secondo AWS, ho ottenuto 850 GB di spazio di archiviazione con il server Medium EC2. Ma quando creo un'AMI Amazon Linux, non riesco a utilizzare gli 850 GB forniti.

Durante la creazione mostra in Configurazione dispositivo di archiviazione in Volumi archivio istanza che il suo dispositivo si troverà in / dev / sdb, ma quando avvio la VM, trovo semplicemente / dev / sda1.

Potete per favore aiutarmi a montare questa memoria? Grazie

Inoltre, quando Amazon afferma che l'archiviazione di istanze non è sicura per un uso a lungo termine e dovrebbe preferire l'uso di EBS, qual è il punto di quegli 850 GB?

Grazie


Quale tipo di istanza specifico stai cercando di eseguire? c1.medium? m1.medium? qualcos'altro?
Eric Hammond,

1
Ecco due grandi risorse per conoscere l'archiviazione di istanze su EC2: docs.amazonwebservices.com/AWSEC2/latest/UserGuide/… e docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…
Eric Hammond

Risposte:


10

L'uso della memoria locale dell'istanza che non è persistente quando viene arrestata un'istanza è piuttosto semplice: è una porzione di spazio molto grande utile per le cose transitorie. Sono la destinazione perfetta per il montaggio /tmped è estremamente utile se il tuo server gestisce temporaneamente file di grandi dimensioni.

Ad esempio, se si stesse creando un gruppo di istanze per eseguire la traduzione da voce a testo dei file video caricati, l'archiviazione locale delle istanze sarebbe la cosa su cui si desidera mettere i file in-process. Potrebbe essere lì per alcune ore mentre il file viene elaborato, ma una volta fatto può essere eliminato e recuperato un altro. Non hai bisogno di EBS per questo, ed è molto più economico eseguire quel tipo di archiviazione fuori dall'istanza locale anziché da EBS.

L'archiviazione locale dell'istanza deve essere utilizzata come spazio di lavoro virtuale per l'esecuzione dell'elaborazione, non per l'archiviazione a lungo termine. Se il tuo carico di lavoro non utilizza lo spazio per i graffi per nulla, o ciò di cui ha bisogno è così piccolo da non essere significativo, allora non è adatto a te.


16
La memoria temporanea o il negozio di istanze DOES persistono durante i riavvii di un'istanza! Non persiste in uno stop / start, né in una terminazione, né in alcuni guasti hardware dell'istanza. Ecco un articolo che ho scritto sulla differenza tra riavvio e stop / start: alestic.com/2011/09/ec2-reboot-stop-start
Eric Hammond

27

Se non è già montato in eg / mnt e se non ha già creato un filesystem, allora:

  1. Controlla il nome del dispositivo

    sudo fdisk -l

  2. Crea la directory in cui desideri montare il volume

    sudo mkdir / mnt

  3. Crea filesystem sul tuo volume (assicurati di scegliere il volume corretto perché questo crea un nuovo file system sul volume)

    sudo mkfs.ext4 / dev / xvdj

  4. Montare il volume

    sudo mount -t ext4 / dev / xvdj / mnt

  5. Se si desidera preservare il mount dopo, ad esempio, un riavvio, aprire / etc / fstab e aggiungere il mount ad esso

    echo "/ dev / xvdj / mnt auto noatime 0 0" | sudo tee -a / etc / fstab

  6. Assicurati che non ci sia nulla di sbagliato in Fstab montando tutto

    mount -a


5
A seconda del tipo di istanza, è innanzitutto necessario collegare i volumi dell'archivio di istanze all'istanza utilizzando le opzioni di mappatura del dispositivo a blocchi. Se non lo fai, potresti anche non vedere i dispositivi sotto / dev
Eric Hammond

Il commento di EricHammond è stato davvero la risposta alla mia ricerca - non li ho visti da nessuna parte - nemmeno infdisk -l
Peter V. Mørch,

Se non vedi il dispositivo prova a utilizzare lsblk.
volker238,

Queste istruzioni montano il volume per me, ma il tentativo di scrivere un nuovo file nel volume dà "accesso negato". Non riesco a capire cosa c'è che non va nelle autorizzazioni. Qualche idea?
MikeB,

lsblk -fè il modo migliore per trovare i volumi del disco: tutti i volumi montati verranno mostrati con il percorso di montaggio e mostra le etichette per i volumi (si consiglia di utilizzare UUID o etichette durante il montaggio di filesystem su Linux).
RichVel

1

Ho creato uno script per Ubuntu che può essere eseguito all'avvio e dopo un ciclo di avvio / arresto poiché nel mondo di AWS sono due cose molto diverse. Quando riavvii hai ancora lo stesso disco effimero e tutto ciò che devi fare è montare (/ etc / fstab dovrebbe gestirlo automaticamente) ma quando un'istanza viene arrestata e quindi riavviata ottieni un nuovo disco effimero non formattato che ha bisogno di più amore per ottenere pronto per l'uso. Finché hai la voce / etc / fstab corretta puoi eseguirla in qualsiasi momento e monterà / formatterà il dispositivo secondo necessità. richiederà un parametro del punto di montaggio ma se non fornito assumerà / mnt È possibile chiamare lo script mount_ephemeral.sh ed eseguire come root in un servizio di avvio.

#!/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

Preferisco non utilizzare /mntcome punto di montaggio per i volumi, perché la convenzione è quella /mnt/fooutilizzata per ciascun volume. Se ad un certo punto devi montare un altro volume /mnt/bar, ciò significherebbe che /mntnon è possibile eseguire il volume di smontaggio mentre /mnt/barè montato. Il grepè pericoloso se si sta utilizzando /mnte non ci sono punti di montaggio come ad esempio /mnt/foo, dal momento che /mntpotrebbe corrispondere diverse linee - così la potenza di script in alcuni casi montare o mkfs il disco sbagliato.
RichVel

Non troverà altri supporti simili poiché deve corrispondere esattamente. Il problema è che lo spazio bianco usato nel tuo fstab deve corrispondere al valore citato nel grep. Ho aggiornato per usare \bma YMMV. Il /mntè solo un default si può cambiare se stessi e è solo un esempio. Inoltre, puoi passare un parametro allo script e utilizzerà invece quel punto di montaggio. Ho intenzione di aggiungere in set -emodo che qualsiasi errore interrompa l'intero script
DanJGer

correzione: modificata da \ba\s
DanJGer il

0

Il montaggio del negozio di istanze dipende anche dall'immagine:

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

Quando si avvia un'istanza, la mappatura del dispositivo a blocchi predefinita viene fornita dall'AMI specificato. Se sono necessari volumi di archivio di istanze aggiuntivi, è necessario aggiungerli all'istanza all'avvio. Si noti che è anche possibile omettere i dispositivi specificati nella mappatura dei dispositivi a blocchi AMI.

Alcune immagini useranno tutte le risorse disponibili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.