Udostępnij za pośrednictwem


Opcje magazynowania i przenoszenia danych na potrzeby renderowania plików zawartości i danych wyjściowych

Istnieje wiele opcji udostępniania sceny i plików elementów zawartości aplikacjom renderowania na maszynach wirtualnych puli:

  • Azure Blob Storage:
    • Pliki scen i elementów zawartości są przekazywane do magazynu obiektów blob z lokalnego systemu plików. Gdy aplikacja jest uruchamiana przez zadanie, wymagane pliki są kopiowane z magazynu obiektów blob na maszynę wirtualną, aby można było uzyskać do nich dostęp przez aplikację renderowania. Pliki wyjściowe są zapisywane przez aplikację renderowania na dysku maszyny wirtualnej, a następnie kopiowane do magazynu obiektów blob. W razie potrzeby pliki wyjściowe można pobrać z magazynu obiektów blob do lokalnego systemu plików.
    • Usługa Azure Blob Storage to prosta i ekonomiczna opcja dla mniejszych projektów. Ponieważ wszystkie pliki zasobów są wymagane na każdej maszynie wirtualnej puli, po liczbie i rozmiarze plików zasobów należy zadbać o to, aby zapewnić, że transfery plików są tak wydajne, jak to możliwe.
  • Usługa Azure Storage jako system plików przy użyciu systemu plików blobfuse:
    • W przypadku maszyn wirtualnych z systemem Linux konto magazynu może być uwidocznione i używane jako system plików, gdy jest używany wirtualny sterownik systemu plików blobfuse.
    • Ta opcja ma zaletę, że jest opłacalna, ponieważ żadne maszyny wirtualne nie są wymagane dla systemu plików, a także buforowanie blobfuse na maszynach wirtualnych pozwala uniknąć wielokrotnego pobierania tych samych plików dla wielu zadań i zadań. Przenoszenie danych jest również proste, ponieważ pliki to po prostu obiekty blob i standardowe interfejsy API i narzędzia, takie jak azcopy, mogą służyć do kopiowania plików między lokalnym systemem plików a usługą Azure Storage.
  • System plików lub udział plików:
    • W zależności od wymagań dotyczących systemu operacyjnego maszyny wirtualnej i wydajności/skalowania opcje obejmują usługę Azure Files przy użyciu maszyny wirtualnej z dołączonymi dyskami dla systemu plików NFS, używając wielu maszyn wirtualnych z dołączonymi dyskami dla rozproszonego systemu plików, takiego jak GlusterFS, lub korzystając z oferty innej firmy.
    • Avere Systems jest teraz częścią firmy Microsoft i wkrótce będzie mieć rozwiązania, które są idealne do renderowania na dużą skalę i wysokiej wydajności. Rozwiązanie Avere umożliwia utworzenie opartej na platformie Azure pamięci podręcznej NFS lub SMB, która współpracuje z magazynem obiektów blob lub lokalnymi urządzeniami NAS.
    • W systemie plików pliki można odczytywać lub zapisywać bezpośrednio w systemie plików lub kopiować między systemem plików a maszynami wirtualnymi puli.
    • Udostępniony system plików umożliwia korzystanie z dużej liczby zasobów współużytkowanych między projektami i zadaniami, przy czym zadania renderowania uzyskują dostęp tylko do wymaganych elementów.

Korzystanie z usługi Azure Blob Storage

Należy użyć konta magazynu obiektów blob lub konta magazynu ogólnego przeznaczenia w wersji 2. Te dwa typy kont magazynu można skonfigurować z wyższymi limitami w porównaniu z kontem magazynu ogólnego przeznaczenia w wersji 1, zgodnie z opisem w tym wpisie w blogu. Po skonfigurowaniu wyższe limity umożliwiają lepszą wydajność i skalowalność, zwłaszcza gdy istnieje wiele maszyn wirtualnych puli, które uzyskują dostęp do konta magazynu.

Kopiowanie plików między klientem a magazynem obiektów blob

Aby skopiować pliki do i z usługi Azure Storage, można użyć różnych mechanizmów, w tym interfejsu API obiektów blob magazynu, biblioteki przenoszenia danych usługi Azure Storage, narzędzia wiersza polecenia azcopy dla systemu Windows lub Linux, Eksplorator usługi Azure Storage i usługi Azure Batch Explorer.

Na przykład za pomocą narzędzia azcopy można przenieść wszystkie zasoby w folderze w następujący sposób:

azcopy /source:. /dest:https://account.blob.core.windows.net/rendering/project /destsas:"?st=2018-03-30T16%3A26%3A00Z&se=2020-03-31T16%3A26%3A00Z&sp=rwdl&sv=2017-04-17&sr=c&sig=sig" /Y

Aby skopiować tylko zmodyfikowane pliki, można użyć /XO parametru:

azcopy /source:. /dest:https://account.blob.core.windows.net/rendering/project /destsas:"?st=2018-03-30T16%3A26%3A00Z&se=2020-03-31T16%3A26%3A00Z&sp=rwdl&sv=2017-04-17&sr=c&sig=sig" /XO /Y

Kopiowanie wejściowych plików zasobów z magazynu obiektów blob do maszyn wirtualnych puli usługi Batch

Istnieje kilka różnych podejść do kopiowania plików z najlepszym podejściem określonym przez rozmiar zasobów zadania. Najprostszym podejściem jest skopiowanie wszystkich plików zasobów do maszyn wirtualnych puli dla każdego zadania:

  • Jeśli istnieją pliki unikatowe dla zadania, ale są wymagane dla wszystkich zadań zadania podrzędnego, można określić zadanie przygotowania zadania w celu skopiowania wszystkich plików. Zadanie przygotowania zadania jest uruchamiane raz, gdy pierwsze zadanie zadania jest wykonywane na maszynie wirtualnej, ale nie jest uruchamiane ponownie dla kolejnych zadań podrzędnych.
  • Gdy zadanie zwolnienia zadania musi zostać określone w celu usunięcia plików poszczególnych zadań po zakończeniu zadania. Pozwoli to uniknąć wypełnienia dysku maszyny wirtualnej przez wszystkie pliki zasobów zadania.
  • Jeśli istnieje wiele zadań korzystających z tych samych zasobów, z tylko przyrostowymi zmianami zasobów dla każdego zadania, wszystkie pliki zasobów są nadal kopiowane, nawet jeśli tylko podzestaw został zaktualizowany. Byłoby to nieefektywne, gdy istnieje wiele dużych plików zasobów.

Gdy pliki elementów zawartości są ponownie używane między zadaniami, z tylko przyrostowymi zmianami między zadaniami, bardziej wydajne, ale nieco bardziej zaangażowane podejście polega na przechowywaniu zasobów w folderze udostępnionym na maszynie wirtualnej i synchronizowaniu zmienionych plików.

  • Zadanie przygotowania zadania wykona kopię przy użyciu polecenia azcopy z /XO parametru do folderu udostępnionego maszyny wirtualnej określonego przez AZ_BATCH_NODE_SHARED_DIR zmiennej środowiskowej. Spowoduje to skopiowanie tylko zmienionych plików do każdej maszyny wirtualnej.
  • Uważa się, że trzeba będzie podać rozmiar wszystkich zasobów, aby upewnić się, że będą one zmieścić się na dysku tymczasowym maszyn wirtualnych puli.

Usługa Azure Batch ma wbudowaną obsługę kopiowania plików między kontem magazynu a maszynami wirtualnymi puli usługi Batch. Pliki zasobów zadań kopiują pliki z magazynu do maszyn wirtualnych puli i można je określić dla zadania przygotowania zadania. Niestety, gdy istnieją setki plików, możliwe jest osiągnięcie limitu i niepowodzenie zadań. Jeśli istnieje duża liczba zasobów, zaleca się użycie wiersza polecenia azcopy w zadaniu przygotowywania zadania, które może używać symboli wieloznacznych i nie ma limitu.

Kopiowanie plików wyjściowych do magazynu obiektów blob z maszyn wirtualnych puli usługi Batch

Pliki wyjściowe mogą służyć do kopiowania plików z maszyny wirtualnej puli do magazynu. Co najmniej jeden plik można skopiować z maszyny wirtualnej do określonego konta magazynu po zakończeniu zadania. Renderowane dane wyjściowe powinny być kopiowane, ale może być również pożądane przechowywanie plików dziennika.

Korzystanie z wirtualnego systemu plików blobfuse dla pul maszyn wirtualnych z systemem Linux

Blobfuse to wirtualny sterownik systemu plików dla usługi Azure Blob Storage, który umożliwia dostęp do plików przechowywanych jako obiekty blob na koncie usługi Storage za pośrednictwem systemu plików Systemu Linux.

Węzły puli mogą instalować system plików po uruchomieniu lub instalacja może wystąpić w ramach zadania przygotowania zadania — zadania uruchamianego tylko wtedy, gdy pierwsze zadanie w zadaniu jest uruchamiane w węźle. Blobfuse można skonfigurować tak, aby korzystać zarówno z dysku ramdisk, jak i lokalnych dysków SSD maszyn wirtualnych do buforowania plików, co znacznie zwiększy wydajność, jeśli wiele zadań w węźle uzyskuje dostęp do niektórych z tych samych plików.

Przykładowe szablony są dostępne do uruchamiania autonomicznych renderów V-Ray przy użyciu systemu plików blobfuse i mogą być używane jako podstawa szablonów dla innych aplikacji.

Uzyskiwanie dostępu do plików

Zadania zadania określają ścieżki dla plików wejściowych i plików wyjściowych przy użyciu zainstalowanego systemu plików.

Kopiowanie wejściowych plików zasobów z magazynu obiektów blob do maszyn wirtualnych puli usługi Batch

Ponieważ pliki to po prostu obiekty blob w usłudze Azure Storage, standardowe interfejsy API obiektów blob, narzędzia i interfejsy użytkownika mogą służyć do kopiowania plików między lokalnym systemem plików i magazynem obiektów blob; na przykład azcopy, Eksplorator usługi Storage, Batch Explorer itp.

Używanie usługi Azure Files z maszynami wirtualnymi z systemem Windows

Usługa Azure Files oferuje w pełni zarządzane udziały plików w chmurze, które są dostępne za pośrednictwem protokołu SMB. Usługa Azure Files jest oparta na usłudze Azure Blob Storage; jest opłacalna i można ją skonfigurować za pomocą replikacji danych do innego regionu, tak globalnie nadmiarowego. Cele skalowania należy przejrzeć, aby określić, czy usługa Azure Files powinna być używana, biorąc pod uwagę rozmiar puli prognozy i liczbę plików zasobów.

Dostępna jest dokumentacja dotycząca sposobu instalowania udziału plików platformy Azure.

Instalowanie udziału usługi Azure Files

Aby można było używać w usłudze Batch, należy wykonać operację instalacji za każdym razem, gdy zadanie jest uruchamiane, ponieważ nie jest możliwe utrwalanie połączenia między zadaniami. Najprostszym sposobem wykonania tej czynności jest użycie narzędzia cmdkey do utrwalania poświadczeń przy użyciu zadania uruchamiania w konfiguracji puli, a następnie instalacji udziału przed każdym zadaniem.

Przykładowe użycie cmdkey w szablonie puli (ucieczka do użycia w pliku JSON) — należy pamiętać, że podczas oddzielania wywołania cmdkey od wywołania net use kontekst użytkownika dla zadania uruchamiania musi być taki sam jak używany do uruchamiania zadań:

"startTask": {
  "commandLine": "cmdkey /add:storageaccountname.file.core.windows.net
    /user:AZURE\\markscuscusbatch /pass:storage_account_key",
  "userIdentity":{
    "autoUser": {
      "elevationLevel": "nonadmin",
      "scope": "pool"
    }
}

Przykładowy wiersz polecenia zadania podrzędnego:

"commandLine":"net use S:
  \\\\storageaccountname.file.core.windows.net\\rendering &
3dsmaxcmdio.exe -v:5 -rfw:0 -10 -end:10
  -bitmapPath:\"s:\\3dsMax\\Dragon\\Assets\"
  -outputName:\"s:\\3dsMax\\Dragon\\RenderOutput\\dragon.jpg\"
  -w:1280 -h:720
  \"s:\\3dsMax\\Dragon\\Assets\\Dragon_Character_Rig.max\""

Uzyskiwanie dostępu do plików

Zadania zadania określają ścieżki dla plików wejściowych i plików wyjściowych przy użyciu zainstalowanego systemu plików przy użyciu dysku mapowanego lub ścieżki UNC.

Kopiowanie wejściowych plików zasobów z magazynu obiektów blob do maszyn wirtualnych puli usługi Batch

Usługa Azure Files jest obsługiwana przez wszystkie główne interfejsy API i narzędzia, które obsługują usługę Azure Storage; np. azcopy, interfejs wiersza polecenia platformy Azure, Eksplorator usługi Storage, program Azure PowerShell, program Batch Explorer itp.

Usługa Azure File Sync jest dostępna do automatycznego synchronizowania plików między lokalnym systemem plików a udziałem plików platformy Azure.

Następne kroki

Aby uzyskać więcej informacji na temat opcji magazynu, zobacz szczegółową dokumentację: