web-dev-qa-db-fra.com

Comment puis-je spécifier où le cluster de structure de service de mon développeur local est créé?

Mon problème: j'apprends Service Fabric et je fais des tutoriels simples, et le cluster local est en train de remplir mon lecteur C. Je lance les projets dans Visual Studio. Il crée d'abord un cluster dans un dossier SfDevCluster. Cela prend 842 Mo d’espace. Ensuite, il déploie les services et les sites d’API Web. Rappelez-vous, ce sont des tutoriels triviaux avec presque rien. Maintenant, je remarque que j'ai un dossier avec une taille = 1.22 TB et une taille sur disque de 9,4 Go. Je ne sais pas comment interpréter cela. Mais cela consomme l’espace restant sur mon lecteur C et déclenche des alarmes. J'ai d'autres lecteurs avec beaucoup d'espace. J'aimerais préciser que ceux-ci soient utilisés. Existe-t-il un moyen de le faire avec le cluster de structure de service utilisé par Visual Studio? Ou existe-t-il un moyen de limiter les allocations de taille trop ambitieuses? Et si vous comprenez cela, pouvez-vous expliquer la signification de ces tailles de dossier inhabituelles? Auparavant, j'aurais un disque dur avec beaucoup d'espace. Mais maintenant, ma machine de développement dispose d’un disque SSD beaucoup plus rapide, mais plus coûteux, et l’espace est rare. J'ai donc besoin de plus de contrôle sur l'emplacement du cluster.

16
David Allen

Vous pouvez configurer un cluster local pointant sur un lecteur non-système en exécutant le script DevClusterSetup dans PowerShell. Vous pouvez trouver le script sous %programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\. La ligne de commande que vous voulez est:

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

Si vous avez déjà un cluster en cours d'exécution, ce script le supprimera et en créera un nouveau (notez que cela supprimera toutes les applications déployées et leurs données). Une fois le nouveau cluster en cours d’exécution, Visual Studio l’utilisera automatiquement lors du déploiement local.

En ce qui concerne la taille des fichiers, cela est principalement dû au fichier journal utilisé pour la réplication de l'état stocké dans des collections fiables. Un fichier volumineux, fragmenté est préalloué à l’avance, raison pour laquelle vous constatez une différence entre la taille et la taille sur le disque. Nous prévoyons de rendre ces valeurs configurables de manière à pouvoir les réduire sur des clusters locaux.

34
Sean McKenna

Dans le dossier Service Fabric SDK (C:\Program Files\Microsoft SDK\ServiceFabric), vous trouverez un dossier ClusterSetup.

Vous y trouverez des fichiers ClusterManifestTemplate.json pour les différentes configurations du cluster local. Ce sont des fichiers de configuration JSON utilisés par les scripts powershell qui créent et gèrent le cluster de structure de service local.

Au bas de ces fichiers, dans "fabricSettings", vous définissez la valeur de FabricDataRoot et FabricLogRoot, en fonction de "% systemDrive%". Si vous remplacez cela par «D:», cela devrait entraîner un cluster local sur le lecteur D.

Après avoir apporté ces modifications, j'ai arrêté ma structure locale, supprimé les dossiers de structure actuels de mon lecteur C et redémarré ma machine. Lorsque je démarre ensuite une session de débogage dans VS.2017, il crée la matrice de développement local sur mon lecteur D et déploie l'application à cet emplacement. (Je remarque que certains dossiers vides sont créés sur mon lecteur C mais qu'ils ne sont pas utilisés.)

7
Geert Depickere

Vous pouvez également réinitialiser le cluster local de temps en temps.

Peut être facilement fait en utilisant l'application Service Fabric Local Cluster Manager:

 sf reset local cluster

0
Stef Heyenrath