2012-01-03 6 views
5

Quiero crear un script de las rayas de los dos dispositivos de almacenamiento efímeros en m1.large instancias EC2 usando mdadm (aparentemente no siempre incluyo información del dispositivo, entonces puedo ' solo crea un nuevo ami una vez que se inicia la matriz).scripting mdadm cuando un dispositivo componente puede contener el sistema de archivos ext2 ya

El problema es, el almacenamiento efímero en instancias de EC2 generalmente viene formateada con un sistema de archivos, haciendo que mdadm para decir:

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? 

y esperar a la entrada. Estoy seguro de que hay una manera de responder automáticamente sí para este tipo de indicaciones en mdadm para situaciones no interactivas (como en fsck, por ejemplo), pero parece que no puedo resolverlo (no es --force). Sé que podría simplemente poner a cero los dispositivos usando dd, pero eso parece una solución bastante sledgehammer-ey para algo que estoy seguro es fácil de hacer.

Respuesta

7

¿Ha probado conectar en la salida del comando estándar "Sí" de Unix/Linux?

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

Sólo utilice esta opción si sabe que desea contestar "sí" a cualquier pregunta mdadm podría preguntar usted.

Este es el enfoque que utilicé en mi mdadm muestra los comandos para configurar un sistema de archivos 40 TB utilizando volúmenes RAID-0 EBS: http://alestic.com/2009/06/ec2-ebs-raid

+1

Gracias. No estoy exactamente seguro de por qué esto se cerró, ya que la programación de Bash es ciertamente una programación. Incluso si se relaciona más con la administración del sistema en general. Pero gracias por tu respuesta. –

+6

O simplemente pase - run o -R a mdadm. – Hannes

+0

+1 al comentario de Hannes. De acuerdo con la página de manual: -R, --run Insista en que mdadm ejecute la matriz, incluso si algunos de los componentes parecen estar activos en otra matriz o sistema de archivos. Normalmente, mdadm solicitará confirmación antes de , incluidos dichos componentes en una matriz. Esta opción hace que esa pregunta se presione . –

2

que ejecutar un script en la puesta en marcha de un m1.large y m1.xlarge instancias que realiza la eliminación de discos (RAID-0). Aquí es una versión simplificada (asumiendo que es 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 

Para responder a su pregunta, como ya se ha mencionado, sólo puede tubería yes

Cuestiones relacionadas