VMware ESXi がまた

派遣先の大学で、かなり前の前任者がしかけた仮想化システム。また、はまりそうになりました。たぶん、仮想化システムが好きだったんでしょうね。私が思うに、あまり意味の無いシステムに設定しています。

8月の夏休み期間中を利用して、電気設備の定期点検が行われました。この時は、サーバー室を含めて全館停電します。手順に沿ってサーバーの停止、起動を行えば、それほど面倒なことではありません。

しかし、サーバーとネットワークが面倒なことになっている派遣先の大学では、そう簡単なことではなさそうです。緊急用の自己発電装置があるので、点検している間は、その発電システムを使って乗り切ったそうです。そうなると、切り替えの瞬停くらいでサーバーは稼動し続けます。

というはずだったのですが、世の中そう簡単にはいきません。複雑になりすぎたシステムでいつもと違ったことをやろうとすると、かならずどこかに不具合が発生します。夏休み明けは、停電に伴う小さなトラブルがいくつか発生しました。

管理部門が使っている学内に非公開のサーバーが止まったのも、その影響の1つでした。止まったことでクレームはありませんが、共有サーバーが止まるのは不便なことです。優先順位は低いのですが、早めに対応しなければなりません。

しかし、昔に設定されたサーバーを流用しているらしく、今の担当者には、このサーバーがどこになるも解りません。結論から言えば、仮想システムの1つが、共有サーバーでした。それは、解らないかも。

サーバーの外見上は、何台かある学内でファイル共有に使っているファイルサーバーとなんら変わりません。しかも、同じラックに納まっていました。しかも、これまでトラブルなく利用されてきたようで、今の担当者は、一度も触ったことが無い、とのこと。

古いノートPCに設定された VMware ESXi で動いている Linux で、停電前にはまったばかりですが、このサーバーも、同じ時期に仮想で CentOSがインストールされており、ホストOSとして VMware ESXi が動作していました。ハードとしてのサーバー機は正常に稼動していたものの、ゲストOSは停止しており、それで使えなくなっていたようです。

このファイル共有サーバーは、古くてあまり使っていないシステムのバックアップ用途にも使われていました。しかし、ゲストOSとして動作しているのは、1つだけです。かなり、もったいない仕様、というか、仮想化する必要もない。

昔の担当者が、趣味で仮想化したのかな、というのが私の考えです。このサーバーで仮想化を使うため、古いノートPC何台かにも同じように設定して、学習したのかもしれません。たぶん、すぐに廃止される予定のサーバーだったんでしょうね。それが予想外に長く使われて、設定した前任者がいなくなり、誰も知らないシステムになってしまったと。

「こんな古いサーバー、捨てたら」と言いたいところですが、今の担当者にとっては使い勝手がいいらしく、使えるようにしたところ、喜んでもらえました。できれば、こんな怪しいシステムは、早急に廃止したいのですが、しばらくは私が見ることになりそうです。

CentOS 7 に Eclipse をインストール

忙しくなる前にと思って、PHP の開発環境としての Eclipse をバーチャル環境の CentOSにインストールしてみました。結局遅くて無駄になったようですが、顛末はこんな感じです。

Eclipse は、使ってみて便利だと思ったことが多いのですが、あまり使ってません。昔から何度も使おうとトライしているのですが、あの遅さには付いていけません。起動するのに3分以上待たせれたあげく、キー入力がカーソルに追いつかない、という経験を何度もしてきました。昔は、低スペックのパソコンに Linux を入れて検証環境にしており、それで動くといいなと思って設定したのですが、あまりの遅さに閉口。その後も、パソコンを買い換える毎に入れようとしたのですが、Linuxで十分な速度を体感できたことはありません。遅いPCでは、ストレスが溜まるだけなので、メインは軽いテキストエディタを書いてました。

去年から、大学の派遣の仕事で比較的高性能なパソコンが使えるようになったので、久々に Eclipse を入れて使っています。Windows 側なら、デバックにそこそこ使えます。ただ、このエディタは正直使いにくいので、もっぱら文法チェック用です。本当なら、php を実行してデバックまでできるのですが、Linuxの環境と全く同じphpという訳にはいきません。そのため、バーチャル環境の Linux で実行してのデバックが欠かせません。遅いのは解っているのですが、バーチャル環境のCentOSへのインストールをやってみることにしました。

日本語環境のEclipseは、Windows なら構築された版をインストールするだけですが、Linux版は、Eclipse と日本語環境をそれぞれ別にダウンロードしてインストールします。まずが、Eclipseの公式サイトから英語版をダウンロードしてインストール。これにはかなり時間がかかりました。次に、日本語環境のPleiadesの最新版をダウンロードしてして、さっきインストールしたEclipseの環境に展開します。さらに、eclipse.ini に設定を追加します。この設定は、テキストが readme の下に展開した際にできるので、それを確認してください。

これで準備OKで、eclipse が実行可能になりました。さらに、php のデバック環境を設定すれば、環境のできあがりです。しかし、使った感じは目見えて遅い。Windows 側はまだ使えるレベルだったのですが、VirtualBox と Java の二重になっているせいで、実用には程遠い気がする。バーチャル環境でhttpサーバーが動けばいいから、とメモリーが十分では無いもの影響が大きいかも。やっぱりここではテキストエディタとブラウザを使うくらいが限界かな。

ネットでは、VirtualBox にインストールしたLinux環境に、Eclipse を設定するのがおすすめ、なんて記事もありました。最新の高性能パソコンに32Gバイトくらいの十分なメモリーを積んでいれば、それもありかもしれません。しかし、パソコンのスペックが足りないと、使い物にならないと思いますね。今回入れた Linux版のEcplise は、きっともう使うことは無いような気がする。

Virtual Box用のCentOSで、/boot が一杯に?

Virtual Box で CentOS7を使っているのだが、/boot が一杯になっているとのワーニングが出ていた。普通に yum でカーネルがアップデートされると、/boot にインストールされるので、ある程度は増えてしまう。しかし、それほど古いバージョンを残していないので、ありえない。ちょうどしばらくぶりにkernelをアップした際に、/boot が一杯だというメッセージが出た。rpm コマンドでインストールされているカーネルを調べると、3つしか入っていない。絶対におかしい。

/boot の下を確認すると、initramfs で始まるファイルがかなり入っている。しかも、サイズが大きい。これが原因と思われる。rpm でインストールされているバージョンを残して削除してみる。OSを再起動すると、VirtualBoxをWindowsとの連携機能が切れている。これはカーネルを更新するたびに、設定が必要だ。いつものように仮想のCDをマウントして実行し、連携できるようになった。

ここで、/boot をチェックすると、また、容量が増えている。残りがやばいくらい。しかも、さっき消したはずの、initramfs で始まるファイルが復活している。どうもこれが原因らしい。過去に、yum でアップデートでインストールされた
全てのバージョンのカーネルに合わせて、このファイルを作っているようだ。このVirtualBox用のCentOSでは、カーネルは基本的に最新にしている。そのため過去にいろいろなバージョンが入っていた。古いカーネルは、rpm コマンドで削除しているのだが、まさか、それ用のイメージが作られていたとは。

VirtualBoxをWindowsとの連携機能用のカーネルイメージを作成する処理は、これから調べてみるつもりだが、どうなっているんだろう。できれば、参照しているファイルを修正して、余計なバージョン用のイメージを作らないように設定したいのだが。ざっと、グーグルで検索してみたのだが、解らなかった。たぶん、/lib/modules の下に、initramfsを作成した際に使ったと思われる
ファイルが残っていたので、これの影響かな、と思われるが、確認できなかった。
とりあえず、古いバージョンのinitramfsを削除しても問題ないので、/boot
から削除して使っている。

プログラム勉強中

派遣先の大学で、時間が空いたのでプログラムの勉強をはじめました。先日ちょっとJavaScriptをいじっただけで、最近、プログラムしてないな、と感じてたので。

ネットの記事で、カリフォルニアのITエンジニアの採用では、ソートのアルゴリズムをコードに書ける試して採用を決める、なんて記事を見かけたので、久々にやってみることに。

ソートのアルゴリズムを勉強したのは、かなり若いころでした。今はもうすっかり忘れています。配列の要素をソートして処理する、というプログラムは過去に何度も書いてますが、sort() とかの関数を使うので、そのアルゴリズムを意識したことはありません。若いころは、C言語にデータを入替する処理を書いたことがあり、ソートのプログラムを参考にした覚えがあります。しかし、最近は意識することもありません。

VirtualBoxでLinuxを起動して、コマンドラインから PHP でネットの記事を見ながらささっと書いてみました。しかし、クイックソートは難しい。どういう動作なのか、なかなか理解できません。

10個くらいの数字をテキストに書いて、自分でやってみたのですが、右側と左側の処理の切り替えって、どうなっているんだ、と変なところで悩んでしまいました。ソート途中の配列を書き出してみて、こう動いているんだ、と納得はしました。たぶん、若いころもしっかりとは理解できていなかったのでしょう。バブルソートと選択ソートは考え方が簡単なので、コードに落とすのは楽でした。こっちはプログラムを組む際によく使うような考え方だと思います。

昔、後輩にPHPのプログラムの書き方を指導した時は、プログラムは、極々簡単な処理の組み合わせだから、全然難しくないから、と言ってから始めました。今もその考えは変わっていません。とはいえ、やりたいことをコードに落とすのは、難しい。どういう手順で実現するかで、その人のスキルが解るのでは、という気がします。そして、この手順の引き出しが多くするには、その動きをイメージしながら、手を動かして書いてみるしかありません。ここがプログラムの難しいところでしょうか。