【お試し】Azureのシリアルコンソールをいじる
ども。おもしろいものが出てきたので更新しましょうかね。
Linuxユーザーにとってうれしい機能がAzureで出てきました。
Serial Console(シリアルコンソール)です。
まだPublic PreviewですのでSLAなどついていませんが(つくのか!?)
技術的に使えそうなのか試してみましょー。
といっても、シリアルコンソールは普段から接続して操作するものではない
ですよね。トラブルシューティングをたくさんやっているエンジニアから
すると、むしろ触れたくない(笑)機能かもしれません。
なぜなら利用シーンの多くは、「OSにログインできなくなった、どうしよう」
だからですね。自分も何度も経験があります。むかーしのように物理装置の
前にいってダム端をシリアルポートに繋いで、、、とか今のクラウド時代に
できないですから、困っちゃいますよね。
じゃぁ、なぜOSにログインできなくなったのか、大抵3つのケースが
多いでしょう。
2)/etc/fstabの記載間違えてリブートかけたら上がらなくなっちゃった、後悔系
3)原因不明で、VMが起動してこなくなり日が暮れちまう、パルプンテ系
1)のてへぺろ系については、Azureポータルの「パスワードのリセット」から
SSH公開キーのリセット操作ができますので、そこで解決します。なので
わざわざシリアルコンソールから接続して/home/${USER}/.ssh/authorized_key
を直接vimで編集しなくても解決します。
1)以外のシチュエーションで使えそうか早速触ってみましょ。
最初にVM(起動中)をAzureポータルからイジってみました。
なんだか「ブート診断」をEnableにしろ、というエラーが出てますね。
ということで同じ左ペインにある「ブート診断」をONにして保存しましょう。
ブート診断の設定が完了したらもう一度シリアルコンソール(プレビュー)を
覗きます。
んふーー!
ステキですね、コンソール画面が出てきました。
ここで「あ、、、」っと思った方は即実行に移しましょう。
そうです、rootのパスワードは必ずLinux VM作成時に設定しておきましょうね。
後で困るのはご自分ですから。
マウント状態を見てみます。
シスボルはrwになっていますね。
このままだと面白くないので、ちょっと意地悪して強制的にEmergency Mode
にしてみましょうかね。
画像は割愛しますが、やったことは以下です。
1、該当のCentOSのVMに1TBのデータディスクをAzureポータルからアタッチ
2、CentOS内で該当のパーティションをフォーマットしファイルシステム作成
3、/etc/fstabに記載してmount(/adddisk)し、該当領域にrwできることを確認済
4、この状態でAzureポータルから該当のディスクをホットデタッチ!
5、デタッチが終わったらAzureポータルからVM再起動を実施!
はい、SSHでログインしようとしても接続できなくなりました。
Azureポータル上では「実行中」のステータスのままです。
このままずっと待ってても立ち上がってこないので、シリアルコンソールで
覗いてみましょう。
はい、期待通りEmergency Modeになって、/adddiskのファイルシステムの
読み込みに失敗しているエラーが出て止まってますね。
rootのパスワードを入力してログインし、vimで/etc/fstabに記載した
デタッチ済の行をコメントアウト。最後に再起動。
kernelからinitプロセスの起動からデバイスの確認からメッセージが大量に
流れてきますが、正常に起動したようです。
最後にSSHログインをターミナルから試みました。
ちゃんと繋がりましたね!
ということで、OS内の設定をやらかしてしまった時の後悔系については
シリアルコンソールから対処が可能(rootのパスワード設定忘れずに)
ということがわかりました。
他にもAzureの裏側でIn-place VM migrationが起きた時にシリアル
コンソールから何かメッセージが見えるか、とか気になる点も多い
と思いますが、任意に再現できるものではないので、何かわかったら
また記事にでもしましょうかね。
※Hyper visorより上位からなのでメッセージどころか単純にフリーズ
している状態な気もしていますががが。