先日からCentOS Atomichostを使い、Dockerのお勉強中なのですが、どうも致命的なバグに当たってしまっているようです。現象は、Docker Pull実施時にDiskfulになると、二度とDockerが立ち上がらなくなるというもの。
もしかすると、同じような経験をして、このページに来る方がいらっしゃるかもなので、記事にしておきます。
さて、私の場合、ちょっとした背景があって、この現象に当たってます。
実はCentOS AtomichostにはCockpitという素晴らしいGUI型のシステム管理ツールが入っているはずなんですが、何故かそのツールのDocker連携モジュールが、ここ最新のAtomichostに入っていないんです。そのため、折角、CockpitでGUI使ってComtainer管理をしようとしても出来ないんです。
ちょっと古いバージョンを入れてからatomic upgradeするとうまくいくんで、RedHat社の方が提供して下さっているVagrant boxであるyuryu/centos-atomicを使わせて戴いているんですが、今度は別な問題が。。。
いろいろと調べた結果、AtomicHost OSはDocker領域をThin Provisioningで最大100GB使えると思っているのに、Virtualbox上のVMDKが7GB固定になっているため、Dockerが5GBを超える領域を使おうとすると、Diskfulを認識できずに書き壊してしまうと言うことが判明しました。
で、致命的なのは、この一度壊れたディスクを治す手段がない。
Docker領域はloopデバイスとしてマウントされているのですが、どうも、その仕組みが複雑すぎて、アンマウント出来ず、fsckがかけられないんですね。
結局、一旦Vagrant destroyして作り直すのが最も早い解決策ということがわかってきています。
まぁ、インストール後にVMDKファイルを何らかの方法で拡張可能な物に置き換えるのが最善なんですが、、、これ、可能なのかな?ちょっと継続して調べて見ます。
しかし、まぁ、こうやって環境を作ったり壊したり簡単にできるところが、DevOpsの良いところな訳で、例え壊れてもそこまで作業にインパクトがないので、正直、メリットを感じまくってます。。。。
・・・でも、これ、インフラエンジニアの仕事が完全に無くなりますな。。。
もしかすると、同じような経験をして、このページに来る方がいらっしゃるかもなので、記事にしておきます。
さて、私の場合、ちょっとした背景があって、この現象に当たってます。
実はCentOS AtomichostにはCockpitという素晴らしいGUI型のシステム管理ツールが入っているはずなんですが、何故かそのツールのDocker連携モジュールが、ここ最新のAtomichostに入っていないんです。そのため、折角、CockpitでGUI使ってComtainer管理をしようとしても出来ないんです。
ちょっと古いバージョンを入れてからatomic upgradeするとうまくいくんで、RedHat社の方が提供して下さっているVagrant boxであるyuryu/centos-atomicを使わせて戴いているんですが、今度は別な問題が。。。
いろいろと調べた結果、AtomicHost OSはDocker領域をThin Provisioningで最大100GB使えると思っているのに、Virtualbox上のVMDKが7GB固定になっているため、Dockerが5GBを超える領域を使おうとすると、Diskfulを認識できずに書き壊してしまうと言うことが判明しました。
で、致命的なのは、この一度壊れたディスクを治す手段がない。
Docker領域はloopデバイスとしてマウントされているのですが、どうも、その仕組みが複雑すぎて、アンマウント出来ず、fsckがかけられないんですね。
結局、一旦Vagrant destroyして作り直すのが最も早い解決策ということがわかってきています。
まぁ、インストール後にVMDKファイルを何らかの方法で拡張可能な物に置き換えるのが最善なんですが、、、これ、可能なのかな?ちょっと継続して調べて見ます。
しかし、まぁ、こうやって環境を作ったり壊したり簡単にできるところが、DevOpsの良いところな訳で、例え壊れてもそこまで作業にインパクトがないので、正直、メリットを感じまくってます。。。。
・・・でも、これ、インフラエンジニアの仕事が完全に無くなりますな。。。