0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Jenkinsでハードディスクをゼロフィルする

Posted at

シェルのコード

set +e
dd if=/dev/zero of=zero bs=4k ; rm -f zero

使った理由

 Windows上にHyperVでLinux/ubuntuを構築して、Trac/SVN/Jenkinsなサーバを動かしてるんですが、(少し古い)Windowsをベースにしたせいもあって、ハードディスクの空きに余裕がない。

 これ自体は、数か月を目途に交換予定ですが、とりあえず、HyperVの仮想ハードディスクを「容量可変」にして運用し始めました。

 数週間後、仮想ubuntuのハードディスクの空き領域は十分なのに、仮想ハードディスクファイルの容量が肥大化していました。どうやら仮想領域の「ゼロじゃない」領域も仮想ハードディスクファイルに含まれているようです。
 つまり、一度ファイルが出来て、それを消してもその領域はファイル化されたまま残っていくようなのです。

 そういうことなら、領域をゼロフィルすればいいのですが、linuxでゼロフィルする上のコードの2行目は、いったん残り容量一杯のゼロで埋められたファイルを作って、それを削除する挙動なので、Jenkinsで動かすとファイルを作った時点で「ディスクの空きがありません」エラーで止まってしまいます。実行が止まらないように、1行目を追加しています。

 jenkinsのジョブが途中で止まってしまうと、ゼロフィルしたファイルが残ってディスクの空きがない状態になってしまうので、結構面倒です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?