To jest serwer fizyczny czy wirtualny? ( Windows i RH/CentOS Linux)
W epoce wirtualizacji (Cloud Computing), Administratorzy Systemów coraz rzadziej dotykają fizycznych maszyn w szafach serwerowych, a częściej zarządzają infrastrukturą wirtualną z centralnej konsoli. Niezależnie od proporcji, środowiska serwerowe bywają mieszane i często pojawia się pytanie „na jakim serwerze właśnie pracuję – fizycznym, czy wirtualnym”? Przecież czynności administracyjne takie jak powiększenie dysku, czy „troubleshooting” problemów wydajnościowych skrajnie różnią się w obu przypadkach.
Dodatkowo, być może pracujemy nad skryptami, które zachowają się inaczej dla maszyn wirtualnych, a inaczej dla fizycznych i warto umieć rozpoznać na jakiej platformie właśnie pracujemy.
Podejść do tematu jest wiele, a ja zaproponuję Wam kilka swoich. Wszystkie przykłady łączy jedno podejście: szukamy producenta i model sprzętu. Na serwerach fizycznych będzie to IBM, HP, DELL itd, a na wirtualnych twórca wirtualizatora np. Vmware od Vsphere, czy Microsoft od Hyper-V.
Rodzaj sprzętu w systemach Windows
W systemach MS najefektywniej jest oczywiście skorzystać z CMD oraz Powershell.
W CMD wykorzystamy wspominane przeze mnie dość często polecenie „systeminfo”. Oczywiście, aby nie czytać bardzo długiej listy właściwości, od razu odfiltrujemy je po słowie „System” (oczywiście możecie użyć też „System Manufacturer”, albo „System Model”, aby zawęzić wynik do jednej linii):
systeminfo | find „System”
Powyższe zdjęcie pokazuje wyraźnie, że serwer jest wirtualny, a „wirtualizatorem” jest vSphere od Vmware.
Na maszynie fizycznej znaleźlibyśmy producenta i model sprzętu:
System Model: ProLiant DL360 G6
Serwer wirtualny na Hyper-V zwróci nam:
System Model: Virtual Machine
Model sprzętu na zdalnej maszynie
Aby odczytać te wartości z maszyny zdalnej, możecie użyć „Psexec” lub „psinfo”.
Niestety „psinfo” nie pokazuje producenta sprzętu. Co z tym fantem? Co nieco zdradzi nam Karta Graficzna, a dokładniej „Video Driver”. Na przykład frazy „ATI”, czy „Radeon” będą charakterystyczne dla serwerów fizycznych:
Natomiast coś w stylu „Vmware SVGA II” to nic innego jak maszyna wirtualna Vmware:
Powershell korzysta z WMI i najlepszą komendą pokazującym nam na czym został zainstalowany system będzie:
Get-WmiObject win32_computersystem
Oto przykład z serwera HP:
Przykład z maszyny wirtualnej vSphere:
Rodzaj sprzętu w systemach Red Hat / CentOS
Na systemach z rodziny Red Hat w konsoli znajdziemy polecenie „dmidecode” z którego możemy odfiltrowac sobie kluczową informację o platformie (być może będziecie musieli użyć SUDO):
dmidecode | grep Product
Maszyna Vmware zwróci nam:
Product Name: 440BX Desktop Reference Platform
Możemy wykonać troszkę bardziej zaawansowane formatowanie tego polecenia i wyświetlić nie tylko model, ale i producenta:
dmidecode -t 1|grep -E ‚(Product Name|Manufacturer)’
Maszyna wirtualna zwróci nam coś w stylu:
Product Name: VMware Virtual Platform
Serwer fizyczny zwróci nam coś w stylu:
Product Name: ProLiant DL180 G5
To jak łączymy się ze zdalnym Linuksem opisywała już moja redakcyjna koleżanka Ewa w artykule o SSH.
W dużym skrócie, polecenie będzie miało postać:
$ ssh root@server.domena.com dmidecode | grep Product
W tym miejscu pozwolę sobie zakończyć swoją poradę. Mam nadzieję, że troszkę Wam ułatwi administrowanie:) Jeśli znacie jakieś ciekawe tricki dla opisanych przeze mnie systemów lub innych piszcie śmiało.
Witam,
W nowszych wydaniach systemów unix-owych można korzystać z polecenia virt-what.
można też sprawdzić zmontowany FS, lub producenta dysku 🙂