Jak znaleźć nazwę fizycznego hosta w klastrze dla danej „nazwy sieciowej”?

Jak już kiedyś wspominałem, fakt istnienia zagadnienia „nazwa sieciowa” (Network name) w Microsoft’owym klastrze może czasem powodować mniejsze lub większe zamieszanie. Poza wspominanym wcześniej problemem pojawienia się dodatkowych kont komputerów w domenie, na co dzień możemy spotkać się też z pytaniem na „jaki fizyczny serwer zaprowadzi nas „Nazwa Sieciowa””.  „Nazwy sieciowe” w klastrze to przecież nie są serwery z własnymi systemami operacyjnymi, a jedynie „aliasy” po których możemy połączyć się z fizycznymi węzłami klastra. Wędrujące zasoby raz prowadzą na przykład do węzła A, a w razie awarii węzła A, do węzła B lub C itd.. Oto uproszczony model klastra przed i po awarii „węzła A”:

Cały sens istnienia klastra polega na udostępnieniu użytkownikom jakichś zasobów (aplikacji, bazy danych czy plików), tak, aby warstwa fizyczna – w tym wypadku ilość i dostępność fizycznych serwerów była dla nich przeźroczysta.
Ta porada odpowie na pytanie jak administrator może w szybki sposób sprawdzić do jakiego fizycznego hosta prowadzi w danym momencie dana nazwa sieciowa. Przydać się to może w wielu sytuacjach – na przykład, gdy użytkownik prosi o odzyskanie danych podając ścieżkę, którą sam widzi (z nazwą sieciową), a my musimy wiedzieć jaki to fizyczny host. W innym scenariuszu, informację o fizycznym hoście pobierze skrypt, który poinformuje administratora o przemieszczeniu się zasobów. Poza tym, przy wszelkich skargach na wolne działanie aplikacji, zdecydowanie będziemy chcieli znać nazwę fizycznego hosta zamiast nazwy sieciowej. Przykłady zastosowania można mnożyć..

Jak to zrobić? Oto 3 propozycje:
Oczywiście, najprościej będzie po prostu zalogowanie się przez Remote Desktop i odczytanie nazwy serwera na który nas przekierowało 🙂 Ale gdzie tu finezja i automatyka? 🙂

Możemy wykorzystać WMI, a więc natywne polecenie WMIC.EXE:

wmic.exe /node:NAZWA_SIECIOWA computersystem get name

..co zwróci nam:

Name
NAZWA_FIZYCZNEGO_HOSTA

Pakiet PSTOOLS, a raczej PSEXEC.EXE to też ciekawa opcja i chyba łatwiejsza do zapamiętania. Wystarczy zdalnie uruchomić polecenie hostname:

psexec \\NAZWA_SIECIOWA hostname

..a w odpowiedzi dostaniemy coś podobnego:

PsExec v1.98 – Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals – www.sysinternals.com
NAZWA_FIZYCZNEGO_HOSTA
hostname exited on NAZWA_SIECIOWA with error code 0.

Niestety, czasem PSEXEC zwróci nam błąd:

The network name cannot be found.
Make sure that the default admin$ share is enabled on NAZWA_SIECIOWA.

Obejściem tego problem jest łączenie się po adresie IP “Nazwy Sieciowej”. Np.:

psexec 192.168.33.35 hostname

Jak widać, znowu rozwiązanie sprowadza się do znajomości kilku sztuczek w CMD 🙂

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

Dodaj komentarz