Udostępnij przez


Obsługa migracji na żywo maszyny wirtualnej NDIS VMQ

Aby obsługiwać migrację na żywo, można wstrzymać maszynę wirtualną na dowolnym etapie instrukcji lub przy oczekującej granicy operacji we/wy. Oznacza to, że maszyna wirtualna może nie zakończyć oczekujących żądań odbioru. Dlatego dostawca usług wirtualnych sieci (VSP) zwraca wszystkie odebrane pakiety do podstawowego adaptera sieciowego, których maszyna wirtualna nie zwróciła.

Uwaga W systemie Hyper-V partycja podrzędna jest również znana jako maszyna wirtualna (VM).

Po ponownym uruchomieniu maszyny wirtualnej na innym hoście usługa VSP sieci na nowym hoście obsługuje pakiety odbierane przez wznowioną maszynę wirtualną i nie przekazuje ich do nowego podstawowego sterownika miniportu. Po zakończeniu migracji kolejka odbierania skojarzona z maszyną wirtualną zostanie zwolniona i może zostać ponownie użyta dla innej maszyny wirtualnej.

Uwaga Nowa karta sieciowa może nie obsługiwać vmQ.

Kiedy NDIS zażąda od sterownika miniportu zwolnienia kolejki odbiorczej VMQ, realizuje następujące kroki:

  1. Karta sieciowa zatrzymuje transfer danych DMA do buforów odbierania skojarzonych z kolejką odbierania, po czym kolejka musi przejść w stan zatrzymania DMA. Karta sieciowa prawdopodobnie zatrzymała działanie DMA po otrzymaniu żądania OID OID_RECEIVE_FILTER_CLEAR_FILTER, aby wyczyścić ostatni ustawiony filtr w kolejce odbierania.

  2. Sterownik miniportu generuje wskazanie stanu NDIS_STATUS_RECEIVE_QUEUE_STATE za pomocą QueueState elementu struktury NDIS_RECEIVE_QUEUE_STATE ustawionego na NdisReceiveQueueOperationalStateDmaStopped w celu powiadomienia NDIS, że transfer DMA został zatrzymany.

  3. Sterownik miniportu czeka na zwrócenie wszystkich wskazanych pakietów danych do odbioru do sterownika miniportu.

  4. Sterownik miniportu zwalnia całą pamięć współdzieloną, którą przydzielił dla buforów odbiorczych karty sieciowej powiązanych z kolejką, wywołując NdisFreeSharedMemory.

  5. Sterownik miniportu realizuje żądanie OID_RECEIVE_FILTER_FREE_QUEUE OID, aby zwolnić kolejkę odbiorczą.

Aby uzyskać więcej informacji na temat stanów kolejki, zobacz stany kolejki NDIS VM.