2016-01-23 11 views
8

Mój problem: Uczę się Service Fabric i robię proste samouczki, a lokalny klaster zapełnia mój dysk C. Prowadzę projekty w Visual Studio. Najpierw tworzy klaster w folderze SfDevCluster. Zajmuje to 842 MB miejsca. Następnie wdraża serwisy i serwisy internetowe. Pamiętaj, że są to trywialne samouczki, w których prawie nic nie ma. Teraz zauważam, że mam folder o rozmiarze = 1,22 TB i rozmiarze na dysku 9,4 GB. Nie jestem pewien, jak to zinterpretować. Ale zużywa pozostałą przestrzeń na moim dysku C i uruchamia alarmy. Mam inne dyski z dużą ilością miejsca. Chciałbym powiedzieć, że należy je wykorzystać. Czy istnieje sposób, aby to zrobić z klastrem usług usług używanych przez Visual Studio? A może istnieje sposób na ograniczenie nadmiernie ambitnego podziału wielkości? A jeśli to rozumiesz, możesz wyjaśnić, co oznaczają te nietypowe rozmiary folderów? W dawnych czasach miałbym dysk twardy z dużą ilością miejsca. Ale teraz, mój komputer programisty ma znacznie szybszy, ale droższy dysk SSD, a przestrzeń jest na wagę złota. Potrzebuję więc większej kontroli nad lokalizacją klastra.Jak określić, w którym miejscu tworzony jest klastor struktury usługi lokalnego programisty?

Odpowiedz

21

Można skonfigurować klaster lokalny wskazujący na dysk niesystemowy, uruchamiając skrypt DevClusterSetup w PowerShell. Możesz znaleźć skrypt pod %programfiles%\Microsoft SDKs\Service Fabric\ClusterSetup\. Linia komend chcesz to:

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

Jeśli masz już uruchomiony klastra, ten skrypt będzie go usunąć i utworzyć nowy (zauważ, że spowoduje to usunięcie wszystkich wdrożonych aplikacji i ich danych). Po uruchomieniu nowego klastra program Visual Studio automatycznie go użyje po wdrożeniu lokalnie.

Jeśli chodzi o rozmiary plików - wynika to głównie z pliku dziennika używanego do replikacji stanu przechowywanego w wiarygodnych kolekcjach. Duży, sparse file jest uprzednio przydzielany z góry, dlatego na dysku widać różnicę między rozmiarem i rozmiarem. Planujemy, aby te wartości były konfigurowalne, aby można było je wybierać w lokalnych klastrach.

+0

Aby pomóc każdemu, kto właśnie zrobił to, co zrobiłem, musi to być uruchamiane w powłoce shells x64 jako admin –

+0

Działa dobrze, ale w końcu wraca do domyślnego folderu. Czemu? –

+1

Mam to zresetować z powrotem do mojego dysku C, @RaulKist. Dzieje się tak, ponieważ użyłem Service Cluster Manager Service Fabric (to znaczy elementu circle na pasku zadań, który można kliknąć prawym przyciskiem myszy), aby zresetować, a nie powyższy skrypt, jak sądzę. Zawsze, gdy resetujesz, zawsze powinieneś używać powyższego polecenia. – rrreee

2

W folderze SDK usługi Service Fabric (C: \ Program Files \ Microsoft SDK \ ServiceFabric) znajduje się folder ClusterSetup.

Tutaj znajdziesz pliki ClusterManifestTemplate.json dla różnych konfiguracji klastra lokalnego. Są to pliki konfiguracyjne json używane przez skrypty powershell, które tworzą klaster usług lokalnych i zarządzają nim.

U dołu tych plików w "fabricSettings" ustawiane są wartości FabricDataRoot i FabricLogRoot, w oparciu o "% systemDrive%". Jeśli zastąpisz to przez "D:", powinno to spowodować lokalny klaster na dysku D.

Po wprowadzeniu tych zmian zatrzymałem lokalny materiał, usunąłem foldery bieżącego materiału z dysku C i zrestartowałem komputer. Kiedy rozpocznę sesję debugowania w VS.2017, tworzy ona lokalną strukturę dev na moim dysku D i wdraża aplikację do tej lokalizacji. (Zauważyłem, że niektóre puste foldery są tworzone na dysku C, ale te nie są używane.)