外付けディスクからの起動成功 (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度目からはうんと短くなります.

試してみます.

NBDはけっこう危険 (KVM 9)

KVMのディスクイメージをホストやその他のマシンでマウントしていじることができます.そのために,nbdというKernel moduleと,qemu-nbdというツールが必要です.

どうしようもなくなった仮想マシンを修復したり,実機をクローニングして仮想マシンに仕立てるようなときに非常に便利です.しかし,どうしたことか,これらを使ってマウントした仮想マシンのディスクイメージにrsync等を使って大量にファイルの読み書きをかけると,Kernel panicに陥る可能性が非常に高いです.

ということで,いつ止めても良いようなWork Stationでいじるのが無難と思います.わが家にはそういう遊軍マシンがないので^^; メインのサーバー兼ルーターがWSも兼ねていて,何度か止めて案配悪かったです.

やっぱり実マシンのLinux WSは必要ですね^^;;

KVMの使い道 (8)

今まで知らなかった,KVMについて,実際にインストールして,無線クラブの会員向けサーバーとなる予定の仮想マシンのディスクイメージを作成しました.

そもそも,Slackwareは,KVMをサポートしていませんので,必要なソフトをいろいろかき集めてインストールして,最終的にはvirt-managerで,仮想マシンの作成,稼働,停止までできるようになりました.

無線クラブのサーバーの作成の他には,自宅サーバーのクローンを作成して,懸案だった,httpd 2.2→2.4の試行に利用して,その手順によって,実サーバーのhttpdを短いダウンタイムでupgradeすることができました.

というわけで,興味もポテンシャルも上がったのですが,では,次に何をするかとなると,思いつきません.

攻撃を受けやすい外部向けサービスを仮想マシンに移転するというのは,実利的かもしれません.実サーバーから仮想マシンへは入れるけど,仮想マシンから実マシンには入れないようにしておけば,仮に仮想マシンがクラックされても,実マシンへ侵入されにくくなります.

デメリットとしては,仮想マシンとはいえ,ちゃんと管理すべきで,お守りをするマシンが1台増えるということになります.

それから,GUIも動きますが,どうしてもモニターの表示領域をフルには使えませんから,GUIがメインの用途には今ひとつです.

ということで,いまひとつおもしろくないです^^; どうしたものか.

httpdでの認証がうまくいかない

それじゃ困るじゃないか。いや、全く困っております^^;

これまでかなり長い間、httpdの認証は、gdbmを使った、dbmmanageでやってきました。しかし、httpdを、2.4.xにアップグレードした後、認証がうまくいかないことが増えてきました。

いろいろ試して分かった事は、これまでに作ってあったデータベースにおいて、既存のユーザーのパスワードをdbmmanageで変更することは問題なくできます。

しかし、新しいデータベースを作ったり、既存のデータベースに新しいユーザーを追加した場合、httpdが認証しようとすると、ユーザーがいないと言うエラーがでます。

dbmmanageによる方法が陳腐化してるのかなと思い、いろいろ探してみました。しかし、これといった情報は見つかりません。

MySQLを使った認証というのがあったので、これはと思い、いろいろ調べましたが、モジュールの開発は2005年で終わっていて、現在の環境ではモジュールはbuildできませんでした。やはり、先々の事も考えますとApache httpdに標準で装備されている、認証法が無難だと思います。

結局htpasswdに戻る

ということにしました^^;

標準装備のものも切り捨てられてしまうことがありますけれど^^;