SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 8月, 2010

Exchange Server 2010 SP1 をインストールしてみました

leave a comment

先日、Exchange Server 2010 SP1 の提供が開始されましたのでインストールをしてみました。
Exchange Server 2010 のインストールについては自習書が提供されていますので、自習書に書かれていない箇所だけを
記載していきたいと思います。

1. インストール編 (Word ファイル、11.2 MB)

Exchange Server 2010 SP1 は SP1 のインストーラーを使うことで、スリップストリームインストールができますので、
Non SP → SP1 という順番でインストールをしなくても、最初から SP1 をインストールすることができます。
エッジトランスポートサーバーでしか試せていませんが、SP1 Beta → SP1 にアップデートすることもできました。

基本的な内容は、以前 SP1 Beta の時に検証した内容と変わらなさそうです。
Beta の時は英語だったメッセージが日本語になっていたりはしますが。

Exchange Server 2010 Non SP と SP 1 Beta の比較

?

■Exchange Server 2010 SP1 / 言語パックのダウンロード先

SP1 と SP1 対応の言語パックのダウンロード先は以下になります。
SP1 に対応した言語パックを使用します。

Microsoft Exchange Server 2010 SP1
Exchange 2010 SP1 言語パック バンドル
Exchange Server 2010 SP1 UM 言語パック

?

■Windows コンポーネントのインストール

Exchange Server 2010 SP1 をインストールするためには、いくつかの役割 / 機能をインストールする必要があります。
Exchange Server 2010 では、ServerManagercmd ?ip を使用してコマンドベースでインストールしていました。
Exchange Server 2010 SP1 では、インストーラーで役割 / 機能をインストールできるようになっています。
# インストールメディアに Scripts ディレクトリに XML ファイルが格納されているので従来通り ServerManagercmd で
  インストールすることも可能です。

image image

前提条件の確認時に必要となる役割 / 機能がインストールされるのですが、再起動が必要になるので何回か作業を繰り返す必要があります。
image?

[Net.Tcp Port Sharing Service] のサービスの自動化もこの中で実施してくれます。

image

?

■分散型アクセス許可セキュリティ モデル

SP1 で新たに追加されたセキュリティ モデルになります。
Exchange の権限と AD の権限が分散されたセキュリティモデルが作られるようですね。

ドメインコントローラーに Exchange Server 2010 をインストールする場合、分散型アクセス許可セキュリティ モデルは
使用することができません。
image?image

?

■Filter Pack のインストール

Exchange 2010 SP1 Beta までは、[2007 Office system コンバータ: Microsoft フィルタ パック] を
インストールする必要がありましたが SP1 RTM では、 [Microsoft Office 2010 フィルタ パック] を
インストールするように変更されています。

image

?

■前提モジュールのインストール

SP1 Beta とは前提モジュールが変わっているようですね。

image

以下の前提モジュールのインストールが必要となるようです。
# Windows Server 2008 R2 にインストールする場合の前提モジュールになります。

Windows Update ではインストールされませんので個別にダウンロードしてインストールをする必要があります。

KB982867 – WCF: Enable WebHeader settings on the RST/SCT
アプリケーションを実行すると応答が複数の AppDomain の .NET Framework 2. 0 ベースのアプリケーションを停止します。
# このリンク、インストーラーで表示されている URL が間違っています…。
 linkid=3052kbid=979744 ではなく、linkid=3052&kbid=979744 が正しいです。
KB983440 – Win7 rollup package (PR for QFE 810219)
[FIX、Microsoft .NET Framework 2. 0 Service Pack 2 に基づいており、Web サービスの呼び出しを非同期に呼び出すアプリケーション、Windows 7 を実行しているコンピューター上の例外をスローします。

?

?

?

ここまで準備が完了するとインストールを実施することができます。
image

2GB のメモリを割り当てている環境で、一時間ほどでインストールが完了しました。

image

SP1 Beta と基本的な流れは同じですが、前提パッチ等は変更があったみたいですね。

機能に関しては別途確認したいと思います。

Written by Masayuki.Ozawa

8月 29th, 2010 at 4:28 pm

Posted in Exchange

Windows Server 2008 R2 SP1 Beta の仮想マシンの Reservation 設定について

leave a comment

[T2-401]? Effective Hyper-V R2 SP1 ? 詳説 Dynamic Memory ? で Dynamic Memory が有効になっている、
仮想マシンで Reservation の設定ができるという話がありました。

この設定は WMI で実施する必要があるとのことでしたので、先日の投稿で設定用のスクリプトを作成してみました。

WMI で仮想マシンに Reservation を設定

?

この設定をした時の動作を軽く検証してみました。

?

■仮想マシンの Reservation の設定箇所

Hyper-V 上の仮想マシンの構成情報は XML ファイルに記載されています。

image

WMI で [rootVirtualization] 名前空間の [Msvm_MemorySettingData] クラスから情報を参照することもできます。

以下の情報は WMI で取得したメモリの情報になります。

Address ?
AllocationUnits MB
AutomaticAllocation True
AutomaticDeallocation True
Caption メモリ
Connection ?
ConsumerVisibility ?
Description Microsoft Virtual Machine メモリの設定です。
DeviceID ?
DeviceIDFormat ?
DynamicMemoryEnabled True
ElementName メモリ
HostResource ?
InstanceID Microsoft:A4A7173B-7DA6-42B8-8EE1-4DA2849E91184764334d-e001-4176-82ee-5594ec9b530e
IsVirtualized True
Limit 65536
MappingBehavior ?
OtherResourceType ?
Parent ?
PoolID 15129609-B465-4916-AA13-0CF4B109ADB0
Reservation 1024
ResourceSubType Microsoft Virtual Machine Memory
ResourceType 4
TargetMemoryBuffer 20
VirtualQuantity 1024
Weight 5000

?

初期状態では、[Reservation][VirtualQuantity (スタートアップ RAM)] と同一の設定になっています。
また、Reservation を設定するためには、[DynamicMemoryEnabled][True (有効)] に設定する必要があります。
DynamicMemory を有効にしていない状態では、WMI でReservation の値を設定しても設定が保存されません。
また、仮想マシンが起動している状態では変更ができないので設定をするときには仮想マシンを停止状態にする必要があります。

仮想マシンの構成ファイルは [Hyper-V のサービス (Hyper-V Virtual Machine Management)] でファイルにロックがされていますので、
XML ファイルを直接変更して Reservation の設定をすることができないようです。
そのため、WMI を使用して設定を変更する必要があるようです。
# サービスを停止すればファイルを直接変更することが可能です。
image
image

?

?

■Reservation を有効にした際の現在のメモリの遷移

Reservation を設定していない仮想マシンは、初回起動時にはスタートアップ RAM のメモリで起動され、必要に応じてメモリは
拡張されますが、最小ののメモリ設定としてはスタートアップ RAM の値になります。
# 今回は 1,024 MB をスタートアップ RAM として設定しています。

image

image?

パフォーマンスモニタでメモリの使用量を確認するとメモリも一定のサイズで遷移しています。
# アプリケーションは何も実行していない状態で稼働させています。
image

Reservation を 784 MB に設定して、メモリの遷移を見てみたいと思います。
起動時は、スタートアップ RAM の値で起動されるという動作は変わりません。

image

そのまま起動した状態にししばらくすると現在のメモリが下がります。
image

パフォーマンスモニタを見ていると、[Memory Remove Operations] が発生し、[Physical Memory]
減っていることが確認できます。
image

Reservation の設定が働き、スタートアップ RAM 以下までメモリが減っていることが確認できますね。
Reservation を 8 に設定するとどうなるかも試してみました。
# 設定の最小値は 8 になるようです。
image
image

解放できるところまで解放しているようですね。

スタートアップ RAM と Reservation の使い分けをどうするかはまだ考えていませんが、設定して動作するところまで確認してみました。

Written by Masayuki.Ozawa

8月 29th, 2010 at 4:17 am

Posted in Hyper-V

Tech・Ed Japan 2010 で見たツールの紹介

leave a comment

Tech・Ed Japan 2010 でいくつか便利そうなツールがデモで使われていましたので、その紹介を。

■CPU Stress

Windows 2000 Server のリソースキットに含まれているツールになります。
CPUStress.exe という実行ファイルです。
image?

?

このツールは、CPU に負荷をかけるツールになります。

実行ボタンはなく、ツールを実行すると直ぐに負荷が発生します。
4 Thread まで実行できますので、複数 CPU に対しても負荷をかけることができます。
image

こちらの画像は、ゲスト OS 上で CPU Stress を実行して、CPU が張り付いた状態にしています。

image

?

手前に表示されているタスクマネージャーがホスト OS 上の状態になるのですが、ゲスト OS で CPU が張り付いている状態ですが、
ホスト OS のタスクマネージャーの CPU の使用率には、ゲスト OS の CPU の使用率の状態は含まれません。

この状態を簡単に確認できるためのツールとして紹介されていました。

私はリソースキットのメディアを持っているので使用できたのですが、2000 のリソースキットが Microsoft のダウンロードサイトから
見当らなかったので、メディア持っていない方は使えないかもしれないです…。

?

?

■PAL v2.0 (Beta)

パフォーマンスモニタのログを手軽に解析できるツールとして紹介されていました。

CodePlex から入手することが可能です。

Performance Analysis of Logs (PAL) Tool

image

MSI 形式で提供されていますので、ダウンロードして実行するとインストールが開始されます。

image image image
image image

PAL では .NET Framework 3.5 の Chart Control を使用しているため、インストールをしていない状況ではログファイルの解析時に
エラーが発生しますので、実行する環境では事前にインストールをしておきます。
# 日本語版の Chart Control で実行できました。

Microsoft Chart Controls for Microsoft .NET Framework 3.5

image

サンプルのパフォーマンスログファイル (SamplePerformonLog.blg) が入っていますのでどんなものかを使ってみたいと思った場合も
簡単に試すことができます。

実行はウィザード形式になっており、英語の GUI ですが手軽に使えます。
image image image
image image image
image image

セッションでも言われていたのですが、レポートの作成は PowerShell のコマンドで実行されているようで、後でもう一度同じレポートを
作りたいといった時も簡単に再実行することが可能です。
image

実行が完了するとレポートが表示されます。
# レポートは実行したユーザーの [My DocumentsPAL Reports] の下に保存されますので、再度見たいときはこちらにある
  ファイルを開きます。

image image image

かなりグラフィカルなレポートが出力されるので結構便利そうです。
# レポート英語ですが…。CodePlex なので頑張れば日本語にもできるのでしょうけど私の英語力では夢のまた夢。

?

?

■VMMap

仮想メモリの確認ツールとして紹介されていました。
こちらは Sysinternals のツールになります。
# 日本語版の Sysinternals からはリンクが見当たらず、英語版の Sysinternals からダウンロードしました。

VMMap v2.62

image?

単一の Exe ファイルになっているのでインストール不要で使用できます。
# Sysinternals のツール恒例の初回起動時に使用許諾のダイアログは出ますが。
image

実行するとプロセスの選択ダイアログが表示されますので、どのプロセスの情報を見るか選びます。
image

そうすると対象プロセスの仮想メモリの状態がグラフィカルに表示されます。

image

?

?

■RAMMap

こちらも Sysinternals のツールです。
先ほどの VMMap はプロセス単位でしたが、こちらは実行しているコンピューターのメモリの情報を表示します。

RAMMap v1.1

image

VMMap と同じで単一の EXE となっています。
# こちらも、Sysinternals のツール恒例の初回起動時に使用許諾のダイアログは出ます。
image

こちらもグラフィカルにメモリの使用量を見ることができます。
# AWE があるので SQL Server で AWE を設定した場合のメモリ使用量も見れるのかな?

image

?

後、以下のようなツールも紹介されていました。
# 実行するのに少し手間取りそうなのでツールの紹介までで。

?

■PowerShell Management Library for Hyper-V

セッション内で [pshyperv] と言われていたものになります。

CodePlex で公開されていますのでソースを見ることも可能です。
このような Hyper-V の操作系のスクリプトが公開されていると勉強に役立つので大助かりです。

PowerShell Management Library for Hyper-V

image

?

?

■SQL Azure Migration Wizard

SQL Azure へデータ移行をするための方法の一つとして紹介されていました。

こちらも CodePlex で公開されています。
# CodePlex なので Microsoft のサポート対象外の移行ツールということになりますね。

SQL Azure Migration Wizard v3.3.6

image

以下のパターンの移行ができるようです。

  1. SQL Server to SQL Azure
  2. SQL Azure to SQL Server
  3. SQL Azure to SQL Azure

SQL Azure へデータを移行するというだけでなく、SQL Azure からデータを移行するというパターンもできるので、
SQL Azure 上にあるデータをオンプレミスの SQL Server でも使いたいというときにも利用することが可能です。

?

セッションはテクノロジの紹介だけでなく、こういうツールの情報も見つけることができますのでとても勉強になりますね。

Written by Masayuki.Ozawa

8月 28th, 2010 at 2:01 pm

Posted in ツール

WMI で仮想マシンに Reservation を設定

leave a comment

昨日の Tech・Ed Japan 2010 の [T2-401]? Effective Hyper-V R2 SP1 ? 詳説 Dynamic Memory ? のセッション内で
以下のお話がありました。

  • WMI のクラスにプロパティが追加されている。
  • Reservation プロパティは WMI でしか設定できない。(GUI では設定できない)
  • 安定稼働してきたときに最低限確保しておくメモリ。Startup RAM より小さく設定できる。

早速、PowerShell で WMI を使用してこのプロパティを設定するためのスクリプトを書いてみました。

# 設定をする仮想マシン
$VMName = "RemoteFX"

# Reservation として設定するメモリサイズ (MB)
$MemReserve = 256

# 仮想マシンの管理サービス用のオブジェクト作成 (設定を Commit するのに使用)
$VM_Service = Get-WmiObject -namespace rootvirtualization -Class Msvm_VirtualSystemManagementService

# 対象の仮想マシンのベース情報を取得 (設定変更を Commit するにはこのクラスの PATH を指定する)
$VMC = Get-WmiObject -Namespace rootVirtualization -Class Msvm_ComputerSystem -Filter "ElementName=’$($VMName)’"

# 仮想マシンの設定情報を取得
# SettingType = 3 は現在の仮想マシンの構成情報 SnapShot が存在すると 5 の情報が増える
$VMS = Get-WmiObject -Namespace rootVirtualization -Query "Associators of {$VMC}? Where ResultClass=Msvm_VirtualSystemSettingData" `
| Where-Object {$_.SettingType -eq 3}

# 仮想マシンのメモリ設定情報の取得
$VMMS = Get-WmiObject -Namespace rootVirtualization -Query "Associators of {$VMS}? Where ResultClass=Msvm_MemorySettingData"

# 変更前のメモリ情報
Write-Output "Before : $($VMS.ElementName) , $($VMMS.DynamicMemoryEnabled) , $($VMMS.Reservation)"

# Reservation を設定するためには、DynamicMemoryEnabled を True にする必要がある。
$VMMS.DynamicMemoryEnabled = $true
$VMMS.Reservation = $MemReserve

# 変更後のメモリ情報
Write-Output "After : $($VMS.ElementName) , $($VMMS.DynamicMemoryEnabled) , $($VMMS.Reservation)"

# 変更を確定
$Result = $VM_Service.ModifyVirtualSystemResources($VMC.__PATH, $VMMS.psbase.Gettext(1))

?

WMI でプロパティを設定する場合、[ModifyVirtualSystemResources] を設定しないと変更は確定されないですね。
また、[ModifyVirtualSystemResources] が True でないと Reservation の設定が反映されないようです。

今回、初めて WMI で仮想マシンを触ったのでこの辺がわからず、四苦八苦しました。
開発はもうあまり携わらいのですが、このようなスクリプトをもっと可読性と汎用性を高めて作成するようになりたいものです。
# 今回も見づらいコードですよね。

Written by Masayuki.Ozawa

8月 28th, 2010 at 8:27 am

Posted in Hyper-V

Tech・Ed Japan 2010 3 日目 参加レポート

leave a comment

早いもので今日で Tech Ed も最終日です。

今日の参加セッションはこちら。

[本日の参加セッション]

  1. [T2-402] あなたの Hyper-V 環境を最?限使い切る?法 ? Hyper-V 設定にまつわる Tips ?
  2. [T4-301] プライベート クラウドでの SQL Server の展開 ? Hyper-V との Better Together ?
  3. [T2-302] プライベート クラウド構築講座 ? 無償ツール System Center Virtual Machine Manager Self-Service Portal 2.0 と共に ?
  4. [H-312] System Center Operations Manager 2007 R2 のユーザー視点による監視
  5. [T2-401]? Effective Hyper-V R2 SP1 ? 詳説 Dynamic Memory ?
  6. [TH-502] Windows Azure & クラウド All Wrap-up
    ?

■[T2-402] あなたの Hyper-V 環境を最?限使い切る?法 ? Hyper-V 設定にまつわる Tips ?

現場の声や様々な試験結果
Hyper-V 設定にまつわる Tips

現場の声

こういう声が多くなってきた
Hyper-V R2? はかなりいいので R1 と比較するまでもない
R2 はパフォーマンスがかなりいい
ビジネスクリティカルなアプリケーションを利用する上で、画期的なプラットフォーム

Live Migration のパフォーマンス

12 台の仮想マシンを順次移行
Live Migration 中の Transaction / sec は落ちていない

?

SQL Server 利用時の SLAT の効果

TPC-E 相当の負荷をかけた時のスケーラビリティ

CPU オーバーコミットなしではリニアなスループット
Hyper-V 1.0 では、オーバーコミットなしでもリニアなスループットは得られなかった。

?

vSphere と Hyoer-V の環境の比較

電源管理の面では、Hyper-V の方が消費電力が少し低い値になっている。
→ 2008 R2 の電源管理機能

どちらが目立って早いという事はなかった。

?

VDI 環境の比較

TS / RDS は Hyper-V は比較的得意なワークロードである

Hyper-V は 2003 の TS より RDS の方が効率よく動く
?

?

Hyper-V 設定にまつわる Tips

21 の Tips

サーバーの基本リソース

CPU / Memory / Disk / Network

タスクマネージャーは親パーティションの情報
%processor Time を使わないで Hyper-V hypervisor 関連のカウンタを使ってゲストの情報を把握

CPU Stress (2000 のリソキのツール) でゲスト OS に負荷をかける
→ 2008 R2 でも実行可能

?

プロセッサ比率を検討

リソースがどうなっているかを把握する。
高負荷なサーバーを同じサーバー上にすべて置くのか??

軽いワークロードのサーバーでも コアに対して 4:1 ぐらいまでに抑える。
→ そういえば 1 コア 4 仮想マシンてどこかで聞いたことがあった記憶が…。

統合サービス

統合サービスはワークロードパフォーマンス向上につながるので必ずインストールする
2008 R2 ではインストールされた状態になる。
SP1 では更新されるので常に新しいバージョンをインストールする。

エミュレーションデバイスを使用する場合はインストールしないという選択肢も
→ テスト用でとりあえずサポート外の OS を動かしたいというとき

Linux 用の統合サービスの最新は v2.1 (2010/6 Release)
→ Download Center から入手できる

データ交換 / マウスをホスト ゲスト間で移動する機能が入っていない?
→ Citrix の Satori プロジェクトでホスト/ゲスト間のマウスの移動用のコンポーネントを入手できる。

modinfo vmbus で動いているかを確認できる。

?

Windows Server 2008 R2 をゲストで使用

OS で仮想環境を意識し出したのは 2008 から。

?

SLAT 対応マシンを使用

AMD : Rapid Virtualization Indexing (別名:NPT)
Intel : Extended Pages Tables

NPT の資料が充実している

KB2264080 を SP1 以前のバージョンは適用しておく

?

コンソール

使っていない場合は閉じるまたは最小化
開いたままにしない。

?

ビデオドライバ

可能であれば標準 VGA

親パーティション

ホストマシンでは Hyper-V 以外は実行しない
# 極力ではなく、しない!!

?

ディスクレスポンス

ディスクレスポンスタイムが大事なのは、仮想環境も同様
計測に使用するカウンタは物理環境と同じ。

ディスクの場所がどこであっても <10ms になっていれば OK

SSD はやはり早い。

R2 でもパススルーが一番早い

スナップショットは簡易バックアップには便利だが、更新をトラックするオーバーヘッドになる。
→スナップショットは差分ディスク。

スナップショットツリーのパフォーマンスは R1 より R2 の方が早い

パススルーが使えない場合、固定ディスクを使用
→可変と違いディスクサイズを確保してしまうのは注意

?

メディアマウント

メディアマウントを有効にしておくとポーリングしてしまうので、つかってなければなしにする。

?

親パーティションのメモリ

最低でも 512MB は確保

SP1 で親パーティションのメモリ設定が入る予定 (レジストリで設定)

?

メモリのキャパプラ

もともとの使用状況を把握する。

?

ネットワーク

Output Queue Length に注視。
→キューにパケットが載っていない状態にする。
リソース モニター / xPerf を使用して診断

LT で発表された方がいるらしいので後日資料の公開に期待!!!

レガシアダプターは控える。
→ PXE ブートしたい場合はレガシアダプターが必要にある。

R2 の NIC 機能を使用する
VMQ / チムニー オフロード

PAL v2.0 (Beta)

パフォーマンスカウンターログ (blg) を簡単に分析できるツール
→ codeplex から入手可能

MS の方が開発したツール

実際には裏で PowerShell が実際されている。
→グラフには ChartControl が使われているらしい。

?

まとめ

例外もあるが、Hyper-V でさまざまなワークロードを仮想化することが現実解になってきている。
R2 / R2 SP1 を検討

?

■[T4-301] プライベート クラウドでの SQL Server の展開 ? Hyper-V との Better Together ?

論理プロセッサに対する仮想プロセッサ数の比率は、最大 1:8 までサポートされる。

SQL Server の仮想化シナリオ

1 台の仮想マシンに複数のコンポーネントを配置
物理レイヤーから分離されることで可搬性が向上
ファイルベースのため、バックアップや移動、展開が可能

最大 4 VP までとなる。

各コンポーネントごとに 1 台の仮想マシンへ配置することで、柔軟なリソース割り当てが可能に

?

仮想化環境における高可用性の実現

仮想化環境上での冗長構成
ミラーリング
クラスター
上記の組み合わせ (複雑になるので推奨はしない)

?

クラスター
仮想環境では、iSCSI が必須

ミラーリング
通常の物理環境の構成と同じ
物理環境と同様に、3 つの動作モードをサポート

同期モードでは、高スループットのネットワークが必要

?

ミラーリングの仮想環境の考慮点

VHD の形式は、固定 /? パススルー / iSCSI いずれも選択可能

仮想マシンの配置
各ロールを物理的に別のサーバーで構成し、物理障害点を分散する

?

ゲスト クラスタリング

ゲスト OS 間のクラスタリング
iSCSI ストレージが必要
→高信頼なストレージ装置の利用を推奨

用途別に複数のネットワークアダプターを構成
→物理的に NIC を分ける。

SQL Server 2008 をクラスタで使用する場合は、スリップストリームインストールしないと SKU のエラーが発生する。

ホスト OS のネットワーク障害でゲスト クラスタリングがフェールオーバーしないという現象が発生。
Private NW が使えない場合は Public NW でハートビートが送信される。

?

Public Network の障害検知

ホスト OS の障害がゲスト OS で検知できない。
OpsMgr でゲスト OS で 1129 が発生したらフェールオーバーさせる。

?

ホストクラスタリング

ホスト OS 間のクラスタリング

SQL Server の仮想サーバーをクラスタリソースとして登録し、CSV (1CSV / 複数仮想マシン) を使用して LiveMigration
Quick Migration (1 仮想マシン / 1 LUN) も可能

障害発生による、非計画的な移動
→ 逆のノードでゲスト OS が再起動される。
  サーバーの再起動が発生するので、ゲストクラスタと比較すると起動に時間がかかる。

OS 障害に対しては、ハートビート設定を有効化、かつ自動開始を有効化することで、フェールオーバーする

Public Network の障害検知には、SCVMM を使用する。
→ OpsMgr で 1129 を監視

?

LiveMigration のデモ

SQL を実行している最中に、LiveMigration を実施
接続が途切れることなく、処理が実行される。

?

SQL Server のバックアップ

ホスト OS レベルのバックアップ
仮想マシンを物理的なファイルとしてバックアップ
(VSS 対応かつ統合サービスインストール時)
SCDPM ホスト エージェントを使用

仮想マシンごとのバックアップ取得になるので、領域コストとについては考慮が必要
バックアップ取得時点までのバックアップとなる。
→ 必要に応じて、SQL Server のバックアップと組み合わせる

ゲスト OS レベルのバックアップ
SQL Server の機能を使ってバックアップ
SCDPM ゲスト エージェントを使用
DB 単位でバックアップが可能

NetApp の SnapManager for SQL Server を使用したデモ
SQL Server の VSSと連携している。
ストレージの Snapshot と連動しているのでバックアップを高速に実行できる。
フルバックアップ後にログバックアップというオプションがある。

どの時点までのデータをリストアするためのバックアップを取得するか。

データベースバックアップを戻す時は、稼働していた時の SQL Server のパッチレベルバージョンにすること。

?

ストレージの推奨構成

可変、および差分 VHD はオーバーヘッドが大きく、推奨されない。
パフォーマンスを求めるの出れば、パススルー / iSCSI を検討する。

?

パフォーマンス

CPU , ディスク I/O に負荷がかかるワークロードは、オーバーヘッドが小さく 数 % ですんでいる。
ネットワークへの負荷がかかるワークロードはオーバーヘッドが高くなる。

仮想化による展開

可搬性が高い
LiveMigrationにより容易に別環境に移動できる。

仮想環境でも冗長構成をサポート
仮想環境特有の考慮店は留意が必要 (ネットワーク障害等の対応)

パフォーマンスについては、ネットワークのオーバーヘッドが高いので注意が必要

?

?

■[T2-302] プライベート クラウド構築講座 ? 無償ツール System Center Virtual Machine Manager Self-Service Portal 2.0 と共に ?

パブリックなクラウドから学べることを学び、プライベートなクラウド化を推進していこう!
→ 自動化による無駄なコストの削減

仮想化は要素技術
→ 仮想化することはゴールではない。
  本来は、自動化 > 仮想化 (自動化はクラウドでは標準な考え)

マイクロソフトは「作れるクラウド」 を提供
自社内にクラウドを作る
クラウド環境を作ってサービス提供

一般的な要件

製品や技術ではなくソリューションの話。
要素技術の進化も重要

Windows Intune もクラウドを意識している技術

?

Solution Accelerators シリーズ

MAP
MDT
OVMST
MOF

?

作れるクラウドツール

自社内にクラウドを作る
DDTK-E → DIT-SC → SSP 2.0
インストーラーのバイナリで提供

クラウド環境を作ってサービス提供
DDTK-H or DDTK
ソースコードで提供

?

プライベート クラウド利用イメージ

仮想マシンを作るときのスタートは、ある部門の IT 担当者からのポータルの申請
申請された要求をIT 管理者が承認

?

VMM SSP 2.0

SCVMM に VMM SSP 2.0 のポータルで追加でインストールする。

SSP 2.0 の操作は、ワークフローになっている
IT 部門 と 業務システムオーナーで役割が別れる。

  1. 申請 (利用者)
    Register New Business Unit
    Business Unit Name : システム開発部
    Business Unit Code : 部署コード
    Contact Email Address 😕 担当者アドレス
    Priority : 優先度
    Justification : 申請理由
    Administrators : 管理者アカウント
  2. 承認 (システム管理者)
    Requests から 申請された内容を Approve
  3. リソースの申請 (利用者)
    Create Infrastructure Request
    Memory / Storage の要求を指定
  4. サービス / サービスロール申請 (利用者)
    Service and Service Roles
    社内課金 (チャージ先の部署コード / 予約しておきたいリソース)
    管理者情報

    サービスロールの追加
    マシン数と使用するネットワーク
    ロードバランシングの有無

  5. テンプレートの選択 (利用者)
    使用したい仮想マシンのテンプレートを選択
  6. 申請完了 (利用者)
    申請完了
  7. 承認 (システム管理者)
    申請された内容を確認し承認
    # 必ず申請内容を確認をする必要がある

WCF / MSMQ / WF / PowerShell 2.0 / IIS / SQL Server で構成されている。
→ ロジックは SQL Server の中にかなり書き込まれている。
  ストアドも使われているので、書き換えると動きを変更することも可能
  チャージのクリーンアップは SQL Server Agent のジョブで定義されている。

ダッシュボードを使うには SharePoint が必要になる。
→ WSS 3.0 / MOSS 2007
  SPS 2010 は現在対応していない
  英語 OS でないと、ダッシュボードがうまく動かなかったとのこと

SSP の事例は既に World Wide で 2 件あがっている

?

利用シナリオ

ツールキットを使ってプール化
申請
承認
利用開始

?

プロビジョニングの機能は Action XML で拡張できる。
→ デフォルトでは Master Action XML という変更不可のものが用意されている。(コピーして使えるように)
  上記設定では、自動起動が有効になっている。
? Action XML となっているが、SQL Server のデータとして格納されている。

?

SSP 2.0 の Network の名称は SCVMM の名称と合わせるようにする。(自動で合わせてはくれない)

SetOwnerShip
→所有者を自動的に設定する。
 ロール名が直接記入されているので、SCVMM のロール名と合わせる
 (現在は英語版のため、ロール名は英語の SCVMM のロール名 (Self Service ~) になっている)

VMM SSP 2.0 に表示されるテンプレートは SCVMM で設定されているテンプレートがベースとなる

?

用語とコンセプト

共有リソースプール
Network
Storage
Compute

  1. Business Unit (組織) を作成
  2. Infrastructure (プロジェクト A)を作成
  3. Service (~システム用サーバー) を作成
  4. Service Role (仮想マシン) を作成

?

コスト計算

サービスを立ち上げる = リソース予約 = 予約コスト発生
(Infrastructure で設定する概算が上限値となる)

課金のパターンは適切になっているかをきちんと検証する。
→チャージ金額が想定したものとあっているか。

?

DDTK for Hosters

Web サービス接続が可能なクライアントから DDTK の機能を呼び出すことで、さまざまなサービスを検討可能
System Center とアプリケーションをつなぐ窓口となれる。

世界で 60 件ほど事例があがっている。

?

理想のプライベートクラウドに向けてツールを有効に活用する。

?

■[H-312] System Center Operations Manager 2007 R2 のユーザー視点による監視

代理トランザクションの設定

監視対象には、エージェントは導入せずに、代理ノード (エージェントをインストールしている監視コンピューター) を経由して、
監視を実施する。

Web の巡回や、DB no接続と言ったアプリケーションレベルの確認を実施するためのハンズオン。

[メモ]
分散アプリケーションのコンポーネントの「遠近」は Perspactive (パースペクティブ) を日本語化で直訳されてしまったとのこと。
眺望や、俯瞰というように他の事象を広く見るというような意味合いで取ればよい。

?

■[T2-401]? Effective Hyper-V R2 SP1 ? 詳説 Dynamic Memory ?

来年の前半に SP1 が提供開始
Beta から確実に変わる個所が 1 点あるらしい。

Dynamic Memory

いままでは、固定で割り当て
固定な割り当ては無駄ができる。
あいているメモリを集めれば、もっとたくさんの VM が実行できるのでは。

そこで Dynamic Memory

起動時は最小限のメモリで起動して、不足したらメモリを追加、メモリが余ったら回収

?

これはメモリのオーバーコミットか ?

おおむね YES ではあるが、
ゲスト OS から実装メモリ量が動的に変化する
ゲスト OS から見える利用可能メモリは実際の物理メモリに対応している

?

Dynamic Memory の前に仮想メモリをおさらい

プロセスごとに専用の仮想アドレス空間を割り当てる。
→ 自分専用のメモリ空間が持てる

VMMap (Sysinternal) というツールで仮想メモリを確認

ページとフレームを対応させる
→ ページング機構

ページの共有
→同じフレームを複数のプロセス間で共有

仮想環境は二段階のアドレス変換
→ GVA → GPA → SPA
  SLAT は二段階のアドレス変換のオーバーヘッドを減らす。

Hyper-V はオーバーコミットはバルーニングと Hot-Add メモリ

ページ共有

ラージページは 2MB のページなので共有しづらい (通常のページは 4KB)
ESX はラージページを共有しないでしょうという文書があるらしい

ラージページはこの後 1GB のページも出てくる。

Azure の Computing Serivce でもページ共有は使われていない

?

ホスト ページングについて

スワッピングはサービス停止を防ぐための最後の手段
スワッピングは仮想マシンからメモリを回収するための最後の手段

last resort = 最後の手段

RamMap という Sysinternal のツールでメモリを確認。

?

オーバーコミットについて

オーバーコミットできると言っても無い袖を振ってはいけない。
物理メモリに収まる範囲で適切に使う。

?

Dynamic Memory

Hyper-V Server 2008 R2 SP1 でもつかえる。

ホストとゲストが統合サービスで連携して動作する。

Hot-Add メモリ
→ VM に動的にメモリを追加。
Hyper-V はホストページングをしないから

小さく産んで大きく育てる。
必要に応じてメモリを追加する。

バルーニング
増えたメモリをバルーニングで回収
通常、増設したメモリは抜かないため、Hote-Remove というものはない。

?

バッファーとターゲットを指定して、Dynamic Memory を設定

最大 RAM は Hot-Add の上限
ホストの上限値である必要はない

WMI のクラスにプロパティが追加されている。
Reservation プロパティは WMI でしか設定できない。(GUI では設定できない)
安定稼働してきたときに最低限確保しておくメモリ。Startup RAM より小さく設定できる。

pshypervで PowerShell で Hyper-V を操作できる。
SP1 には現在、対応していないので、デモでは SP1 に対応するように修正している。
# pshyperv は codeplex で公開されているものなので

Dynamic Memory 用のパフォーマンスカウンターが追加される。
Balancer : ペアレントパーティションのメモリ バランサー
VM : 仮想マシン毎のメモリ割り当て状況

ペアレントパーティションに残すメモリ

HKLMSOFTWAREMicrosoftWindowsNTCurrentVersionVirtualization
MemReserve (DWORD)? : ゲストに渡さないメモリ量

固定的に必要
ペアレント OS だけが起動した状態で 512 MB の空きメモリ

物理メモリ量に応じて増える
PFN データベース : 物理メモリのページ数×48バイト
非ページプール

仮想マシンの数と大きさによる
仮想マシン 1 台あたり 32 MB
1GB を超える場合 1GB に付き 8MB

Dynamic Memory は常に役に立つ機能
# Live Migration は毎日 使うとは限らない。

?

■[TH-502] Windows Azure & クラウド All Wrap-up

Keynote : 現実界としてのクラウドを支える最新テクノロジ
多くの実績
使いやすさ
実装の多様化 (ハイブリッドクラウド)

キーノートの裏話

キーノートの内容とデモ担当者のアサインタイミング

?

来年の方向性

製品の基本情報と今年のような内容のどちらが良いか

?

Windows Azure スペシャルセッション

クラウドは BuzzWord ではなくなっている。

?

?

今年のセッションは Practice! Practice! Practice!

?

Windows Azure Platform のロードマップ

Windows Azure
Admin mode / VM ロール
System Center サポート
VL への組み込み

SQL Azure
バックアップ / れストア
Geo クローン
動的パーティショニング
Reporting / Analytics
Data Sync

Windows Azure Platform AppFabric
セキュアネットワーク
分散インメモリキャッシング
サービスとワークフローの管理と監視

サービスマーケットプレイス (PinPoint)
Dallas

?

PDC

10/28-29

?

技術者支援

Windows Azure コミュニティ
http://jazug.jp
http://jazug.groups.live.com
Hashtag : #jazug

無償セミナー & ハンズオントレーニング
2010/10 開始予定
http://microsoft.com/japan/windowsazure/events

?

「マイクロソフトの描く未来像」で検索

赤間さん資料はフルカラーでお届け。

個人レベルで技術を変えていける世の中になってきた。

Written by Masayuki.Ozawa

8月 26th, 2010 at 10:51 pm

Posted in セミナー

Tech・Ed Japan 2010 2 日目 参加レポート

leave a comment

本日の参加セッションはこちら。

[本日の参加セッション]

  1. [T4-305] スケールしないシステムにおける開発者の過ち ? SQL Server の場合 ?
  2. [T1-301] 企業内 PC の運?を変える Windows Intune
  3. [T1-312] クラウド時代のデータベース、ベスト プラクティス ? 企業情報システムをクラウドへ移せ ?
  4. [TH-403] SQL Server 現役サポートエンジニア直伝 ? SQL Server トラブル シューティング実践編 ?
  5. [T4-401] SQL Server による?規模 Mission Critical システムの展開

?

■[T4-305] スケールしないシステムにおける開発者の過ち ? SQL Server の場合 ?

クラウドではなく、レガシー SQL Server のセッション
ロック待ちへの対策 / SQL の書き方の問題

スケールしないシステム

開発 / テスト環境では問題がなかったのに本番環境だと性能が出ない
→ テスト環境では 1 ユーザーでのみ動作検証をしていない。(多重度を考慮した負荷テストを実施していない)
  複数ユーザーで実施しないとロックの問題に気付きづらい

検索結果のレスポンスはミリ秒 / マイクロ秒を意識する。
→ 1 秒は速いわけではない。

ピークタイムに耐えられない
→ 通常は問題ないが、ピーク時に問題が発生

?

スケールしないシステムへの対策

  1. DB 設計時の対策
  2. アプリケーション開発時の対策
    →今回のセッション内容
     ロック待ちへの対応
     SQL の書き方
  3. DBA での対応

?

分離レベルが原因のロック待ち

TransactionScope をそのまま使っていないか?
ADO.NET では既定値は分離レベルが Serializable となっている。
→ トランザクションが終了するまで、共有ロックがかかった状態になる。
  →更新系がブロックされる。

Read Committed を使用することを検討する。

?

Serializable の弊害

Serializable だどデッドロックが簡単に発生

?

デッドロックの監視

プロファイラ (Deadlock Graph / Chain) やトレースフラグ (1222) で監視ができる。
デッドロックが発生すると片側のトランザクションが取り消される。

?

回避策
Serializable を避ける。
ショートトランザクションになるようにする。

楽観的同時実行制御を利用する。

デモでは、Read Committed に分離レベルを変更してデモを実施。

?

ロックエスカレーションによる待ち

獲得するロック数が多い場合に、エスカレートする機能
ロックエスカレーションは言われているほど発生しない。

ロックエスカレーションは トレースフラグ 1211 でサーバー全体で禁止できる。
SQL Server 2008 以降はテーブル単位で禁止できる。

?

テーブルスキャンによるロック待ち

SQL Server で最も注意すべき内部動作

?

回避策

Serializable 分離レベルを避ける。
ショートトランザクションにする。
Index Seek になるようにする。
→ インデックスをつける。
  必要に応じて、FORCESEKK ヒントを検討

?

Index Scan によるロック待ち

Index Scan は、インデックスの全スキャン。
Index Seek は該当データをピンポイント検索。

?

Index Scan になりえるケース

LINE ‘%aaaa’ : 後方一致 (FORCESEEK をつけるとエラーになる)
列名 + “AAA” = “TESTAAAA” : 列に対して演算 (左辺)
LEFT(列名,1) = “1” : 列に対して関数 (左辺)
<> : 否定演算
異なる照合順序で検索

回避策

前方一致になるように UI を工夫
列データに対する計算処理を止める (右辺に移動できないか)
列データに対する関数処理への対策
ダーティ リードに注意して NOLOCK ヒントを利用する
Read Committed Snapshot を利用する
計算、関数、照合順序の変更をしなくて済むようにデータ格納時に加工する。
Visual Studio 2008 の LINQ to Entities は CHARINDEX 関数に変換されてしまうので注意

ユーザー定義関数の注意

列データに対して、ユーザー定義関数を利用する場合も Index Scan が発生することに注意

?

暗黙の型変換に注意

varchar 列に、nvarchar のパラメーターに注意
実行プランで、CONVERT_IMPLICIT が出力されていたら注意。
LINQ では、一部のメソッド (StartsWith) が nvarchar へ変換される。
暗黙の型変換により、かなりの性能差が出ることもある。

?

プロシージャキャッシュの確認

dm_exec_cache_plan で確認
AddWithValue の場合は、パラメーターのサイズ指定ができないので、パラメータの文字列の長さが、
変更される度に別プランとしてキャッシュされてしまう。
VS 2010 では改善されている。 (nvarchar(4000) または、 nvarchar(8000) に変換される。)

?

大量 Insert 時は SqlBulkCopy!

大量データのインサートには、SQLBulkCopy クラスや BULK INSERTを使用する。

?

?

■[T1-301] 企業内 PC の運?を変える Windows Intune Windows Intuhe とは?

Windows Intune
→ System Center の流れをくんでいる。

クラウド型の管理サービス
アンチウイルス / アンチマルウェアを含む
最新 OS で標準化 (Windows 7 EE SA 付き)
ライセンスもクラウド型 = サブスクリプション $11/ 月
MDOP (オプション) $1/月

運用管理ツールの運用管理を止めましょう。
→ 契約をするとクラウド上の運用管理サービスを使えるようになる。

?

Windows Intune 管理サービスの利用

サインインをすると管理画面にいける。
→ Federation は現在対応していないが、今後 拡張される予定らしい。

自前サーバーなしでの運用管理サービス。
→複数ユーザーの状態をひと目で確認
 サーバー不要で能動的な管理サービス

SaaS 型のコンピューター管理機能

  • 資産管理
    ハードウェア / ソフトウェアインベントリ
    ライセンス
  • 更新管理
  • マルウェアからの保護
  • 稼働監視
    → OpsMgr のエージェント相当が導入される。
  • ポリシーと構成管理

?

利用手順

  1. Windows Live でログオン
  2. クライアントソフト ()x86 / x64) のダウンロード
  3. ダウンロードしたモジュールをクライアントソフトのインストール
  4. コンピューターを Intune の管理コンソールでグループ化
  5. 管理

?

インストールのデモ

クライアントモジュールのインストールはインストーラーを実行するだけで完了する。
→クライアントモジュール自体に署名等が埋め込まれている。
 自社の Intune で管理されるようにするためのインストーラーなので、モジュールの取り扱いには注意する。

インストール後、Windows Update を経由して 11 個のモジュールがダウンロードされる。

?

ライセンス
接続クライアントライセンス

管理
管理コンソールを使うためには、Silverlight 3.0 が必要になる。
XP SP2 を管理する場合、別途 2 つのモジュールをダウンロードする必要がある。

?

コンピュータのグループ化
管理しやすいようにグルーピングする。

?

Windows Intune 管理サービス解説

デモ中心のセクション
現在は Beta 版

機能ごとに管理者のアカウントを設定することが可能になっている。

アラートをトップ画面のダッシュボードから確認することができる。
→ブラウザ上の管理コンソールであるが、画面の繊維はシームレスに行われる。

アラートに対してのヘルプも用意されている。
→ アラートは 606 種類ある。
  アラートをメールで連携することも可能。

マルウェア対策は ForeFront 相当のエンジンが実装されている。
→テストウィルスを使ったマルウェア対策のデモ

ライセンス管理も、管理コンソールから実施できる。
→ 仮想マシンも含めて管理できるので、最終的にはライセンス管理は物理 / 仮想を分けて管理できるはず。
  (仮想はライセンスの考え方が異なるため)

ハードウェア情報でモデルが Virtual Machine となっている場合は、仮想マシン

ソフトウェアは App-V で配信されているかも確認することが可能
→ AppV Cache ?? を見ているらしい。

Intune のグループと AD の OU は別。
グループのネストは 7 つ ? まで可能。

WSUS 相当の機能が含まれているため、更新プログラムの承認 / インストールするグループの設定が可能。
→ 自動承認機能もある。

ポリシーの機能も備えている。
ポリシーをテンプレート化して、使ってもらえるポリシーの設定を目指している。

ソフトウェアのインストール状況はコンピュータ単位、全台を対象とした管理をすることができる。
CSV / Excel でデータをエクスポート可能。

ボリュームライセンスの管理も Intune 上で実施できる。
→ CSV / HTML?? でエクスポート可能

?

資産管理

ソフトウェア インベントリは App-V にも対応している

  1. MSI ソフトウェア リポジトリ
  2. プログラムの追加と削除
  3. App-V キャッシュ

から情報を取得

?

ライセンス管理

既存の契約情報をアップロードし、Windows Intune にアップロード可能

?

マルウェア対策

既存のマルウェアソフトを活かすこともできる。
→ ポリシーで Intune のマルウェア対策を無効にする。

?

稼働監視
現在のバージョンは、サーバー OS にもインストールできる。

?

ポリシーと構成管理
SCVMM VNext の DCM に基づいた構成になっている。(次世代ポリシー基盤)

グループ階層の一番下のレベルのポリシーが適用される。
→ AD の GPO は優先される。

サンプルのMOFの先頭に? [#pragma autorecover] が必要

MOF COMP をたたくと WMI クエリの名前空間に [rootWindowsIntune] を選択できるようになる。

SCO (System Center Online) という表記になっている個所もあるかもしれない。
→ 旧バージョンの名称

新しいポリシー基盤 ”Lantern”

Active Directory 非依存の共通ポリシー基盤の確立
→ SCCM VNext DCN / Windows Intune → クラウド時代のポリシー管理になるか?

今回のポリシー基盤には、SML が使われているはず (確定情報ではない)

?

サービスステータスの確認

現状のサービスの提供状況を確認する、ポータル画面が用意されている。

?

リモートアシスタンス

Microsoft Easy Assist を使って、クライアントからリモート アシスタンス要求をだせる。
→モジュールは Intune をインストールすると導入される。

?

まとめ

企業内の利用シナリオ

Windows 7 EE の機能 / 2008 R2 と連携

  • BitLocker
  • ダイレクトアクセス / ブランチキャッシュ
  • AppLocker
  • MDOP

SA 付きなので必要なバージョンへのダウングレード権がある。

9/3 夕方に新宿で Windows Intune の Tech Fielders セミナーがある。

?

■[T1-312] クラウド時代のデータベース、ベスト プラクティス ? 企業情報システムをクラウドへ移せ ?

SQL Azure の活用について

SQL Azure 概要

Relational Database as a Service
自動化された管理
→物理サーバーや仮想マシンの管理が不要 (DB の管理が不要ということではないはず)

スケーラビリティ

開発しやすさ

?

SQL Server と SQL Azure の関係

同一アーキテクチャを採用
同一の管理ツールで管理できる

SQL Azure Service Update 4

2010 / 8 / 25 更新

同一サーバー / 別サーバーにデータベースをコピー
CREATE DATABASE に COPY OF を設定する。
master データベースで実行する。

Northwind データベースをコピーするデモの実施。
ステートメントの実行は瞬間的に完了するが、非同期処理でコピーされている。

?

データベース ノード

1 サーバーに 1 物理データベース
データベースファイルとログファイルは、すべての論理データベースにて共有
master データベースはシステムデータベースではない

?

SQL Azure の運用

ファイルグループがない
ネットワーク遅延 (サーバーが遠隔地にある)
すべてが高可用性構成
SQL 認証のみ
データベース暗号化が未サポート
SQL Agent がない

?

Project ”Houston” CTP 1

クライアント環境にとらわれない DB 管理
現時点では master データベースにうまく接続できないことがある。
Update されたことにより、場所を選択する画面が増えた

Houstonを使うと 1433 のルール追加が不要になる。(443 で通信)

?

データベースの移行ステップ

スキーマ移行
データ移行
→ 移行したデータを戻すこともできる。

?

SQL Azure Migration Wizard

MS の公式サポート ツールではないが良くできている。
→ CodePlex で公開されている。

SQL Azure では、クラスター化インデックスが必要。
→ツールでクラスター化インデックスを作ってくれる

英語環境を意識して作られているため、日本語を使用するためには config を書き変える必要がある。

?

SQL Server Management Studio

SQL Server 2008 R2 の SSMS を使用する。
SQL Azure データベース用のスクリプトを作れる。

?

DAC

SQL Azure では DAC (データ層アプリケーション) も使える。
→ スキーマ情報しか扱えない。

?

インポート / エクスポートウィザード

SQL Azure 上に DB を事前に作っておく。

?

異なる RDBMS から 移行

SSMA
SSMA for MySQL 1.0
SSMA for Oracle / Sybase / Access

SSMA は SQL Azure に直接接続できる。
→ SQL Azure 接続時は暗号化接続が有効でグレーアウトしていた。

スキーマ移行とデータ移行が可能

?

ネットワーク パフォーマンス

遅延 / 帯域幅 / 接続性
インターネット経由で長距離間のデータ転送をする必要がある。

?

BCP 1GB データ転送検証

ストリームの数を増やすと比較的早く転送が終わる。
→マルチストリーム転送は極めて有効

?

Azure to On-Premise のデータ連携

SQL Azure Data Sync サービス
SQL Azure ? オンプレミス (SQL Azure Data Sync Tool)
SQL Azure ? B2B (SQL Azure Data Sync Tool)
SQL Azure 内 (SQL Azure Data Sync Service) (データセンター間も対応)
SQL Azure – オフライン端末 (Sync Framework)

設定は、SQL Azure のポータルサイトから

  1. Add Hub で起点を設定
  2. Add Member でメンバーを追加
  3. テーブルを選択

?

データ競合時の設定はない。

?

Blob データを含めての移行シナリオ

Blob は Windows Azure Blob に移行するというシナリオも考えられる。

?

今後提供が予定される機能

Reporting / Business Analytics
Data Sync (CTP) / OData (CTP) → データのやり取りを HTTPS で可能。(Anonymous User Access の設定がでいる。)

PDC で発表があるかも知れない更新
DB おける複数 Collation
操作レポート
フルテキストサーチ
スケールアップ

?

■[TH-403] SQL Server 現役サポートエンジニア直伝 ? SQL Server トラブル シューティング実践編 ?

SQL Server の障害をどのように切り分けていくか

資料の確認 11 / 17~ 19 / 21 / 28 / 41 / 53 / 59 / 60 /69

エラー発生
一時的 / 継続的なエラー

処理完了までの時間が長い
処理が止まっている / 遅い

メモリ不足

バッファプール
ページ (8KB) 単位で管理
max server memory で定義可能

非バッファ領域
32bit 環境 : 環境ごとにプロセッサに応じて自動定義
64bit 環境 : 制限なし

フリーページ
lazy writer スレッドで確保される
→ 参照頻度が低いページをフリーにする

OS からメモリ不足の通知を受けても SQL Server はメモリを解放しつつ正常に動作可能
→min server memory まで解放
他プロセスから大量のメモリ要求が続いたら
→フリーページ確保、解放が頻繁に発生
 メモリがページアウトされる。
 ページングによりフリーページを確保しにくい

メモリ不足は、ERRORLOG に記録される。

対処法
メモリを増設
→ 他のアプリケーションもメモリを使用する。
max server memory を設定
→ SQL Server のメモリ上限を設定

非バッファ領域
max worker thread は 2005 移行は CPU の数によって自動チューニングされる
-g オプションの部分も含まれる。

?

ワーカースレッドの枯渇
SQL Server が管理するスレッド
一般的に最大数に達する状況は、根本的な原因を解決しないと最大値を増やしても達してしまうことがありえる。

ワーカースレッドはプールされ、再利用される
→ 過度のブロッキング / 並列度の高いクエリの多数同時実行で枯渇の可能性がある。

最大数に達した場合
スレッドがアイドルになるまで待機、もしくはタイムアウトで処理が失敗
→ Deadlocked Schedulers が ERRORlOG に出力される。

並列クエリの場合、ワーカーは複数アクティブ
同時実行によりワーカーが増加

?

過度のブロッキング
ショートトランザクションにする。
データ参照 / 更新範囲の重複をなくす (Scan 操作をなくす)
分離レベルの変更

並列度の高いクエリの多数同時実行
並列度を制限
→MAXDOP (OPTION 句の MAXDOP がサーバーレベルより優先される)

sys.dm_os_tasks と sys.dm_os_workers を Join して並列度を確認
→ ワーカーが枯渇している場合は DAC で接続

?

サービス停止時間を短くするために

死活監視
select @@servername
ワーカーが枯渇している場合、@@versionを実行できないのでフェールオーバーしてしまう。

デッドロック

ロールバックコストが低い方をロールバックする。

デッドロックの発生状況の確認

  • トレースフラグ
    1222 (1204)
  • Profiler イベント
    Deadlock Graph
    Lock: Escalation → エスカレーションのきっかけになったクエリを取得できる。
  • ?

    サイクルデッドロックの一般的な対処方法

    リトライ処理
    ロックエスカレーションの回避、防止
    → Scan 操作を Seek になるようにす

    サーバー全体で、エスカレーションを禁止した際のメモリ不足対応のため、2008 ではテーブル単位の
    ロックエスカレーションの禁止が実装された。

    fn_trace_gettable でトレースファイルをインポート

    ?

    システムデータベースの破損

    破損する DB によって、SQL Server / Agent サービスが起動できなくなる。
    対処の基本はバックアップからの復元
    →破損しているバックアップを戻しても破損した状態になる。

    定期的な DBCC CHECKDB によるデータベースの整合性チェック

    バックアップファイルの整合性チェック
    →RESTORE VERIFYONLY

    バックアップファイルがない場合
    システム DB の再構築 (全システム DB が再構築)

    ?

    管理者のロックアウト 

    2008 以降は、BUILTINAdministrator は既定で管理者ではない
    BOL にロックアウト時の解決策が掲載されている。

    ?

    SQL Server へ接続できない

    OS レベルのセッション確立
    F/W の例外設定が意外と多い
    接続プロトコル
    DNS
    SQL Browser サービス
    ローカルから接続できるか

    SQL Server の認証
    認証方式
    ドメイン / ローカルアカウント
    特定のログインだけか

    ?

    データベースアクセス
    AUTO_CLOSE 設定
    master に接続できるか
    特定のデータベースだけ

    ?

    クライアントのエラーメッセージ / 時間 / SQL Server の ERROLOG が必要

    ?

    ログファイル拡張

    ログ自動拡張のタイムアウト
    ログファイルがいっぱいでレコードが書き込みできない

    データベース復旧モデル も要確認

    2008 のログ切り捨ては、復旧モデルを単純にする
    →no_log / truncate only が2008 以降ではないため。

    ?

    ブロッキング

    DMV / DMF / DBCC から調査することができる。

    ?

    処理の中断

    ロールバック時間を考慮する。

    ?

    チューニング

    Web Cast で 5 minute を公開中

    ?

    ■[T4-401] SQL Server による?規模 Mission Critical システムの展開

    4 ソケット 32 コア 128 MB のメモリのマシン
    # 8 ソケット 64 コアマシンも後で登場

    バランスドシステムという考え方

    トランザクション処理設計

    トランザクションの境界
    暗黙的な宣言と、明示的な宣言 (BEGIN TRAN)

    ブロッキング防止
    NOLOCK / RCSI (Read Committed Snapshot Isolation)

    デッドロックへの考慮
    変換デッドロック発生の防止
    更新順序の統一化と回収処理 (リトライ処理をアプリケーションで実装)

    クエリ実行時の考慮
    アドホッククエリとパラメーター化クエリ
    適切なフィルタリングによる結果セットサイズ

    ?

    データベース物理設計

    データファイルの分割と配置
    非クラスター化インデックスをファイルグループをつかうと、分離格納が可能
    tempdb は CPU コア数と同じファイル数に分割する

    ?

    データファイルの配置
    ファイルグループは異なる LUN に配置

    ?

    領域サイズの見積もり
    将来のデータ量も見込んでおく
    増分はあくまでも保険
    → 拡張中は、トランザクションが停止する。

    ?

    ログファイルの配置
    ユーザーデータベースごとに一つ必要
    RAID 1+ 0 の独立した LUN に配置
    シーケンシャルな書き込み処理のみが発生
    I/O 帯域がサーバー上の処理能力を左右する (先行書き込み)

    定期的なログのアーカイブにより肥大化を防ぐ。

    ?

    データパーティショニング
    分割をするためのキー項目が必要になる
    クエリは複数のパーティションを透過的にアクセス可能

    スライディングウィンドウズ機能

    インデックスの役割
    テーブルにはのクラスター化インデックスを定義する

    発生するデータの特性を理解する
    → インデックスをどの列に設定すればよいかに影響する。

    クラスター化インデックスはキーの内容が変更されない列に設定する。

    再構築と再構成

    2008 ではオンラインで再構築が可能
    → 再構築前、後のデータを使うため、データサイズの見積もりに影響する。

    ページ分割
    Update Inprace : 更新処理でもページ分割が発生する (同一領域に格納できない場合に発生)
    FILLFACTOR を設定する。

    統計情報
    データ作成時に作成される (自動作成有効の場合)
    新は一定の閾値を超えた場合に実行される。
    INDEX の REBUILD 時にも更新される

    手動更新で統計情報を更新することも重要。

    ?

    バランスドシステムとは

    SQL Server リレーショナルエンジンに最適化された H/W 構成
    専用サーバー上に配置する (インスタンスも一つにする)

    プロセッサ
    主流は x64
    NUMA 対応 CPU
    4 ソケット以上の NUMA 対応 CPU を推奨

    メモリ
    x64 64 ビットアドレス方式が主流
    NUMA ノードあたり、8-16 GB を推奨
    SMP の場合 コア辺り 4GB をスタートラインに
    OLTP の場合ユーザー DB の10% は目安

    ストレージ
    HBA 経由ファイバー
    → 複数の HBA で MPIO
    iSCSI
    DAS

    トランザクション処理には複数の高回転デバイスを利用

    SQL Server 2008 / R2 のベンチマークテストの比較

    トランザクションミックスで負荷テストを実施

    SQL Server 2008 → R2 で性能は向上している。
    2008 は HT を有効にすると 10% 程度、過負荷状態の処理効率が向上している

    Runnable Queue から CPU の待ち行列を確認
    PAGELATCH でページ分割の待ち事象を確認

    ?

    サプライズ

    8 ソケット 64 コア / SQL Server Datacenter Edition
    # HT を有効化すると 128 コア

    ?

    設定関連
    Lock Page in Memory が有効になっていると LOG に Large page Extensions が表示される。

Written by Masayuki.Ozawa

8月 25th, 2010 at 10:47 pm

Posted in セミナー

Tech・Ed Japan 2010 1 日目 参加レポート

leave a comment

本日から、三日間 Tech・Ed Japan 2010 に参加しています。
勉強メモも兼ね、セミナーレポートを適宜投稿していきたいと思います。

[本日の参加セッション]

  1. Keynote
  2. Windows Azure スペシャル セッション
  3. [T2-301] ついに登場! RemoteFX で実現する強化された MS VDI のアーキテクチャ
  4. [H-321] Windows Azure アプリケーション開発体験 ? Windows Azure 管理/監視編 ?
  5. [TH-203] 都市伝説のウソを暴く ? みんなで語ろう SQL Server の真実を ?

?

    ■Keynote

    現実解としてのクラウドを支える最新テクノロジ

    1. S+S 構想の発表 → Ray Ozzie メモ
    2. Azure 発表 → PDC 2008
    3. Azure サービス開始 → Tech Days 2010
    4. 現実解としてのクラウド → Tech・Ed 2010

    ?

    • 本格化しつつあるクラウドの活用
    • クラウドの進化を加速するテクノロジ
    • クラウド時代に求められる IT 技術者の役割

    ?

    本格化しつつあるクラウドの活用

    Opening Demo

    • リアルタイムストリーミング
      KeyNote の配信は IIJ さん協力で配信
      今年の甲子園を Silverlight で配信
      DMM.com でも Silverlight を利用
    • ビジュアル検索
      Netflix の Pivot View of Netflix Instant Watch Movies
      →DVD のジャケットを一覧でみたり、年単位でグラフで表示することもできる。
       年代だけでなく Rating で検索することも可能
    • 電子書籍 / 出版
      東芝リブレットの 25 周年記念モデルを使った WPF の電子書籍リーダーの Demo

    クラウドを活用した電子出版プラットフォーム
    Windowz Azure 上
    →書蔵 / CDN データキャッシュを使用sている。

    ?

    株式会社バンテック様
    BPOS と Azure の活用によるセキュアなコラボレーション環境のビデオ
    Exchange Online を導入
    # BPOS と Azure を組み合わせている (LDAP 連携)

    Office 製品との親和性を考慮 (ユーザーが使いやすい)

    ポータルの統合もクラウドサービスで検討

    ?

    加速する BPOS 利用
    株式会社リクルート様
    UQ コミュニケーションズ株式会社様
    株式会社内田洋行様

    ?

    株式会社パソナ様
    プロジェクト案件の予実算管理システムのビデオ
    Windows Azure を利用
    プロトタイプのシステムは稼働中
    評価の中で良かったのは想像以上にスムーズに動いた
    (数十万件のデータでもスムーズに動いた)

    セキュリティ面の対策
    データセンターの安全性、通信の設計によって問題なく使えると判断

    ?

    ブルーオーシャンシステム様の講和
    介護、医療、支援、保育のサービスの利用を管理するシステムでクラウドを活用
    # Windows Azure / SQL Azure Silverlight

    キーボードでなく、タッチスクリーンを使う事で職員の方もスムーズに利用できる。
    IT 化により手書きが無くなると、手書きにはなかなか戻れない。
    現場に合わせたハードを選択

    Bingmap とも連携をしている。
    # 画面はすべて Silverlight で実装しているのかな??

    デザインは Azest 様が作成。

    健康管理の情報がグラフ、表で見ることができる。

    BizSpark を使用している。

    ?

    日本電子計算株式会社様の講和
    2003 年から ASP サービスを銀行様に提供している。

    CP Communicator
    クラウドを利活用した、日本最初のサービスモデル。
    Windows Azure? / SQL Azure AppFabric が使われている。
    Private Cloud とも連携

    企業 1 に対して金融機関 n での取引で使われる。

    ハイブリッドクラウドになっている。
    SQL Azure でデータ同期を行っている。

    ?

    Azure 利用の拡大
    過去半年の機能強化ポイント
    SQL Azure のデータベースサイズ拡大
    .NET Framework 4
    Visual Studio 2010
    Windows Azure OS 1.5

    ?

    クラウド実装の多様化

    • 従来型 IT
      変更管理の自由度
      容易なシステム拡張
      きめ細かな運用管理
      ?
    • パートナークラウド
      システム構築のノウハウ
      顧客 / 地域密着型サービス
      多様なソリューション

      サービス事業者様向けライセンス
      → Saas / Pass 提供のためのライセンス体系の整備
      クラウド環境を構築/運用する製品群
      → DDTK, Hyper-V, System Center
      Windows Azure platform appliancd

    • パブリッククラウド
      スケールでの低コスト追求
      グローバル展開
      画一的なサービス

    ?

    NTTコミュニケーションズ株式会社様の講和
    Biz ホスティング エンタープライズ
    クラウド間ネットワーキングの力で、孤立したクラウドモデルの一歩先へ

    お客様の仕訳に従い、オンプレミスと業務用途に合ったクラウドをネットワークを介して接続
    オンプレミスとパブリッククラウドの連携

    Biz ホスティングエンタープライズ (プライベートクラウド)
    Microsoft Azure (パブリッククラウド)
    上記のサービス連携 (ID 連携 / サービスバス連携等) と、監視連携を実現 (System Center による監視連携)

    ?

    Windows Azure platform appliance
    WPC 2010 で発表

    富士通様との協業
    Azure Base のサービスが富士通のデータセンターによりグローバルに提供
    グローバルで 5,00 名の Azure 技術者を育成

    ?

    クラウドの進化を加速するテクノロジ

    2011 年以降の追加内容

    信頼できるクラウドプラットフォーム
    Dallas
    大規模並列処理 on Azure

    ユーザーエクスペリエンス
    IE 9
    WP 7

    設計 / 開発ツール
    VS LightSwitch

    ?

    Dallas のデモ
    現状は CTP のため Price 0$
    NASA Selected NASA Mars Exploration Rover 3D Images ? NASA (CTP2)
    DisclosingJapan Trial Offer

    みんなの会社情報
    → Windows Azure + Silverlight
    Dallas で配信されたデータを使っている。

    自前では持てないようなデータを使用することができるようになる。

    ?

    Windows Azure が可能にする大規模並列処理のデモ
    High Performance Computing on Azure

    ジョブマネージャー
    入力キュー (ワークアイテム)
    出力キュー (処理済みアイテム)
    Worker ロール (複数のワーカーロール)

    株価のシミュレーションを使用したデモ
    Excel のアプリケーションを使用してデモ
    → ローカル PC 上でワーカーロールを 11 個起動している。

    テクニカルセッションでは 15 個のワーカーロールを使用したデモを実施。

    ?

    Internet Explorer 9
    HTML 5 / CSS / SVG をサポート
    新しい? JavaScript エンジン Chakra を実装

    SunSpider を使用したベンチマークテストの紹介
    Acid 3 は 95/100

    他社ブラウザと IE 9 CTP? のキャンパスタグを使ったレンダリングの比較
    amazon のサイトを使用した HTML5 のデモ
    Hamster Dance Revolution

    9/15 (日本時間 9/16) Beta 版が提供される

    ?

    Winodws Phone7
    Cloud Service
    Application Platform
    Developer Tool

    Twitter クライアントを作成するデモ (Tech Edtter 7)
    Silverlight なので非同期処理となる。
    Expression Blend 4 でSampleデータを使用して画面デザインを作成。
    →サンプルデータを作ってドラッグアンドドロップ

    WP7 の実機を使ったデモ
    作成した Tech Eddter 7 と Tech Ed Viewer 7 を実行。
    # Tech Ed Viewer 7 はいいな~。

    ?

    Visual Studio LightSwitch
    電気のスイッチをオンにしたらアプリケーションを開発できる。
    テンプレートベースの開発。
    簡易、迅速、柔軟な開発。

    ビジネスデータを活用したリッチなアプリケーションを簡単に開発できる。

    開発は以下の 2 段階

    1. データソースの定義
    2. 画面レイアウトの定義

    画面レイアウトはテンプレートがいくつか用意されている。
    データソースの定義時に Validation も設定できる。

    実行時に画面を変更することができる (Customize Screen)
    →列の並び順の変更、リスト形式の変更、ボタンの削除等が実施できる。

    ?

    クラウド時代に求められる IT 技術者の役割

    クラウド時代
    コンピューティングリソースのコモディティ化
    より使いやすく、ニーズの変化に素早く対応
    より高度な IT 全体設計
    IT 技術者の進化がクラウド実装のカギ

    ?

    クラウド技術者コミュニティ支援
    Azure コミュニティ
    Azure 無償利用プログラムの提供
    アーキテクト 育成道場
    MS 本社 シニアアーキテクトとの交流会
    PDC10 最新技術コンテンツ配信とオフ会の実施

    ?

    技術情報強化、スキルアップ支援
    MSDN / Tech Net オンラインの改善
    コードサンプルの提供拡大
    ハンズオンセミナー (新宿と品川で実施)

    ?

    ■Windows Azure スペシャル セッション

    クラウドの今と未来

    20 世紀末 ? 21 世紀初めの IT 企業
    Main Frame → Down Sizing → Server Client → Internet → Cloud

    ?

    クラウドの現在
    クラウドの進化は止まらない。
    ?

    クラウド受容の現在の課題
    仮想化によって物理サーバーの数を減らしコストを削減するだけでは不十分
    SIer にとっては、H/W が売れなくなるためあまり魅力的ではないのでは

    コストカットの対象だけではなく、企業の生産性、ビジネスの価値と競争力を高めるために利用するという視点が不可欠。

    サーバーを管理するのか?
    サービスを管理するのか?
    →サービスとしてのビジネスの価値を高める。(クラウドの時代には必要)

    クラウドへの現実的なアプローチ
    利用者側
    クラウドのメリットをどう取り入れることができるか

    提供者側
    クラウド利用のシナリオの具体化
    現実的利用アプローチの採用

    Google App Engne から Googpe App for Enterprise への組み換え
    Spring
    java
    Eclipse
    Enterprise Java の愛発モデル
    RDB の利用

    ?

    VMware のクラウド参入
    Google App Engine for Business / VMForce はいずれも VMware とじの協業
    Private クラウドでの vCloud への動き

    ?

    パブリッククラウドの日本上陸
    Amazon / Salesforce のデータセンター
    Windows Azure Platform Alliance

    ?

    Windows Azure Platform Alliance
    館林でサービスが提供される
    無制限のスケールとマルチテナント

    ?

    Azure の現在と近未来

    Server AppFabric
    Cloud 上のサービスと、オンプレミスのサービスを自然な形でつなぐ
    Hybrid-Cloud には必須な技術
    Azure / SQL Azure と並んで 3 本柱

    SQL Azure Federated Database
    データの分割を RDB で実現できる。

    ?
    VM Role
    Web Role / Worker Role に続く第三の Role
    柔軟。Apache VM を定義可能
    EC2 での AMI と同様のものと思っていい。
    OSの設定、Config が必要
    ?

    Azure is Open
    php / Java /Ruby も動く
    開発環境として Eclipse を使える。
    ?

    デモ:Java in Azure

    Windows Azure & Java
    Azure 上の Tomcat で動作する Java Web? アプリケーションでテーブルストレージにアクセス
    ?

    ビルドに使用するコマンド
    buildme.cmd
    runme.cmd
    packme.cmd

    ?

    Windows Azure SDK for Java


    AppFabric
    AppFabric SDK for Java Developers
    ?

    SQL Azure
    JDBC アクセス
    Restlet Extension for ADO.NET Services

    VM Role (Coming)

    ?

    クラウド利用の多様性と可能性

    クラウド利用のスペクトラム
    企業内 IT 共通基盤
    開発/テスト環境としての一時的な利用
    ディザスターリカバリー

    ?

    社内 IT 共通基盤へのクラウドの導入
    Google Apps vs MS Online vs Lotus Live
    クラウドのもう一つのホットな戦線。

    ?

    Business Productivity
    ビジネス価値と競争力を高めるために、Public / Private のクラウドサービスを利用するという視点が重要
    Office の Online 化

    ?

    例えば、Excel
    ブラウザ上のExcel をターゲットとしたアプリの開発は新しいスタイルの Web アプリとして大きな意味を持つ。
    SharePoint を単なるポータルサイトと思ってはいけない。
    Excel 上の PowerPivot はデータマイニング、可視化で BI の強力な武器。

    ?

    クラウドとビジネスの未来

    サービス化のさらなる進展
    パッケージからサービスへ。
    サービスプロバイダとしてシステムを考える。
    Office Family のオンラインサービス化。
    データベース / ストレージのサービス化。

    特定のユーザーを対象とした、受託開発モデルの収益と競争力の低下。
    クラウドになっても開発は無くならない。

    ?

    コンシューマ中心の経済へ
    プラットフォームのクラウドデバイスのシフト

    コンシューマ中心のビジネスモデルが必要
    BtoC ではなく、CfromBとでもいうべきもの

    コミュニケーションと情報の共有
    IT は個人と個人の個ミューにケー所んと情報共有への欲求が最大のドライビングフォース

    ?

    ネットワーク上のマーケットの成熟
    情報の流通だけでない物流ともリンクしたネットワーク上の経済が拡大する。

    ?

    ■[T2-301] ついに登場! RemoteFX で実現する強化された MS VDI のアーキテクチャ

    Windows Server 2008 R2 /? Windows 7 の SP1 で実装される機能
    現在は Public Beta 版。

    RemoteFX

    RemoteFX とは?
    リモートデスクトップの機能拡張
    SP1 では仮想化の機能を強化している。
    GPU の仮想化
    → 3D グラフィックレンダリング / 動画の再生支援 / Silverlight / Flash
    RDS / VDI が苦手としてきた領域をカバー
    →RDP 7.1 へアップグレード
    グラフィック強化により、CAD アプリへの対応も

    GPU の仮想化により、実環境と相違のない、UX を提供
    USB デバイス リダイレクション

    ?

    システム要件
    RDP 7.1 が使えればシンクライアントでも利用可能
    VDI のマシンは Win 7 EE / Ultimate SP1

    Hyper-V サーバー
    SLAT に対応したCPU
    DirectX 9.0c 10.0 対応の GPU
    現時点では LAN 環境ベースのシナリオに最適化

    1GPU あたり、12台の仮想マシンを割り当て (Public Beta)

    ?

    RemoteFX 関連コンポーネント
    RemoteFX 専用の H/W に処理を移管することで信頼性が向上 (オプション)
    Virtual Channels → RemoteFX Decode Abstraction Layer →Software or Hardware Decode Driver

    ?

    展開のポイント
    パフォーマンスとサイジングについては SP1 RTM に合わせてガイドを公開予定
    既存環境からの移行は厳しい
    → H/W 構成が大きく異なるため
    Live Migration のサポート
    →移行対象で同一 GPU を使用する。

    ?

    RemoteFX のデモ
    RemoteFX はリモートデスクトップ仮想化ホストの役割に含まれる
    ハードウェアの追加で RemoteFX 3D ビデオアダプターを追加

    DirectX 診断ツールを使うと RemoteFX 3D ビデオアダプターが有効になっているかわかりやすい
    Ultimate の Chess Titans は 3D を使っているゲーム。
    →RemoteFX 3D ビデオアダプターのテストに使える。

    SP1 をインストールすると、Remote Desktop ? User Mode というF/W ルールが追加される。
    →接続時の注意事項
     SP1 適用前にリモートデスクトップを有効にしていると、ルールがオンにならないので手動で再設定か、
     リモートデスクトップのラジオボタンを再設定。

    RemoteFX を有効にすると、VMConect からはつながらなくなる。
    → リモートデスクトップを事前に有効にしておいてから、3D ビデオアダプターを追加する。
    ? Remote Desktop ? User Mode の F/W ルールが許可になっているかも確認

    図脳RAPID3DPRO を使った CAD ソフトのデモ
    →拡大、回転等がスムーズに動く

    ?

    RemoteFX USB Device Redirection

    ローカルとリモート間の環境差をなくす
    デバイスドライバは仮想 OS 側に必要
    → デバイスを接続している端末にはデバイスドライバは不要。

    RemoteFX Device Redirectionの利用ケース
    → スキャナー / バイオメトリクス認証 / Isochronous デバイス

    ?

    USB デバイスの認識
    RemoteFX USB Hub Filter を通じでデバイスが認識される。
    →デバイスマネージャーから存在を確認できる。
    クライアントマシンが巨大なハブになって仮想マシンと連動する。

    ?

    RemoteFX USB デバイスリダイレクトのデモ
    必須ではないが、RDP データの圧縮アルゴリズムを設定するのポリシーは注目
    USB デバイスリダイレクト用のグループポリシーがある。
    → セッションホストでポリシーを有効にする。

    RDP ファイルに USB デバイスリダイレクト用の設定項目がある。

    XBOX 360 のコントローラーをリダイレクト。
    → Halo 2 を VDI 環境で実行して使ってみる。

    リモートセッションを切ったタイミングでデバイスのリダイレクトが解除される。
    → 機器の取り外し音が鳴る。接続時には接続音も。

    USB デバイスリダイレクトは 1 セッション。
    → リダイレクトしているデバイスは選択できない。

    USB ミサイルと MS の Web Cam を利用した複数デバイスのリダイレクト
    →輪ゴムで二個一 にしていました。

    ?

    Thin Client のデモ
    ASIC のチップが入った RemoteFX に対応したシンクライアントを利用
    →Linux の Embedded OS (数千円ぐらいで購入できるかも)?

    RemoteFX USB デバイスリダイレクトで使用できるデバイスに関しては RTM 後のドキュメントに期待です。
    ?

    ■[H-321] Windows Azure アプリケーション開発体験 ? Windows Azure 管理/監視編 ?

    時間的に全部終わらせるのはきついボリュームでした…。
    ステージング環境にデプロイした後に、Ready になるまでの時間と、ロールのインスタンス数の増加が完了するのにちょっと待ち時間があって、
    その辺で、時間を消費してしまいました。

    ハンズオンの内容としては、

    1. ステージング環境への配置
    2. 配置後にアプリケーションを実行
    3. ステージングからプロダクション環境に移行
    4. ロールのインスタンス数を追加
    5. 診断データの取得
    6. 診断データをストレージサービスに転送

    この一連の流れを PowerShell を使用して実行するという形でした。
    この辺りはハンズオン資料と Winodws Azure 実践クラウド・プログラミングを見直して再度勉強したいと思います。

    途中までした終わらなかったのですが、Azure を PowerShell で操作するとき作業イメージがつかめたのでよかったです。

    ?

    ■[TH-203] 都市伝説のウソを暴く ? みんなで語ろう SQL Server の真実を ?

    珍しいチョークトーク形式のセッション
    スピーカーと受講者の対話形式セッション。

    行レベルロックの真実

    知られざる SQL Server の行レベル ロックの実装
    何を持って完全な行ロックなのか?

    キー値を使ったロック (クラスタ化インデックス あり)
    RID を使ったロック?? (クラスタ化インデックス なし : ヒープ)

    100 万件データを使った、ロック待ち、ロックエスカレーションのデモ
    → LOCK_TIMEOUT でロックのタイムアウトを指定

    対象テーブルが更新中かどうかで、ロックエスカレーションの動きも変わる。
    →誰もテーブルを使っていない場合は 5000 という閾値が働く。
     対象のテーブルが更新中の場合、ロックエスカレーションをしない。
     インテントロックを使用して、エスカレーションできるかをチェックしている。
     (インテントロックがあるという事は他者がロックを取得している)

    ロックエスカレーションは、パフォーマンスモニタで取得可能。
    →DMV から取得できる。

    ROWLOCK オプションを指定しても、ロックエスカレーションは発生する。
    トレースフラグまたは、LOCK_ESCALATION = DISABLE することで、ロックエスカレーションを禁止できる。
    → 2005 ではトレースフラグ / 2008 は SET で指定できる。

    行ロックをするときは、ハッシュ関数を使用してメモリリソースを使用しないように考慮されている。
    → キー値をそのままメモリに確保するのではなく、ハッシュ値にすることで長いキー値でも最小限のロックメモリで
      象を識別できる。

    ?

    読み取り一貫性の真実

    読み取り一貫性ってそもそも何?
    ANSI の定義にさかのぼろう

    読み取り一貫性は管理者 / 開発者が選択できる。
    → SQL Server の考え

    Read Commited Snapshot のーバーヘッド
    → 実行時間の比較では、数 % のオーバーヘッド (数ミリ秒)

    tempdb を適切な構成にすることでオーバーヘッドをさらに削減することができる。
    → CPU コア数にファイルを分割。配置するディスクにも注意する。

    ?

    チューニングの真実

    SQL Server は自動でここまでチューニングする!!
    SQL Server は本当に細かな制御ができないのか!?

    クラスター化インデックスは重要。
    SQL Server に適した (SQL Server のお作法の) の物理設計をする。

    インデックスのリビルドと統計の更新
    tempdb の分割と MDOP
    SQL Server のサービスアカウントの Lock Page in Memory のポリシー

    ?

    SQL Server の運用管理の真実

    SQL Server におけるログ ファイルの管理
    SQL Server におけるバックアップの管理

    ログのバックアップは SQL Server の基本
    →ログファイルは二重化できないので保護されたディスクに置いてもらいたい。

    ログはシーケンシャルの Write で書きこまれる。
    複数のファイルを準備したとしても、並列には書きこまれない。
    → RAID の切り方は重要

    ?

    Written by Masayuki.Ozawa

    8月 24th, 2010 at 10:56 pm

    Posted in セミナー

    SQL Azure のインデックス関連で使用できる T-SQL について

    leave a comment

    先日は統計情報関連で使用できる T-SQL について投稿したので、今回はインデックス関連について。

    今回も以下の技術情報を元にしています。
    Transact-SQL Reference (SQL Azure Database)

    ■システムストアドプロシージャ

    sp_helpindex テーブルまたはビューのインデックスに関する情報をレポートします。

    ?

    ■システムビュー

    sys.index_columns sys.indexes インデックスまたは順序付けられていないテーブル (ヒープ) の一部である列ごとに 1 つの行を含みます。
    sys.indexes テーブル、ビュー、テーブル値関数など、テーブル オブジェクトのインデックスまたはヒープごとに 1 行のデータを格納します。

    ?

    ■T-SQL ステートメント

    ※ SQL Azure では、オンプレミスの SQL Server と構文 (使用できるオプション) が異なります。

    ALTER INDEX インデックスの無効化、再構築、再構成によって、またはインデックスに関するオプションの設定によって、既存のテーブルやビュー インデックス (リレーショナルまたは XML) を変更します。
    CREATE INDEX 指定のテーブルまたは指定のテーブルのビューに、リレーショナル インデックスを作成します。
    CREATE SPATIAL INDEX 指定したテーブルと列に空間インデックスを作成します。
    DROP INDEX DROP INDEX ステートメントを使用すると、現在の SQL Server データベースからインデックスを削除できます。

    ?

    ざっと技術情報を見たところではこの辺がインデックス関連で使用できる T-SQL になるようですね。

    [T-SQL ステートメント] に関しては、SQL Azure ではオンプレミスの SQL Server とは使えるオプションが異なっています。

    いくつか見落としがあるかもしれませんが、インデックスに特化したものはそれほど数はないみたいですね。

    Written by Masayuki.Ozawa

    8月 23rd, 2010 at 12:50 pm

    Posted in SQL Server

    Spotlight on SQL Server で SQL Azure に接続

    one comment

    今日は外出時の移動の際に [Windows Azure実践クラウド・プログラミングfor C#/Visual Basic/PHP] を読んでいました。
    書籍の中に、[アプリケーションの監視 / ロギング – 診断モニタ ?] という章があり、その中にパフォーマンスモニタについての
    記載があります。
    移動中にこの章を読んでいました。

    最近、SQL Azure を少しずつ触っているのですが、SQL Azure のパフォーマンス情報はどのように取得すればよいのだろうと
    ふと思いました。

    そういえば Spotlight on SQL Server は SQL Azure にも対応していたな~と思いさっそく試してみました。

    ?

    ■Spotlight on SQL Server の入手

    Spotlight on SQL Server の提供元である Quest 社のホームページから 30 日のトライアル版を入手することが可能です。
    SpotlightR on SQL Server Enterprise

    ?

    ■Spotlight on SQL Server のインストール

    Spotlight on SQL Server ですが、実行する端末または他の端末に情報収集用のデータベースを作成する必要があります。
    # 昔のバージョンだと、空のデータベースがあれば良かったはずなのですが、現在の Spotlight on SQL Server は診断サーバー用の
    機能をインストールして情報収集用のデータベースを作成する必要があるようです。

    今回は Spotlight on SQL Server をインストールする端末として、

    • Windows 7 x86 Enterprise Edition
    • SQL Server 2008 R2 Developer Edition

    がインストールされている環境を用意しました。

    SQL Server 2008 R2 Developer Edition ではデフォルトで [TCP/IP] が無効になっているので、TCP/IP での接続を許可するよう
    SQL Server 構成マネージャーで設定をしておきます。

    image

    それでは、Spotlight on SQL Server のインストールを開始します。

    1. Spotlight on SQL Server のインストーラーを実行します。
      image
    2. [Typical] を選択します。
      ?image
    3. [Install Spotlight Client] と [Install Diagnostic Server] を選択 (デフォルト) して、[Next] をクリックします。
      image
    4. [I accept the license agreement] を選択して、[Next] をクリックします。
      image
    5. [Install Diagnostic Server on this computer] を選択 (デフォルト) して、[Next] をクリックします。
      image
    6. 診断サーバーのサービスアカウントを指定し、[Next] をクリックします。
      今回は [Use the local System account] を選択して、ローカルシステムアカウントでサービスを起動します。
      image
    7. 管理者とユーザーアカウントについては、デフォルトの状態にして、[Next] をクリックします。
      デフォルトだと両設定にインストーラーの起動アカウントが設定されるようです。
      image
    8. [Create] をクリックします。
      image
    9. [Create] をクリックします。
      image
    10. [OK] をクリックします。
      image
    11. 今回はローカルインスタンス上に過去データ用のデータベースを作成していますので [Instance] に [localhost] を設定して、
      [Next] をクリックします。
      image
    12. [Next] をクリックします。
      image
    13. [Start] をクリックして、インストールを開始します。
      image
      image?
    14. [Finish] をクリックしてインストールを完了します。
      image

    以上でインストールは完了です。

    ?

    続いて本番、SQL Azure に接続をしたいと思います。

    SQL Azure には、[SQLAzure] というデータベースを作成してあります。
    image
    Spotlight on SQL Server から接続ができるように SQL Azure のファイアウォールも設定済みです。
    image

    ?

    ■Spotlight on SQL Server で SQL Azure に接続

    それでは、Spotlight on SQL Server を使用して SQL Azure に接続をしてみたいと思います。

    1. Spotlight on SQL Server を起動します。
      image
    2. [SQL Azure] を選択して、右クリック → [Connection manager] をクリックします。
      image
    3. [Add new connection] をダブルクリックします。
      image
    4. 準備した SQL Azure への接続情報を入力して、[OK] をクリックします。
      # ユーザー名は [@サーバー名] で修飾せず、ユーザー名だけ入力すれば問題ありません。
      image
    5. コネクション設定が作成されますので作成された設定をダブルクリックします。
      image

    以上で、SQL Azure への接続は終了です。
    SQL Azure に接続をすると以下のような情報を取得することが可能です。
    image

    こちらが、SQL Server 2008 R2 の情報を取得した画面になります。
    image

    Spotlight on SQL Server で取得できる情報ですが、オンプレミスの SQL Server と比較するとかなり少ない情報になっているようですね。

    どのような情報が実際に取得できるかは別の機会にまとめてみたいと思います。

    Written by Masayuki.Ozawa

    8月 22nd, 2010 at 10:22 pm

    Posted in SQL Server

    SQL Azure の統計情報関連で使用できる T-SQL について

    one comment

    Tech・Ed で Azure コミュニティの話もあるので最近は SQL Azure の勉強などをちょくちょくしています。

    今日は SQL Azure の統計情報関連で使用できる T-SQL について調べてみました。
    以下の技術情報を元にしています。
    Transact-SQL Reference (SQL Azure Database)

    ?

    ■システム関数

    STATS_DATE テーブルまたはインデックス付きビューの統計の最終更新日を返します。

    ?

    ■システムストアドプロシージャ

    sp_autostats インデックス、統計オブジェクト、テーブル、またはインデックス付きビューの自動統計更新オプション (AUTO_UPDATE_STATISTICS) を表示または変更します。
    sp_createstats CREATE STATISTICS ステートメントを呼び出して、統計オブジェクトの最初の列になっていない列の統計を 1 列ずつ作成します。
    sp_helpstats 指定したテーブルの列およびインデックスに関する統計を返します
    sp_statistics 指定したテーブルまたはインデックス付きビュー上にあるすべてのインデックスおよび統計の一覧を返します。
    sp_updatestats 現在のデータベース内にあるすべてのユーザー定義テーブルと内部テーブルに対して UPDATE STATISTICS を実行します。

    ?

    ■システムビュー

    sys.stats U、V、または TF 型の表形式オブジェクトの統計ごとに 1 行のデータを保持します。
    sys.stats_columns sys.stats 統計の一部である列ごとに 1 行のデータを保持します。

    ?

    ■T-SQL ステートメント

    CREATE STATISTICS テーブルまたはインデックス付きビューの 1 つまたは複数の列で、クエリの最適化に関する統計 (フィルター選択された統計情報を含む) を作成します。
    DBCC SHOW_STATISTICS テーブルまたはインデックス付きビューについての、現在のクエリの最適化に関する統計を表示します。
    DROP STATISTICS 現在のデータベースの指定されたテーブル内で、複数のコレクションの統計を削除します。

    ?

    ■データベースプロパティ (DATABASEPROPERTYEX)

    IsAutoCreateStatistics 初期値:1 (TRUE) クエリのパフォーマンスを向上させるために、クエリ オプティマイザーが必要に応じて 1 列ずつの統計を作成します。
    IsAutoUpdateStatistics 初期値:1 (TRUE) クエリで使用される既存の統計が古くなっている可能性がある場合、クエリ オプティマイザーによって更新されます。

    ?

    統計情報関連としてはこれらを利用することが可能となっているようです。

    STATS_DATE 関数が使えるので、統計情報が更新されたタイミングがわかるかな~と思ったのですが、SQL Azure では、NULL に
    なってしまって更新日がうまく取得できませんでした…。
    統計情報の自動更新はデフォルトで有効になっているのですが、データのサイズによっては実データとの乖離が発生する可能性が
    ありますので、統計情報がいつ更新されたかが取得できるとデータベース管理者としてはうれしいのですけども。

    SQL Azure も SQL Server 2008 R2 とベースは同じですので、最適なクエリの実行プランを選択するためには
    統計情報は重要になってくると思いますので必要に応じた定期的な統計情報のメンテナンスは実施する必要があります。

    SQL Azure には SQL Server Agent サービスがないので、SQL Azure 以外の機能で定期的にメンテナンスする必要がありますが。
    # 開発をやらないのでこの辺のスキルが薄い…。

    こういう情報調べるのって楽しいです♪

    Written by Masayuki.Ozawa

    8月 21st, 2010 at 2:09 pm

    Posted in SQL Server