2012-01-03 8 views
5

Voglio sceneggiare lo striping dei due dispositivi di memorizzazione effimeri su istanze di MC1.large utilizzando mdadm (apparentemente gli amis non includono sempre le informazioni sul dispositivo, quindi posso t creare semplicemente un nuovo ami una volta avviato l'array).scripting mdadm quando un dispositivo componente può contenere già il file system ext2

Il problema è, la conservazione effimera sulle istanze EC2 generalmente viene fornita pre-con un file system, causando mdadm dire:

mdadm: /dev/sdb appears to contain an ext2fs file system 
    size=440366080K mtime=Mon Jan 2 20:32:06 2012 
mdadm: /dev/sdc appears to contain an ext2fs file system 
    size=440366080K mtime=Wed Dec 31 19:00:00 1969 
Continue creating array? 

e attendere per l'input. Sono sicuro che c'è un modo per rispondere automaticamente sì per questi tipi di prompt in mdadm per situazioni non interattive (come in fsck -y per esempio) ma non riesco a capirlo (non è --force). So che potrei semplicemente azzerare i dispositivi usando dd ma sembra una soluzione piuttosto maldestra per qualcosa che sono sicuro sia fatto facilmente.

risposta

7

Avete provato a eseguire il piping nell'output del comando "sì" standard di Unix/Linux?

yes | sudo mdadm ...options and arguments... 

utilizzare questo solo se si sa che si desidera rispondere "sì" a qualsiasi domanda mdadm potrebbe chiedere di voi.

Questo è l'approccio che ho usato nel mio mdadm campione comandi per impostare un sistema di file 40 TB utilizzando i volumi RAID-0 EBS: http://alestic.com/2009/06/ec2-ebs-raid

+1

Grazie. Non sono esattamente sicuro del motivo per cui questo è stato chiuso, dato che lo scripting bash è sicuramente una programmazione. Anche se si riferisce più all'amministrazione di sistema in generale. Ma grazie per la tua risposta. –

+6

Oppure passa semplicemente --run o -R a mdadm. – Hannes

+0

+1 al commento di Hannes. Secondo la pagina man: -R, --run Insistere sul fatto che mdadm esegue l'array, anche se alcuni componenti sembrano essere attivi in un altro array o file system. Normalmente mdadm chiederà conferma prima dello includendo tali componenti in un array. Questa opzione fa sì che la domanda sia sup- premuta. –

2

ho eseguito uno script all'avvio di istanze un m1.large e m1.xlarge che esegue la disc-stripping (RAID-0). Ecco una versione semplificata (ammesso che sia m1.large):

echo "Unmounting /mnt..." 
/bin/umount /mnt 

echo "Creating RAID0 volume..." 
/usr/bin/yes|/sbin/mdadm --create /dev/md0 --level=0 -c256 --raid-devices=2 /dev/sdb /dev/sdc 
echo 'DEVICE /dev/sdb /dev/sdc' > /etc/mdadm.conf 
/sbin/mdadm --detail --scan >> /etc/mdadm.conf 

echo "Creating file-system..." 
/sbin/blockdev --setra 65536 /dev/md0 
mkfs.xfs -f /dev/md0 

echo "Mounting the device /dev/md0 to /mnt..." 
/bin/mount -t xfs -o noatime /dev/md0 /mnt 

echo "Registering in fstab.." 
/bin/mv /etc/fstab /etc/fstab.orig 
/bin/sed '/\/mnt/ c /dev/md0 /mnt xfs defaults 0 0' </etc/fstab.orig> /etc/fstab 

per rispondere alla tua domanda, come già accennato, si può solo tubo yes