如何指定本地开发人员的服务结构群集的创建位置?

Dav*_*len 19 azure-service-fabric

我的问题:我正在学习Service Fabric,并且做了简单的教程,本地集群正在填满我的C盘.我在Visual Studio中运行项目.它首先在文件夹SfDevCluster中创建一个集群.这需要842 MB的空间.然后它部署服务和web api站点.请记住,这些都是琐碎的教程,几乎没有任何内容.现在,我注意到我有一个文件夹,其大小= 1.22 TB,磁盘大小为9.4 GB.我不确定如何解释.但它消耗了我的C盘上的剩余空间并引发了警报.我有其他驱动器有很多空间.我想指出那些被使用.有没有办法使用Visual Studio使用的服务结构集群?或者有没有办法限制过于雄心勃勃的大小分配?如果你理解这一点,你能解释这些不寻常的文件夹大小是什么意思吗?在过去,我会有一个有很大空间的硬盘.但是现在,我的开发人员机器拥有更快,但更昂贵的SSD驱动器,并且空间非常宝贵.所以我需要更多地控制集群位置.

Sea*_*nna 42

您可以通过在PowerShell中运行DevClusterSetup脚本来设置指向非系统驱动器的本地群集.你可以在下面找到该脚本%programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\.您想要的命令行是:

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

如果您已经在运行集群,则此脚本将删除它并创建一个新集群(请注意,这将删除所有已部署的应用及其数据).一旦新集群运行,Visual Studio将在您本地部署时自动使用它.

至于文件大小 - 这主要是由于用于复制存储在可靠集合中的状态的日志文件.预先分配一个大的稀疏文件,这就是为什么你会看到磁盘大小和大小不同的原因.我们计划将这些值配置为可以在本地群集上拨打它们.

  • 只是为了帮助任何做我所做的事情,这需要在x64 powershell中以管理员身份运行 (2认同)

Gee*_*ere 12

在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驱动器上创建了一些空文件夹但是没有使用它们.)