Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dostawcy usług SAN mogą buforować bufory RDMA, które zostały ujawnione do dostępu lokalnego lub zdalnego, aby zwiększyć wydajność.
Buforowanie buforów RDMA udostępnionych dla dostępu lokalnego
Przełącznik Windows Sockets wywołuje funkcję rozszerzenia WSPRegisterMemory dostawcy usług SAN w imieniu aplikacji, aby zarejestrować wszystkie bufory danych, które służą jako lokalny bufor odbiorczy RDMA w wywołaniu funkcji rozszerzenia WSPRdmaRead lub lokalne źródło RDMA w wywołaniu funkcji rozszerzenia WSPRdmaWrite. W ramach tego procesu rejestracji dostawca usług sieci SAN musi zablokować te bufory w regionach pamięci fizycznej i zarejestrować je przy użyciu karty sieciowej SAN. Obie te operacje intensywnie korzystają z zasobów. W związku z tym dostawca usług SIECI SAN powinien używać buforowania, aby zmniejszyć obciążenie związane z tymi rejestracjami. Jeśli dostawca usług SAN używa buforowania, wydajność aplikacji, które ponownie wykorzystują bufory do transferów danych, poprawia się.
Dostawcy usług SAN powinni buforować i zwalniać bufory RDMA, które są udostępniane na potrzeby dostępu lokalnego, jak opisano na poniższej liście.
Gdy przełącznik wywołuje funkcję rozszerzenia WSPDeregisterMemory w celu zwolnienia buforu, dostawca usług sieci SAN powinien pozostawić bufor zarejestrowany w karcie sieciowej SAN i zablokowany w obszarze pamięci fizycznej. Dostawca usług SAN powinien również dodać bufor do pamięci podręcznej zarejestrowanych buforów, w przypadku ponownego użycia tego bufora w kolejnej operacji RDMA, oraz zabezpieczyć posiadanie bufora, jak opisano w następnym punkcie listy.
Dostawca usług SIECI SAN buforuje rejestracje pamięci na podstawie adresów wirtualnych. Gdy dostawca usług SAN buforuje proces rejestracji buforu, sterownik proxy tego dostawcy musi wywołać funkcję MmSecureVirtualMemory, aby zabezpieczyć posiadanie tego zarejestrowanego buforu. Dzięki temu system operacyjny powiadomi przełącznik, jeśli bufor zostanie zwolniony (na przykład, gdy aplikacja wywoła funkcję VirtualFree, aby zwolnić zakres adresów wirtualnych z powrotem do systemu operacyjnego).
Gdy przełącznik następnie wywołuje WSPRegisterMemory w celu zarejestrowania buforu, dostawca usług SIECI SAN powinien sprawdzić jego pamięć podręczną, aby określić, czy bufor jest już zarejestrowany. Jeśli dostawca usług SIECI SAN znajdzie bufor w pamięci podręcznej, dostawca usług SIECI SAN nie powinien wykonywać żadnych dalszych akcji rejestracji.
Zanim mapowania wirtualno-fizyczne zarejestrowanego bufora ulegną zmianie, przełącznik wywołuje funkcję rozszerzenia WSPMemoryRegistrationCacheCallback każdego dostawcy usług SAN. Z kolei sterownik proxy każdego dostawcy usług SIECI SAN musi wywołać funkcję MmUnsecureVirtualMemory, aby zwolnić własność buforu. Ponadto każdy dostawca usług SIECI SAN musi usunąć bufor z pamięci podręcznej i usunąć rejestrację buforu z karty sieciowej SIECI SAN.
Zanim połączenie między lokalnym gniazdem SAN a zdalnym nadrzędnym zostanie zamknięte, dostawca usługi SAN powinien zwolnić wszystkie buforowane bufory.
Uwaga Sterownik proxy musi użyć mechanizmu try/except wokół kodu uzyskującego dostęp do bufora trybu użytkownika, który został zabezpieczony za pośrednictwem wywołania MmSecureVirtualMemory, aby zapobiec awariom systemu operacyjnego. Aby uzyskać więcej informacji na temat tego, jak sterownik proxy zabezpiecza i zwalnia buforowanie, zobacz Zabezpieczanie i zwalnianie własności adresów wirtualnych.
Buforowanie buforów RDMA udostępnionych do zdalnego dostępu
Przełącznik Windows Sockets wywołuje funkcję rozszerzenia WSPRegisterRdmaMemory dostawcy usług SAN, aby zarejestrować wszystkie bufory danych, które służą jako zdalny cel RDMA dla zdalnego wywołania WSPRdmaWrite lub zdalne źródło RDMA dla zdalnego wywołania WSPRdmaRead. Oznacza to, że przełącznik udostępnia te bufory do dostępu przez zdalny węzeł. Po zakończeniu transferu danych z tych buforów przełącznik wywołuje funkcję rozszerzenia dostawcy usług sieci SAN, WSPDeregisterRdmaMemory, aby zwolnić te bufory, tak aby nie były już dostępne dla zdalnego elementu równorzędnego.
Dostawcy usług SAN powinni buforować bufory RDMA, które są udostępnione do zdalnego dostępu, zgodnie z opisem na poniższej liście.
Gdy przełącznik wywołuje WSPDeregisterRdmaMemory w celu zwolnienia buforu, dostawca usług SAN powinien utrzymać bufor zablokowany w pamięci fizycznej i zarejestrowany w karcie sieciowej SAN. Dostawca usług SAN powinien również dodać bufor do pamięci podręcznej zarejestrowanych buforów, na wypadek gdyby bufor został ponownie użyty w kolejnej operacji RDMA. Jednak dostawca usług SAN powinien podjąć odpowiednie działania, aby upewnić się, że zdalny partner nie ma już dostępu do bufora. Uwaga Jeśli bufor może być niedostępny tylko przez usunięcie jego rejestracji z karty sieciowej SAN przez dostawcę usług SAN, dostawca ten musi to zrobić. Jednak dostawca usług SAN powinien zablokować bufor w regionie pamięci fizycznej. Ten scenariusz nie zapewnia najlepszej możliwej wydajności, ale jest lepszy niż brak buforowania.
Aby buforować bufory RDMA uwidocznione na potrzeby dostępu zdalnego, dostawca usług SAN i jego sterownik serwera proxy powinny używać technik buforowania zgodnie z opisanymi wcześniej technikami dla buforów RDMA, które są uwidocznione na potrzeby dostępu lokalnego.
Gdy przełącznik następnie wywołuje WSPRegisterRdmaMemory w celu zarejestrowania buforu, dostawca usług SIECI SAN powinien sprawdzić jego pamięć podręczną, aby określić, czy bufor jest już zarejestrowany. Jeśli dostawca usług SIECI SAN znajdzie bufor w pamięci podręcznej, dostawca usług SIECI SAN powinien po prostu uwidocznić bufor dostępu zdalnego, nie jest wymagana żadna dalsza akcja rejestracji. Jeśli jednak rejestracja buforu została wcześniej usunięta z karty sieciowej sieci SAN, dostawca usług SIECI SAN powinien ponownie zarejestrować bufor.
Aby zwolnić bufor RDMA uwidoczniony na potrzeby dostępu zdalnego, dostawca usług SAN i jego sterownik proxy powinni używać technik opisanych na powyższej liście.