2017-05-03 34 views
0

私は、VMware内に大きなテンプレートファイル(約40〜50Gb)を作成するスクリプトを用意しています。テンプレートファイルは、DFSRを使用して2つのデータセンター間で複製されるデータストア上に作成されます。特定のファイルのDFSRの監視

DFSRの状態を監視して、特定のファイルがレプリケートされると、スクリプトが他のビットや部分を実行するようにする必要があります。

$file = myfile.template 
$timeout = new-timespan -minutes 5 
start-sleep -seconds 5 
$sw = [diagnostics.stopwatch]::StartNew() 
while ($sw.elapsed -lt $timeout) { 
$DFSRStatus = get-dfsrstatus | where{$_.name -eq $file} 
if ($DFSRStatus.something -eq 'ok') { 
return 
} 
start-sleep -seconds 5 
} 
Exit 

残念ながら、私はDFSRモジュールを使用していません。私はファイルを追加しようとしましたが、複製の状態を確認して、ファイルが複製されたときに何が起こるかを確認しようとしました。しかし、1Gbのテストファイルを作成しても、レプリケーションが進行中で成功したときに何が起こるかを確認することはできませんでした。

DFSRでより多くの経験を積んだ人は、正しい構文がDFSRで特定のファイルと正しい「成功」イベントが何であるかを確認することをお勧めします。

+1

Get-DfsrBacklogを使用すると、DFSRターゲットで多くのアクティビティがある場合はもちろん、トリッキーな操作を行うことはできますが、多くのアクティビティがない場合は、バックログがないため、ファイルはレプリケートされません。もちろん、ターゲットサーバ上で直接test-pathにあるファイルをチェックすることもできます。 – bluuf

+0

@bluufファイルが存在するかどうかテストしていますが、DFSRのローカルパスと比較すると大きな違いはありません。複製*が開始され、終了しません。 'Get-DFSRBacklog'はここに行く方法だと思われますが、それはエントリのメガトンを返すことができ、100であっても実行するのが非常に遅いです。私は '' Get-DFSRBacklog -Verbose'を解析する際に、冗長なチャネルのバックログの数を最初に返すようにしました。 – Vesper

+0

ファイルのサイズがソースのサイズといつ一致するかを確認できますか? –

答えて

0

別のオプション:DFSRを監視するのではなく、ファイルがターゲットの場所にあるかどうかを確認し、元のファイルと比較したときのサイズと日付が正しいかどうかを確認するだけです。

+0

DFSRを呼び出す代わりに、私のループは次のようになります。 'Compare-Object(lsソース\ $ファイル)(ls Dest \ $ファイル) - プロパティ名、長さ' – TheDemonLord

+0

はい、まさに.. (私はちょっと違うかもしれませんが) 各マシンのファイル名を知っていて、それらのうちの2つしかない場合は、ループ内の** Compare-object **が良い選択です。 '$$ fileDest = "\\ 127.0.0.1 \ c $ \ boot.ini" '$ results =比較オブジェクト-referenceオブジェクト$(取得コンテンツ$ファイルソース)-differenceオブジェクト$ (get-content $ fileDest) これをループに入れて、v変数は$ results変数に返されたものと同じです。 –

関連する問題