我该如何指定本地开发人员的Service Fabric群集创建位置?

23
我的问题是:我正在学习Service Fabric,并做一些简单的教程,但本地集群正在填满我的C盘。我在Visual Studio中运行项目。它首先在一个名为SfDevCluster的文件夹中创建一个集群,占用842 MB的空间。然后部署服务和Web API站点。请记住,这些只是几乎没有内容的基础教程。现在,我注意到我有一个文件夹,大小为1.22 TB,磁盘上大小为9.4 GB。我不确定如何解释这个。但它消耗了我C盘上剩余的空间并引发了警报。 我有其他拥有大量空间的驱动器。我希望能指定使用它们。有没有办法在Visual Studio使用的Service Fabric集群中这样做?还是有一种方法可以限制过于雄心勃勃的空间分配?如果您了解此问题,请解释一下这些异常文件夹大小的含义。 在以前,我会有一个容量很大的硬盘。但现在,我的开发者机器有一个速度更快但更昂贵的SSD硬盘,空间很宝贵。所以我需要更多控制集群位置的方式。

我尝试了几个选项(也想避免它占用我的SSD),我发现最好的选择是使用目录符号链接(mklink /D)。 - dashesy
3个回答

49
您可以通过运行PowerShell中的DevClusterSetup脚本来设置指向非系统驱动器的本地群集。您可以在%programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\中找到该脚本。您需要的命令行是: .\DevClusterSetup.ps1 -PathToClusterDataRoot <期望的应用程序和数据位置> -PathToClusterLogRoot <期望的跟踪日志位置> 如果您已经有一个正在运行的群集,此脚本将删除它并创建一个新的群集(请注意,这将删除任何部署的应用程序及其数据)。一旦您运行了新的群集,Visual Studio会自动在本地部署时使用它。
至于文件大小——这主要是由于复制在可靠集合中存储的状态所使用的日志文件。预先分配了一个大的稀疏文件,这就是为什么您看到大小和磁盘上的实际大小之间存在差异的原因。我们计划使这些值可配置,以便可以在本地群集上进行调整。

2
只是为了帮助那些和我一样的人,这需要在管理员x64 Powershell中运行。 - undefined
工作正常,但最终会改回默认文件夹。为什么? - Raul Kist
1
我也使用了Service Fabric本地集群管理器(即任务栏上的圆形图标,您可以右键单击它),将其重置回C驱动器, @RaulKist。这是因为我使用了管理器进行重置,而不是上面的脚本。所以每次重置时,您都应该使用上面的命令。 - rrreee
@rrreee,我用了那个脚本 :( 也许他们已经修复了。我应该再试一次。 - Raul Kist
请查看以下内容以解决路径重置问题:https://dev59.com/y1sW5IYBdhLWcg3wdW-T#46294380 - Yury Schkatula
我正在使用Ubuntu 16进行开发。我已经部署了一个Node应用程序。但是在我的本地sfdevcluster文件夹中,数据已经使用了30GB,并且每天增加2-3GB。我该如何停止这个? - NoobCoder

21
在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驱动器上被创建,但这些未被使用。)

是的,它在2021年仍然有效。请注意,有1节点和5节点的JSON文件需要更新。 - Mário Meyrelles

0

你还可以定期重置本地集群。

使用 Service Fabric 本地集群管理器 应用程序可以轻松完成:

sf reset local cluster


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接