如何指定本地开发人员的服务结构集群的创建位置?
How can I specify where my local developer's service fabric cluster is created?
我的问题:我正在学习 Service Fabric,做一些简单的教程,本地集群占满了我的 C 盘。我 运行 Visual Studio 中的项目。它首先在文件夹 SfDevCluster 中创建一个集群。这占用了 842 MB 的 space。然后部署服务和 Web api 站点。请记住,这些都是琐碎的教程,几乎没有任何内容。现在,我注意到我有一个大小为 1.22 TB 且磁盘大小为 9.4 GB 的文件夹。我不确定如何解释。但它消耗了我 C 盘上剩余的 space 并引发了警报。
我有其他驱动器有很多 space。我很乐意指定使用那些。 Visual Studio 使用的服务结构集群有没有办法做到这一点?或者有没有办法限制过于雄心勃勃的规模分配?如果你明白这一点,你能解释一下这些不寻常的文件夹大小是什么意思吗?
在过去,我的硬盘驱动器上有很多 space。但是现在,我的开发机器有一个更快但更昂贵的 SSD 驱动器,而且 space 非常珍贵。所以我需要更多地控制集群位置。
您可以通过 运行 PowerShell 中的 DevClusterSetup 脚本设置指向 non-system 驱动器的本地集群。您可以在 %programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\
下找到该脚本。你想要的命令行是:
.\DevClusterSetup.ps1 -PathToClusterDataRoot <desired_app_and_data_location> -PathToClusterLogRoot <desired_tracelog_location>
如果您已经有一个集群 运行,此脚本将删除它并创建一个新集群(请注意,这将删除所有已部署的应用程序及其数据)。拥有新集群 运行 后,Visual Studio 将在本地部署时自动使用它。
至于文件大小 - 这主要是由于用于复制存储在可靠集合中的状态的日志文件。一个大的 sparse file 被预分配 up-front,这就是为什么您会看到磁盘上的大小和大小之间存在差异的原因。我们计划使这些值可配置,以便可以在本地集群上调低它们。
在 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 盘上创建了一些空文件夹,但这些文件夹未被使用。)
您还可以偶尔重置本地集群。
可以使用 Service Fabric Local Cluster Manager
应用程序轻松完成:
我的问题:我正在学习 Service Fabric,做一些简单的教程,本地集群占满了我的 C 盘。我 运行 Visual Studio 中的项目。它首先在文件夹 SfDevCluster 中创建一个集群。这占用了 842 MB 的 space。然后部署服务和 Web api 站点。请记住,这些都是琐碎的教程,几乎没有任何内容。现在,我注意到我有一个大小为 1.22 TB 且磁盘大小为 9.4 GB 的文件夹。我不确定如何解释。但它消耗了我 C 盘上剩余的 space 并引发了警报。 我有其他驱动器有很多 space。我很乐意指定使用那些。 Visual Studio 使用的服务结构集群有没有办法做到这一点?或者有没有办法限制过于雄心勃勃的规模分配?如果你明白这一点,你能解释一下这些不寻常的文件夹大小是什么意思吗? 在过去,我的硬盘驱动器上有很多 space。但是现在,我的开发机器有一个更快但更昂贵的 SSD 驱动器,而且 space 非常珍贵。所以我需要更多地控制集群位置。
您可以通过 运行 PowerShell 中的 DevClusterSetup 脚本设置指向 non-system 驱动器的本地集群。您可以在 %programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\
下找到该脚本。你想要的命令行是:
.\DevClusterSetup.ps1 -PathToClusterDataRoot <desired_app_and_data_location> -PathToClusterLogRoot <desired_tracelog_location>
如果您已经有一个集群 运行,此脚本将删除它并创建一个新集群(请注意,这将删除所有已部署的应用程序及其数据)。拥有新集群 运行 后,Visual Studio 将在本地部署时自动使用它。
至于文件大小 - 这主要是由于用于复制存储在可靠集合中的状态的日志文件。一个大的 sparse file 被预分配 up-front,这就是为什么您会看到磁盘上的大小和大小之间存在差异的原因。我们计划使这些值可配置,以便可以在本地集群上调低它们。
在 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 盘上创建了一些空文件夹,但这些文件夹未被使用。)
您还可以偶尔重置本地集群。
可以使用 Service Fabric Local Cluster Manager
应用程序轻松完成: