» WindowsServerのブログ記事

前略、Hyper-VにOpenSolarisをインストールしました。
しかしそれは本題ではなく、ZFS(Zpool)のバージョン21から有効になった、データのデデュプリケーションを試すのだ。
 
 

ちなみにHyper-VにOpenSolaris入れるにはメモリたっぷりいるよ、失敗する人は増やせばOK。
VirtualBoxでもいける、VirtualBoxの方が相性は良さそうな感じ。
 

画像:Hyper-V上のOpenSolaris

ZFSのバージョンは22、『やっぱりSunがスキ!』よりテキストインストーラのbuild131だ。
 
 
 

じゃあリアルタイムのデデュープを試してみよう!
 

さて、makefileでファイルをつくり、それをデバイスとして”ddzfs”というZFSストレージプールを作りました。
zfs set dedup=on ddzfs” で準備完了。プールじゃなくてファイルシステムが対象ね。
サイズは1GBだ。
 
 

1GBの領域に/dev/zeroをダンプして5GBのファイルを作るとどうなる?
こうなる。
 

画像:ZFS Dedupの様子
※VirtualBoxに変わっているのは諸事情のため差し替えたので。
 

手抜きでごめんねぇ、キャプチャだ。
雰囲気は伝わるだろう、途中で言い逃れできないようなアハ体験が訪れていることがわかる?。
 
 

しかしリアルタイムで計算してデデュープしてる割にはよいスループット出てるやん。リハのHyper-Vでも60Mちょっとは出てたし。
完全仮想なことを考慮したらすごく早い気がする。
 
 

用途がファイルサーバならCPUなんていつだって遊んでいるから実用にも全然つかえるんじゃないか?
メールサーバでも効果が高そう、C.C.での同報メールなんかは文字通りカーボンコピーになるね。
※ブロック単位なので実際はちょっと違うが。
 
 
 

send&recvとか試してみたいことは山盛りだが、なんかもう理解の範疇を越えてきたな。
ZFSほか、新しいファイルシステムにはどんどん期待がもてるね。
 

普通に入れたら起動しないし、前回記事みたいにオプションを変更しても無理だった。
 

http://08thse.blog87.fc2.com/blog-entry-185.html
を見て、Genericの下の、RCU Subsystem あたりで調整。
CONFIG_SYSFS_DEPRECATED_V2=y
になるように。
 
 

画像:最新カーネル on Hyper-V
 

一応起動したが、Hyper-V用の追加機能が入れられなかった。
これじゃあちょっと使いもんにならない気がするので、yumで入れたバージョンに戻した。
カーネルとドライバ、どっちのせいで入らないのかなあ。
 

したら次回起動で止まる。
 

性格にはvmbusを有効にすべく、追加機能をインストールしている場合に止まる。自動で追加されるオプションの影響みたい。
 

追加機能導入後の状態でyumからカーネルをアップデートしてしまうと、 起動時に switchroot の所で新しいルートをマウントできずに止まっちゃう。
 

いったん grub.confでカーネル指定のオプションから
hda=noprobe hdb=noprobe
を消したらOKだった。

マトモに起動したら、追加機能を改めてインストールすればよろし。

メモエントリ
 
 

WindowsでIIS+php+MySQLでCactiをセットアップして、pollerにspineを使おうとしてもデフォルトでは駄目。
 

spine.conf を見ると接続先 MySQLサーバ(host)の指定がlocalhostとなっており、そのままだとspineの仕様でunixソケットがないよといわれてこけるのだ。
 
 

127.0.0.1に変えるとよい。
 

CentOS5.4にyumでCactiを入れまして、Windowsサーバのネットワークトラフィック状況をグラフにしようとしたんだ。
 

しかし特に何も考えずにそのまま使おうとすると、SNMPクエリでOIDの一部をインデックス扱いするもののうち、その一部が255文字を超えるものはグラフ化出来ないので少々調べてみた。
 

ちなみにどういう場合に該当するかというと詳しい内容は省くが結構ある。
WindowsServer2003だと、NICのQoSを有効にしたらフレンドリ名が「(NICの名前)+パケットスケジューラ ミニポート」となる、この日本語がやたら曲者。
 
WindowsServer2008ではQoSを有効にしても英字で文字列が追加されたりと良くなっているが、もNIC周りをちょっといじればすぐフレンドリ名が長くなる。
突然「ローカル エリア接続 – 仮想ネットワーク」とかいうフレンドリ名が出来たりと余計になかなか。。。
 
 

結果、それがOctetStringでIOD一部として使われるとあっという間に長いOIDが完成。
 

SNMP Informantを使ったときにはそれがそのままインターフェイスの識別符号になるため困ってくるのだ。
せめて物理アドレスなりをインデックスにさせてくれればよいものを、SNMP Informantは最小限しかMIBを定義していない。
 

まあこんな感じになっちゃうのよね。
SNMP Informantでは networkInterfaceTable 以下のNetInstance(.1.3.6.1.4.1.9600.1.1.3.1.1) に続くOctetStringを各インターフェイスのインデックスとして使う。
 

「Microsoft Loopback Adapter」 ならこう。
 
netInstance.26.77.105.99.114.111.115.111.102.116.32.76.111.111.112.98.97.99.107.32.65.100.97.112.116.101.114
最初の26で文字数、後はASCIIなり。cacti用にインデックスとして扱える部分は77以降、94桁だね。
 

これ以降のOID、netBytesTotalPerSec とかでは末尾の文字列を参照しつつ、「Microsoft Loopback Adapter」 のものだと識別するわけだが。
 
 

これが「ローカル エリア接続* 2」(だと思う) ならこう。
netInstance.31.4294967267.4294967171.4294967213.4294967267.4294967171.4294967228.4294967267.4294967170.4294967211.4294967267.4294967171.4294967211.32.4294967267.4294967170.4294967208.4294967267.4294967171.4294967210.4294967267.4294967170.4294967202.4294967270.4294967182.4294967205.4294967271.4294967222.4294967194.42.32.50
 
インデックス用には300桁もいるじゃねーかよ!!
 
 

さてここらでCactiのグラフについて。
 

冒頭で説明した環境ではインデックス部になぜか 255桁しか入りません。つまり「New graph」作成の段階で桁が落ちちゃう。
これではそれ以降のSNMPクエリが出来ない(指定したOID+桁落ちしたインデックス用の数字でクエリ=UNKNOWN)ので、まったく値がrrdに突っ込めない。
 
 

これをインデックス扱いして使うにはMySQLでCactiテーブルの改造が必要だったのでその個所をメモっておく。
 
 

まずは[poller_item] のarg1,arg2,arg3。
ここのarg1にインデックスを入れるようになってるんだけど、これがTEXT型なのに255文字で切れている、切れたOIDが入っていたので多分ここだ。
細かい理由は調べてない、UTF8だからとかバッファ容量の関係とかそういう理由かな。。
MySQLのTEXT型の説明を少し見たけどややこしいのでよくわからん。
 

とりあえず全部varchar(512) に変えてみたら、グラフの設定はきっちりできた。
 
 

これ以降はどこをやればいいかはっきり調べてないが一応触った個所を。[poller_item]を最後に気付いたので、それまで結構いじってしまった。
もしかしたら後はまったくいじらなくてもいいかもしれないが、[data_local] ,[poller_reindex]あたりは怪しいかな。
 

  • [data_local] の [snmp_index] が varchar(255) だったので512にした。
  • [graph_local] の [snmp_index] が varchar(255) だったので512にした。
  • [host_snmp_cache] の[snmp_index] が varchar(255) だったので512にした..かったけどキーだったのでUTF8のままでは1024バイトの制限を超えちゃう。
    しかたないのでUTF8を諦めラテンにした。
  • [poller_reindex] の[arg1] が varchar(255) だったのでラテンで512。

 

とりあえずこれだけやればOKだった。
どれが必要かはちょっと精査してないが、もしも同じ悩みを持った人がいたら参考にしてちょ。
 
 

それにしてもMySQLのTEXT型は定義がややこしいな。
 

検証用の WindowsServer2008 に WordPressを入れてみようと思ったのです。テンプレート制作用ね。
 

FastCGIにphpを入れてー Mysqlを入れてー と手順を考えていたのだが、「Microsoft Web Platform Installer」 を見たらWordPressがラインナップされていた。
 

画像:WPI2.0アプリ選択画面

画像:WPI2.0アプリ選択画面


 
 

ちょっと興味があったので使用してみることに、どうなるんだろうか。
 

依存関係でインストールするソフトの一覧が表示される。
 

画像:Wordpress依存関係1

画像:Wordpress依存関係1


画像:Wordpress依存関係2

画像:Wordpress依存関係2


 

おお、MySQLがある。Rewriteとかもいるなあ。
ちなみにWindowsの状態は、CGIを有効にしたIIS7を入れただけでかなり素だ。
 
 

その後必要パッケージのダウンロートとインストールがはじまる。
 
mysqlがインストールされるのでroot@localhostのパスワードを聞いてくれる、なかなか気が利いているね。
 

画像:Mysqlインストールの設定

画像:Mysqlインストールの設定


 
 
そしてしばらく待つと。。。
 
画像:インストール中・・・

画像:インストール中・・・


 
 

WordPressのインストール設定が始まった!
 

画像:Wordpress固有設定1

画像:Wordpress固有設定1


画像:Wordpress固有設定2

画像:Wordpress固有設定2


 
 

意外とスゴい、初期設定に必要なことは一通り聞いてきて、丁寧に作られているなあと思う。ここではさすがに色々入力する必要があるのでちゃんとやろう。
SQLServer2008も入れてるんだが、さすがにDB選択のリストにはないな(^^
 
 

で、完了と。
 

画像:WPI2.0完了画面

画像:WPI2.0完了画面


 
 

IEでwordpressにアクセスすると初期画面。
 

画像:Wordpress初回アクセス

画像:Wordpress初回アクセス


 
 

ブログを表示したらちゃんとされる。
 

画像:ブログ表示

画像:ブログ表示


 
 

実に楽ちんだ、、phpもmysqlも特に何も考えることなく導入されてしまった。
これは世話焼きすぎだろうに。。。と思う反面、WEBアプリなんてこうあるべきだよねーという気もする。
 

ほかにもjoomla!やXOOPSCubeLegacy(なんとホダ塾ディストリビューション)などをはじめ、wikiなんかも自動でインストール可能な様子。
アップグレードとかはどうすんだろとか気になる点もあるが、「Microsoft Web Platform Installer」は凄いな。
 
 
 

ついでにrewriteモジュールの存在をチェック。
 

画像:Rewriteモジュール確認

画像:Rewriteモジュール確認


 
 

ちゃんといるね、web.configに設定をすることでWordpress側で指定するパーマリンクの変更も出来ることを確認した。
 

つうかwordpress側もIISで動いていることを判断するんだなあ、パーマリンクの変更画面でちゃんとweb.configを指定して、なおかつXMLを表示してくれる。
 

画像:パーマリンク変更画面、rewrite指定

画像:パーマリンク変更画面、rewrite指定


 
 

ちょっと目を離すと進歩している、油断できんなあ。
 
と思いつつ、素のwindowsだったので「web.config」ファイルを作成したつもりが「web.config.txt(※拡張子表示なし)」というテキストファイルが作成されて『あれ、Rewrite動かん。。??』とか思ってしまった。
Serverの拡張子(=ファイル名の一部を) デフォルトで隠してどーすんのよと。そっちは感心できない。
 
 

cacti のグラフが美しいので、普段やらないWindowsのSNMPから情報をグラフ化してみた。
 
 

なんかcactiはネットワーク機器とLinuxを見るような印象だったが、有りものだけでWindowsの情報を結構取れる。
実際どのくらいとれるのか紹介しとこう。
 

Windows側で仕込み

Cactiたっぷり情報取るには、標準のSNMPに加えてサードパーティ製のSNMPプロバイダを入れるといい。

 

有料版・無料版とあって、無料版ではCPU,メモリと論理HDDなどのパフォーマンスカウンタの情報を取ってくれる。
 

mibで見るとこんな感じ、これは頼もしそうな項目。。
 

画像:mibブラウザより

画像:mibブラウザより


 

有料のはほとんどのパフォーマンスカウンタオブジェクトに対応している、開発しんどいし買ってもいいくらい。
 
インストール要件は簡単、Windows標準のSNMPさえ入れておけばOK。
サーバ側の準備はこれでOK。
 
 

CactiにWindows用のテンプレートを追加

まあ色々あるけど、とりあえず良い感じなのを2つ。
 

さっきの「SNMP Informant」で追加されたMIBをゴリゴリ取ってくるテンプレート。

※最後の方の発言からZIPをダウンロードしよう。
 

特定プロセスのCPU・メモリ使用量をグラフ化する、まあおまけで。

 

これらを添付の手順に沿ってサーバにUP&インストール。
データクエリはサーバの “(cactiパス)/resource/snmp_queries” に、テンプレートはCactiの管理画面から入れよう。
Cactiの準備もこれでOK。
 
 

じゃあWindowsの状態をグラフにする

ここまでの準備を元にホストテンプレート、デバイス追加してデータクエリを軸に「Create New graph」するという作業になるけど割愛。
ではありものをぺたぺた貼って、このくらいグラフ化出来るよというSSをどうぞ。
 

でっかいので注意してくださいねー
 

画像:大きさ注意グラフ(627 × 9067)

画像:大きさ注意グラフ(627 × 9067)


 

結構とれてるでしょ?今回SSの相手は『WindowsServer2008R2 x64』だったが、2003(確認済)や2000(らしい)もOKだ。
 
 

Cactiでカスタマイズは結構ややこしいのだが、手軽にこれだけの情報がとれるといいね。
 

Windowsには標準でSNMPサービスが付いている、それを利用して特定のサービスが起動しているかどうかをチェックしよう。
 
 

タスクスケジューラは外部監視しかない

まず何故にいきなりSNMPで監視なのか、に触れておく。
 

私はよく定期的なサービスの監視を仕込んだりする、前に書いたASP.NETアプリケーションプールの監視もそうだった。
 

だがつい最近、タスクスケジューラが止まってるという馬鹿げた自体が発生した、これが止まると内部監視がほとんど止まるじゃないか!
原因とかはとりあえず後だ、こいつを見張るにはどうしたらいい?
 
 

内部監視であれば一定時間...1時間毎とかに生存をメールで通知するか?馬鹿な。止まった時にならない鈴に意味は無い。「そういえばしばらく通知が来ていない?」なんてトリガは存在してはならない。
常駐プロセスか?まずそれが止まるかもしれんだろうが。
選択は自ずと外部監視に限られる。
 
 

外部というとWMIで見る...135番ポートほかを開けるか?悪くはないんだが130番台にいい思い出をもつ管理者はいないのではないか、出来れば空けたくないだろう。
 

そこでSNMPを調べてみた、WMI関連のポートを開放するよりマシだろう。
結論を言って置けば、サービスの監視は可能だ、ただちょっと嫌な仕様だ
 
 

WindowsServerのSNMPの紹介

WindowsServerでSNMPを使うのは簡単だ、コンポーネントの追加とか機能の追加と呼ばれているやり方でセットアップしてやるといい。
 

画像:SNMPのRead許可

画像:SNMPのRead許可


 

トラップが送りたければ 『evntwin.exe』 などを立ち上げて通知したいイベントを設定しよう。
 

画像:evntwin.exeの設定例

画像:evntwin.exeの設定例


 

詳しくはやってないが、eventcreate.exe で動作確認をしてみた。ちゃんとトラップきてるでしょ?
 

画像:トラップテスト

画像:トラップテスト


 

SNMPの標準的なトラフィック取得、ホストステータス取得は出来るから、Cactiでパフォーマンスをグラフ化するなり、トラップでNagiosのパッシブチェックからアラートするなりしたらいい。
 
 

SNMPで取れるWindowsサービスの内容

ではSNMPクライアントから確認できるWindowsサービスについて。
 

WindowsのSNMPをセットアップすると、%SYSTEMROOT%System32\ の下あたりにMIBがいっぱいできる、その中のLanManager用のMIBにWindowsサービスの情報がある。
ファイル名は『lmmib2.mib』だ。
 

その中から svSvcName を取ってみよう、
 

svSvcName.6.83.101.114.118.101.114 Server OctetString
svSvcName.8.72.84.84.80.32.83.83.76 HTTP SSL OctetString
svSvcName.9.69.118.101.110.116.32.76.111.103 Event Log OctetString
--snip--
svSvcName.14.73.80.83.69.67.32.83.101.114.118.105.99.101.115 IPSEC Services OctetString
svSvcName.14.84.97.115.107.32.83.99.104.101.100.117.108.101.114 Task Scheduler OctetString
svSvcName.15.82.101.109.111.116.101.32.82.101.103.105.115.116.114.121 Remote Registry OctetString
svSvcName.15.83.101.99.111.110.100.97.114.121.32.76.111.103.111.110 Secondary Logon OctetString
svSvcName.16.67.111.109.112.117.116.101.114.32.66.114.111.119.115.101.114 Computer Browser OctetString
svSvcName.16.72.101.108.112.32.97.110.100.32.83.117.112.112.111.114.116 Help and Support OctetString
--snip--
svSvcName.37.65.112.112.108.105.99.97.116.105.111.110.32.69.120.112.101.114.105.101.110.99.101.32.76.111.111.107.117.112.32.83.101.114.118.105.99.101 Application Experience Lookup Service OctetString
svSvcName.40.87.105.110.72.84.84.80.32.87.101.98.32.80.114.111.120.121.32.65.117.116.111.45.68.105.115.99.111.118.101.114.121.32.83.101.114.118.105.99.101 WinHTTP Web Proxy Auto-Discovery Service OctetString

 

Windowsで使われているサービスがずらずらと出てきたろう、その中で Task Scheduler のステータスを取るとしたら『svSvcOperatingState』を参照する。
 

svSvcOperatingState.14.84.97.115.107.32.83.99.104.101.100.117.108.101.114 active Integer
 

ほれ、アクティブだ。起動しているってことだ。
 
 

『svSvcName.14.84.97.115.107.32.83.99.104.101.100.117.108.101.114』 がなんでイコール『Task Scheduler』やねんと思うかもしれないが、それはOctetStringだからだ。
 

数字の最初の14は文字列長を表し、このあと14バイトの文字ですよーというのを表している。
そこから続く『84.97.115.107.32.83.99.104.101.100.117.108.101.114』はASCIIコードで変換してくれ...
 

ほら『Task Scheduler』になった、なったろ?
 
 

じゃあサービスの監視をしましょう

さて、サービス状態と思われる、『svSvcOperatingState』の取りうる値はこうだ。
 

svSvcOperatingState OBJECT-TYPE
SYNTAX
INTEGER {
active(1),
continue-pending(2),
pause-pending(3),
paused(4)
}

 

これの変化を取ればいいと思うじゃん、普通にscコマンドとかだとこのまま1-4のステータス取れるし。
1なら正常、2-4は異常として管理したい、したいんだけど。。。
 
 

それがさあ、サービス止めると消えちゃうんだよねこのオブジェクト。
このOID叩いても、何も帰ってこないというかそんなOID見つからないって言われるんだ、冗談きついぜ。
 

当然『svSvcName』のほうも空っぽさ、仕方ないからステータスがUNKNOWNならサービスが止まっているという情けない監視になっちゃう。
 

この仕様はいただけない、いただけないよMicrosoft。改善提案はどこに出したらいいんだい?
それともLanMagnagerではそうするって決まってたのかしら、それはちょっと。。。
 
 

まあ当初の目的は達成されました、この仕組みで立派にWindowsサービスの監視はできますと。
多少不本意ですがUNKNOWN拾ってアラート上げましょう。
追記:サービスの状態が変更されてからSNMPで取れる値が変化するまで2-3分かかる、監視対象によっては少しネックか。
 

まあどうしても外部から見たいのって、タスクスケジューラとファイアーウォールくらいかな。
 
 


追記:
「.1.3.6.1.4.1.119.2.2.4.4.16.2.2.1.2.1.2」なら全サービスが登録されている事を発見、こっちがいいのかも知れない。
だがOIDがサービス名に依存してないので、構成変わるとOIDも変わりそうでこまる。
むむ。。
 
 

というスクリプトを書いた、wassr結構早くログ消えちゃうみたいだしね。
ちょっと乱暴かつ適当な切り貼りをしたんだけど、元がどこだったか。。MSのサイトは結構みたな。
 

仕組み的には自分の発言のRSSを取ってきて、メールにしてはてなダイアリーに投稿する、というもの。
RSSでは20件しか取れないのでヘビー発言ラー向けではないが。
 

とりあえず成功してるもよう⇒http://d.hatena.ne.jp/sawano_hat/
 
 

これをWindowsのタスクに登録して、12時の鐘と同時に起動すればOKさ。
 

[sourcecode language='sh']
# wassr timeline sender
# 2009/12/07

[String]$wassrapi = “http://api.wassr.jp/statuses/user_timeline.rss”
[String]$wassrid = “自分のID”

[String]$smtp = “送信に使うsmtpサーバ”
[String]$port = “smtpポート”
[String]$to = “はてなのメール投稿用アドレス”
[String]$from = “wassr2hatena@example.com”
[String]$user = “SMTP認証ユーザー”
[String]$pass = “SMTP認証パスワード”

# HTTPリクエスト
$webReq = [Net.HttpWebRequest]::Create($wassrapi + “?id=” + $wassrid)
$webRes = $webReq.GetResponse()
$sr = New-Object IO.StreamReader($webRes.GetResponseStream(), $webRes.ContentEncoding)

# レスポンスのRSSをXML型の変数に
[xml]$content = $sr.ReadToEnd()

# 読み込みクローズ
$sr.Close()
$webRes.Close()

# 昨日の日付作成
[DateTime]$yesterday = (get-date).adddays(-1)
$body = “http://wassr.jp/” + $wassrid + “`n`n”

# RSSから発言単位でFroeach
foreach ($item in $content.rss.channel.item){

# 発言の日時を取得
$itemdate = [DateTime]$item.pubDate

# 発言の日時と昨日の日付を比較して、等しければメールボディに
if ($itemdate.Date -eq $yesterday.Date) {
$body = $body + “:[" + $item.link + ":title=" + $itemdate.DateTime + "]:”
$body = $body + $item.title + “`n”
$body = $body + “`n”
}
}

#サブジェクト作成
[String]$subject = “Wassr ” + [String]$yesterday.Year + “/” + [String]$yesterday.Month + “/” + [String]$yesterday.Day + ” の発言”

#メール準備
$mail = New-Object Net.Mail.MailMessage($from, $to)
$mail.Subject = $subject
$mail.Body = $body
$mail.SubjectEncoding = [Text.Encoding]::GetEncoding(“ISO-2022-JP”)
$mail.BodyEncoding = [Text.Encoding]::GetEncoding(“ISO-2022-JP”)

#メール投稿
$sc = New-Object Net.Mail.SmtpClient($smtp)
$sc.port = $port
$sc.Credentials = New-Object Net.NetworkCredential($user, $pass)
$sc.Send($mail)
$mail.Dispose()
[/sourcecode]
 
 

はてなほったらかしだったんで、とりあえず役目ができてよかったよかった。
 


追記:折角だから日付のところをリンクにしよう。
修正した。

Hyper-V上のLinux(CentOS5.4)をいじり始めているのだが、時計がいちいち早いのが多少なりとも気に食わない。
ということで、有効そうな手段の一つである、カーネルのタイマー割りこみタイミングを1000HZ⇒100HZにしたいと思って再構築をすることにした。
前回の clock=pit だけではまだちょっと早いからね。
 
 

適当に見つくろったこちらの情報を参考に、カーネルを再構築。
>> CentOSのカーネル再構築 – adsaria mood
 

menuconfigのところで割り込みを100HZに変更して新しいカーネルとinitrdで起動してみた。
 

しかし・・・
 

画像:カーネルパニック

画像:カーネルパニック


 

カネパ(カーネルパニック)だと?
つーかHDD見えてないやん...これはinitrdの中身がまずいんだよなあ。
手順たらないとかかな?
 
 

原因探しはもうちょっと先でやろう、時刻ずれの応急処置としてはやっぱりntpdateだよな。
 
 
 

仕方なくホストOSのWindowsServer2008をNTPサーバに仕立て上げて5分おきにntpdateする。
これやりたくないんだけどなあ、5分おきのntpdate。。
 

WindowsServer2008 のNTPサーバ化は簡単、レジストリを少々いじる。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config\AnnounceFlags
5 に
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer\Enabled
1 に

こんだけ、レジストリを書き換えた後、w32timeを再起動すればOK。
 

少し注意なのは、Hyper-Vではゲストを立ち上げるとそこから見たローカルタイムはWindowsの時間になる。
⇒Windowsが日本時間(UTC+9)で動いてたら、ゲストの基準はそこになる。
ゲストは『UTC+9=UTC』と見てしまう。
という解釈なのかな?とにかくゲストのタイムゾーンを+9にしようもんなら、システムのタイムゾーンは外から見てUTC+18という時間になっちゃう。
 
 

それはいいんだけど、今度はntpdateで問い合わせたら、Windowsは普通にUTCを返す
 

ゲストの時間をUTCにしておく⇒ntpdateで問い合わせたら9時間ずれる。
ゲストの時間をUTC+9にしておく⇒ntpdateで問い合わせる前の時間が9時間ずれている。
 

というなかなか悲しい事態になる、なんじゃいこれは。。
どこに改善要望だしたらいいのか。。『ゲストのhwclockをUTCにしてください?』
ここに書いても拾えないだろうから何処かで受けてほしいなあ。。
 
 

で、結局後者で動かし中。
ntpdateは5分おきなので、起動の瞬間から5分程度だけUTC+18で動いてしまう。
 

ぐぬぬぬぬ。。。
 
 

そのうちカーネルのタイミングを100HZにして、ntpdを動かしたいなあ。
 


カーネルパニックの回避方が判った。
http://sawano.members.icraft.jp/wp/2010/02/07/1666.html
grub.confを編集してね。

カレンダー

2012年5月
« 6月    
 123456
78910111213
14151617181920
21222324252627
28293031