2016-01-23 38 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

我把它重置回我的C驅動器,@RaulKist。這是因爲我認爲我使用了服務結構本地集羣管理器(即可以右鍵單擊任務欄中的圓圈)重置,而不是上面的腳本。所以,每當你重置你應該總是使用上述命令。 – 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驅動器上創建本地開發結構,並將應用程序部署到該位置。 (我注意到在我的C盤上創建了一些空文件夾,但這些文件夾沒有被使用。)

相關問題