多くのディスク容量をすぐに埋めたり使用する方法は?

多くのディスク容量をすぐに埋めたり使用する方法は?

Linux VM では、VM をシャットダウンしたり仮想 NIC を切断したりするよりも、NAGIOS モニタリングをより深くテストしたいと思います。短い時間に数パーセントの空き容量を占めて「ディスクスペースを強制的に」テストしたいと思います。警報」。

私は使用できることを知っています

dd if=/dev/zero of=/tmp/hd-fillup.zeros bs=1G count=50

またはこれと似ています...しかし、時間がかかり、システムをロードし、rmを使用してテストファイルを削除すると再び発生します。

システム負荷を減らすか、時間をかけずにパーティションを埋めるための迅速な(ほぼ即時の)方法はありますか?私はスペースを割り当てますが、それを「埋めない」ことを考えています。

答え1

Linuxシステムでファイルを生成する最も速い方法は、次の方法を使用することですfallocate

fallocate -l 50G file 

男性の場合:

Fallocateは、ファイルに割り当てられたディスク容量を操作して割り当てをキャンセルまたは事前割り当てするために使用されます。
fallocate システムコールをサポートするファイルシステムの場合、データブロックに対する IO を必要とせずにブロックを割り当て、初期化されていないとマークすることで、事前割り当てが迅速に行われます。これは、ファイルをゼロで埋めることによって生成するよりもはるかに高速です。
XFS(Linux 2.6.38以降)、ext4(Linux 3.0以降)、Btrfs(Linux 3.7以降)、およびtmpfs(Linux 3.5以降)をサポートします。

答え2

他の選択肢は次のとおりです。

  1. 警告しきい値を現在の使用量に近いまたは低く変更します。
  2. 限られた inode、サイズ、またはその他の属性を使用して、非常に小さなテストパーティションを作成します。

ルート保持率(存在する場合)の実行などの項目をテストすることも便利です。

答え3

  1. fallocate -l 50G big_file

  2. truncate -s 50G big_file

  3. dd of=bigfile bs=1 seek=50G count=0

3つの方法はすべてパーティションをすばやく埋めることができるからです。

使用することを好む場合DD、一般的に以下を試してみてください。探す。ただ設定seek=file_size_what_you_needして設定してくださいcount=0。これは、システムに以下があることを知らせます。1つの文書、そしてサイズユーザーが設定しましたが、システムは実際には作成しません。この方法では、パーティションサイズより大きいファイルを作成できます。


例えば、外部4使用可能なパーティションが3G未満です。使用DDメタデータとして存在する5Tファイルを生成します。ブロックスペースはほとんど必要ありません。

df -h . ; dd of=biggerfile bs=1 seek=5000G count=0 ; ls -log biggerfile ; df -h .

出力:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda9        42G   37G  2.8G  94% /home
0+0 records in
0+0 records out
0 bytes copied, 4.9296e-05 s, 0.0 kB/s
-rw-rw-r-- 1 5368709120000 Jun 29 13:13 biggerfile
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda9        42G   37G  2.8G  94% /home

答え4

また、多くのLinuxベースのシステムでサポートされているStress-ngツールを利用することもできます。

stress-ng --fallocate 4 --fallocate-bytes 70% --timeout 1m --metrics --verify --times

関連情報