読者です 読者をやめる 読者になる 読者になる

続 カッコの付け方

AWSを始めとしたクラウドコンピューティング全般と、唯一神emacsにおける()の付け方についてだらだら書きます

極小のファイルシステムを作る

アプリケーションの動作テストにおいて、DiskFullで落ちる状態をテストしたいと要望を頂きました。

Linuxの場合、quotaやLVMやら、それらしいものがあるのですが、結構面倒です。AWSの場合、極小のファイルシステムといってもEBSの最小単位は1GBなので、空き容量たった1KBとかをつくろうとした場合、約1GBをダミーデータで埋めてやらねばなりません。

そんな時にloopマウントです。原理としては、swapファイルシステムを、ディスクパーティション上ではなく、ファイルシステム上に作成して、swaponするのと同じです。これをext4などのファイルシステムで同じことをすれば良いというわけです。

# dd if=/dev/zero of=/root/testext4.fs bs=1M count=2

# mke2fs /root/testext2.fs

# mkdir /media/testfs

# mount -o loop /root/testexts.fs /media/testfs

# df -h

ファイルシス サイズ 使用 残り 使用% マウント位置

/dev/xvda1 7.8G 1.5G 6.3G 19% /

devtmpfs 486M 88K 486M 1% /dev

tmpfs 499M 0 499M 0% /dev/shm

/dev/loop0 2.0M 21K 1.9M 2% /media/testfs

イマドキ ext2 なんて古いよねーと言われそうですが、 ext3 以降はジャーナリングファイルシステムのせいで1MB位取られます。ので、ここで ext3-4を使うのは悪手です。後は3MBぐらいのファイルをddでつくって、cpすれば出来ないことが確認できます。

参考

http://d.hatena.ne.jp/bitwaka/20090402/1239865912