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:
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:
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:
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 🙂