サーバーからのラブレター・・・

サーバーからのログをメールで受け取っているのですが
以下のようなエラーが吐かれていました。

Error: Transaction Check Error:
installing package java-1.6.0-openjdk-1:1.6.0.34-1.13.6.1.el6_6.x86_64 needs 82MB on the /usr filesystem
installing package kernel-devel-2.6.32-504.8.1.el6.x86_64 needs 52MB on the /usr filesystem
installing package nss-softokn-freebl-3.14.3-22.el6_6.x86_64 needs 720KB on the /usr filesystem

要はアップデート時に/usrの領域が足りないので
トランザクション処理(*)ができねぇぞぉ!ってことでやんす。。。
 (*)依存性とかの複数処理をまとめて一括して行う

で、dfコマンド実行結果見るとなんと50GB切ってある
/usrの使用率が100%!? = 使いきっている

どこが肥大化したのかduコマンドで見ると。。。
分かりました。やはり拙生のドジでした。

サーバAとサーバーBはユーザー領域(/home)とデータベース
(/var/lib/mysql)のバックアップを30分毎にお互いに取りあっています。
該当サーバーAのユーザ数は100ちょっとでありデータも多いので、
サーバーBへは容量が心配のない/homeにバックアップ用フォルダーを
作成してそこにバックアップしてあります。
サーバーBのバックアプを同様にサーバーAの/home内にするには
上記のバックアップ用ディレクトリも含めると無限ループになります。

それを防ぐためサーバーA → B は/home全体のバックアップにすると、
サーバーB → A は/home全体ではなく、バックアップ用フディレクトリを
除いたユーザー単位でバックアップコマンドを書いてやらなくてはならず
面倒クサがり屋としてはサーバーAの/homeにではなく50GB切ってあった
/usrにサーバーBの/home毎バックアップを取ることでループから逃げました。
サーバーBのユーザー数は5であり、データーも少ないので大丈夫だった
はずなのですが。。。

しかし(家庭内)事情により、Bの方にもSAMBA(Windowsともファイル
共有できるファイルサーバー)を構築することになり、構築後に早速
40GB程度のデーターを/home領域にupしたのですが、サーバー同士で
取り合っているバックアップのことをすっかり失念していました。

SAMBAは/home/あるユーザー領域下においたため、/home全体を
バックアップした時に40GB程度のデータにより、50GBしかない
サーバーAの/usr領域を一気に食いつぶしたということです。

やっちまいました。。。

解決する方法はいくつかあります。
・余裕のある/homeから容量をぶんどって/usr領域を拡張する。
・SAMBAの分はサーバーAにバックアップを取らない。
等々。
しかし今回選択した方法は、/usrに取っていたバックアップ先を
容量の心配のない/homeに変更することでした。

/home⇔/homeだと当然最初に書いた無限ループの問題が浮上します。
結局バックアップ用ディレクトリを除いた/home内のユーザー数である
サーバーAは100余り、サーバーBは5に対し、個別にバックアップ
コマンドを実行するスクリプトを応急的に書いて対応したました。

この方式だとユーザーを作成するごとにバックアップスクリプトも
書き加えていかなくてはいけないので、そのうちユーザーを自動抽出して
バックアップするスクリプトを考えることにしましょ。
またはユーザー作成時にその領域にバックアップコマンドを自動生成する
って手もありですね。

HOME

おすすめ