Archive for 2010
SCCM 2007 の勉強メモ
ブログの下書をのぞいていたところ本投稿がお蔵入りとなって残っていました。
破棄するのももったいないかな~と思い、一応ブログにアップしておくことにしました。
複数サーバー構成についてはきちんとブログでまとめたいと思います。
■SCCM 2007 のバージョン
2010/1/15 時点では SCCM 2007 R2 SP2 が最新のバージョンとなります。
SCCM 2007 R2 は SCCM 2007 SP1 以降のバージョンに追加モジュールとしてインストールをするため、
単体ではインストールすることができません。
SP2 を適用しても R2 を別途インストールしないと SCCM 2007 R2 にはなりません。
TechNet サブスクリプションで提供されている SP2 のメディアは差分アップデートではなく、インストールイメージも
含まれているので 2007 RTM → SP1 → SP2 という順でインストーしなくても SP2 のメディアからインストールすれば、
With SP2 の状態でインストールされます。
SP2 → R2 の順でインストールすることで最新の状態となります。
■Windows Server 2008 R2 への対応状況
SCCM 2007 SP2 以降で Windows Server 2008 R2 に対応します。
Configuration Manager 2007 SP2 がサポートする構成
SCCM 2007 のサーバーコンポーネントは x86 のみとなっているため、Windows Server 2008 R2 では
WOW64 での動作となります。
■SQL Server 2008 への対応状況
SCCM 2007 SP1 以降で SQL Server 2008 に対応します。
Configuration Manager 2007 SP1 がサポートする構成
SCCM 2007 + SQL Server 2008 の組み合わせでは、以下の KB の更新プログラムを適用したほうがよいようです。
■SCCM の基本的な構成
SCCM はサイトという階層構成で管理がされます。
サイトには 3 種類あります。
セントラルサイト | 階層構成のルートとなるサイトです。セントラルサイトはプライマリサイトになります。 (セカンダリサイトをセントラルサイトにすることはできません) 最初に作成したプライマリサイト = セントラルサイト になるイメージかと。 |
プライマリサイト | サイト用の SQL Server のデータベースを保持するサイトです。 プライマリサイトの下にセカンダリサイトを構成することができます。 |
セカンダリサイト | サイト用の SQL Server のデータベースを保持しないサイトです。 サイトの構成情報は親サイトのデータベースに格納します。 セカンダリサイトの下にセカンダリサイトを構成することはできません。 セカンダリサイトに関しては追加の SCCM のサーバーライセンスは不要です。 |
?
SCCM クライアントは各サイトに関連付けられて管理されることになります。
1 つのサイトには複数のサーバーを配置することができます。
サーバーを複数配置し、役割を分散させることで負荷を低減させることができます。
各サイトで提供される機能はサイトシステムで構成されます。
サイトシステムには以下の役割があります。
役割 |
Configuration Manager コンポーネント サーバー |
Configuration Manager サイト サーバー |
Configuration Manager サイト システム |
Configuration Manager サイト データベース サーバー |
SMS プロバイダ |
管理ポイント |
サーバー ロケータ ポイント |
レポート ポイント |
フォールバック ステータス ポイント |
■SCCM 2007 の冗長化
検証用だと 1 台で構築してしまいますが企業向けだと冗長構成の必要性を考慮する必要があります。
SCCM 2007 の冗長構成はクラスタではなく、複数のサーバーに同一の役割をインストールすることで構成します。
一部の役割では NLB で負荷分散ができるようです。
■Active Directory のスキーマ拡張の必要性
SCCM 2007 の自習書を読むと Active Directory のスキーマ拡張の作業が書かれています。
Active Directory のスキーマ拡張は、SCCM クライアントで [サイトコードの自動探索] をするために必要となります。
スキーマ拡張をすることで、管理ポイントの情報を Active Directory に格納することができます。
スキーマ拡張をしない場合は、SCCM で [サーバーロケータポイント] の役割が必要となります。
スキーマ拡張により、AD 上に SCCM の管理ポイントの情報を保持するためのクラス / 属性が作成されます。
# [msSMS~] とついているものが拡張により作成されるもののようです。
この拡張した属性を使用することで管理ポイントの情報が AD のドメインパーティション上に作成できるようになります。
自習書で [System Management] というコンテナを作成している個所が、管理ポイント用のコンテナを作成している個所になります。
このコンテナに対して、サイトサーバーのコンピュータアカウントの [フルコントロール] を許可することで、SCCM の
サイトサーバーが管理ポイントの情報を AD 上に格納できるようになります。
SCCM 2007 のコンピュータアカウントを含めるグループを作成して、そのグループにコ
ンピュータアカウントを追加して、
グループに対してフルコントロールを設定するのが管理上便利だと思います。
■動作モードの種類
SCCM には以下の 2 種類の動作モードがあります。
ネイティブモード | インターネット上のクライアントも管理できるモードになります。 (SMS クライアントを含まない環境でも利用可能なモード) サイト – クライアント間通信は SSL が利用され暗号化された状態となります。 SSL 通信を使用するため証明書が必須となります。 HTTPS (443) による通信 |
混在モード | SMS 2003 との互換用 / インターネット上のクライアントは管理しないモードになります。 通信は暗号化されない状態となります。(SSL を使用していないため) 社内ネットワークで利用するのであれば混在モードのほうが構築しやすいと思います。 HTTP (80) による通信 |
?
■WSUS のインストール有無
SCCM では、[ソフトウェアの更新ポイント] の役割を持つサーバーを構築する場合、WSUS がインストールされた
サーバーが必要となります。
[ソフトウェアの更新ポイント] の役割をローカルではなくリモートに持つ場合は、WSUS 本体ではなく、
WSUS 管理コンソールをインストールしておきます。
# WSUS or WSUS 管理コンソールのどちらかが必須コンポーネントとなります。
WSUS の管理コンソールは WSUS のインストーラーからインストールすることができます。
Windows Server 2008 R2 で WSUS を使用するためには WSUS 3.0 SP2 が必要となります。
WSUS の管理 UI を使用するためには、[Microsoft Report Viewer 2008 再頒布可能] が必要となります。
Microsoft Report Viewer 2008 SP1 Redistributable – 日本語
Microsoft Report Viewer 再頒布可能パッケージ 2008 SP1 Language Pack – 日本語
■サイト システムの追加
SCCM のサイトにサーバーを追加する場合は、サイトに対してサイトシステムを追加します。
# 追加するサーバーでインストーラーを起動するという方法ではありません。
?
サイトシステムのインストールはコンピュータアカウントまたは、使用するアカウントを指定することができます。
使用するアカウントをローカルの Administrators グループに入れておけばインストールはできるかと。
ファイアウォールでドメインネットワークに [ファイルとプリンタの共有] は許可になっている必要がありそうです。
サイトシステムの追加をすると、追加するサーバーに対してコンポーネントのインストールが実行されます。
役割を一つも選択しない状態だと、追加サーバー側に対してコンポーネントのインストールは実行されないようです。
# SCCM の構成上登録はされるのですが、追加したサーバーに対して処理はされていないように見受けられます。
コンポーネントのインストール状況は、[コンポーネントのステータス] の [SMS_SITE_COMPONENT_MANAGER] の
メッセージで確認することができます。?
QNAP の NAS で iSCSI を設定
先週、QNAP の TS-439 Pro というモデルの iSCSI に対応した NAS を購入しました。
現行モデルは TS-439 Pro Ⅱ というモデルになりこのひとつ前の製品となります。
# この、ひとつ前の製品を型落ちの新品でなく、中古で購入した購入しました。
この NAS を使った iSCSI ターゲットの設定方法を。
■iSCSI ターゲットの設定
TS-439 は Web ベースの管理コンソールを持っており、iSCSI の設定もこの管理コンソール上で実行することができます。
iSCSI の設定もシンプルで、ターゲットを定義して、そのターゲットに対して LUN を割り当てるだけで、
iSCSI ターゲットの設定をすることができます。
- iSCSI ターゲットの有効化
デフォルトでは、iSCSI サービスは無効になっているので、iSCSI サービスを有効にします。
といってもチェックをつけるだけですが。 - ターゲットの作成
ターゲットについては、ウィザードが用意されているので、ウィザードに従って操作することで作成できます。
ターゲット名とターゲットのエイリアスを入力して、
?
CHAP 認証の設定をするとターゲットの設定は完了です。 - 続いて LUN の設定です。
LUN の作成方法には 2 種類があり、[シン・プロビジョニング] という 容量可変と、[即時配分] という容量固定の LUN の
2 つの方法があります。
シン・プロビジョニングであれば、設定した容量を実際に確保するわけではないので、検証用のディスク領域を
十分に確保することができます。
# この機能があるので、ディスクが 2 本の TS-239 でもよかったのかな~と思っています。?
LUN をどのターゲットにマッピングするかを選択して設定完了です。
アクセス制御については、ターゲット単位ではなく LUN 単位で設定することになります。
iSCSI イニシエータがアクセスすることができる、ターゲットを設定するのではなく LUN を設定するので、
細かなアクセス制御をする場合は少し大変かもしれないですね。
?
QNAP の NAS では、iSCSI ターゲットに必要な基本的な機能は実装されていると思います。
この NAS は Gigabit の NIC が 2 個ついており、ポート・トランキング機能を使って NIC のチーミングをすることも可能です。
最近の NAS はいろいろと機能が付いているんですね。
私の検証環境であれば、TS-439 というディスクが 4 本入るモデルでなく、 TS-239 というディスクが 2 本のモデルでも
十分だったのですが、新品の TS-239 ProⅡ とほとんど変わらない値段だったので、TS-439 Pro の購入となりました。
今回の NAS を購入しようと思った決め手になったのが、[Supports SPC-3 Persistent Reservation] ということです。
QNAP NAS Products Comparison
[Persistent Reservation] をサポートしているので、クラスタの検証の記憶域のチェックをパスすることもできます。
CSV でも有効なディスクとして iSCSI の LUN を設定することができ、Live Migration も実行することができました。
ただし、私の環境では CrystalDiskMark や SQLIOSIM のようなソフトで、iSCSI 経由で負荷をかけ続けるとなぜか、
NAS が再起動してしまうという現象が発生してしまい、どこまで使うことができるか少し不安です。
# MPIO を設定すると高確率で再起動するのですが、シングルパスで負荷をかけると発生頻度が落ちる (皆無ではなく) という
結果にはなっているのですが、根本的な解決方法がいまだわからず…。
Small Business 向けの製品であるはずなので、それなりに安定しているはずなんですけどね。
??? このような現象の解決について情報をおもちのかたがいらっしゃいましたらご連絡いただけるととても助かります。
??? 突発のシャットダウンが実行されると RAID の再同期が実行され、RAID-5 で 5 時間程再同期に時間が取られてしまうんですよね。
?
■パフォーマンスを測定
パフォーマンスをとってみようと、CrystalDiskMark で測定した結果がこちらです。
環境としては ML115 G5 のオンボードの Gigabit の NIC で接続をしている状態になります。
NAS のディスクとしては WDC WD10EARS を使用しています。
MTU に関してはデフォルトの状態です。
ちょっと Seq Write が低いかな~と思うのですがこんなところでしょうか。??
ML115 G5 のローカルディスクの測定結果がこちら。
こちらは WDC WD10EADS を使用しています。
# オンボードの RAID コントローラのRAID-10 で組んであります。
ML115 G5 の RAID はソフトウェア RAID のはずなので、速度はそれほどでていないと思います。
突然再起動するという現象さえ発生しなければなかなか快適なディスクアクセスかと。
QNAP の NAS はこの価格帯の NAS としては高機能で結構使い勝手が良さそうですね。
インターネットだと オリオスペック さんで購入することが可能です。
興味のある方は一度ご覧いただければと思います。
第2回 SQL Server & SQL Azure Bloggers Meeting に参加してきました
続いて後半の [第2回 SQL Server & SQL Azure Bloggers Meeting] のセミナーレポートを。
第1回は参加できなかったので今回 Bloggers Meeting 初参加です。
直近で行われた記者発表の内容をお話いただけました。
# 今後も記者発表の後に、発表いただいた内容を Bloggers Meeting を開催してお話いただけるようです。
■発売日と価格体系
SQL Server Product Manager チームの斎藤さんによる発売日と価格、4 月 30 日まで実施しているキャンペーンについてのお話です。
発売日
ボリュームライセンスは 2010 年 5 月 1 日発売
→ボリュームライセンスは月初に発売されるのが通例
パッケージ製品は 2010 年 6 月発売予定
SQL Server 2008 R2 の特徴
SQL Server 2008 R2 は Azure とのシームレスな連携が可能
→ SQL Azure は R2 から派生したバージョンである。(Azure : 10.25 / R2 10.5)
エンドユーザーはオンプレミス / Azure を意識しないで利用できる。
Azure で培ったファプリックの機能をオンプレミスにも連携している。
→統合管理部分
TPC-E の Top1 は SQL Server 2008 R2。
価格
Datacenter Edition が R2 から追加されている。
→従来の Enterprise Edition の 2 倍
ライセンスモデルは従来からのライセンス形態と同一 (プロセッサライセンス , サーバー/クライアント CAL)
プロセッサライセンスは物理プロセッサ単位で課金 (コア単位ではない)
→ Oracle はコアの係数で課金。
今年の後半では 12 コアの CPU (AMD) が発売される予定のため、今後コア単位で価格を考えた場合どんどん安くなっている。
SQL Server は All in one パッケージ
→ Oracle はオプションを購入
■各種キャンペーン情報
4 月 30 日までで SQL Server の購入キャンペーンが実施されている。
→ SQL Server 2008 R2 を使うことができる特典も含まれている
キャンペーンの詳細に関してはこちらになります。
Microsoft SQL Server 2008 トリプル キャンペーン!! : SQL Server 2008
■新機能のデモンストレーション
続いては SQL Server Product Manager チームの松澤さんによる PowerPivot のデモ。
難しい / 高い BI からの脱却。
使いやすく、現状使っているツールで利用可能
→ SQL Server 2008 R2 のセルフ サービス BI
自分のローカルに持っている情報、インターネット上の情報を SQL Server で持っている情報とマッチングさせて分析が可能。
情報のリアルタイム性に対応。
自分が欲しい情報をユーザー主体で作成して、複数のユーザーで情報の共有を可能とする。
PowerPivot for Excel 2010 の紹介
今まで、Excel であったピボットテーブルを強化。
インメモリ OLAP として動作する。
→ クライアントにキューブを作成する。
取り込めるデータは、SQL Server だけでなく、他社製 DB , インターネット上のデータを使用することができる。
SSRS の情報を分析対象として使用するデモ。
レポートを開いてデータフィードの出力をすることで、PowerPivot に連携することができる。
PowerPivot に取り込んだデータをピボットテーブで分析を行う。
取り込んだデータはユーザー主体で、値を加工することができる。
→ PowerPivot のデータが変更された場合、ピボットテーブルでも情報が変更されたことを認識し、情報の更新の必要性が通知される。
ローカルのキューブに変更があったことを通知できる。
SSRS から取り込んだデータと SQL Server 上に存在しているテーブルでリレーションシップを設定することができる。
(異なるデータソースを統合して分析することが可能)
→ 取り込んだデータを使ってピボットテーブルを操作した際に、リレーションシップの必要性がある場合は通知がされる。
スライサーにより、データのフィルタリングを実施することができる。
リンクテーブルの作成を使うことで、Excel 上のデータを PowerPivot に瞬時に取り込むことができる。
→ リンクテーブルで取り込んだものもリレーションシップで使用することができる。
リンクテーブルでデータを指定した場合は、リンクテーブルとして設定したデータソースを変更すると PowerPivot も自動的に変更される。
PowerPivot から SSRS のレポートを直接取り込むことも可能。
→ SSRS の URL を指定して、取り込み対象のレポートを選択する。
SSRS のレポートを直接取り込んだ場合、サーバーのレポートが変更されたら、[最新の情報に更新] することで、更新されたレポートの内容を
PowerPivot で表示できる。
Web 上の HTML のテーブルデータをコピー & ペーストすることで、Web 上のデータを PowerPivot に取り込むことができる。
作ったデータはローカルでのみ使用するのではなく、MOSS 2010 と連携することで情報の共有化が可能となる。
→ PowerPivot.用のライブラリで公開 (PowerPivot for SharePoint を使う)
Excel サービスを使うため、クライアントに Excel が入っていなくてもブラウザ上で情報を利用することができる。
セルフサービス BI により、キューブの作成からエンドユーザーで実施することができる。
管理者用のダッシュボードを使用することで、MOSS 上の PowerPivot の利用状況を確認することができる。
→ ユーザーが任意で作ったキューブを IT 管理者側でウォッチすることができる。
SSRS の RS の新機能
データバー / インジケーター / スパークラインを使うことができる。
# スパークラインは Office 2010 で使えるようになった機能。
地図レポートを簡単に作ることができるようになった。
→ 色分析マップ / バブルマップが使える。
(バブルマップによると関西の人が納豆を食べないというのはそうでもないらしいです)
BingMap と連携することも可能となっている。
2008 R2 では Report Builder が 3.0 となっている。
→ マップウィザードにより、地図を使用したレポートも簡単に作れるようになっている。
SQL Server 2008 R2 の機能に関してはこちらから。
SQL Server 2008 R2 概要
久しぶりにどっぷり SQL Server でとても充実した一日でした~。
第2回 SQL Server & SQL Azure Bloggers Meeting に参加してきました
続いて後半の [第2回 SQL Server & SQL Azure Bloggers Meeting] のセミナーレポートを。
第1回は参加できなかったので今回 Bloggers Meeting 初参加です。
直近で行われた記者発表の内容をお話いただけました。
# 今後も記者発表の後に、発表いただいた内容を Bloggers Meeting を開催してお話いただけるようです。
■発売日と価格体系
SQL Server Product Manager チームの斎藤さんによる発売日と価格、4 月 30 日まで実施しているキャンペーンについてのお話です。
発売日
ボリュームライセンスは 2010 年 5 月 1 日発売
→ボリュームライセンスは月初に発売されるのが通例
パッケージ製品は 2010 年 6 月発売予定
SQL Server 2008 R2 の特徴
SQL Server 2008 R2 は Azure とのシームレスな連携が可能
→ SQL Azure は R2 から派生したバージョンである。(Azure : 10.25 / R2 10.5)
エンドユーザーはオンプレミス / Azure を意識しないで利用できる。
Azure で培ったファプリックの機能をオンプレミスにも連携している。
→統合管理部分
TPC-E の Top1 は SQL Server 2008 R2。
価格
Datacenter Edition が R2 から追加されている。
→従来の Enterprise Edition の 2 倍
ライセンスモデルは従来からのライセンス形態と同一 (プロセッサライセンス , サーバー/クライアント CAL)
プロセッサライセンスは物理プロセッサ単位で課金 (コア単位ではない)
→ Oracle はコアの係数で課金。
今年の後半では 12 コアの CPU (AMD) が発売される予定のため、今後コア単位で価格を考えた場合どんどん安くなっている。
SQL Server は All in one パッケージ
→ Oracle はオプションを購入
■各種キャンペーン情報
4 月 30 日までで SQL Server の購入キャンペーンが実施されている。
→ SQL Server 2008 R2 を使うことができる特典も含まれている
キャンペーンの詳細に関してはこちらになります。
Microsoft SQL Server 2008 トリプル キャンペーン!! : SQL Server 2008
■新機能のデモンストレーション
続いては SQL Server Product Manager チームの松澤さんによる PowerPivot のデモ。
難しい / 高い BI からの脱却。
使いやすく、現状使っているツールで利用可能
→ SQL Server 2008 R2 のセルフ サービス BI
自分のローカルに持っている情報、インターネット上の情報を SQL Server で持っている情報とマッチングさせて分析が可能。
情報のリアルタイム性に対応。
自分が欲しい情報をユーザー主体で作成して、複数のユーザーで情報の共有を可能とする。
PowerPivot for Excel 2010 の紹介
今まで、Excel であったピボットテーブルを強化。
インメモリ OLAP として動作する。
→ クライアントにキューブを作成する。
取り込めるデータは、SQL Server だけでなく、他社製 DB , インターネット上のデータを使用することができる。
SSRS の情報を分析対象として使用するデモ。
レポートを開いてデータフィードの出力をすることで、PowerPivot に連携することができる。
PowerPivot に取り込んだデータをピボットテーブで分析を行う。
取り込んだデータはユーザー主体で、値を加工することができる。
→ PowerPivot のデータが変更された場合、ピボットテーブルでも情報が変更されたことを認識し、情報の更新の必要性が通知される。
ローカルのキューブに変更があったことを通知できる。
SSRS から取り込んだデータと SQL Server 上に存在しているテーブルでリレーションシップを設定することができる。
(異なるデータソースを統合して分析することが可能)
→ 取り込んだデータを使ってピボットテーブルを操作した際に、リレーションシップの必要性がある場合は通知がされる。
スライサーにより、データのフィルタリングを実施することができる。
リンクテーブルの作成を使うことで、Excel 上のデータを PowerPivot に瞬時に取り込むことができる。
→ リンクテーブルで取り込んだものもリレーションシップで使用することができる。
リンクテーブルでデータを指定した場合は、リンクテーブルとして設定したデータソースを変更すると PowerPivot も自動的に変更される。
PowerPivot から SSRS のレポートを直接取り込むことも可能。
→ SSRS の URL を指定して、取り込み対象のレポートを選択する。
SSRS のレポートを直接取り込んだ場合、サーバーのレポートが変更されたら、[最新の情報に更新] することで、更新されたレポートの内容を
PowerPivot で表示できる。
Web 上の HTML のテーブルデータをコピー & ペーストすることで、Web 上のデータを PowerPivot に取り込むことができる。
作ったデータはローカルでのみ使用するのではなく、MOSS 2010 と連携することで情報の共有化が可能となる。
→ PowerPivot.用のライブラリで公開 (PowerPivot for SharePoint を使う)
Excel サービスを使うため、クライアントに Excel が入っていなくてもブラウザ上で情報を利用することができる。
セルフサービス BI により、キューブの作成からエンドユーザーで実施することができる。
管理者用のダッシュボードを使用することで、MOSS 上の PowerPivot の利用状況を確認することができる。
→ ユーザーが任意で作ったキューブを IT 管理者側でウォッチすることができる。
SSRS の RS の新機能
データバー / インジケーター / スパークラインを使うことができる。
# スパークラインは Office 2010 で使えるようになった機能。
地図レポートを簡単に作ることができるようになった。
→ 色分析マップ / バブルマップが使える。
(バブルマップによると関西の人が納豆を食べないというのはそうでもないらしいです)
BingMap と連携することも可能となっている。
2008 R2 では Report Builder が 3.0 となっている。
→ マップウィザードにより、地図を使用したレポートも簡単に作れるようになっている。
SQL Server 2008 R2 の機能に関してはこちらから。
SQL Server 2008 R2 概要
久しぶりにどっぷり SQL Server でとても充実した一日でした~。
Tech Fielders セミナー 東京 [BI を用いたログ管理(取込みから分析まで)~SQL Server 2008 R2 編] に参加してきました
本日は新宿で [Tech Fielders セミナー 東京 [BI を用いたログ管理(取込みから分析まで)~SQL Server 2008 R2 編]] が
開催されていたので参加してきました。
夜の部の [第2回 SQL Server & SQL Azure Bloggers Meeting] にも続けて参加。
久しぶりに SQL Server にどっぷりな一日です。
今日はそのセミナーレポートを Tech Fielders と Bloggers Meeting にわけて投稿。
まずは前半の Tech Fielders のセミナーレポートから。
■『BIを使ったログ管理(取込みからレポートまで)~SQL Server 2008 R2編』
Microsoft のエバンジェリスト 安納さんによる、SQL Server 2008 R2 を使用したログ管理のセッションです。
SSIS を使用して外部ファイルを SQL Server / SQL Azure に取り込み、PowerPivot で分析をするというシナリオになります。
■BI の 3つの柱
- データの準備:SSIS
- データの分析:SSAS
- データの可視化:SSRS
データの分析には若干のコーディング力が求められるので、エンドユーザーが実施するには敷居が高い…。
→ 2008 R2 からの PowerPivot でエンドユーザーでもデータ分析が、使いやすくなる。
エンドユーザーが慣れ親しんでいる、Excel のピボットテーブルを使用して、データの分析が可能に。
エクセルで外部データを取り込んで、分析が行える。
PowerPivot では、Excel の上限である 100 万行を超えることができる。(大量のデータを取り込むにはメモリは必要)
?
■環境の準備
- Windows Server 2008 R2 + SQL Server 2008 R2 EE RC
- Windows Server 2008 R2 + SharePoint Server 2010 RC
- Windows 7 + Excel 2010 RC + PowerPivot
- SQL Azure
Office? 2010 は Beta 版となるが、他については評価版で入手が可能。
注意:
OLEDB ドライバの Office 2010 用だと SSIS で使えなかったので、今回は Office 2007 用の OLEDB ドライバを使っている。
また、Office 2007 は x86 のみとなっているので、64 ビットランタイムは無効にする必要がある。
■SSIS の基本的な使い方
郵便番号データを使用した、データの取り込みのシナリオを実施。(新規 / 差分削除 / 差分追加)
# 日本郵便が提供しているデータを使用。
ポイント:
SSIS を使う場合には、変換元と変化先をつなぐ、接続マネージャーを意識する必要がある。
Excel → SQL Server
インポートおよびエクスポート ウィザードを使用して郵便番号データの Excel を取り込むデモ。
→? ウィザードで先頭行が列かどうかを指定することが可能。(他の場所でファイルが開かれていると取り込めない)
変換元として Excel、変換先として SQL Server を指定。
→? すべてのデータをコピーすることも、クエリを記述して元になるファイルの内容を絞り込むことが可能。
Excel の場合は、取り込むシートを指定することが可能になる。
テーブルのからむとセルのマップは自動で行われるが、新規テーブルに取り込む場合は、手動でカラムの属性を変更することも可能
テーブルが既に存在する場合は削除するかを指定することができる。
ウィザードが終了すると SSIS のパッケージが作成されるので、作成したパッケージを実行することでデータを取り込むことができる。
CSV → SQL Server
CSV の場合は、Excel と異なり、データの区切りや、ファイルのコードページ等を指定する必要がある。
CSV もインポートおよびエクスポートウィザードで取り込みが可能。
変換元として [フラット ファイル ソース] 指定する。
→ プレビューで区切り等の設定状況を確認できる。
CSV の場合は各列の属性 (列名、列の型、文字列長) を指定する設定がある。
→ 取り込み先のテーブルの型定義に反映される。
先頭の 1000 行を使った型の推測機能があるが、データの量が多い場合は、推測されたものと実際の内容に乖離があることがあるため、
推測に頼りすぎるのは注意!!
作成されるパッケージの流れは Excel 同一。
データフロータスクが Excel と異なる。(変換元が、CSVになっている)
データフロータスクでは、エラー時のフローを指定することができる。
→ 失敗時のフローを、フラットファイル変換先に接続することで、エラーがあったものを別のテキストに出力することができる。
[フラットファイルソースのエラー出力列] という項目にエラーとなった行が丸ごと含まれている。
ポイント:
通常、エラーが発生すると SSIS 本体にエラーが返されるので、変換元の [エラー出力] から、[エラー] を [エラーコンポーネント] ではなく
[行のリダイレクト] に設定し、外部ファイルに出力する必要がある。
変換元に指定したものは、そのまま変換タスクに列を渡すのではなく、変換元で外部列 → 出力列 という流れでデータが渡される。
# 変換元のフローの場合は右クリックして、[詳細エディターの表示] を開き、[入力プロパティと出力プロパティ] を表示することで確認ができる。
差分データの削除
差分の削除データを受け取った場合の削除処理の実装方法。
OLE DB コマンドを使用して差分データの削除を指定できる。
→ パラメータ化された SQL 文を指定する。
[詳細エディターの] 列マッピングを使用して、OLE DB コマンドで指定したパラメータ (? で指定) と入力列を対応付けする。
先頭のパラメータから、[Param_x] で連番 (0からの数字) となるので、入力のどの項目とパラメータが対応数r化をマッピングさせ、既存の列を削除することができる。
処理の自動化
作成したプロジェクトを [ビルド] して dtsx ファイルを作成し、SQL Server Agent に [SQL Server Integration Services パッケージ] を
実行するステップを含むジョブとして登録する。
ビルド:BIDS (BI Development Studio)
ジョブの登録 : SSMS (SQL Server Management Studio)
パッケージはファイルシステムとしてローカルに保存した [dtsx] ファイルを指定することが可能。
# パッケージをビルドするとローカルの bin フォルダに dtsx ファイルが保存されるのでそちらを使用。
ポイント:
デフォルトでは、[SQL Server Agent] のサービスは停止しているので、自動起動にする。
CSVl → SQL Azure
SQL Azure のサーバー名を指定することで、SSMS で直接接続することができる。
SQL Azure を使用する場合、認証は [SQL Server 認証] しか、現状使うことができない。
# 接続時された後にオブジェクト エクスプローラーで表示されるアイコンはオンプレミスと SQL Azure で異なる。
SSMS だけでなく、BIDS でも接続することが可能。
CSV ファイルの変換先を SQL Azure に指定して、直接 SQL Azure に投入するデモ。
SQL Azure の文字列データは [Unicode] を使用する。
SQL Azure にテーブルを作成する場合は、 [ID] 列が必ず必要となる。
■SSIS によるイベントログの取り込み
イベントログ → SQL Server
イベントログの再利用。
SQL Server にイベントログを格納することで検索時の利便性向上。
WMI を使用してイベントログの情報を取得し、SQL Server に格納する仕組みを SSIS で構築。
TimeWritten の項目を使用して前回取り込み以降の情報を制御する。
# TimeWritten : イベントが書き込まれた日時
テーブルは、イベントログの種類 (Application / System / Security) に分けている。
各テーブル内には、複数のサーバーの情報が格納される。
イベントログを取得する対象のサーバーはソースリスト用のテーブルに格納している。
コンピュータのリストを取得して、[Foreach ループ コンテナ] で取得したコンピュータリストに対して繰り返し処理を実行する。
- SQL 実行タスクでコンピュータリストのテーブルから、全レコードを取得
結果の取得方法に関しては、[結果セット] で指定する。
今回は [完全な結果セット] を [User::ComputerList] に格納する。(コンピュータ名とイベントログの名前)
- 取得した [User::ComputerList] を Foreach ループコンテナで使用する。
[ADO オブジェクト ソース変数] に [User::ComputerList] を指定している。
# Foreach ADO 列挙子取得した項目を、[変数のマッピング] で 変数に設定する。
[User::tmmpComputerName] [user::tmpLogfileName] という変数に取得した値を格納している。
# ADO 列挙子で取得した値は、インデックス番号 0 から始まる。Foreach ループコンテナで [ループの各繰り返しの開始点で停止します] のブレークポイントを指定すると、
ループで使用されている値がわかりやすい。 - テーブル名の動的生成
コンピュータリストに格納されている、イベントログの名前を使用してテーブルを動的に作成する。
# 特定のコンピュータにしか指定していない、イベントログが存在する可能性もある。
そのため、取得したレコードを元に、対象のイベントログの名前のテーブルが存在しているかを確認し、
存在していない場合は、テーブルの新規作成が必要となる。Expression を使用することで、動的に SQL を生成し、実行することができる。
今回は Expression を使用して、[SqlStatementSource] という、実行する SQL を指定するプロパティの値を動的に生成して、
実行する SQL を柔軟に設定することを可能にしている。 - 取り込み範囲のチェック
現在処理をしている、コンピュータ 名/ 対象のログの種別から、[TimeWritten] の最大値を取得。処理しているコンピュータ名 / ログの種別によって動的に SQL を生成する必要があるためこちらも Expressioin を使用。
取得した、値を、[User::MaxTimeWritten] に設定する。
- イベントログの取得
[WMI データ リーダー タスク] を使用して、WMI でイベントログのデータを取得。今までの SQL 実行と同様、実行する WQL (WMI で実行するクエリ) 波動的に変更される。
WQL を直接書いてしまうと、特定のサーバーの情報しか取得ができない。そのため、[WqlQuerySource] には、WQL を直接記載するのではなく、変数 (今回は [User::WQL]) を指定している。
Expression を使用して動的に SQL を生成している変数を作成して、実行するクエリとして指定している。ポイント:
範囲指定で使用する、[User::MaxTimeWritten] は日付型なので、文字列にキャストする必要がある。
取得した結果は [User::EventData] に格納しているが、値の型を [Object] にし、どのような戻り値であっても対応可能とする。
データ型は画面左の [変数] で確認ができる。
キャストについては式ビルダで確認することが可能。 - 取得したイベントログを繰り返し処理
Foreach ループコンテナーで取得したイベントログを ADO 列挙子として、指定して繰り返し処理を実行
変数のマッピングで、取得した ADO 列挙子の内容を、変数に格納 - INSERT 文の生成
イベントログの内容は、改行やシングルクォートが入っている可能性があるため、をのまま INSERT をするとエラーとなる可能性がある。
# 形式エラーの可能性も (日付型に対しての NULL 値 等)そのため、スクリプトタスクで SQL を成形して、SSIS の変数として格納
- SQL の実行
生成した INSERT 文を実行する。
実行する SQL としてスクリプトタスクで生成した変数を指定する。
■PowerPivot を使用した分析
SQL Server 2008 までは SSAS を使用していたが、R2 では PowerPivot を使用して分析を行うというシナリオになる。
→ 今までと同様、BIDS SSAS そのまま使用することもできるが PowerPivot によって、エンドユーザーにより使いやすくなっている。
今までの、BI は BIDS を使用して準備をしないと使えなかったためファーストステップが難しかった。
IW (インフォメーションワーカー層) が使用できる、セルフサービス BI を SQL Server 2008 R2 で実現。
PowerPivot には以下の 2 種類がある。
- PowerPivot for Excel 2010
Excel の上限を超えた件数のデータに対応
インメモリエンジン
ローカル PC のリソースを使用
PowerPivot のアドインをインストールする必要がある
- PowerPivot for SharePoint 2010
SharePoint の Excel サービスを使用
for Excel 2010 では自分が使用する機能であり、多数のユーザーに公開ができない
→ for SharePoint ではポータル経由で複数のユーザーに公開ができる。
ブラウザを介してアクセスするため、サーバーのリソースを使用
PowerPivot を使用することで、SSAS を介さずにデータの分析が可能となる。
ポイント :
PowerPivot はエンドユーザーが SQL Server に直接接続をするため、SQL Server で適切な権限を設定する必要がある。
PowerPivot の利用手順
- 計画
何を分析するのかを明確にする必要がある。
分析対象が決まらないとキューブを作成することができない。何を基準に分析をするか (分析軸) を決めることも重要
- 分析軸用のテーブルを準備
分析対象のデータを何を基準に分析するか。
分析の基準となる分析軸用のテーブルを作成する。
→ 時間軸 / ログタイプ (情報 / 警告 / エラー / 重大)? / コンピューター名分析軸用テーブルは SQL Server 上のテーブルではなく、EXCEL のシートで用意しておけばよい。
時間軸のテーブルは Excel の [フィル] の [連続データの作成] の [データ予測] を使用すると簡単に作れる。
→ ドラッグして作るのはオートフィル - Excel 2010 から PowerPivot を起動
PowerPivot のアドインをインストールするとリボンに PowerPivot が追加されている。
リボンから、PowerPivot for Excel を起動することが可能となる。
- 分析に使用するテーブルを読み込み
デフォルトで他データベースや SQL Azure を選択することも可能。
→ SSRS や ATOM フィードからインポートすることも可能。SSIS 同様、クエリによるデータの絞り込みも可能。
分析に使用するベースとなるデータと分析軸として使用するデータの取り込みを行う。
- 計算列の追加
分析に使用する項目が既存の列を使用して計算をする必要がある場合は列を追加する。データと分析軸でリレーションが設定できるように、値の粒度 (精度) を同じにする。
→ 分析軸のデータを分析で使用する粒度に分割することもポイント。 - リレーションシップの作成
[デザイン] の [リレーションシップの作成] からリレーションシップを作成することができる。
- ピボットテーブルで分析
PowerPivot からピボットテーブルを作成し、データの分析を行う。スライサーにより、分析対象の選択がしやすくなる。
→ ドラッグアンドドロップでフィルタができる UI を表示することができる。ここまでが PowerPivot for Excel で操作する内容。
- PowerPivot for SharePoint による分析データの公開
SharePoint の PowerPivot ライブラリに公開することができる。
# Excel サービス + PowerPivot サービスをサーバー側で使っている。PowerPivot で指定したスライサーも利用することができる。
アクセス権の制御は SharePoint 上で行う事ができる。
→ MOSS のアクセス許可で設定できる。プレビューは Excel のシートを元に表示されるため、空のシートがある場合は削除しておくと見栄えが良い。
→ プレビューには SilverLight が使われている。
?
■ライトニングトーク
最後は、Tech Fielders 恒例のライトニングトークになります。
今回は SQL Server と Oracle の資格体系の比較と TMG についてのライトニングトークでした。
まさか LT で TMG が来るとは思っていませんでした。
SQL Server と Oracle の資格体系の比較では、Oracle の Bronze / Silver / Gold / Platium と比べると、
SQL Server の MCITP は上長のうけと学習の内容の差について。
Oracle Bronze では SQL が範囲にあり、クエリの勉強が必須となりますが MCITP ではあまり構文に触れないと言った
話は確かにそうだな~と思いました。
SQL Server だと構文は MCP ではなく MCA の別体系の資格になってしまうんですよね…。
Oracle の方が一つの資格体系でクエリも含めた基礎から通して勉強できるので話にあったように新入社員の方にも
勧めやすい資格だと思います。
TMG については TMG でこのようなことができますという機能紹介が。
若い方がセキュリティ製品について話をされていたことにまず驚きでした。
バーチャルパッチやウイルス検知、メール保護、SSL検査等の TMG が持っているセキュリティ機能について LT をされていました。
TMG はバーチャライゼーションサミットでも話があったので興味がある方は多かったのではないでしょうか。
?
前半の Tech Fielders に関してはこの辺で。
続いては Bloggers Meeting の内容を。
AD LDS のディレクトリ パーティションに接続
Microsoft の一部の製品では、構成情報の格納に AD LDS (以前のADAM) を使用しているものがあります。
# といっても私が使ったことがあるものでは ISA / TMG ぐらいですが。
今日は AD LDS で使用しているディレクトリ パーティション情報の取得について。
AD LDS でどのようなディレクトリ パーティションが設定されているかを確認していきたいと思います。
■インスタンス情報の取得
ディレクトリ パーティションを確認する前にそのサーバーでどのようなインスタンスが起動しているかを確認する必要があります。
サーバー内でどのようなインスタンスが動いているかをみるためには 2 種類の方法があります。
- [ntdsutil] で確認
- サービスで確認
[ntdsutil] で確認
- リモート サーバー 管理ツールの [AD DS スナップインおよびコマンドラインツール] をインストールすることで
[ntdsutil] というコマンドを使用できるようになります。
このコマンドを使うことでサーバーにインストールされているインスタンスの一覧を表示することが可能になります。 - コマンドをプロンプトを開いて [ntdsutil] を実行します。
- ntdsutil を実行したら、[list instance] と入力します。
このコマンドを実行することでインストールされている AD LDS のインスタンスを表示することができます。
以下がコマンドの実行結果になります。
[list instance] を実行することで、インスタンスで使用しているポートを確認することができます。
パーティション情報を確認する際には LDAP で使用しているポート番号が必要になります。
>ntdsutil
ntdsutil: list instanceインスタンス名:??????? ISASTGCTRL
長い名前:????????????? ISASTGCTRL
LDAP ポート:?????????? 2171
SSL ポート:??????????? 2172
インストール フォルダー: C:Windows
データベース ファイル: C:Program FilesMicrosoft Forefront Threat Management GatewayADAMDataadamntds.dit
ログ フォルダー:???????? C:Program FilesMicrosoft Forefront Threat Management
GatewayADAMData
サービスの状態:??????? 実行中
- サービスで確認
- サービス名が [ADAM_xxxxxx]、説明が [AD LDS インスタンス] となっているものがあります。
[ADAM_] の後の値がインスタンス名になります。
以下は TMG 2010 インストール時に作成される AD LDS のインスタンスになります。
[ISASTGCTRL] というインスタンスがインストールされているのが確認できます。?
- ポート番号を調べるためには、[netstat -ano] を使用するのがわかりやすいと思います。
まずは AD LDS で使用しているプロセス ID を取得します。
プロセス ID を取得する方法はいろいろとありますが、[tasklist] コマンドを使って取得してみたいと思います。
コマンドは以下になります。
[tasklist] コマンドの実行結果を [dsamain.exe] でフィルタリングしています。
# AD LDS のサービスは dsamain.exe というプログラムを実行しています。
>tasklist | find "dsamain.exe"
dsamain.exe?????????????????? 1168 Services?????????????????? 0???? 19,500 Kプロセス ID が [1168] となっていることが確認できます。
続いてこのプロセス ID がどのポートを使用しているかを核にします。
-
取得したプロセス ID で [netstat -ano] の結果をフィルタリングします。
>netstat -ano | find "1168"
? TCP??? 0.0.0.0:2171?????????? 0.0.0.0:0????????????? LISTENING?????? 1168
? TCP??? 0.0.0.0:2172?????????? 0.0.0.0:0????????????? LISTENING?????? 1168
? TCP??? 0.0.0.0:2173?????????? 0.0.0.0:0????????????? LISTENING?????? 1168
? TCP??? [::]:2171????????????? [::]:0???????????????? LISTENING?????? 1168
? TCP??? [::]:2172????????????? [::]:0???????????????? LISTENING?????? 1168
? TCP??? [::]:2173????????????? [::]:0???????????????? LISTENING?????? 1168
? UDP??? 192.168.0.1:2171?????? *:*??????????????????????????????????? 1168
? UDP??? [fe80::e9d5:b345:f9da:6f55%13]:2171? *:*???? 1168[ntdsutil] で確認ができたポート [2171] がこの結果からも取得できました。
- サービス名が [ADAM_xxxxxx]、説明が [AD LDS インスタンス] となっているものがあります。
TMG 2010 で使用される AD LDS では、[2171] が使われるように自動で設定されるみたいです。
何サーバーかにインストールしてみたところ全サーバー [2171] が使用されていました。
■ディレクトリ パーティション情報の取得
ここからが本題のディレクトリ パーティション情報の取得になります。
ディレクトリ パーティション情報の取得は [ntdsutil] を使用します。
実行する [ntdsutil] コマンドの形式は以下の内容になります。
[connect to server] の後に [サーバー名:ポート番号] で接続先を指定します。
この時のポート番号に先ほど取得したポート番号を指定します。
# サーバー名に関しては自サーバーの情報のため、localhost を指定しています。
>ntdsutil |
TMG 2010 ではインストールをすると上記 3 つのディレクトリ パーティションが作成される用です。
0 が構成 パーティション / 1 がスキーマ パーティション / 2 がアプリケーション ディレクトリ パーティション になります。
TMG 2010 の構成情報に関しては [CN=FPC2] に格納されます。
■TMG 2010? のアプリケーション ディレクトリ パーティションに接続
パーティション名がわかれば、[ADSI エディター] 等のツールで接続することができます。
ADSI エディター起動後に接続先として以下のように設定をすると TMG 2010 の構成情報に接続ができます。
下の画像が接続した結果になります。
TMG 2010 で設定できる項目がいろいろと格納されていることが確認できます。
?
今回は AD LDS を対象としましたが、この方法は AD DS でも同様に使うことができます。
AD DS に接続する場合はポート [389] を使用します。
# 389 は明示的に指定しなくても接続できます。
>ntdsutil |
AD 統合ゾーンの DNS の機能がインストールされたドメインコントローラーで情報を取得したので、基本の 3 パーティション
(構成 / スキーマ / ドメイン) の他に、DNS 用のアプリケーション ディレクトリ パーティションが存在しているのが確認できますね。
ディレクトリ パーティションの一覧取得方法を忘れてしまうことがしばしばあるのでこの機会にまとめてみました。
# もっとスマートな方法があるとは思うんですけどね。
TMG 2010 で RD Web アクセスを公開
先週の頭まで、MCP 70-659 の勉強で検証環境に VDI や RemoteApp を構築していました。
VDI と RemoteApp は RD (リモートデスクトップ) Web アクセスで公開することができます。
私の使っている検証環境には TMG 2010 があるので、リバースプロキシ越しで使うことができるのかな?
と思って RD Web アクセス用のルールを作って試してみました。
?
■TMG 2010 のファイアウォールポリシー
リバースプロキシはファイアウォールポリシーで設定をすることになります。
パスの変換ルールとして [RDWeb] を許可するルールを作る必要があります。
設定については以下の画像の用になります。
[/RDWeb/*] のパスに対してのアクセスを許可しています。?
ブリッジに関しては [HTTPS to HTTPS] (TMG が 443 で受けて RD Web アクセスの 443 に接続) で設定しているのですが、
これは [HTTPS to HTTP] (TMG が 443で受けて RD Web アクセスの 80 に接続) でもよいかもしれないですね。?
ざっくりとした概要図を書くと以下のようになります。
# 正確には RD 接続ブローカーや、RD ゲートウェイも入っていたりするのですが。
クライアントからは、TMG 2010 に HTTPS でアクセスできれば RD Web アクセスを経由して、VDI や RemoteAppを
使用することができるようになります。
VDI / RemoteApp は RD ゲートウェイを設定することができ、[接続承認ポリシー] [リソース承認ポリシー] と
組み合わせることもできます。
TMG と RD ゲートウェイが組み合わされるため、構築していて認証される個所がよくわからなくなってきましたが…。
設定がきちんとされていれば、TMG 2010 越しで VDI と RemoteAppを使用することができるようになります。
Windows 7 の [RemoteApp とデスクトップ接続] も TMG 2010 越しで使用することができます。?
リスナーの認証設定によっては、[認証の委任] を [委任できません。クライアントは直接認証できます] に
設定しないとうまく動作しないことがあるかも知れません。
# クライアントは直接認証できないのが望ましいんでしょうけど。私の環境はリスナーの認証設定をきちんと整備していないので
直接認証できないと接続ができないことがしばしばあります。?
HTTPS を公開することでいろいろなサービスが享受できるようになりますね。
SCDPM 2010 RC の保護エージェントをアンインストール
今回は保護エージェントのアンインストール編です。
インストールと同様、アンインストールも以下の 2 種類の方法があります。
それぞれの方法を見ていきたいと思います。
■手動アンインストール
- [DPM 2010 管理者コンソール] を実行します。
- 手動で保護エージェントをアンインストールしたコンピューターを右クリックして、[アンインストール] をクリックします。
- [エージェントのアンインストール] をクリックします。
- エージェントをアンインストールしたコンピュータの管理者権限のアカウント情報を入力して、[OK] をクリックします。
- 保護エージェントのアンインストールが実行されます。
- [詳細] に表示されている、[コンピューターのレコードをこの DPM コンピューターから削除する] をクリックします。
?
以上で、保護エージェントの手動アンインストールは完了です。?
■管理コンソールからアンインストール
保護エージェントは管理コンソールをトリガーとしてアンインストールすることも可能です。
# 手動でアンインストールした時に管理コンソール側で実行している操作だけでアンインストールすることもできます。
インストールの時と同様、保護エージェントをインストールしたコンピューターで High-Port のポリシーが許可されていないと
エラーとなってしまうようです。
# インストール / アンインストールともにネットワークモニターでは、保護エージェントがインストールされている
コンピューターの 40000 番台のポートが使用されているようなので、[1024 ~ 65535] でなく、[49152 ~ 65535] の
許可だけでもインストール / アンインストールができるかもしれないですね。
- [DPM 2010 管理者コンソール] を実行します。
?
- 保護エージェントをアンインストールしたいコンピューターを右クリックして、[アンインストール] をクリックします。
- [エージェントのアンインストール] をクリックします。
- エージェントをアンインストールするコンピュータの管理者権限のアカウント情報を入力して、[OK] をクリックします。
- エージェントのアンインストールが実行されます。
?
手動 / 管理コンソールからのアンインストールともに、保護エージェントをインストールしていたコンピューターの
[DPMRA_DCOM_135] のファイアウォールのルールは削除されないので、必要に応じて手動で削除します。
インストール / アンインストールともに管理コンソールで操作する場合は、ファイアウォールの設定がポイントになるようですね。
さて、これから DPM の操作方法を覚えていかなくては。
仮想ハードディスクの拡張と縮小
私がメインで使っているノート PC に接続しているハードウェアのデバイスドライバが 64 ビットに対応してきたので、
VHD ブートで Windows 7 x64 の確認環境を作って使用頻度の高いアプリ等も合わせて稼働確認をしています。
検証用サーバーの感覚で C ドライブを 40GB で作ったため、あっという間に残り容量も少なくなってきました…。
そこで今回は仮想ハードディスクの拡張と縮小について調べてみました。
■ディスクの管理からの操作
ディスクの管理 (diskmgmt.msc) から [VHD の接続] ができます。
接続した VHD で [ボリュームの拡張] [ボリュームの縮小] を行うことができます。
下が縮小を選んだ時の設定ダイアログになります。
縮小をすることでボリュームを縮小することができるのですが、40GB という最大サイズは変わりません。
縮小は枠の変更ではなく、内部領域の変更になりますのでディスクの最大サイズを変更することはできません。
ボリュームの拡張も同等で、枠の変更ではなく内部領域のサイズ変更となります。
?
■DISKPART コマンドからの操作
DIKSPART コマンドを使うと VHD の操作ができます。
DISKPART で使える VHD 関連のコマンドをざっと調べたところ、以下のものがあるようです。
コマンド | 説明 |
ATTACH VDISK | 仮想ディスク ファイルをアタッチします。 |
COMPACT VDISK | ファイルの物理サイズの削減を試みます。 |
CREATE VDISK | 仮想ディスク ファイルを作成します。 |
DETAIL VDISK | 選択した仮想ディスクのプロパティを表示します。 |
DETACH VDISK | 仮想ディスク ファイルをデタッチします。 |
EXPAND VDISK | 仮想ディスクで使用可能な最大サイズを拡張します。 |
LIST VDISK | 仮想ディスクの一覧を表示します。 |
MERGE VDISK | 子ディスクを親ディスクと結合します。 |
SELECT VDISK | 仮想ディスクにフォーカスを移動します。 |
?
ボリュームの拡張と縮小に関しては、VHD に限らず実行することができます。
DISKPRT で拡張と縮小をする場合には以下のコマンドを使用します。
コマンド | 説明 |
EXTEND | フォーカスされたボリュームまたはパーティションとそのファイル システムをディスクの空き (未割り当て) 領域に拡張します。 |
SHRINK | フォーカスされたボリュームのサイズを指定した容量だけ縮小します。 ボリュームの最後の使用されていない領域から、空きディスク領域を使用可能にします。 |
ディスクの管理から実行しているのは上記の [EXTEND] [SHRINK] になります。
ディスク自体を拡張と縮小をするためには、[EXPAND VDISK] [COMPACT VDISK] を実行します。
まずは VHD の拡張から。
# 拡張と縮小をする場合、VHD は切断した状態にする必要があります。
??? コマンドの実行時に、VHD が読み取り専用で自動的に接続されます。
SELECT VDISK FILE=<VHD ファイルのフルパス> EXPAND VDISK FILE=<VHD の最大サイズ (MB)> 実行例) |
このコマンドを実行した後の VHD の情報が以下になります。
仮想サイズが : 50 GB になっています。
DETAIL VDISK
デバイスの種類 ID: 2 (VHD) |
縮小をする場合は以下のコマンドになります。
SELECT VDISK FILE=<VHD ファイルのフルパス> COMPACT VDISK 実行例) |
縮小は [可変長ディスク] でしか実行することができません。
[固定長ディスク] で実行すると以下のエラーとなってしまいます。
DiskPart にエラーが発生しました: 要求された操作は、この種類の仮想ディスク上では実行できません。 詳細については、システム イベント ログを参照してください。 |
?
この縮小操作ですが、仮想サイズ (VHD の最大サイズ) は変更されません。
物理サイズ (ファイルとして割り当てられている領域) の縮小が実行されるようです。
# 物理サイズが 24 GB → 23 GB になっています。
DETAIL VDISK
デバイスの種類 ID: 2 (VHD) |
調べてみたところ、Virtual Server 2005 で使用されていた事前圧縮ツールのようなものを一度実行してから
[COMPACT VDISK] を実行しないとうまく縮小されないがあるようですね。
縮小はVHD として利用している領域を縮小するため、ファイル内の [0 データ] を圧縮するようため、
未使用の領域を事前圧縮ツールで [0 データ] になるようにする必要があります。
Virutal Server 2005 をダウンロードして [precompact.exe] をコピーしてもよいのですが、ダウンロードもできるみたいですね。
Hyper-V How To: Shrink a VHD File
# [CIPHER /W] でも流用できるかもしれないですね。
■Hyper-V マネージャーからの操作
Hyper-V マネージャーでは [ディスクの編集] 操作があり、ここからディスクの拡張と縮小ができます。?
ディスクの編集からは以下の操作が実行でき、最適化が縮小の処理になります。
拡張後のサイズを指定することで、VHD の最大サイズを変更することが可能です。
縮小の場合は、縮小を選ぶだけですがこちらはサイズ指定はありません。
この操作は DISKPART の COMPACT と一緒なので、VHD の最大サイズが変更されるのではなく、VHD で使用している
領域の縮小処理となります。
縮小に関しては、可変のみ可能のため固定ディスクの場合には選択することができません。
Hyper-V マネージャーからのみ可能な操作は、[変換] になるようですね。
可変→固定 / 固定→可変 の変換については DISKPART では実行できないようです。
?
■SCVMM 2008 R2 からの操作
SCVMM 2008 R2 からは、仮想マシンのプロパティから操作することができます。
操作できる内容は Hyper-V マネージャーと変わらないですね。
?
■VHD Resizer
Microsoft 製以外だと VHD Resizer というツールがあります。
# Twitter で教えていただきました!!ありがとうございます。
このツールではオリジナルのファイルを残した形で VHD の操作をします。
ディスクの変換、サイズ拡張はできるようですが、縮小はできないみたいですね。
現在選択しているディスクは 50 GB のサイズなのですが、[Min] が 50 gb 以下に設定できないようになっています。
拡張と縮小の方法はいろいろありますね。勉強になりました。