6

mdadmを使用してm1.largeEC2インスタンス上の2つのエフェメラルストレージデバイスのストライピングをスクリプト化したい(明らかに、amisにはデバイス情報が常に含まれているとは限らないため、アレイが開始されたら新しいamiを作成することはできません)。

問題は、EC2インスタンスのエフェメラルストレージは通常、ファイルシステムで事前にフォーマットされているため、mdadmが次のように言うことです。

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? 

そして、入力を待ちます。非対話型の状況(たとえば、fsck -yなど)のmdadmでこれらのタイプのプロンプトに対して自動的にyesと答える方法があると確信していますが、理解できないようです(--forceではありません)。ddを使用してデバイスをゼロにすることができることは知っていますが、それは簡単に実行できると確信していることに対するかなり大ハンマーのような解決策のようです。

4

2 に答える 2

11

標準の Unix/Linux の「yes」コマンドの出力でパイピングを試みましたか?

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

mdadm が尋ねる可能性のある質問「はい」と答えたいことがわかっている場合にのみ、これを使用してください。

上記は、サンプルの mdadm コマンドで、RAID-0 EBS ボリュームを使用して 40 TB のファイル システムをセットアップするために使用したアプローチです: https://alestic.com/2009/06/ec2-ebs-raid/

于 2012-01-03T09:00:36.947 に答える
2

ディスクストリッピング(RAID-0)を実行するインスタンスm1.largeとインスタンスの起動時にスクリプトを実行します。m1.xlarge簡略化したバージョンを次に示します(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

あなたの質問に答えるために、すでに述べたように、あなたはただパイプすることができますyes

于 2012-01-04T06:01:24.107 に答える