BranchCache dla udziałów plików przez VPN: kiedy pomaga, a kiedy nie
BranchCache przyspiesza powtarzane pobierania niezmienionej zawartości, a nie wysyłanie ani wyliczanie folderów. Najpierw sprawdź umiejscowienie, osiągalność i tryb klienta.
Ktoś z zespołu mówi, że udział plików przez VPN jest wolny, a pierwsza propozycja to zawsze pamięć podręczna. Zanim dodasz BranchCache do projektu dostępu zdalnego, rozłóż skargę na jeden z trzech kształtów: powtarzane pobierania niezmienionej zawartości, wysyłanie plików albo przeglądanie z dużą ilością metadanych w folderach z tysiącami pozycji. BranchCache zajmuje się pierwszym kształtem na obsługiwanej zawartości i nie robi nic użytecznego dla pozostałych dwóch. To nie jest ograniczenie, które trzeba obejść; to porównanie, które warto wykonać, zanim poświęcisz tydzień na wdrożenie.
Ten sam udział, trzy różne skargi
Oddział, w którym osiem osób otwiera ten sam niezmieniony film szkoleniowy, to przypadek, dla którego funkcję zaprojektowano. Pierwsze pobranie przechodzi przez WAN, zawartość jest buforowana blisko czytelników, a kolejne pobrania tego samego niezmienionego pliku są obsługiwane lokalnie. Korzyść jest realna i wąska: ta sama zawartość, niezmieniona, wielu czytelników.
Laptop wysyłający nowe nagranie przez łącze domowe to przypadek odwrotny. Nie ma wcześniej zbuforowanej kopii pliku, który jeszcze nie istnieje, więc wysyłanie idzie tą samą ograniczoną drogą co zawsze. Pamięć podręczna pobierania nie usuwa wysyłania i żaden wybór umiejscowienia tego nie zmienia.
Trzeci kształt rozczarowuje, bo wygląda jak problem z pobieraniem. Otwarcie katalogu z dziesiątkami tysięcy plików, posortowanie go i odczyt metadanych to strumień drobnych operacji, a nie powtarzany transfer jednego dużego obiektu. Buforowanie treści plików nic nie daje w wyliczaniu.
Pamięć podręczna rozproszona: pula VPN to nie sieć oddziału
W trybie rozproszonym komputery klienckie dzielą się zbuforowaną zawartością między sobą, a Microsoft opisuje ten tryb jako działający w obrębie jednej podsieci. Pula klientów VPN nie jest w tym sensie podsiecią, nawet gdy wszystkie adresy wyglądają na ciągłe: wykrywanie peerów, osiągalność klient-klient i zgoda na wymianę danych pamięci podręcznej to odrębne pytania, a typowy projekt dostępu zdalnego odpowiada na wszystkie trzy „nie”.
Możesz sprawić, by pula zachowywała się jak sieć oddziału, zezwalając na ruch między klientami, ale to decyzja o bezpieczeństwie, nie o buforowaniu. Większość projektów dostępu zdalnego izoluje klientów od siebie właśnie po to, by jeden przejęty laptop nie dotarł do drugiego, a wymiana tej izolacji na trafienie w pamięci podręcznej to zły interes, chyba że peery są już zaufanymi równymi.
Dla jednego użytkownika mobilnego tryb rozproszony nie ma z kim dzielić. Pamięć podręczna nadal może obsługiwać powtarzane odczyty tego jednego klienta, ale to korzyść pamięci podręcznej po stronie klienta, nie korzyść umiejscowienia w oddziale, i warto to powiedzieć, zanim ktoś zacznie oczekiwać, że biuro przyspieszy.
Pamięć podręczna hostowana: umiejscowienie decyduje, czy pomoże
Hostowana pamięć podręczna umieszcza wspólną pamięć podręczną na serwerze, co jest jedynym trybem sensownym między podsieciami i jedynym, który działa, gdy klienci nie mogą się ze sobą komunikować. Natychmiastowe pytanie brzmi, gdzie stoi ten serwer. Hostowana pamięć podręczna osiągana przez to samo ograniczone łącze co źródło przeniosła bajty, a nie problem.
Umieść ją blisko czytelników, przypisz właściciela i dobierz rozmiar dysku do zbioru roboczego, a nie do całego udziału. Przegląd BranchCache firmy Microsoft opisuje oba tryby i zachowanie klienta, w tym część, o której ludzie zapominają: klienci nadal kontaktują się ze źródłem po autoryzację i informacje o zawartości, zanim użyją zbuforowanych danych.
Wdrożenie to trzy role planowane razem, a nie jedno pole wyboru. Serwer źródłowy publikuje skróty zawartości, hostowana pamięć podręczna jest włączona i wykrywalna, a klienci są skonfigurowani do korzystania z niej. Po stronie serwera widać to w PowerShell:
Enable-BCHostedServer -RegisterSCP
Get-BCStatus | Select-Object BranchCacheIsEnabled, ClientMode, HostedCacheServerList
Na kliencie wskaż nazwane serwery albo pozwól mu je wykryć przez punkt połączenia usługi; potem potwierdź tryb, który faktycznie wybrał, zamiast zakładać, że zasada została zastosowana:
Enable-BCHostedClient -ServerNames cache1.corp.example -UseSCP
Get-BCStatus | Select-Object BranchCacheIsEnabled, ClientMode
Co nadal dociera do źródła
Buforowanie nie usuwa autoryzacji. Klient bez uprawnień do odczytu pliku nie zyskuje dostępu dlatego, że ktoś inny go zbuforował, a źródło nadal odpowiada na pytanie o autoryzację i dostarcza informacje o zawartości, które umożliwiają wyszukanie w pamięci podręcznej. Jeśli źródło jest nieosiągalne, sama zbuforowana kopia nie staje się udziałem offline.
Zmiany zawartości też po cichu łamią założenie. Plik zapisany ponownie, przekodowany albo dotknięty przez produkt do kopii zapasowych może już nie pasować do zbuforowanego skrótu, a następny odczyt wraca do źródła. To poprawne zachowanie i dlatego pamięć podręczna, której zbiór roboczy zmienia się co godzinę, daje niewiele.
Usuwanie jest trzecim ograniczeniem. Pamięć podręczna jest skończona, więc duży zbiór roboczy wypycha starszą zawartość, a korzyść zależy od tego, czy ponowne odczyty następują przed usunięciem, a nie po nim. Dobieranie rozmiaru pamięci podręcznej do całego udziału to zwykły sposób na rozczarowanie wdrożeniem, które było technicznie poprawne.
Zaakceptuj to dwoma pobraniami i jednym wysłaniem
Przetestuj właściwe trzy przepływy i zapisz, co pokazuje każdy z nich. Pierwsze pobranie reprezentatywnego pliku z klienta, mierzone na łączu źródłowym oraz na zegarze użytkownika. Drugie pobranie tego samego niezmienionego pliku z drugiego klienta w tej samej grupie umiejscowienia. Jedno wysłanie nowego pliku, które nie powinno pokazać poprawy i potwierdza, że pamięci podręcznej nie przypisuje się czegoś, czego nigdy nie zrobiła.
Jeśli drugie pobranie nadal przechodzi przez łącze źródłowe dla większości bajtów, pamięć podręczna nie jest używana, a przyczyną jest zwykle klient w niewłaściwym trybie, brak publikacji skrótu w źródle albo hostowana pamięć podręczna po niewłaściwej stronie ograniczonego łącza. To trzy różne poprawki i tylko jedna z nich dotyczy umiejscowienia w sieci.
Potem sformułuj wniosek w tym samym kształcie co pierwotna skarga: powtarzane pobrania niezmienionej zawartości z tego źródła do tych czytelników są obsługiwane przez tę pamięć podręczną. Wszystko inne w udziale pozostaje nietknięte, w tym wysyłanie, wyliczanie folderów i historia pracy offline, która nadal wymaga własnej odpowiedzi.