とあるシステム開発の結合試験で、「ディスク使用量90%以上」の環境を用意する必要がありました。
ディスク使用量がすでに逼迫している環境であれば、比較的容易に用意できます。
それはそれで、どうなんだ感が否めないですが……。
しかし、ディスクに十分な空き容量がある環境では、
効率的な増やし方を知らないと、結構な手間と時間がかかります。
実際、最初は不要ファイルを手作業で複製していましたが、
サイズの調整に時間がかかる上、増やしたファイルの後片付けも面倒でした。
このような場合、試験効率の低下にも繋がるため、サクッとできるならそれに越したことはありません。
そこで本記事では、ddコマンドを使って
「任意サイズのダミーファイルを作成し、短時間でディスク使用率を調整する方法」について紹介します。
ddコマンドとは
ddコマンドは、ファイルやデバイスをブロック単位で読み書きするコマンドです。
主にディスク操作やバックアップなどで使用されます。
読み込み元(入力ファイル)と書き込み先(出力ファイル)を指定することで、
データをそのままコピーすることができます。
この特性を利用することで、任意のサイズのダミーファイルを作成できます。
ddコマンドの基本構文
dd if=入力ファイル of=出力ファイル bs=ブロックサイズ count=ブロック数よく使うオプション
コマンドで指定する主なオプションの詳細は、以下のとおりです。
| オプション | 説明 |
|---|---|
| if | 読み込み元(入力ファイル) |
| of | 書き込み先(出力ファイル) |
| bs | ブロックサイズ(Byte単位) |
| count | コピーするブロック数 |
ddコマンドでダミーファイルを作成する
実例:10MBのダミーファイルを作成
例えば、約10MBのダミーファイルを作成する場合は、
ダミーファイルを配置したいディレクトリ上で次のようにコマンドを実行します。
$ dd if=/dev/zero of=test bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.168181 s, 62.3 MB/sポイント
- if=/dev/zero は、常に ヌル文字(\0)を返す特殊なファイルです。
- of=test は、作成するファイル名
- bs=1M は、1ブロックあたり 1MB
- count=10 で10ブロック分 → 合計 10MB のファイルが作成されます。
※ファイルサイズは bs × count で決まります。
例えば、bs=512KB count=20 としても、同じく 10MB のファイルを作成できます。
作成後のディレクトリ例:
$ ll
-rw-r--r-- 1 user user 10485760 Jan 10 12:52 testこの方法を使うことで、「ディスク使用量が多い状態」を短時間で簡単に用意できます。
実行時の注意点(重要)
ddコマンドは指定した内容をそのまま書き込むコマンドであるため、
実行する環境やディレクトリに注意が必要です。
- 空きディスク容量が十分にあることを必ず事前に確認してください
- 誤って重要なディレクトリやファイルを指定しないよう注意してください
- 大容量のファイルを作成する場合、ディスクI/Oに負荷がかかります
- 本番環境での実行は避け、検証用の環境で使用することをおすすめします
- 同名のファイルが存在する場合、ファイルが上書きされるため注意してください
- 出力先にディレクトリを指定した場合、エラーになります
他の方法との比較
ダミーファイルを作成する方法としては、主に以下のような方法があります。
- fallocateコマンドを使う
- 実際のファイルをコピーする
fallocateコマンドは、ddコマンドよりも高速にファイルサイズを確保できます。
しかし、ddコマンドとは異なり領域を確保するのみで、データの書き込みは行いません。
そのため、使用する環境によっては実際のディスク使用量がほとんど増えない場合があります。
また、既存のファイルをコピーする方法もありますが、
事前にデータを準備する必要があるほか、コピーにも時間がかかるため効率的とはいえません。
そのため、確実にディスク使用率を上げたい場合は、
fallocateコマンドと比べると時間はかかりますが、
本記事で紹介したようにddコマンドを使用する方が確実です。
まとめ
この記事では、ddコマンドを使った任意のサイズのダミーファイルを作成する方法をまとめました。
ddコマンドを利用することで、次のことが可能です。
- ブロックサイズと回数を指定することで、任意のサイズのダミーファイルを作成できる
- ディスク使用量を意図的に増やした試験環境を短時間で用意できる
結合試験や負荷試験など、ディスク使用量を増やす必要がある場面では、
今回紹介した方法を活用することで効率よく試験環境を整えることができます。
なお、ddコマンドは強力なコマンドであるため、
実行する環境や指定するパスには十分注意した上で利用してください。


コメント