Πως θα μάθεις αν ο linux server είναι φυσικός server ή virtual server
Τα τελευταία χρόνια υπάρχει μία στροφή στους server και από φυσικοί servers τείνουν να γίνουν οι περισσότεροι virtual servers δηλαδή εικονικές μηχανές ή εικονικοί servers.
Virtual servers είναι για παράδειγμα, οι Cloud servers, οι VPS, servers εγκατεστημένοι μέσα σε ένα vmware – esxi. Ακόμα και servers που είναι εγκατεστημένοι μέσα σε ένα virtual box.
Ωστόσο υπάρχουν ακόμα φυσικοί servers που είναι εγκατεστημένοι σε μικρά ή μεγάλα datacenters ο sysAdmin, θα πρέπει να ξέρει αν ο linux είναι φυσικός ή virtual εικονικός δηλαδή. Η παραπάνω πληροφορία βοηθάει αρκετά στο να φτιάξει να επισκευάσει η έναν server Linux server.
Σε γενικές γραμμές υπάρχουν πάρα πολλοί τρόποι και με μία εντολή μπορείς να δεις με τί τύπου linux server εργάζεσθε
Χρησιμοποιώντας την εντολή dmidecode
Η εντολή dmidecode διαβάζει το table του DMI (Desktop Management Interface) και εμφανίζει τις πληροφορίες τους hardware και του BIOS , του Linux server.
Αν ο server είναι εγκαταστημένος σε VMware Workstation
# dmidecode -s system-manufacturer
VMware, Inc.
# dmidecode -s system-product-name
VMware Virtual Platform
Αν ο server είναι εγκαταστημένος σε VirtualBox
$ sudo dmidecode -s system-product-name
VirtualBox
Αν ο server είναι εγκαταστημένος σε OpenStack
$ sudo dmidecode -s system-product-name
OpenStack Nova
Ενώ αν ο server είναι φυσικός θα πάρουμε τα εξής μηνύματα:
# dmidecode -s system-manufacturer
IBM
# dmidecode -s system-product-name
System x3550 M2 -[7284AC1]-
Δηλαδή, δίνοντας απλά την εντολή στο τερματικό μας , θα μας επιστέψει την πληροφορία που θέλουμε. Αν είναι physical server η virtual server και σε ποια πλατφόρμα είχε εγκατασταθεί.
Χρησιμοποιώντας την εντολή lshw
Αυτή η εντολή είναι αντίστοιχη με την παραπάνω αλλά μπορεί να εμφανίζει περισσότερες πληροφορίες. πχ memory configuration, firmware version, mainboard configuration, CPU version και speed, cache configuration, bus speed
Αν την δώσουμε σε server που έχει εγκατασταθεί σε VMware θα μας επιστρέψει περίπου το παρακάτω :
# lshw -class system
laptopblog test server
description: Computer
product: VMware Virtual Platform ()
vendor: VMware, Inc.
version: None
serial: VMware-42 0a a0 62 85 7e 8d 48-f2 8f 15 5a aa 7f 77 95
width: 64 bits
capabilities: smbios-2.4 dmi-2.4 vsyscall32
configuration: administrator_password=enabled boot=normal frontpanel_password=unknown keyboard_password=unknown power-on_password=disabled uuid=460AA068-857E-8D48-F19F-162AFA7F7899
*-remoteaccess UNCLAIMED
vendor: Intel
physical id: 1
capabilities: inbound
Εναλλακτικά δίνουμε μόνο το παρακάτω για να εμφανίζει το label product :
# lshw -class system | grep product
product: VMware Virtual Platform ()
Αν την δώσουμε σε server που έχει εγκατασταθεί σε Virtualbox θα μας επιστέψει περίπου το παρακάτω :
$ sudo lshw -class system
Laptopblog test server
description: Computer
product: VirtualBox
vendor: innotek GmbH
version: 1.2
serial: 0
width: 64 bits
capabilities: smbios-2.5 dmi-2.5 smp vsyscall32
Εναλλακτικά δίνουμε μόνο το παρακάτω για να εμφανίζει το label product :
# lshw -class system | grep product | awk '{print $2}'
VirtualBox
Αν την δώσουμε σε server που έχει εγκατασταθεί σε φυσικό server θα μας επιστέψει περίπου το παρακάτω :
# lshw -class system Laptopblog test server description: Blade product: Flex System x240 Compute Node -[7284AC1]- vendor: IBM version: 06 serial: KQ3YZ9B width: 64 bits capabilities: smbios-2.7 dmi-2.7 vsyscall32 Εναλλακτικά δίνουμε μόνο το παρακάτω για να εμφανίζει το label product : # lshw -class system | grep product product: Flex System x240 Compute Node -[7284AC1]-
Χρησιμοποιώντας την εντολή hostnamectl
Κανονικά την εντολή hostnamectl την χρησιμοποιούμε για να διαχειριστούμε το hostname του linux server , όμως μπορεί να παρέχει και άλλες χρήσιμες πληροφορίες
τρεχωντας την σε Virtualbox :
# hostnamectl
or
# hostnamectl status
Static hostname: Laptopblog
Icon name: computer-vm
Chassis: vm
Machine ID: c01b17d61f2542478047952180768c82
Boot ID: 8be91fafab024c5880581fb3968a22f8
Virtualization: oracle
Operating System: Ubuntu 16.10
Kernel: Linux 4.10.1-041001-generic
Architecture: x86-64
Τρέχωντάς την σε φυσικό server ή υπολογιστή:
# hostnamectl
or
# hostnamectl status
Static hostname: laptopblog
Icon name: computer-laptop
Chassis: laptop
Machine ID: bb8348e0f32e495184590f98ce96ee62
Boot ID: 06ee2c95917744b9b23a2861a0a82abb
Operating System: Fedora 28 (Workstation Edition)
CPE OS Name: cpe:/o:fedoraproject:fedora:25
Kernel: Linux 4.10.14-200.fc25.x86_64
Architecture: x86-64
Το label chassis λοιπόν μπορεί να μαρτυρήσει την πληροφορία που θέλουμε.
Χρησιμοποιώντας την hwinfo
Η εντολή hwinfo εμφανίζει και κάνει Probe τις πληροφορίες για το hardware. Στην δική μας περίπτωση που έχουμε εγκαταστήσει ένα virtual server σε ένα virtualbox θα εμφανίσει τα παρακάτω αποτελέσματα :
# hwinfo | grep "Manufacturer"
<6>[27867.056016] usb 2-1: Manufacturer: VirtualBox
<6>[31555.965214] usb 2-1: Manufacturer: VirtualBox
<6>[32123.744633] usb 2-1: Manufacturer: VirtualBox
<6>[33779.863965] usb 2-1: Manufacturer: VirtualBox
<6>[34968.587607] usb 2-1: Manufacturer: VirtualBox
<6>[37364.054145] usb 2-1: Manufacturer: VirtualBox
<6>[46326.504627] usb 2-1: Manufacturer: VirtualBox
<6>[54602.872309] usb 2-1: Manufacturer: VirtualBox
Manufacturer: "innotek GmbH"
Manufacturer: "Oracle Corporation"
Manufacturer: "Oracle Corporation"
Χρησιμοποιώντας την εντολή lscpu
Η εντολή lscpu μπορεί να εμφανίσει όλες τις πληροφορίες για την αρχιτεκτονική του επεξεργαστή. Ωστόσο μπορεί να εμφανίσει και τον τύπου του hypervisor και βάση αυτού μπορούμε να καταλάβουμε αν ο linux server είναι virtual server.
# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 60
Model name: Intel Core Processor (Haswell, no TSX)
Stepping: 1
CPU MHz: 2399.996
BogoMIPS: 4799.99
Virtualization: VT-x
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0
Εναλλακτικά δίνουμε μόνο το παρακάτω για να εμφανίζει το label hypervisor:
# lscpu | grep Hypervisor
Hypervisor vendor: KVM
Με τις παραπάνω απλές 5 έντολές μπορούμε να μάθουμε αν ο server είναι physical ή virtual server. Ίσως να μην χρειάζεται να το ελέγχουμε συχνά αλλά οι παραπάνω εντός είναι πολύ χρήσιμες αν θέλουμε να φτίαξουμε κάποιο bash script.
Σε επόμενο άρθρο θα μάθουμε για ποιο λόγο πρέπει να ξέρουμε τον τύπο του server που μας ενδιαφέρει και θα εργαστούμε πάνω σε αυτόν.