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

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

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

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

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

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

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

ddclientとmydns.jp

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

protocol=mydns

と書けば,ddclientでmydns.jpのupdateができると書いてあります.しかし,オリジナルのddclient1最新版の3.8.3.を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を書き直して配布しているサイト2検索上位に表示されます.があります.問題は,今後ずっとサポートを続けてくれるか,ですね.

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

外付けディスクからの起動成功 (KVM 11)

いろいろ試行錯誤の結果,うまくいきました.仮想マシンのKernelでvirtio_scsiが必要です.Kernelに焼き込んでも良いのですが,一応initrdにしました.例によって,依存のある他のmoduleを順序正しくloadする必要があります.とりあえずうまくいったのはこの順番でロードしました.

virtio.ko
virtio_ring.ko
virtio_pci.ko
virtio_scsi.ko

virtio_pciが必要なのかどうかは解りません.まあ,動けば良いんです^^;

virt-managerで既存のディスクとして,ホストで見たとおり,/dev/sde等として追加登録します.

ゲスト(仮想マシン)のkernelがvirtioをサポートしていれば,2番目のディスクならば/dev/sdbとして見えます.あとは,fstab等の修正をすれば良いわけです.

この起動可能な外付けディスクは,一部設定を変えれば,仮想マシンでなく,実マシンのboot driveとしても使えますね.

これで可能性が非常に広がりました.

外付けディスクをつなぐ (KVM 10)

NBDによる,仮想マシンのディスク操作は危険を伴うものでした.

これに変わる方法は何かないかと思っていましたが,ディスクイメージでなく,実ディスクをKVMから直接アクセスできれば,と思って調べてみたら,当然のようにできるようです.

今,USB3で接続した外付けディスクを,仮想マシンからマウントして,ディスクイメージ内のディスクを全部rsyncでコピーしてみています.コピーした外付けドライブから起動までできれば,

  1. ディスクイメージの内容を外付けドライブにコピー
  2. 外付けドライブの内容をホストマシンなどでいじる
  3. 外付けドライブを仮想マシンにつないで仮想マシンを外付けドライブから起動
  4. 外付けドライブの内容をディスクイメージにコピーバック

という,メンテナンス方法が可能と思われます.同じディスクを使えば,1と4の所要時間は2度目からはうんと短くなります.

試してみます.

“1RO”普及作戦失敗

私が就職したとき,職場には同じ名字の先輩がいました.ログイン名は,その先輩が先に1当然^^; 名字をローマ字化したものを使っていました.ログイン名にはあと3文字余裕があるので,名字に何かを付け加えて区別しよう,と考えたところ,名前を1ROとして付け加えれば良いじゃないか,と考えつきました.もう30年も昔のことです.

アマチュア無線を始めて少して,DXやCWの交信でハンドルをどうするか,迷いました.ものの本には短い方が良いとあります.どう短くするか.どうも”ICHI”というのは好きじゃないんですよね.で,ICHIも使ったかもしれませんが,高校生くらいからは”ICHIRO”にして,以後40年そのままです.

何年か前から,ときどき,無線クラブの仲間や,SNSの仲間に,”1RO”っていうのはどうでしょうと,聞いてみているのですが,気に入ってくれた人がけっこういて,以来,彼らは交信のたびに”1RO SAN”と打ってくれます.

根強いファンがいるので^^; 今年のNew Year Partyでは,1ROで行こうと決めて,開始から何局かには,”599 1RO”と送りました.しかし,多くの人は”JRO”となんだか読み方が解りませんが,取ってくれました.これは想定内です.

で,しっかりモールスを取る人には,聞き返され,”1RO”を何度か繰り返し送信すると,納得いかないけど解ったみたいな感じで取ってもらいました.

ということで,これでは大半の人には取ってもらえないし,ちゃんと取ってくれる人には手間取らせるだけでいけないということで,通常は”599 ICHIRO”にして,SNSなどの知り合いの皆さんには,”599 1RO”としました.

なかなか固定観念の打破は難しいと感じました.