• 【IIS7】 MSC2008 セッションより (おまけ)

    ここでは QDIG という PHPアプリケーションを使い、WCAT6.3 を絡めつつ IIS7 の新しいキャッシュ機構を見ていくことにします。これ実際にぜひやってみてください。面白いですよ。(●^o^●)

    IIS7 はインストール済みである前提です。私は全モジュール入れてやりました。

    ●QDIG のダウンロードと展開

    まず QDIG を入手します。下記へ行ってZIP形式で入手しましょう。
    http://qdig.sourceforge.net/Qdig/Download

    c:\QDIG へ展開しましょう。

    ●WCAT6.3を入手し、インストールする

    WCAT は IIS.NET から入手します。
    WCat 6.3 (x86)
    ※x64版はこのリンクを辿って、右側のリンクから入手してくださいね。

    これは.msiなので、実行してインストールするだけです。ただ、英語なので気になる方はお手軽な環境でぜひ。

    ●WCATの準備

    WCATには元々のIIS7トップページ http://localhost ページに負荷をかけるサンプルがついています。c:\Program Files\WCAT\sample\scripts にある home.ubr と settings.ubr です。

    WCATを実行するバッチをここで提供しましょう。WCAT-GO.BATとでもしてデスクトップに作ってください。

    =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*v

    @REM [ダウンロードしたMSIをコントローラのマシンで実行します。]
    @REM WCatX86.msi を実行してインストール
    @REM Completeでインストールする
    @REM VistaだとUACメッセージ、許可する
    @REM Readme.txtが起動するので閉じる

    @REM [試験準備]
    @REM コントローラに管理者権限でログオン
    @REM WCATのパスへ移動
    cd "\Program Files\WCAT"

    @REM Cscript をデフォルトに。
    Cscript //H:Cscript
    pause

    @REM 初期設定
    @REM 空白をいれずに負荷を担当するクライアント名をカンマ区切りで指定する。
    @REM コントローラ自身も含まれる場合、localhostあるいはマシン名を追加しておく。
    Wcat.wsf -terminate -update -clients localhost

    @REM カウンタにアクセスできるようにIPC$に繋いでおく
    net use \\localhost\ipc$
    pause

    @REM [実行]
    @REM シナリオ(サンプル:home.ubr)と設定(サンプル:settings.ubr)
    Wcat.wsf -terminate -run -clients localhost -t .\samples\scripts\home.ubr -f .\samples\scripts\settings.ubr -s "localhost" -singleip -x
    pause

    =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

    WCAT-GO.BATを実行してください。注意!ここでマシンがリブートするかもしれません。そのつもりで。

    このままだとエラーになります。settings.ubr を少しいじりましょう。メモ帳で開きます。clientsとvirtualclientsの数字を有効にします。

    clients        = 10;
    virtualclients = 100;

    counters の上にコピー&ペーストしましょう。Example というところにこれは元々コメントアウトされて書いてあります。これで上書き保存します。もう一つ、テストが緩慢だといけないんで、home.ubr もちょっと duration のところを120秒から30秒に変えておきましょうか。

    で、WCAT-GO.BATを実行してください。コマンドプロンプトの二つ目が開いてlocalhost上での負荷試験が始まります。私が実行した仮想環境では下記のようになって終わりました。

    WCAT1

    Status 200 のところを見てください。406/sec となっています。まあこれがスループットだと乱暴に言いましょう。また、あとでWCATを使います。

    ●PHPの入手と展開

    これは前の投稿を見てください。PHP.NET から Non Thread-Safe Binary をゲットしましょう。c:\PHP5 にでも置きましょう。

    ●QDIGアプリケーションの設定

    今回のテストのために Default Web Site はここでバインドを ポート 80 じゃないものに変えておきましょう。

    IISマネージャでQDIGをアプリケーション設定しましょう。面倒な方はこうしましょう。
    cd \windows\system32\inetsrv
    appcmd add site /name:”QDIG” /bindings:http/*:80: /physicalPath:”c:\QDIG”
    これでSITE、APP、VDIRができますので。

    でもってIEで http://localhost へ行くと403.14エラー、当然ですな。何もファイルを指定しなかったので、ディレクトリそのものを開こうとしたのですが、許可されていないわけです。何も指定しない場合には index.php を見てほしいので、以下のようにします。

    IISマネージャを開いて、QDIGサイトをクリックします。既定のドキュメントをダブルクリック。追加でindex.phpを指定してOK。実はここで一番上にあるのがパフォーマンス上 重要です。上から毎回全部チェックしますので。厳密にやるなら必要ないものは削除しちゃいましょう。QDIGサイトだけに効きますのでここでやる分にはほかに影響ありません。

    さて、もう一回 IE で http://localhost へ行くと404.3 エラー。.phpをどう取り扱えばいいのか IIS7 がわからないと言ってます。IISマネージャを開いて、またQDIGサイトをクリックします。今度はハンドラマッピングをダブルクリックします。モジュールマップの追加を実行します。ここからは前の投稿と同じです。

    *.php / FastCgiModule / c:\PHP5\php-cgi.exe / なんでもいいですが、PHP5

    ダイアログが表示されるので はい。

    もう一回 IE で http://localhost へ行くとQDIGがちゃんと動いて、Empty Gallery! となるはずです。

    ●画像ファイルの追加

    なんでもいいのでいくつかの画像が入ったフォルダをc:\QDIGフォルダ下にコピーします。汎用的な例として、Vistaがあれば C:\Windows\Web\Wallpaper のフォルダごと使うといいでしょう。そうするとQDIGが検知して、トップページにWallpaperというフォルダができます。ちょっと画像が大きいんで、できればテストしている環境の解像度に収まるくらいのサイズの画像を集めるといいでしょう。

    ●WCATをQDIGに負荷をかけるように変更する

    では home.ubr を少しいじって、QDIGに負荷をかけるように変えてみましょう。折角のサンプルファイルはとっておきたいので home.ubr はコピーしておきましょう。その上で元の home.ubr を変更しましょう。ページをアクセスするシナリオの箇所は request のところです。で、QDIGのページを3パターンくらいURLを入手して貼り付けます。

    request
    {
         url         = "/index.php?Qwd=./Wallpaper&Qiv=none&Qis=M";
         statuscode  = 200;
    }

    request
    {
         url         = "/index.php?Qwd=./Wallpaper&Qif=img7.jpg&Qiv=none&Qis=M";
         statuscode  = 200;
    }

    request
    {
         url         = "/index.php?Qwd=./Wallpaper&Qif=img8.jpg&Qiv=none&Qis=M”;
         statuscode  = 200;
    }


    こんな感じです。WCAT-GO.BAT を実行すると、、、私の仮想環境ではこんな感じに。。。35/sec ですな。厳しい。。。

    WCAT2

    ●IIS7のキャッシュを試してみる

    IIS7には色々なキャッシュ機構がありますが、まずは一つめ。IISマネージャを開いて、QDIGサイトをクリックして、出力キャッシュを実行しましょう。で、追加。拡張子には .php を入れて、今回はユーザーモードキャッシュにチェックを入れましょう。そして、詳細設定ボタンを押します。で、QDIGの場合にはクエリ文字列を使って表示をしていますからクエリ文字列の変数の方を使いましょう。Qwd,Qif,Qiv,Qis と入力してOKしましょうもう一つOKで完了。さてどうなるか。。。

    WCAT3

    あらぁ 1872/sec までいっちゃいました。これ Thomas Deml にキャッシュ内容の確認方法は?って聞いたらメモリ内でやってて見る方法が用意されていないんだとか。。。「作って」って言っておきました。

    さて、次いってみましょう。まず、クエリ文字列のキャッシュは削除しましょう。また 追加、拡張子に.phpを入れます。今度はカーネル モード キャッシュいってみましょう。特に指定ありませんのでこれでOKします。さて。。。

    WCAT4

    はうぅ 2744/sec ですわ。。。すご。

    ちなみにカーネル モード キャッシュを使用している場合には netsh http show cachestate を試してみてください。キャッシュ内容が実際に入っているが確認できます。

    という具合に IIS7 のキャッシュはかなりパワフルです。そして上記は結構条件の悪い仮想環境での結果なので、物理環境 あるいは Disk I/Oのいい環境での数字を採るともっと差が出ることもあります。実際にMSCのデモマシンでやった時にももっと差が開き、最後の数字は5桁いってました。まあ画像のサイズがもっと800x600くらいのものだったこともあるでしょう。

    ただ、今回は画像集でやったのでキャッシュがファイルの変更通知レベルで問題ないのでぜひとも使いたいシナリオになりますが、厳密なトランザクションのページでは使えないでしょう。毎回結果違うでしょうし。でもWebサーバー上の多くがそういうオンラインアプリではないでしょうからうまく活用するとかなりスループットを稼げると思います。

    一度、MVPの方に圧縮は?と聞かれたことがあって、それも今度書こうと思うのですが、WCATのパラメータで転送量がないので上記と同じ手法が使えないんです。確か IIS6.0 Resource Kit に入っている古いバージョンだと転送量もあったと思うので今度それでやってみようかなと思っとります。

    ということで。。。( ^^) _旦~~

    = English =

    [IIS7] From my sesssion – the Microsoft Conference 2008 (Appendix)

    I didn’t have enough time to demo this one but it’s fun so I’ll show you here. For the English world, it’s a very famous demo from Bill Staples. But mine is step-by-step so anyone can really follow my steps here.

    ================

    I’d like to use an application called QDIG which uses PHP and also WCAT6.3 for stress test to see how caching in IIS7 works. Please try it out yourself once you understand the details. It’s really fun… and effective.

    I am assuming that IIS7 is already installed and I did this with all modules installed.

    - Downloading QDIG and extracting it

    First you have to get QDIG from the following as a ZIP archive.
    http://qdig.sourceforge.net/Qdig/Download

    Extract the ZIP file to c:\QDIG.

    - Getting WCAT6.3 and installing it

    You can get WCAT (FREE!) from IIS.NET. Go to the following link.
    WCat 6.3 (x86)
    * For x64 version, look for the link on the right after you go to the above URL.

    This is delivered as an .msi file. Execute it and the installation will start.

    - Prepare WCAT for testing

    WCAT includes a test scenario script to stress test the IIS7 top page – http://localhost/iisstart.htm  The sample scripts are placed in c:\Program Files\WCAT\sample\scripts. home.ubr and settings.ubr.

    I’ll share my .BAT file I use to execute WCAT test. Copy it as a text file and name it something like “WCAT-GO.BAT"

    =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*v

    @REM [Execute the downloaded .MSI file on the controller machine]
    @REM Execute WCatX86.msi or WCatX64.msi
    @REM Do a Complete Install
    @REM If it’s a Vista machine, there will be a UAC message so accept it
    @REM At the end the Readme.txt file will open in notepad so close that

    @REM [Prepare for testing]
    @REM Login to the controller using administrator user
    @REM Move to WCAT path 
    cd "\Program Files\WCAT"

    @REM [Make Cscript as default]
    Cscript //H:Cscript
    pause

    @REM [Initialization]
    @REM Don’t put spaces in between when you list the client machines for stress 
    @REM If the controller machine also participates, add localhost or machine name in the clients list
    Wcat.wsf -terminate -update -clients localhost

    @REM [Connect to IPC$ to access the performance counters]

    net use \\localhost\ipc$
    pause

    @REM [Execute test]
    @REM Scenario (Sample: home.ubr) and settings (Sample: settings.ubr)
    Wcat.wsf -terminate -run -clients localhost -t .\samples\scripts\home.ubr -f .\samples\scripts\settings.ubr -s "localhost" -singleip -x 
    pause

    =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

    Execute WCAT-GO.BAT. Be aware that the machine might be rebooted here…

    This will cause an error if you execute it as it is. Let’s touch settings.ubr a little bit. Open it with notepad. You have to activate the “clients” and “virtualclients” parameter.

    clients        = 10;
    virtualclients = 100;

    Copy and paste these lines above “counters”. These lines exist commented in the “Example” section. After you added these lines, overwrite the file. One more thing, the test will take a while if you use the default so let’s change the “duration” parameter in home.ubr, 120 to 30 seconds.

    OK, execute WCAT-GO.BAT. Another command prompt will open on the machine and the stress test will begin. On my virtual machine, the test ended with the following results.

    WCAT1

    Look at “Status 200” where the result is 406/sec. Very rough but let’s call this throughput in this test. We’ll use WCAT again later on.

    - Get PHP and deploy it

    Please look at the previous post for this. Get the Non Thread-Safe Binary from http://php.net. Extract it to   c:\PHP5.

    - Configure QDIG for testing

    Let’s change the bindings for the default web site something other than 80 so that the steps would be easier.

    Open IIS Manager and setup the QDIG application. If you want to do it simply then execute the following.
    cd \windows\system32\inetsrv
    appcmd add site /name:”QDIG” /bindings:http/*:80: /physicalPath:”c:\QDIG”
    This makes the SITE & APP & VDIR.

    OK so let’s go to http://localhost where you will get 403.14 error. Obviously. I didn’t specify any file so IIS7 tried to access the directory itself but it is not accessible by default. Actually we want index.php to be the default document so let’s set it up.

    Open IIS Manager and click the QDIG site. Double click default document and add index.php in the list. Putting it on top of the list means alot to performance so don’t forget that. IIS7 needs to check each one in the list until it hits something so if you want to be sure, delete all the others. This will effect only the QDIG application so don’t worry about the other applications.

    Alright, let’s try it again. Go to http://localhost where you’ll get 404.3 error this time. It means that IIS7 can’t understand how to treat “.php” files. Open IIS Manager again and click the QDIG web site. This time double click the handler mapping icon. Add a module map. From here it is the same with the previous post.

    *.php / FastCgiModule / c:\PHP5\php-cgi.exe / PHP5

    A dialog will open but move on.

    OK go to http://localhost again where you will see QDIG working properly showing "Empty Gallery!"

    - Adding some picture files

    QDIG is a picture gallery application so let's get something to show. Copy them under C:\QDIG folder. If you can't find anything, for the test use why don't you copy C:\Windows\Web\Wallpaper folder from a Vista machine. Then QDIG will pick them up and on the top page, you'll see "Wallpaper". The Vista wallpapers are quite large to fit in the default QDIG settings so it would be better if you use something more smaller like 800 x 600 or something.

    - Change WCAT scripts to stress test the QDIG application

    OK, let's open home.ubr and think how you can change it to stress QDIG. You always want to keep the original sample files right? So copy home.ubr and edit the original after that. The scenario is explained in the "request" section of the file. Access QDIG manually with the browser and get 3 URLs that actually works. Something like the following and replace it with the iisstart.htm and welcome.png stuff.

    request
    {
         url         = "/index.php?Qwd=./Wallpaper&Qiv=none&Qis=M";
         statuscode  = 200;
    }

    request
    {
         url         = "/index.php?Qwd=./Wallpaper&Qif=img7.jpg&Qiv=none&Qis=M";
         statuscode  = 200;
    }

    request
    {
         url         = "/index.php?Qwd=./Wallpaper&Qif=img8.jpg&Qiv=none&Qis=M”;
         statuscode  = 200;
    }

    Alright! Execute WCAT-GO.BAT and this is what I got in my virtual machine. 35/sec...pretty heavy.

    WCAT2

    - Try IIS7 caching

    IIS7 has several types of caches and let's try one of them first. Open IIS Manager, click the QDIG site again, execute Output Cache. Add one, input ".php" for extensions and check the User Mode cache this time. Go to the details dialog. QDIG uses a querystring mechanism so let's try out the querystring one. Input "Qwd,Qif,Qiv,Qis" as you can see from what you got above when you changed the scenario and OK. Let's see what happens...

    WCAT3

    Wow! 1872/sec it says... I asked someone in the IIS team how to see what's in the cache when you use this option but the answer was there is no way for this one since it's inside memory. I hope they make something to let us do it :-)

    OK, let's move on. First delete the querystring cache setting. Add one again, input ".php" and let's try the kernel mode one this time. Nothing else to specify so push OK, let's go...

    WCAT4

    Gosh, 2744/sec is quite something...

    By the way, if you want to check inside the cache, this one you can do it by "netsh http show cachestate". You'll actually be able to see that these URLs are cached.

    As you can see, the caching mechanisms in IIS7 are VERY powerful. The numbers you have seen here are from a virtual machine with a normal HDD so if it's a physical machine or you have a better Disk I/O environment, this will go up naturally. The machines I actually used at the Microsoft Conference(Launch event in Japan) showed a 5 digit figure in the last test. Well the pictures were smaller - actually some shots I took at the Asahiyama Zoo - like 800 x 600 pixel so this made it lighter too.

    This example was a picture gallery so if the cache uses the file system change event to cache, this will be a perfect scenario to use the cache. But if you have a very strict transactional application, obviously you can't use it. But you saw that the setting worked by application, so if you design how you put your pages well, you can get the most out of this feature because not all the pages will be that strict. If you have something like a blog page, it will be a perfect candidate to cache.

    I was once asked by a MVP, what about compression? So I'd like to try that one out and write something in the near future but the problem is WCAT6.3 doesn't show content bytes returned so I can't use the same method to do this. I think the old one in the IIS6.0 Resource Kit worked different so maybe that is one way to do it so I'm gonna try and will write something if I get an interesting result.

    So see you again... :-) Have fun!!

  • 【IIS7】 メディア配信サーバーとして

    Tech・Ed セッションの第四部はメディア配信を取り上げました。

    新しい IIS のメディア配信の全貌を知りたい場合には 再生側が Silverlight アプリケーションになるのでそこから全部知りたいということであれば、ReMIX の大西と私の共同セッションを見てしまうことをお薦めします。

    http://web-cache.stream.ne.jp/www09/remix09/ondemand.html
    ここで見れますのでA-3をクリックしてください。

    資料が欲しい場合には下記からどうぞ。
    http://www.microsoft.com/japan/events/remix/2009/conference_a3.aspx

    ということで、Tech・Edではサーバーの配信側のメカニズムだけを私は説明しています。もちろん、大西もセッションを持っていましたが、ビデオ配信部分は Tech・Ed ではそれほど取り上げてなかったと思います。

    ○Smooth Streaming

    まずは新しい IIS の HTTPベースのストリーミングの話をしています。この原理についてはこのブログで結構書いたのでもうそれほど説明が要らないかと思います。IISへのセットアップ的には IIS Media Services 2.0が必要になります。

    Media タグの投稿を読んでいただければ詳しく書いています。
    http://blogs.technet.com/hirookun/archive/tags/Media/default.aspx

    基本的にメディア配信には2つの壁が存在することだけ説明しておきます。

    一つ目は サーバーの負荷です。何かしらの方法で負荷分散を行なう必要があるのですが、オンデマンドの場合は元サーバーをファームする方法論がとれます。もうコンテンツもファイルになっているはずなのでそれを複数台に配置すれば済むことになるので従来の Windows Mediaサービスでもそれほど苦労せずにできると思います。しかし、Smooth Streamingでは微小な HTTP 通信の連続でビデオ配信を実現しているので途上でキャッシュされた部分は元サーバーにアクセスしにいかないでも済むためここでもサーバー負荷を下げるメカニズムが実現します。

    もう一つはクライアントの状況の変化です。インターネットへの接続状況もそうですが、CPUの負荷状況なんかも影響を受けます。その時その時の最適なビデオ配信ビットレートで届けることができれば飛躍的に映像のスムーズさを確保できることになります。今までのビデオ配信を見ていると基本的に複数のビットレートを用意するか、一つのビットレートでバッファリングを堪えるかという状況をよく見てきました。

    スムーズストリーミングはHTTP通信を採用することで前者を細切れの配信にし、再生するSilverlightアプリケーション側から状況に応じたビットレートのリクエストをすることでその時に最適なビットレートのビデオを再生できるようにしています。ただし、実際のファイルはビットレートごとに一つで、Smooth Streaming のモジュールが Silverlight アプリケーションのリクエストに応じて指定部分を切り出してレスポンスを返す役割を果たします。

    Smooth Streaming は以下から入手できますし、ページの下の方まで行っていただくと Japanese もありますからね。
    http://www.iis.net/extensions/SmoothStreaming

    ○Live Smooth Streaming

    こっちはまさにライブ中継用で、IIS Media Services 3.0をインストールするものです。どういう構成物で成り立っているかの質問が一番多いのでその絵を入れるとこんな感じです。

    LSS

    Smooth Streamingのメカニズムを生かすためには複数のビットレートでエンコードされたビデオソースが必要になってくるわけですが、ライブの場合はそれらを同時にエンコードしなければいけません。そのためにエンコード用のハードウェアを使用するのが現在の構成であり、ReMIX や Tech・Ed の基調講演を実現している構成でもあります。これらのイベントの基調講演の配信では Inlet 社の Spinnaker S7000 という機械を使っており、4つのビットレートを同時エンコードする仕掛けです。

    http://www.inlethd.com/?q=products/spinnaker
    Download our Smooth Streaming White Paper

    いつまで公開しているかわからないですが、下記の URL で Tech・Ed の基調講演は流されています。
    http://teched09.ds.ipcasting.jp/

    ここで利用している Silverlight のプレイヤーはシミュレーター機構のついたサンプルに手を加えたもので今どのビットレートで見ているかがわかるような試験的なものになっているので動きがよくわかると思います。4つのビットレートはここのケースでは 2.5M、1.5M、1M、512K にしているわけですね。

    ちょうどこのストリーミングを再生開始して思うことは Smooth Streaming の特徴でもあるんですが、最初はスムーズにスタートするように低めのビットレートから行きます。なので、見ている体感としては最初画像が悪目なところからだんだんよりクリアな映像に移行していくため、あたかもカメラでオートフォーカスが合っていくようなそんな感触を受けるかもしれません。回線の状況がよければその後ずっと最高ビットレートで張り付くので継続的にきれいな映像を見続けることができます。

    実はこの Live Smooth Streaming はまだ Beta です。もうすぐ製品版にあがる予定になっています。

    ○まとめ

    ということでここまでの何回かの投稿で 私のTech・Edセッションでカバーした内容を取り上げました。実際の手順などは書きませんでしたが、頑張ってビデオを用意しますのでそれをお待ちください。どこに上げるかはちょっと考え中です。

    いずれにしても TechNet の IIS TechCenter にはリンクが入ると思うので IIS TechCenter をご愛顧いただきますよう、お願い申し上げます。この TechCenter は米国には存在しないもので、完全に和製というか日本スタッフだけで作っているものになります。なので迅速に対応させていただきますので悪いところ、いいところなんでも結構ですからぜひお声を頂戴できればと思っております。ページの右上からフィードバックできるようになっていますのでその UI をご利用ください。

    あるいは直接 私にメールをいただいても構いません。日本のスタッフ一同 お役に立てるように頑張ります。

    あと用意していた資料スライドは ここのブログ左で写真紹介している3冊の本のご紹介になっていました。

    ○参考リンク集

    参考ブログ(Silverlight 3.0、エンコーディング に関する情報)
    http://blogs.msdn.com/aonishi

    TechNet IIS TechCenter
    http://technet.microsoft.com/iis

    本家 IIS 技術情報サイト
    http://iis.net

    TechNet/MSDN IIS7 フォーラム
    http://social.technet.microsoft.com/forums/ja-JP/iis7ja/threads/
    http://social.msdn.microsoft.com/forums/ja-JP/iis7ja/threads/


    ということで Tech・Ed セッションの振り返りはこれにて終了です。

    Tech・Ed のテクニカルセッションのビデオ公開は例年よりは早く進んでいるみたいなので、実際のオンデマンドが見れる日も近いかもしれません。と少し予告しておきます。(^^♪

  • 【仮想】Hyper-V Serverを使ったこんな環境を作りたい(3)

    それでは Step (3) です。今度は Windows Vista クライアントか Windows 7 クライアント上での作業です。
    元々あるマシンでもいいですし、別のPC上の仮想環境でもいいと思います。


    (03) 管理用PC への Hyper-V リモート管理ツールのインストール

    ・入手
    まずはリモート管理ツールを入手する必要があります。

    マイクロソフト ダウンロードセンターへ行って入手することになりますが、下記で直接リンクを置きます。
    http://www.microsoft.com/japan/downloads

    Windows Vista の場合(下記のいずれかの一つあるいはペアが必要です。)

    Windows Vista 用の Hyper-V リモート管理更新プログラム (KB952627)
    Windows Vista Service Pack 2 管理ツール for Hyper-V 用更新プログラム (KB970203)

    Windows Vista for x64-based Systems 用の Hyper-V リモート管理更新プログラム (KB952627)
    Windows Vista Service Pack 2 管理ツール for Hyper-V for x64-based Systems 用更新プログラム (KB970203)

    Windows 7 の場合

    Windows 7 用のリモート サーバー管理ツール
    ページの下方でプラットフォーム別にダウンロード可能です。64ビットか32ビットかで判断してダウンロードください。

    ★双方とも Edition に限定がありますのでよくお読みください。

    Tips

    なんで Windows Vista 用と Windows 7 用がこのように分かれているか、説明しておきます。そもそも Windows Server をリモート管理するためのツールとして RSAT(Remote Server Administration Tool、2003系では Adminpak という名称だったもの)が用意されています。これらは例えば Active Directory の管理ツールなどを含み、通常サーバー上で行う操作をクライアントでリモート接続して行うための GUI ツール群です。Windows Vista、Windows Server 2008、Hyper-V V1.0の出荷タイミングの関係で Windows Vista 用の RSAT には Hyper-V の管理ツールが含まれていませんでした。故に Hyper-V の管理ツールは別で提供されています。一方 Windows 7 用では RSAT に Hyper-V 管理も含んでいるので RSAT をご利用いただくことになります。

    - ダウンロードした .msu ファイルの実行

    これらのツールは .msu というファイル形式で提供されており、更新プログラムです。インストールを実行しただけでは実際のセットアップは行われません。Windows の機能として追加されるだけです。

    - Hyper-V ツールのインストール

    コントロールパネル - プログラムと機能 - Windows の機能の有効化または無効化 を実行します。
    リモートサーバー管理ツール というツリーが増えており、役割管理ツール - Hyper-V ツール をチェックします。
    インストールを実行します。

    ここまでで Step(3) は終了です。

    メモ

    気の早い方はもう 管理用PC から Microsoft Hyper-V Server 2008 R2 への接続を試されたと思います。エラーで繋がりませんよね?両方 同じ ADドメインに参加している場合にはこの時点でもう繋がります。Workgroup 環境の場合、結構苦労するので、実は私が推奨しているのが、HVRemote.wsf というツールです。

    【仮想化】 ワークグループ環境の Hyper-V 環境をリモートから管理(続き)
    http://blogs.technet.com/hirookun/archive/2009/02/09/3199000.aspx

    こういう投稿を以前に書いたのですが、MSDN Code Gallery に 仮想化機能の開発チームにいる John Howard 氏が作成したツールがあり、それが HVRemote です。バージョンアップを重ねてきているので毎回下記から最新を入手することをお薦めします。

    Hyper-V Remote Management Configuration Utility
    http://code.msdn.microsoft.com/HVRemote/Release/ProjectReleases.aspx?ReleaseId=3084

    仕様が少し変わってきている可能性もあるので一緒に Documentation もダウンロードすることもお薦めしておきます。

  • 【IIS7】 Active Server Pages のトレースをとりたいと思ったら

    IIS7 には失敗した要求トレースという素晴らしい機能があります。もし ASP を延命させたい、打鍵をしてアプリをテストしていくのに何か記録を残せないのか、動かしている間に何かエラーログを残せないかと思うことになるでしょう。

    そういう時は以下を参照するといいでしょう。

    失敗した要求トレースを使用して Classic ASP エラーをトラブルシューティングする
    http://technet.microsoft.com/ja-jp/library/ee155452.aspx

    また、ちょうどこの階層のところに従来の ASP (本社では Classic ASP と呼んでいます。)に関する記事がいくつかあるので全部目を通しておくことをお勧めしておきます。

    ひとつ前の投稿でアプリケーションプールの設定を変更する前にエラーが出てましたのでそれをもう一回出る環境にしましょう。ちなみに私のこの環境は Windows 7 だけれどもサーバー接続用の IIS マネージャーをインストールしてありますので Windows 7 でいきなり試した人は画面ショットが違うと思います。便利なので入れておくことを薦めますが、ちょっと Tips があって、これは拡張をしてくれるものなので、元々 IIS マネージャーをインストールしておく必要がありますので。

    インターネット インフォメーション サービス (IIS) 7 マネージャー
    http://www.microsoft.com/downloads/details.aspx?FamilyID=32c54c37-7530-4fc0-bd20-177a3e5330b7&displayLang=ja


    1. 失敗した要求トレースを有効にする

    IISマネージャーを開く。面倒な人は inetmgr とスタートの検索で入力して Enter キーで起動できます。

    まずはサイトレベルで有効にする必要があるので Default Web Site を選択している状態で右の操作メニューから 構成 - 失敗した要求トレースをクリックします。

    「有効にする」のチェックを入れます。これで機能自身はオンになります。

    なお、ファイル数が多くなるとディスクを圧迫するので少なく既定値はしてありますが、リクエストが非常に多い状態では循環してしまい、欲しいエラーが記録に残らないかもしれないのでそこは適宜 数を設定してください。

    2. トレースを取得する条件を設定する

    これはアプリケーションレベルで設定できますので App1 とかを選びます。

    失敗した要求トレースの規則 というアイコンを探して実行します。

    右の操作メニューから 追加 を実行します。
    ここでは既定の値のままいきましょう。

    image

    トレースするエラーは HTTP エラー 全部という意味の 200-999 と設定しておきましょうか。

    最後に ASP のプロバイダーだけにしておくことにしましょう。

    image

    さてと。下記が出る状態でリクエストを何回かしましょう。

    image

    トレースはどこに書かれるかというと、以下のフォルダーです。

    C:\inetpub\logs\FailedReqLogFiles

    でもって、サイト単位でフォルダーがきられます。普通はそのままであれば W3SVC1 になります。

    image

    うーん Desciption 内が URL エンコードされてる。。。

    ちょっと他の便利なサイトをお借りしてと。。。

    http://www.tagindex.com/cgi-lib/encode/url.cgi

    %83v%83%8D%83o%83C%83_%81[%82%AA%8C%A9%82%C2%82%A9%82%E8%82%DC%82%B9%82%F1%81B%90%B3%82%B5%82%AD%83C%83%93%83X%83g%81[%83%8B%82%B3%82%EA%82%C4%82%A2%82%C8%82%A2%89%C2%94\%90%AB%82%AA%82%A0%82%E8%82%DC%82%B7%81B

    プロバイダーが見つかりません。正しくインストールされていない可能性があります。

    だとわかります。

    view trace のリンクをクリックすると IIS 内で行われたイベントが全部列挙されている Request Details のページ内でのエラー発生箇所に飛びます。


    この失敗した要求トレース機能は 管理サービスが無いとダメかもしれません。入れておきましょう。で、Windows 7 だと開始しておく必要があるので サービス で状態を確認しておきましょう。

    基本的にこの失敗した要求トレースは色々なことに使えます。たとえば、実行時間を単に成功リクエスト(200)で見るようなことでも使えます。便利ですよ!

  • 【IIS7】 Smooth Streaming FAQ

    Alex Zambelli さんのブログ
    http://alexzambelli.com/blog/


    原文:
    Smooth Streaming FAQ


    (独自翻訳 by 奥主:正確な表現は原文を参照ください。)

    この FAQ はできるだけ最新にアップデートしていくのでブックマークしていただいて、時折 更新されたかチェックいただけると幸いです。

    Q: Smooth Streaming ってなんですか?
    A: Smooth Streaming は HTTPベース アダプティブストリーミングのマイクロソフトの実装です。

    Q: アダプティブストリーミングって何ですか?
    A: 従来のメディアストリーミングのように動作しながらも実は HTTP プログレッシブダウンロードを活用しているハイブリッドなコンテンツ配信方法です。要約すると、サーバーからクライアントへの連続した小刻みなHTTPダウンロードです。従って、一つの長いダウンロードでもなく、固定ビットレートのストリームでもありません。コンテンツは複数のビットレートでエンコードされているのが普通で、とても小さな「塊」の連続として送信されます。クライアント側ではネットワークの帯域状況、CPUの性能に応じて、動的に要求するビットレートを違うもの(異なるサイズ、異なる画質)に切り替えることができます。これにより、常にその時点での最良のビデオ品質を受信することが可能になります。

    Q: マイクロソフトはこの技術をどのように展開するのですか?新しいプラグインなどをインストールしないといけないんでしょうか?
    A:
    これは Smooth Streaming を使って何をしようとしているかによります。

    • エンドユーザーの方であれば - 皆さんは Silverlight 2 以降がマシンにインストールされていれば OK です。
    • コンテンツ制作をなさっている方であれば – エンコードを行うソフトウェアのアップグレードが必要です。MP4ベースの新しい Smooth Streaming ファイル形式をサポートしている必要があります。現在は  Expression Encoder 2 SP1 だけになりますが、他の製品のサポートも順次行われます。
    • ホスティング事業者 あるいは CDN を運営されている方であれば – Windows Server 2008 サーバーに  Smooth Streaming extension for IIS7 をインストールする必要があります。このコンポーネントにより IIS7 が Smooth Streaming 資産のクライアント向けサービスを行えるようになります。
    • Silverlight を使用した Web 開発者の方であれば - Smooth Streaming プレイバック機能をアプリケーションに付加する必要があります。これは Expression Encoder 2 SP1 に含まれている Silverlight 2 player templates を使用いただくか、 Open Video Player for Silverlight を実装するか、 MediaStreamSource ベースのアダプティブストリーミングを一から開発するかのいずれかになります。

    Q: Smooth Streaming が実際に動作しているのをどこかで見れないのですか?
    A:
    SmoothHD.com にアクセスしてみてください。オンデマンドの Smooth Streaming のデモがご覧いただけます。高速回線(3MBps以上)であれば最高 720p HD のビデオコンテンツをご覧いただけます。Smooth Streaming の再生のための前提条件は Silverlight 2 のブラウザープラグインがマシンにインストールされていることだけです。

    Q: Smooth Streaming の出荷時期はいつごろですか?
    A:
    Smooth Streaming extension for IIS7 のベータ版は既に download 可能です。このバージョンの Smooth Streaming extension はオンデマンドストリーミングだけサポートします。最終版のこの IIS7 extension は 2009年 Q2 に出荷予定となります。
    注意:UIも含めて日本語で出荷する時期を指していません。

    Q: Smooth Streaming は Windows メディアサービスや Windows メディアプレイヤーと互換性があるのですか?
    A:
    いいえ、ありません。 Smooth Streaming をサービスするには Windows Server 2008 と IIS7 が必要です。また、  Smooth Streaming 再生は Silverlight アプリケーションでのみ可能になっています。

    Q: このストリーミングの技術は Windows メディア MBR (multiple bit rate) ストリーミングと何が違うのですか?
    A:
    Windows メディアサービスはクライアントにコンテンツを配信する上で RTSP や WMS HTTP のような従来のストリーミングプロトコルを使用します。これらのプロトコルで配信されたコンテンツはエンコードされた固定のビットレートでストリーミングされ、ネットワークの状態に合わせてタイムリーにかつ動的に変動させることが困難です。つまり、利用帯域が減少しているようなネットワークの状態を把握した時には既に遅しであり、逆にネットワークの状態が回復した際にもよりよい品質に回復させることもできません。

    一方で Smooth Streaming では、細切れにした多数の HTTP ダウンロードをベースにしています。そのためクライアントはダウンロードのスピードを常に評価しつつ 順次ダウンロードするビットレートを途中でも指定できるのでネットワークの状態に適した配信を要求することができます。さらに、インターネットは元来 HTTP 通信を行うためのインフラとして発展してきたので Smooth Streaming は特別なキャッシュやプロキシーの機構・機材を必要としないので既に存在しているホスティング事業者やCDNサービスを提供している場合でも今までの仕組みを利用することができます。このことでスケーラビリティ、アクセス上の制限(ファイアウォールを気にしない)そして、リーチを最大化することが可能になります。

    Q: Smooth Streaming は実際にビデオファイルを数千に分割するのですか?
    A:
    いいえ、ディスク上で物理的に分割をするのではありません。Smooth Streaming ファイル形式に対応したエンコーダーは内部的に連続した断片を一つにまとめた MP4 形式のファイル (ビットレート毎に1つのファイル) である *.ismv あるいは *.isma の拡張子のついた実体と XML 形式のマニフェストになっている *.ism と *.ismc として出力します。Smooth Streaming の最小セットは従って、3つのファイルになります。普通にエンコードされた場合には通常 6-8 のファイルが含まれることになります。
    Smooth Streaming クライアントが IIS7 サーバーにファイル内の時間軸上のどの部分かを指定してリクエストした際にMP4ファイルは仮想的にサーバーで断片(塊)に分割され、独立したファイルとして通信されます。このことで、クライアントのリクエストは(経路上で)キャッシュされ、スケーラビリティの確保と通信の最適化が行われます。

    Q: Smooth Streaming を使うとすべてのお客様に HD ビデオを提供することが保証されるのでしょうか?
    A:
    いいえ。Smooth Streaming は奇跡を起こせるわけではありません。HTTP 配信を拡張して活用する仕組みに過ぎません。HD ビデオの配信は引き続き利用されるコーデック(VC-1, H.264 など)の効率に依存します。例えば、ほとんどのビデオを取り扱っている専門家もご同意いただけると思いますが、720p/24 ビデオは 2Mbps 以下の回線では満足できる品質レベルで配信することは難しいです。ということで、2 Mbps のエンコードされたビデオは当然リアルタイムで配信するには 2 Mbps のネットワーク帯域が必要ということになります。そしてこれを IIS7 や Silverlight が劇的に変化させることはできません。そもそも 既知の方法で 2 Mbps データを リアルタイム配信するのに 1 Mbps で済む、そんな方法があるならもう既にみんな使ってますよね、その方法を。:)

    Smooth Streaming がしてくれるのは、そうではなくて、コンテンツ提供者が HD ビデオを 受信することができる(十分なネットワーク帯域とCPU能力がある)お客様に対して、ストリーミング全体の品質を犠牲にすることなく、一番低い品質に合わせるのではなく、最適な配信です。言い換えると、Smooth Streaming でコンテンツを提供する方は、聴衆の多くがどのビットレートが最適かを推測する必要がもう無いということです。代わりに幅広いビットレートの種類を用意してエンコードしておけば、クライアント側の処理で最適なものを動的に選択し、スムーズな再生を提供できます。

    Q: マイクロソフトは以前にもアダプティブストリーミングを実装しなかったのでしょうか?
    A:
    マイクロソフトは NBC Olympics 2008 のビデオサイトでアダプティブストリーミングのプロトタイプを開発しました。Smooth Streaming はマイクロソフトがそれを製品化したものです。

    Q: Move Networks 社 はどうなんでしょう? Smooth Streaming は Move Networks アダプティブストリーミングのプラグインを置き換えるものなんでしょうか?
    A:
    いいえ。プラットフォームを提供しているマイクロソフトはアダプティブストリーミングの方式としてSilverlightプラットフォームを提供しており、パートナー様が実際には Silverlight が接続する先のサーバーの配信方式は選択できるようになっています。Move Networks 社が 2008 年に 発表した のはプレイヤーのコンポーネントとして Silverlight を採用いただけることです。しかし、サーバーの配信方式は既存のテクノロジーを使用しており、 Smooth Streaming を使用しているわけではありません。

    John Bocharov の言葉を借りると、“私の視点では、我々が  Smooth Streaming で提供しているのはプラットフォームテクノロジーであり、一方で Move Networks 社は革新的な Silverlight のプラットフォームを活用いただいているサービス ソリューション プロバイダーです。 私はこの関係を競合するサービスとは思っていません。目的とするところは、Silverlight へ ストリーミングメディアを提供する素晴らしいサービスを提供する エコシステム の創造であって、Move Networks 社とそのサービスは現在も今後も、引き続き強力で 尊敬すべきこのエリアのプレイヤーです。

    Q: Smooth Streaming は新しいコーデックに基づいているんでしょうか?
    A:
    いいえ。Smooth Streaming は業界標準である VC-1 や H.264 コーデック、WMA や AAC 音楽コーデックををサポートしています。

    Q: 既存のコンテンツをすべて再エンコードしないと Smooth Streaming で使用できないのでしょうか?
    A:
    残念ですが、その通りです。 Smooth Streaming は標準的なコーデックを使用するとは言え、異なるビットレートのファイル間で正確なタイムスライスの一致、あるいは GOP や エントリーポイントヘッダーが要求されます。従って、オリジナルに対してコンテンツを Smooth Streaming 用に再エンコードすることを推奨しています。

    Q: なんで Smooth Streaming ファイルを所有している MP4 プレイヤーで再生できないんでしょうか。MP4ベースなのではないのですか?
    A:
    Smooth Streaming ファイル、そして通信書式は特定の MP4 ボックス構造であり、ライブ配信も考慮に入れたムービーフラグメントを多く使います。ISO ベースメディアファイル書式の規定では、(MP4 ファイル書式の規定)様々の書式オプションを可能にし、展開時の柔軟性を提供しています。これにより、すべての開発者やコンテンツ提供者は MP4 実装におけるすべての規約事項を取り入れているわけではありません。結果、今 お使いの特定の MP4プレイヤーが すべての MP4 ムービーフラグメント("moof"、"mdat")に関する規約を実装しているわけではなく、特に Smooth Streaming のMP4 ボックス構造に対応しているわけではありません。

    さらに、SMPTE より、MP4 Registration Authority にて、VC-1 が MP4 コンテナのストレージとして正式に承認されました。MP4 ファイル形式は 大きく H.264 ビデオと AAC 音声コーデックに紐づいており、多くの MP4 プレイヤーはこれらのコーデックのみを受け付けるようになっています。最後に、現時点では WMA Standard と Professional 音声コーデックはどの標準団体からもまだ MP4 内に格納する場合のコーデックとして正式な承認を得られていないのでお使いの特定プラットフォームでサポートされていない可能性もあります。

    Q: Smooth Streaming は H.264/AAC をサポートしているんでしょうか?
    A:
    はい。しかし、H.264/AAC でエンコードされた Smooth Streaming コンテンツを Silverlight クライアントに配信するには Silverlight 3 が必要です。H.264/AAC サポートは Silverlight 3 の新しい再生機能になります。

    Q: Smooth Streaming は DRM コンテンツの保護をサポートするんでしょうか?
    A:
    はい。書式自身は既に PlayReady DRM サポートを含んでいます。機能自身は 3rd パーティのエンコードを行うソフトウェアが PlayReady AES ストリーミング暗号化サポートを製品として実装することで実現していきます。