2016-01-23 17 views
8

私の問題:私はService Fabricを学んでいて、簡単なチュートリアルを行い、ローカルクラスタは私のCドライブをいっぱいにしています。私はVisual Studioでプロジェクトを実行します。まず、SfDevClusterフォルダにクラスタを作成します。それは842 MBの領域を占有します。その後、サービスとWeb APIサイトを展開します。これらはほとんど何もない簡単なチュートリアルであることを覚えておいてください。さて、私は、サイズが1.22 TBでディスクのサイズが9.4 GBのフォルダがあることに気付きました。私はそれをどのように解釈するか分からない。しかし、それは私のCドライブ上の残りのスペースを消費し、アラームを設定します。 私は多くのスペースを持つ他のドライブを持っています。私はそれらを使用するように指定したいと思います。 Visual Studioで使用されているサービスファブリッククラスタを使用してこれを行う方法はありますか?または、過度に意欲的なサイズの割り当てを制限する方法はありますか?そして、あなたがこれを理解すれば、これらの珍しいフォルダサイズの意味を説明できますか? 昔は、たくさんのスペースがあるハードドライブがありました。しかし今、私の開発マシンははるかに高速ですが、より高価なSSDドライブを持っており、スペースはプレミアムです。だから私は、クラスタの場所をより詳細に制御する必要があります。ローカル開発者のサービスファブリッククラスタの作成場所を指定するにはどうすればよいですか?

答えて

21

PowerShellでDevClusterSetupスクリプトを実行することにより、非システムドライブを指すローカルクラスタを設定できます。このスクリプトは%programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\にあります。あなたがしたいコマンドラインは次のとおりです。

.\DevClusterSetup.ps1 -PathToClusterDataRoot <desired_app_and_data_location> -PathToClusterLogRoot <desired_tracelog_location>

すでにクラスタを実行している場合、このスクリプトは、それを削除し、新しいもの(これは任意の展開のアプリとそのデータを削除することに注意してください)を作成します。新しいクラスタを実行すると、Visual Studioはローカルに展開するときにそれを自動的に使用します。

ファイルサイズは、主に信頼できるコレクションに格納された状態のレプリケーションに使用されるログファイルが原因です。大規模なsparse fileが事前に割り当てられているため、ディスクのサイズとサイズの違いがわかります。これらの値をローカルクラスタ上でダイヤルできるように設定可能にする予定です。

+0

x64 powershellで実行する必要があるのはちょうど誰かを助けるために、 –

+0

最終的にデフォルトのフォルダーに戻ります。どうして? –

+1

@RaulKistもCドライブにリセットしました。これは、上記のスクリプトではなく、サービスファブリックローカルクラスタマネージャ(タスクバーのサークルのものを右クリックすることができます)を使用してリセットするためです。したがって、リセットするときは常に、代わりに上記のコマンドを使用する必要があります。 – rrreee

2

Service Fabric SDKフォルダ(C:¥Program Files¥Microsoft SDKs¥ServiceFabric)には、ClusterSetupフォルダがあります。

ここには、ローカルクラスタのさまざまな構成用のClusterManifestTemplate.jsonファイルがあります。これらは、ローカルサービスファブリッククラスタを作成および管理するpowershellスクリプトによって使用されるjson構成ファイルです。

これらのファイルの最後にある「fabricSettings」では、「%systemDrive%」に基づいてFabricDataRootおよびFabricLogRootの値を設定しています。これを「D:」に置き換えると、Dドライブ上にローカルクラスタが作成されます。

これらの変更を行った後、私はローカルファブリックを停止し、Cドライブから現在のファブリックフォルダを削除し、マシンを再起動しました。 VS.2017でデバッグセッションを開始すると、Dドライブにローカルdevファブリックが作成され、その場所にアプリケーションがデプロイされます。 (私はいくつかの空のフォルダが私のCドライブ上に作成されているが、これらは使用されていないことに注意してください)