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」 になっている…. 再度、手元のデモ機で確認したところ…確かに間違えています…. これじゃ動くはずがありません… ご参加の皆さん、大変失礼いたしました。

0

【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