GUI復活 (KVM 15)

いくつかの実マシンを仮想化する作業をしています.いずれも,確立した手順で^^; CUIとして起動するところまで行きますが,X (Xorg)が起動してくれません.startxをすると,nVidiaや,AMDのfglrxのドライバーが何だかんだとログに残して,致命的なエラーでおしまいです^^;

nVidiaのドライバーについては,ドライバーのインストーラーを使って,

./NVIDIA_Linux-x86-xxx.xx.run --uninstall

とすれば,削除できるとあり,試してみました.上記はちゃんと動きますが,依然として,Xは起動してくれません.

結局,Slackwareのxシリーズを全部removepkgして,/usr/lib/xorgと/etc/X11の残骸をどこぞに移して,もういちどSlackwareのxシリーズをinstallpkgする,という手順で,動くようになりました

作業の要所では,snapshotを残すようにしています.

後の注釈: 残念ながら,その後1台では失敗して,1勝1敗です.snapshotを取ってからやっているので,トラブってぐしゃぐしゃになっても安心です.

システムダウンの原因は仮想マシンか (KVM 14)

一昨日の昼間に,当サーバーが,ディスク関係のエラーを大量に出して,システムダウンしました.

電源リセットした後は正常に動いています.どうも,前夜にいろいろ仮想マシンをいじっていて,仮想マシンのリストから外付けディスクを削除しないまま,物理的に削除したのが原因だったのではないかと推測しています.

問題のドライブはUSB接続だったので,ホスト的にはマウントしてないことを確認しておけば,unplugしていいのですが,動いている仮想マシンでは,マウントしていなくても,IDEかSCSIドライブとして認識していて,hot-(un)plugには対応してなかったようです.このため,IO関係の何かがたまって^^; ホストのIO関係を何してしまったようです.

とはいえ,新しいMain boardなので,ハード関係のエラーの可能性はないとは言いきれないので,しばらくは監視を強めようと思います.

実HDDを仮想マシン化 (KVM 13)

前の話のまとめです.

まえがき

これまで,実マシンとして動いていたLinux Work Station (以下WS1)を,実体として残しておく訳にはいかないけど,まったく捨ててしまうのももったいない.きっと,何か,二度と再現できないノウハウ的なものがあるかもしれない^^;

ディスクをイメージ化して保存し,しかも仮想マシンとして稼働できるようにしておけば,すばらしいです.

で,いろいろ試したところ,次の手順が一番よいと思います.

仮想マシン内でコピー

まず,どこのご家庭にもある,KVM内の既に稼働している仮想マシンを用意します.この仮想マシンに新たなディスクイメージを追加します.容量は,WS1のディスクサイズでもいいですし,実際に動作させるのに必要十分で最小容量でもいいです.形式は何でもいいですが,保存することを第一に考えれば,qcow2のsparse形式でしょうね.

次に,仮想マシンの第3ディスクとして,ホストマシンに接続した,WS1のHDDの実態を追加します.

そして,仮想マシンを起動して,/dev/sdbとなったディスクイメージをパーティショニングして,formatします.

さらに,formatしたイメージのメインの部分をどこかにマウントし,/dev/sdcとなった実ディスクのメインの部分もどこかにread onlyでマウントして,内容をまるまるコピーします.

コピーの方法はいろいろあるけど,最近はrsyncのみ使用してます.

一旦保存

コピーが終了したら,仮想マシンを停止して,その仮想マシンから,先ほど追加した,新しいディスクイメージと,実HDDを削除します.この際,間違っても,せっかく作成したディスクイメージを削除しないことです.”ディバイスリストから削除”するだけで,ディスクイメージは残します.

この新しく作成して実HDDからコピーしたディスクイメージで新たな仮想WSを作って起動させるわけですが,Kernelその他いろいろいじることもあるので,原型を止めたいということであれば,このイメージをどこか別に保存しておいたほうがいいでしょうね.

起動可能とする

これは,いろいろやり方があると思います.私は100%,SlackwareのインストールDVDを使っています.

コピーの時点で,boot loaderを適切にインストールしていないので,多少の工夫が必要ですが,そのくらいのことは,Linuxをいじっている人には朝飯前でしょう.

Good luck & good-by!

これで,滅多に動かすことのなくなったWSの実体を心置きなく捨てることができます.

あとで,いろいろやって分かって来ましたが,2番目に追加したドライブが必ずしもBIOS的に2番目になるとは限りません.これは困ったことです.どうすればBIOS的に順番を変えられるか.調査中です.

既存ディスクを仮想マシンに (KVM 12)

まとめじゃなくて走り書きです.

既存のマシンを仮想マシン化するために,これまでやったことや,今やっていること

  1. ホストマシンで,qcow2のsparseイメージをnbdでマウントして既存のディスクの内容をコピー
  2. ゲストマシンで,virtio_scsiで外付けディスクをマウントする
  3. rawディスクイメージをloopでマウントして、既存ディスクをコピー

1. は,時間はかかるけれども,それほどベラボーではない.しかし,マシンが不安定になることがある.

2.は,うまくいく場合もあるが,ホストで認識できるパーティションが,ゲストでは認識できない場合がある.また,仮想マシンを止めて,virt-managerによって,外付けディスクを削除しないと,ホストが不安定になることがある.

3.は,コピーにものすごく宇宙的な時間がかかる.安定性は不明.

virtio_scsiでなく,IDEをエミュレートしたほうが無難なようです.

ddclientとmydns.jp

あちこちのサイトに,ddclient.confに,

protocol=mydns

と書けば,ddclientでmydns.jpのupdateができると書いてあります.しかし,オリジナルのddclientをdebugモードで動かすと,mydnsというプロトコルはないと警告が出て,実際の接続の所では,urlが空のままで,接続失敗になります.

では,どうすればいいか.wgetをcronで飛ばすようにしています.

#!/bin/sh
wget -q http://ipv4.mydns.jp/login.html --http-user=ユーザーID --http-passwd=パスワード -O /tmp/mydns.txt

このスクリプトを,毎日cronで実行してうまくいってます.週一くらいでもいいと思います.

2015年5月29日追記

現在は週に3回動かしています.また,ipv6も更新するようにしていますが,ipv4と連続して動かすと失敗することが多いので,日をずらしてやはり週3回動かしています.

2017年2月15日追記

mydns対応にddclientを書き直して配布しているサイトがあります.問題は,今後ずっとサポートを続けてくれるか,ですね.

個人や少人数によってメンテされていたソフトでけっこう痛い目に遭ったことがありますので,今後も上記のwgetをcronで飛ばす方法で行きます.

最新版の3.8.3.
検索上位に表示されます.