Kopiowanie plików przez multicast

Czasem (trenerzy czuja to wyjatkowo czesto i dotkliwie) trzeba na wiele komputerów przeslac ten sam, calkiem duzy (wiele gigabajtów) plik. Oczywiscie mozna utworzyc sobie udzial sieciowy i kopiowac kolejno, ale z punktu widzenia wydajnosci, podejscie jest dosc marne, bo dokladnie te same dane przesylane sa wiele razy.

Teoretyczne rozwiazanie problemu znane jest od dawna: komputer, na którym plik juz jest, powinien pakiet po pakiecie wyslac jego zawartosc w siec, a kto jest chetny – poslucha sobie i zbierze calosc na swoim dysku. W ten sposób, zamiast przesylac plik ilestam razy, wszystko odbywa sie jeden raz, na czym znaczaco zyskuje szybkosc calej operacji.

Poniewaz taka metoda (uzywajaca w praktyce transmisji multicast) jest bardzo kuszaca, dawno temu powstaly narzedzia pozwalajace na takie kopiowanie. Tymczasem, warto wiedziec, ze mozna to samo osiagnac przy pomocy WDS i WAIK. Wysylaniem plików zajmuje sie serwer WDS, a ich odbieraniem – uruchomiony na stacjach program wdsmcast.exe z pakietu WAIK.

Na przykladzie (za Johanem Arwidmarkiem, MVP ze Szwecji):

  • Po stronie serwera WDS tworzymy przestrzen nazw dla folderu z plikami do przeslania - WDSUTIL /New-Namespace /NamespaceType:AutoCast /Server:MDT01 /FriendlyName:"Really Large Files" /Namespace:"Really Large Files" /ContentProvider:WDS /ConfigString:D:\Exported_VMs
  • Po stronie klienta, uruchamiamy wdsmcast z odpowiednimi parametrami - wdsmcast.exe /verbose /transfer-file /server:MDT01 /namespace:"Really Large Files" /SourceFile:"DC01.rar" /DestinationFile:"C:\VMs\DC01.rar" /Username:TSLAB\BuildAccount /password:"P@ssw0rd"

I dziala. Poniewaz wygodniej przesyla sie jeden duzy plik zamiast wielu malych, warto komplet danych do dystrybucji spakowac wczesniej w jedno duze archiwum. Pomijajac wygode, sam fakt skompresowania, dodatkowo przyspieszy cala operacje.

Autor: Grzegorz Tworek [MVP]