とある理由によりESXi 5.5を使う必要があったので、Dell PowerEdge R620にストレージとメモリをそれなりにつめてESXi 5.5のインストールすることにしました。
このDell PowerEdge R620はBIOSとUEFIモードでの起動をサポートしていて、どっちかを選んでOSをインストールする必要があるのですが、何を間違えたのかこんな認識のされ方をしてしまいました。
RAIDコントローラの情報は消去したはずですが、以前ESXi 5.1を使っていたときの情報がディスクに残っていたのかもしれません。そのときはきちんと削除されているものだと思い、インストールDVDを作って、ESXi 5.5のインストールをはじめました。
インストール後、ESXiをいれたUSBメモリーから起動しようと思ったものの、なかなか起動しませんでした。いろいろ試行錯誤したら上手く起動してくれました。
とりあえず新しいvSphere ClientをWebからダウンロードしてESXiにつなぎ、ストレージを認識させようとしたのですが、いろいろエラーが出てはまりました。例えば以前日記に書いたこれとか、変に認識されてしまったストレージをアンマウントしようとするとアンマウントできなくなったりとか色々と。
対処方法をいろいろ調べたところ、こんな情報を見つけました。ESXi 5.1の頃はfdiskコマンドでパーティション情報を飛ばすだけで問題は解消できたのですが、ESXi 5.5ではfdiskコマンドは限定的な機能しかなく、partedUtilコマンドを使ってボリュームを削除する必要がありました。ところがいくつかのボリュームは読み取り専用として認識され削除できませんでした。削除できないパーティションはとりあえず放置して、もう一度クライアントからストレージの追加を実行。約270GBのストレージがエラーが起きることなく、なんとか認識されました。
ところが、まだ問題は解決していなかったのです。
200MBを超えるファイルを転送しようとするとエラーになる問題が発生
仮想マシンにOSをインストールするためのISOイメージをストレージボリュームに転送しようと思いました。さっそくローカルからコピーすると200MB程度転送したあたりでI/Oエラーが発生しました。ファイル転送中のI/Oエラーはなんどか発生した覚えがあります。
ISOイメージの転送はscpコマンドで転送した方が確実でかつ速いというのを思い出し、scpでコピーしました。しかしやはり200MB程度転送したところでエラーになります。
クライアントでみると、ストレージサイズにはまだまだ余裕があります。なぜ?
とりあえずLinuxかなにかでフォーマットしたらどうと言われ
いろいろ調べてはみたものの、これだ!という解決策を見いだすことができないまま数時間経過しました。
さすがに疲労困憊してきたところ、「Linuxかなにかでフォーマットしたらどう」という話になりました。
そこでサーバーをPXEブートして、CentOS 7のインストーラを起動することにしました。
インストーラが起動したので、ストレージを選んでパーティションを削除しようとしました。今まさにストレージを削除する瞬間、致命的なエラー(エラー内容はちょっと覚えていません)がでてCentOS 7のインストーラーが落ち、サーバーが再起動してしまいました。製品開発者が想定しないような操作を無意識にやってエラーを起こす人間なんでしょうか。わたしはw
RAIDコントローラーの機能でディスク消去
DellのサーバーのRAIDコントローラツールにはディスク消去する機能があると聞き、試してみることにしました。ただSASストレージだと完了まで時間がかかるらしいのでおとといはここまでで作業をやめ帰宅し、翌日(というか7/1の昨日)作業を続行しました。今度は嘘のようにディスクがすんなり認識され、問題なくストレージの追加、ストレージへのファイルの読み書きが行えるようになりました。予想以上に時間がかかってしまいました。問題が起きたときにマニュアルを見るのではなく、もう少しDellのサーバーのマニュアルやESXi 5.5のマニュアルを見ておこうと思います。色々とはまり過ぎなのでw
DellのR620
DellのR620はUEFIとBIOSのどちらかを選択できるという話をしましたが、周りのサーバーの多くはBIOSモードを使っているので、今朝設定を開いてBIOSを標準の設定にしてしまいました。もうUEFIではまりたくないので(後ろ向きな対応)。
R620にESXi 5.5をいれて何をしようとしたのか
OpenStackのIcehouse環境をマルチノードで動かそうと思い、今回の環境を作ったわけです。その話はその話で長くなるのでまた今度にします。ちなみに今日の作業で上手く動くことを確認しました。ちなみにデプロイにはこのスクリプトを利用しました。詳細は次回にでも。