【Management】DPM 2007 の初期設定を自動化 その3-1 まずは基礎知識から-保護グループの情報取得

DPM2007シリーズもそろそろ終盤です。 前回までで、DPMのエージェントインストールまでが完了しました。 【Management】DPM 2007 の初期設定を自動化 その1 ディスクを追加する 【Management】DPM 2007 の初期設定を自動化 その2 DPM保護エージェントをインストールする 【Management】DPM 2007 の初期設定を自動化 その2 番外編 ~ Attach-ProductionServer.ps1 の中身を見る ここからは保護グループの作成を行うのですが、ちょっと複雑なので、まずは保護グループの情報取得、つまり設定内容を参照する手順を通して、オブジェクト構造のイメージをつかんでください。 保護グループのバックアップと回復に関するポリシーには、バックアップの頻度や回復の長期的要件および短期的要件に関する情報が格納されています。管理コンソールの設定画面で見ると、以下のような情報です。 ファイルサーバーに関する保護ポリシー SQL Server に関する保護ポリシー 上記の保護ポリシーの情報を取得するには、保護グループのインスタンスを Get-PolicyObjective コマンドレットに渡します。 さっそく管理シェル上で保護グループの保護ポリシーを取得してみます。 ここでは、上の2つ(ファイルサーバーとSQL Server)に関する保護ポリシーを取得してみます。 まずは、保護グループのインスタンスを取得します。おなじみの方法ですね。DJ-DPM01 はDPMサーバー名です。 PS C:\> $PG = Get-ProtectionGroup DJ-DPM01 PS C:\> $PG Name                                    Protection method —-                                    —————– ProtectionGroup01                       短期的 (ディスクを使用) ProtectionGroup02                       短期的 (ディスクを使用) 次に、それぞれの保護グループ(ProtectionGroup01…


DPM用コマンドレット Connect-DPMServer の member 一覧

TypeName   : Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.D             pmServerName       : AddBackupNetworkAddressMemberType : MethodDefinition : System.Void AddBackupNetworkAddress(String address, UInt32 sequenc             eNumber) TypeName   : Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.D             pmServerName       : add_ExternalDatasourceDetectedEventMemberType : MethodDefinition : System.Void add_ExternalDatasourceDetectedEvent(EventHandler`1 val             ue) TypeName   : Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.D             pmServerName       : add_InactiveSourcesChangedEventMemberType : MethodDefinition : System.Void add_InactiveSourcesChangedEvent(EventHandler`1 value) TypeName   : Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.D             pmServerName       : add_LibraryCollectionChangedMemberType : MethodDefinition : System.Void add_LibraryCollectionChanged(LibraryCollectionChangeEv             entHandler value) TypeName   :…

1

【Management】DPM 2007 の初期設定を自動化 その2 DPM保護エージェントをインストールする

※今回ちょっと長いです。すんません。 DPMの環境設定を自動化しようシリーズの 2 回目です。 バックアップ領域となるディスクを認識させる 保護対象となるサーバー(保護サーバー)にエージェントをインストールする  ← 今回 保護グループを作成する 前回はセットアップ直後のDPMに、ボリュームを追加してストレージプールを作成しました。 【Management】DPM 2007 の初期設定を自動化 その1 ディスクを追加する 今回は、保護対象となるサーバーに対し、スクリプトを併用してエージェントをインストールしてみます。 ただ、エージェントのインストール自体は、できることならGUIから行ったほうがよいです。なぜならば、そのほうがはるかに簡単だからです。DPMサーバーと保護サーバーの間に Firewall があるためにRPCを使用したリモートからのプッシュインストールが行えないといった理由が無い限りは、管理コンソールから行ってください。 とはいえ、あえて手動で行ってみると、リモート管理に関する汎用的で細かなスキルを身につけることができますので、スキルアップを目的に挑戦してみるのならばよいかもです。 では、やってみましょう。 エージェントを手動でインストールするには2つのステップが必要です。 ① DPM保護エージェントを保護サーバーにインストール ② DPMサーバーに、エージェントがインストールされた保護サーバーを認識させる(PowerShell) それでははじめましょう。 ① DPM保護エージェントを保護サーバーにインストール 保護エージェントのインストールの流れは以下の通りです。 保護サーバーの Windows Firewall サービスを停止する(無効にするのではなく、サービスを停止する)  保護サーバーにエージェントをインストール 保護エージェントの修正パッチがあれば、それを適用する Windows Firewall サービスを起動 保護エージェントに対して通信を許可するように Windows Firewall を設定する 上のリストにはとても重大な問題が含まれています。 それは、手順の一番上にある、保護サーバー上の Firewall サービスの停止という作業です。「無効」ではありません。「停止」です。「停止」しておかないと、以下のように、エージェントのインストール時に 80070643 エラーが発生して DPMAgentInstaller が失敗します。これは、どうやら各国語にローカライズさらたバージョンでのみ発生する問題のようです。 Installing agent and configure…

2

【Management】DPM 2007 の初期設定を自動化 その1 ディスクを追加する

  Tech・Ed 中から予兆はあったのですが、終了と共に気を抜いたら咳がひどくなってしまい、月曜日はお休みをいただきました。即効性のある風邪薬!ということで、咳止めシロップを飲みました。 咳止めシロップなんて飲んだのは、もう25年ぶり位ですかね…。薬臭い中にも、独特の甘さがありますね。私が子供のころは、家庭の経済状況のこともあり(笑)、あまり「甘いもの」を食べさせてもらえなかった記憶があります。風邪をひくと、きまってこの種のシロップを飲まされたのですが、たまに口にする「甘み」がいとおしくて、大切に大切に飲んだ記憶があります…。そんなことを思い出したら、咳は止まりましたが、涙が止まらなくなりました。 さて、涙を拭きつつ、今回はData Protection Manager 2007 の初期設定を PowerShell から行ってみます。 ここでご紹介する内容は、DPMトラブル時の復旧に必要になりますので、是非とも覚えておいてください。 Data Protection Manager 2007 をインストールした直後にやらねばならない作業は3つあります。 バックアップ領域となるディスクを認識させる 保護対象となるサーバー(保護サーバー)にエージェントをインストールする 保護グループを作成する 今回は、「1. バックアップ領域となるディスクを認識させる」を行ってみます。 GUI では、初期状態は以下のようになっています。 ここにディスクを追加していくわけですが、事前にやっておくことがあります。それは、 サーバーに接続されたディスクをオンラインにしておく 以下をご覧ください。Windows Server 2008 サーバーマネージャの「記憶域」でサーバーに接続されているディスクの一覧を参照しているところです。 赤で囲ったディスクが、Data Protection Manager 2007 で利用可能なディスクですが、このままではディスク1はDPMが認識することができません。 なぜならば、「ディスク1」は「オフライン」だからです。 よって、DPMに認識させる前には必ずディスクをオンラインにしておかなければなりません。フォーマットの必要はありません。DPMが勝手に行ってくれます。 認識させたいディスクがすべてオンラインになったら、まずはDPM管理シェルからディスクの一覧を取得してみます。 サーバーに接続されている利用可能なディスク一覧を取得するには、Get-DPMDisk コマンドレットを使用します。DJ-DPM01 はDPMサーバーのホスト名です。 PS C:\> Get-DPMDisk DJ-DPM01 |format-table Name,NTDiskID Name                                                               NtDiskID —-                                                                   ——– Msft Virtual Disk SCSI…

3

RemoveRecoveryPoint.ps1

このソースの解説はこちらから。【Management】DPM2007 管理シェルで保護領域の容量不足を回避する その2   ********************* param([string] $DPMServerName, [string] $ProtectionGroupName,[string] $Datasource, [string] $RepeisentedPointInTime) if(!$DPMServerName){     $DPMServerName = read-host “DPMサーバー名:”} $DPMServer = Connect-DPMServer $DPMServerName if(!$ProtectionGroupName){     $PGList = Get-ProtectionGroup $DPMServerName     $PGList      Write-Host “保護グループを選択してください”     $ProtectionGroupName = read-host “保護グループ名:”} $pg = Get-ProtectionGroup $DPMServerName | where {$_.FriendlyName -eq $ProtectionGroupName} if(!$Datasource){     $DSList = Get-Datasource $pg | format-table Name,ProductionServerName     $DSList     Write-Host “データソースを選択してください”     $Datasource = read-host…

2

【Management】DPM2007 管理シェルで保護領域の容量不足を回避する その2

※2008/8/28 に「【Management】Data Protection Managere 2007 で回復ポイントを削除する というタイトルで投稿した記事にリフレッシュ版です 先日の投稿で、保護領域を拡張する方法についてご紹介しました。 【Management】DPM2007 管理シェルでほ保護領域の容量不足を回避する その1 今回は、もう1つの容量不足対策をご紹介します。 DPMでは、保護グループ作成時に「保存期間」を日数単位で指定することができます。そのため、一度バックアップが取られると、指定した日数が経過しない限り削除されることはありません。 この機能によりバックアップの信頼性は向上するわけですが、ときによっては「あのバックアップいらねー」となることもあるでしょう。 そこで、古いバックアップを保護領域から削除するスクリプトをご紹介します。 ソース全体はこちらから。 このスクリプトでは、指定したサーバーの保護グループにある、特定の回復ポイントを削除します。 スクリプト名につづいて[サーバー名]、[保護グループ名]、[データソース名], [回復ポイントの日時(yyyy/mm/dd hh:nn:ss)]を指定することができます。保護グループ名やデータソース名、回復ポイントの日時が分からない場合でも安心してください。なにも入れなければ一覧から選択できるようになっています(以降参照) param([string] $DPMServerName, [string] $ProtectionGroupName,[string] $Datasource, [string] $RepeisentedPointInTime) サーバー名が指定されていなければ、プロンプトが表示されてサーバー名の入力を求められます。 if(!$DPMServerName) {      $DPMServerName = read-host “DPMサーバー名:” } DPM サーバーに接続します。 $DPMServer = Connect-DPMServer $DPMServerName もし保護グループ名が指定されていなければ、指定したサーバーの保護グループ一覧を表示し、保護グループの選択を求めます。 if(!$ProtectionGroupName) {      $PGList = Get-ProtectionGroup $DPMServerName      $PGList         Write-Host “保護グループを選択してください”…

1

ResizeStoragePool.ps1

このソースの解説はこちらから。【Management】DPM2007 管理シェルで保護領域の容量不足を回避する その2 *************************  param([string] $DPMServerName) if(!$DPMServerName){     $DPMServerName = read-host “DPMServerName:”} $dpmserver=Connect-DPMServer $dpmservername $PGList = @(Get-ProtectionGroup $dpmservername) foreach($PG in $PGList){  $MPG = Get-ModifiableProtectionGroup $PG  $ModifiableProtectionGroupName = $MPG.FriendlyName Write-Host “保護グループ::$ModifiableProtectionGroupName”  $dslist=@(get-datasource $MPG)  foreach ($ds in $dslist)     { $DataSourceName    = $ds.Name $RecentReplicaSize = $ds.ReplicaSize  $RecentReplicaUsedSpace = $ds.ReplicaUsedSpace $RecentReplicaUsedPercent = $RecentReplicaUsedSpace / $RecentReplicaSize * 100  $RecentShadowCopyAreaSize = $ds.ShadowCopyAreaSize $RecentShadowCopyUsedSpace = $ds.ShadowCopyUsedSpace $RecentShadowCopyUsedPercent = $RecentShadowCopyUsedSpace…

2

【Management】DPM2007 管理シェルで保護領域の容量不足を回避する その1

※2008/8/27 に「【Management】DPM2007 管理シェルで保護領域不足を回避する」というタイトルで投稿した記事のリフレッシュ版です Data Protection Manager 2007 を使用していると、ストレージプール内の保護領域容量不足によりエラーが発生することがあります。 このエラーを回避するには、2つの方法が考えられます。 保護領域を拡大する 保存されているデータを削除する 前者は、DPM管理コンソールから実施することが可能ですが、後者はDPM管理シェルを使用してPowerShellによって実行する必要があります。 この記事では、1. 保護領域を拡大する スクリプトを紹介します。 DPM管理シェルでは、領域を拡大するために 「Set-DatasourceDiskAllocation 」というコマンドレットが用意されています。書式は以下の通りです。詳細な書式は、DPM管理シェルで get-help Set-DatasourceDiskAllocation -detailed を入力して確認してください。 Set-DatasourceDiskAllocation -Manual -ProtectionGroup <保護グループのインスタンス> ーDatasource <データソースのインスタンス> -ReplicaArea または -ShadowCopyArea <新しいサイズ> 上記の書式からもわかるとおり、サイズを変更するには事前に 保護グループのインスタンスと、データソースのインスタンスを取得しておく必要があります。これは単純に文字列として渡すことはできないので、それぞれ、Get-ProtectionGroup と Get-Datasource を使用して事前に取得しておかなければなりません。 ここで覚えておいていただきたいのは、DPMサーバー、保護グループ、データソースの関係です。これらは階層構造になっており、図示すると以下のようなイメージです。 DPMサーバー ├ 保護グループ1 │ ├ データソース1 │ ├ データソース2 │ ・ │ ・ ├保護グループ2 │ ├ データソース3…

6

【TechEd】T4304 DPM セッションで失敗したスクリプト ~失敗の原因が判明

ホテルの部屋で、一人本日のセッションを反省しています。 本日のデモで、正しく動かなかったスクリプトがありました。それは、以下の記事にある 「デモ2-3」です。 【TechEd】T4304 DPM セッションに参加くださった皆様 ありがとうございました ~ デモのおさらい 障害が発生したDPMサーバーが復旧後、Switch-Protection.ps1 で 再度Primaryに戻し、整合性チェックをスクリプトで行ったところ、以下のエラーが発生しました。 ご覧頂くとわかりますが、Gyomu02 という保護グループが取得できないというエラーが発生しています。 「そんなはずない」と、何度も何度も何度も実行し、あせっている様子がわかります….(汗) もう10回以上テストして動作確認しているのに…. で、先ほど、セッションに参加されていた 指崎さん からメールが届き、「あれが動かなかったのはこれが原因じゃないですか?」と1枚の証拠写真を突き付けられました。 な、なんと….Primary にスイッチした後に作成しなおした保護グループの名前が、「保護グループ 1」 になっている…. 再度、手元のデモ機で確認したところ…確かに間違えています…. これじゃ動くはずがありません… ご参加の皆さん、大変失礼いたしました。


【TechEd】T4304 DPM セッションに参加くださった皆様 ありがとうございました ~ デモのおさらい

本日は、T4304 Data Protection Manager 2007 セションにご参加くださったみなさま、数あるセションの中からDPMを選んでいただき、まことにありがとうございました。想定していた以上の参加者がいらしたことに驚きました。 デモンストレーション、しかも PowerShell を中心に行ったため、もしかするとイメージがとらえずらかった方もいらしたかもしれませんので、本日のデモの流れとポイントをおさらいをしておきますのでご確認くださいませ。 1. DPM の管理シェル機能について DPMの管理シェルを使用することで、DPMのGUIが持っていない機能を実現することができる デモ1-1:管理シェルを使用した回復ポイントの削除による空き領域の確保 容量不足によるエラーを回避するため、Remove-RecoveryPoint コマンドレットを使用して回復ポイントを削除 Remove-RecoveryPoint を使用するには削除対象となる回復ポイントを指定する必要がある 回復ポイントのリストを取得するには、「保護グループのインスタンス」→「データソースのインスタンス」→「回復ポイント」の順番で取得する必要がある。 回復ポイントを削除したあとは、保護グループ一旦無効にし、同じ保護グループ名で再作成することで空き領域を再認識できる デモ1-2:管理シェルからの整合性チェックの実行 DPMを使用していると、ネットワークの切断やサーバーの再起動により、バックアップデータとの不整合が発生する可能性がある 不整合を解消するには「整合性チェック」を行わなければならないが、GUIから行うのは面倒 保護グループ単位に1日に1回の整合性チェックをスケジュールすることが可能 管理シェルから行うには、Start-DataSourceConsystencyCheck コマンドレットを使用する 事前に、保護グループとデータソースのインスタンスを取得しておく必要があるため、スクリプト化が必要 2. DPMのディザスタリカバリ DPMを多段構成(プライマリ+セカンダリ)にすることで、DPM自身を保護することができる デモ2-1:2台目のDPMを設置する 2台目のDPM(Secondary)が監視するに、1台目のDPM(Primary)にエージェントを送り込む Primaryが保護しているデータをSecondaryで保護するには、[管理]-[エージェント] タブで監視対象としたいサーバーを選択する必要がある。既定では選択されていない。なお、Secondaryが保護できるのは、Primaryが保護しているデータソースのみ。 デモ2-2:Primary がダウンした場合に Secondary で保護を継続する 今回は、Primaryのネットワークを無効にすることで障害を再現 Secondary を Primaryに切り替えるには、Switch-Protection.ps1 スクリプトを使用する Switch-Protection.ps1 は 保護対象のサーバーごとに実施する必要がある Primaryに切り替えた後は、保護対象データは「非アクティブ」となるので、再度保護グループを作成して、ここに保護対象データを含める 保護グループを作成したら整合性チェックを行う デモ2-3:旧Primary復旧後の処理 なんらかの方法により旧Primaryが復旧したら、再度旧Primaryを正式なPrimaryとして切り替える必要がある 切り替える方法は、Switch-Protection.ps1 Switch-Protection.ps1 後は、整合性チェックが必要 これらの処理を手で行うのは面倒なので、スクリプト化するとよい(デモではスクリプトを実行) デモ2-4:Primaryとなっている2台目のDPMをSeconadryに戻す…

1