syg_hira's tech-work memo

某人材サービス会社の情報共有インフラ担当のおぼえがきです。MicrosoftのEnterprise製品多め。

BOOTMGR is missing

Hyper-Vゲストが突然 BOOTMGR is missing を出して起動しなくなった。
宅鯖の仮想マシンをAzureにアップロードしようと、差分仮想ディスク(VHDX)を別VHDに結合していたら、なにかやってしまったらしい。

ネットでいろいろ調べたが、この手順で成功。
BOOTMGR is missing in Windows Server 2008 R2

Windows Server 2008 R2だが、Windows 7 インストールディスクの自動修復で回復させると一発だった。

KingSpec SATA-Mini PCIe EeePC 900/901/903/S101 MLC SSD 128GB performance - Crystal Disk Mark

f:id:syg_hira:20140109145504j:plain

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   162.848 MB/s
          Sequential Write :    85.056 MB/s
         Random Read 512KB :   140.574 MB/s
        Random Write 512KB :    40.697 MB/s
    Random Read 4KB (QD=1) :    13.717 MB/s [  3348.8 IOPS]
   Random Write 4KB (QD=1) :     1.057 MB/s [   258.0 IOPS]
   Random Read 4KB (QD=32) :    14.584 MB/s [  3560.5 IOPS]
  Random Write 4KB (QD=32) :     0.629 MB/s [   153.6 IOPS]

  Test : 1000 MB [H: 0.1% (0.1/119.2 GB)] (x5)
  Date : 2014/01/09 14:55:57
    OS : Windows 8 Professional [6.2 Build 9200] (x64)
  

Equipments.
SSD:KingSpec SATA-Mini PCIe EeePC 900/901/903/S101専用 MLC SSD 128GB

KingSpec SATA-Mini PCIe EeePC 900/901/903/S101専用 MLC SSD 128GB

KingSpec SATA-Mini PCIe EeePC 900/901/903/S101専用 MLC SSD 128GB

MiniPCIe to SATA2 converter:RunCore Mountig Bracket


SATA2 to USB3.0 Converter:RATOC SA25-TR1-U3BK

How to convert the virtual achine from VMWare to Hyper-V

MS製品を担いでる会社なのに、なぜか検証環境をVMWare Player 6で作っていたメンバーから、技術検証用の仮想マシンを貰った。
うちのチームは仮想環境はHyper-V2.0で統一してるので、仮想マシンをコンバート。
一般的なvmdk to VHDコンバーターは、MBRのコンバートができないらしく、起動させるまで一苦労。
手順をおぼえがき。

  1. VMDKをVHDにコンバート。最終的にStarWind V2V Converterを使ったが、 VMDK2VHD、NHCなど、どれでも問題ないと思われる。
  2. TestDiskで、ブートセクタを再作成する。→参考Rebuilding NTFS boot sector using Testdisk

SAMSUNG SSD PM830 128GB performance - Crystal Disk Mark

f:id:syg_hira:20131020151546j:plain

-----------------------------------------------------------------------
CrystalDiskMark 3.0.2 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :   460.104 MB/s
          Sequential Write :   324.035 MB/s
         Random Read 512KB :   325.450 MB/s
        Random Write 512KB :   271.777 MB/s
    Random Read 4KB (QD=1) :    19.925 MB/s [  4864.6 IOPS]
   Random Write 4KB (QD=1) :    81.172 MB/s [ 19817.4 IOPS]
   Random Read 4KB (QD=32) :   272.388 MB/s [ 66500.9 IOPS]
  Random Write 4KB (QD=32) :   113.765 MB/s [ 27774.6 IOPS]

  Test : 1000 MB [C: 58.2% (69.0/118.7 GB)] (x5)
  Date : 2013/10/20 15:11:02
    OS : Windows 8 Professional [6.2 Build 9200] (x64)

TOSHIBA EXCERIA Type 1 performance - Crystal Disk Mark

遠くのデータセンターへの出張を控え、少しでも荷物を軽量化するために、作業環境をThinkpad X1 Carbonに移行。
Hyper-V仮想マシンをコピーしてきたら256GBあるはずのSSDがだいぶいっぱいになったので、少しでもストレージの拡張を図るべく、SDカードを追加。
せっかくだから、一番速そうなものを。

ネットで見たら、SanDisk Extreme Proも速いらしいのだけど、良く分からないので東芝のを買ってみた。

普通、こういうものはデジタル一眼カメラと一緒に使うのだろうな。

NTFS クラスタサイズ64KBでフォーマットし直す。
仮想マシンの乗せてみようかとも思ってるので、速度を図ってみる。
f:id:syg_hira:20130728211004p:plain
公称速度よりちょっと遅いな・・・
仮想マシン乗せるのはちょっと厳しいかな・・・

計測環境
PC Lenovo Thinkpad X1 Carbon
メディアスロットに接続
格納データなし。

Time sync settings for windows server on Hyper-V (Updated)

一般に、仮想マシン上でのActive Directoryの実行が推奨されない理由として、時刻同期の問題がある。

が、同じプロジェクトで「仮想マシン上で時刻同期できないのでADは動かない」と言い切ったバカがいたので、理由と対処法を再度整理した。

(こういう浅はかな見識を大きな声でキャッチーに言うやつ、システム設計行程を混乱させるので害でしかない・・・ほんと詩んでほしい)

Hyper-Vの時刻同期機能

Hyper-V仮想環境で、仮想マシン統合サービスを導入すると、「時刻の同期」機能が利用できるようになる。
他の仮想化基盤でも、仮想ホストと仮想マシンの時刻同期を仕組みがある。

ゲスト時刻が遅れる場合

仮想マシンの設定で、統合サービスの「時刻の同期」を有効にすると、

ゲスト時刻 < 5秒 < ホスト時刻

となったときに、5秒以上遅れたゲストの時刻を、ホストの時刻に修正する。

仮想マシンのタイマーをエミュレートしているCPUが高負荷になると、仮想マシン内でタイマーが遅れ、仮想マシンの時刻が遅れる(らしい)。

ゲスト時刻が進む場合

ゲスト時刻がホスト時刻を追い越した場合は、統合サービスによる時刻の同期は行われない。
(時刻同期機能に関するTechnet「Hyper-V 仮想化環境におけるゲスト OS の時刻同期について」より。実機検証はしていません)

  • どうせOSの時刻同期機能を使うからと、ハードウェアクロックがいい加減だったり、
  • 古い機器を転用して検証環境を作っていたりすると、システムボードのCMOSバッテリーが切れていたり

ホストのハードウェアクロックが遅れるが、エミュレートしている仮想マシンのクロックは遅れない・・・本当にそんなことが起こるのかわからないが。
ホストOSのw32timeのタイムプロバイダがハードウェアクロックを参照する場合は、統合サービスによる時刻同期が行われなくなる。

Active Directory環境で時刻がずれる影響

Kerberosによる統合Windows環境を実行する場合は、Active Directoryサーバと、クライアントの時刻の不一致は、Kerberos認証の不具合を引き起こす。
実際問題、本当に、ゲスト時刻が進む、なんてことが起こる可能性はとても低いと思う。
けれど、PDCエミュレータとの時刻不一致が起きてしまったら、その影響は甚大です。

対処法=Windows Timeによる外部NTPとの時刻同期の有効化

ハードウェアクロックに依存しない時刻同期構成となっていれば、問題は発生しない。
実際、時刻ずれによるKerberos認証の不具合が問題になるような「まともな環境」で、NTPホストが利用できないことはないでしょう。

1.ゲストのドメインコントローラ(PDCエミュレータ)の時刻同期の構成

  • 統合サービスの「時刻の同期」を無効にする。
  • 外部タイムソースを指定する。
  • 自分を「信頼できるタイムソース」に設定する。

外部タイムソースを利用しない設定の場合は、Windows Time Serviceが停止している可能性があるので、スタートアップを「手動」に設定し、起動しておく。
以下の例では、OS標準の「time.windows.com」を、タイムソースに指定する。

sc.exe config w32time start= demand
sc.exe start w32time
w32tm.exe /config /manualpeerlist:time.windows.com /syncfromf
lags:manual /reliable:yes /update
w32tm.exe /resync

"start=" と "demand" の間にスペースが必要。トリッキーなので注意。

2.メンバーサーバの時刻同期の構成

  • 統合サービスの「時刻の同期」を無効にする。
  • ドメインに参加すれば、OSが勝手に、Active DirectoryPDCエミュレータと時刻同期するようになる。