Δείτε αν ο linux server σας τρέχει σε virtual machine ή όχι

Οι εικονικές μηχανές προσπαθούν να ξεγελάσουν τα λειτουργικά τους συστήματα ώστε αυτά να νομίζουν ότι λειτουργούν με φυσικό υλικό. Δείτε πως μπορείτε να καταλάβετε από τη γραμμή εντολών του linux εάν ο υπολογιστής είναι φυσικός ή virtul.

matrix red pill blue nio

Virtual και Hypervisors

Ένας παραδοσιακός υπολογιστής είναι ένα φυσικό αντικείμενο. Είναι μια συλλογή διαφορετικών εξαρτημάτων υλικού που είναι συνδεδεμένα και βιδωμένα μεταξύ τους, ώστε να μπορείτε να φορτώσετε ένα λειτουργικό , να εγκαταστήσετε εφαρμογές, να τις εκκινήσετε και να τις χρησιμοποιήσετε.

Το υλικό είναι ακριβό. Ο περιορισμός του σε ένα λειτουργικό σύστημα ανά φυσικό υπολογιστή σημαίνει ότι το κόστος λειτουργίας πολλών λειτουργικών συστημάτων γίνεται απαγορευτικό. Η καλύτερη λύση θα ήταν να επιτραπεί σε έναν μεμονωμένο φυσικό υπολογιστή να εκτελεί μια επιλογή λειτουργικών συστημάτων ταυτόχρονα, με το καθένα να πιστεύει ότι λειτουργεί στο δικό του, μοναδικό υλικό.

Ένας hypervisor το κάνει αυτό δυνατό. Ένας hypervisor (ονομάζεται επίσης και virtual machine manager ή virtual machine monitor) είναι λογισμικό που σας επιτρέπει να δημιουργείτε εικονικές μηχανές. Αυτοί συμπεριφέρονται σαν να ήταν μεμονωμένοι, φυσικοί υπολογιστές, παρόλο που εκτελούνται στον ίδιο φυσικό κεντρικό υπολογιστή, μοιράζοντας τον χώρο του σκληρού δίσκου, τη μνήμη και τους πυρήνες της CPU.

Φυσικά, ο κεντρικός υπολογιστής πρέπει να είναι αρκετά ισχυρός για να ανταπεξέλθει στις απαιτήσεις του συνόλου των εικονικών μηχανών, αλλά, δεδομένης της επάρκειας σε μνήμη RAM και της μεγάλης ισχύος επεξεργασίας στον κεντρικό υπολογιστή, οι εικονικές μηχανές μπορούν να λειτουργούν με ταχύτητες σχεδόν σαν να ήταν σε ξεχωριστά μηχανήματα.

Από την κυκλοφορία του πυρήνα 2.6.20 το 2007, το Linux είχε άμεση υποστήριξη Virtual Machine που βασίζεται σε Kernel. Το Linux έχει διαθέσιμους αρκετούς hypervisors, όπως τα VirtualBox, GNOME Boxes και QEMU-KVM . Χρησιμοποιούν την εγγενή δυνατότητα KVM του Linux, βασιζόμενοι στη λειτουργικότητα του εγγενούς πυρήνα, και προσθέτοντας επιπλέον δυνατότητες, όπως η δυνατότητα λήψης στιγμιότυπου μιας εικονικής μηχανής.

Οι εικονικές μηχανές αποφέρουν εξοικονόμηση κόστους, αποδοτικότητα, απλοποιημένες λύσεις και (με τη σωστή παροχή) οφέλη . Διευκολύνουν επίσης την επεκτασιμότητα. Οι νέοι διακομιστές μπορούν να δημιουργηθούν αυτόματα καθώς η ζήτηση για μια υπηρεσία αυξάνεται και να τερματίζονται όταν η ζήτηση πέφτει. Αυτό τα καθιστά εξαιρετικά δημοφιλή τόσο στο cloud όσο και στην εσωτερική υποδομή ενός data center.

Αν διαχειρίζεστε εξ αποστάσεως έναν server Linux θα πρέπει να γνωρίζετε εάν πρόκειται για εικονική μηχανή ή για φυσικό κουτί. Αλλά και άλλες πληροφορίες, όπως σε ποιον τύπο πλατφόρμας εκτελείται. Ακολουθούν διάφοροι τρόποι με τους οποίους μπορείτε να εντοπίσετε εάν ο υπολογιστής στον οποίο εργάζεστε είναι φυσικός ή εικονικός.

Η εντολή dmidecode

Η εντολή dmidecode υποστηρίζει μεγάλο αριθμό επιλογών και διακοπτών. Ανακρίνει τους πίνακες του Desktop Management Interface (DMI) και εκτυπώνει τις πληροφορίες στο παράθυρο του ssh τερματικού.

Μπορείτε να την χρησιμοποιήσετε με τον διακόπτη -s και έτσι να ζητήσετε το όνομα του του συστήματος. Σημειώστε ότι πρέπει να χρησιμοποιήσετε sudo.

Η εντολή διαμορφώνετε ως εξής: sudo dmidecode -s system-product-name

Αυτή η εντολή σε ένα VirtualBox VM που εκτελεί το 22.04 θα δώσει:
ubuntu dmidecode
Η πλατφόρμα προσδιορίζεται σωστά ως η VirtualBox.

Ενώ σε ένα QEMU-KVM VM που εκτελεί το Fedora 35, θα δείτε.
fedora dmidecode
Αν και αναφέρεται ως τυπικός υπολογιστής, είναι ένας τυπικός εικονικός υπολογιστής QEMU, τύπου Q35. Έτσι η πλατφόρμα αναγνωρίζεται σωστά ως εικονική μηχανή.

Εάν εκτελέσετε την ίδια εντολή σε έναν φυσικό υπολογιστή, θα λάβετε κάποιες πληροφορίες για τον κατασκευαστή.
hw dmidecode
Αυτός ο υπολογιστής είναι μια προσαρμοσμένη κατασκευή που βασίζεται σε μητρική πλακέτα Micro-Star International Company Limited, με κωδικό προϊόντος MS-7B86.

Η εντολή lshw

Η εντολή lshw παραθέτει τις λεπτομέρειες για ένα ευρύ φάσμα υλικού του υπολογιστή. Μπορούμε να επιλέξουμε για ποια κατηγορία υλικού θέλουμε να κάνει αναφορά η lshw.

Εδώ θα χρησιμοποιήσουμε την επιλογή -class με τον τροποποιητή system. Η χρήση sudo σε αυτή την εντολή διασφαλίζει ότι βλέπετε όλες τις λεπτομέρειες.

Η εντολή διαμορφώνετε ως εξής: sudo lshw -class system

Αν την εκτελέσετε σε ένα VirtualBox που τρέχει Ubuntu.
ubuntu lshw

  • Το πεδίο “description” (περιγραφή) έχει μια γενική καταχώριση “υπολογιστής”.
  • Το πεδίο “product” (προϊόν) λέει ότι πρόκειται για μια εικονική μηχανή που τρέχει στο VirtualBox.
  • Το πεδίο “vendor” (πωλητής) περιέχει το όνομα της γερμανικής εταιρείας που δημιούργησε το VirtualBox, Innotek GmbH. Η Innotek εξαγοράστηκε από την Oracle Corporation το 2010 ως μέρος της εξαγοράς της Sun Microsystems, Inc.

Αντίστοιχα στο Fedora που εκτελείται σε GNOME Boxes θα λάβετε
fedora lshw

  • Και πάλι, το πεδίο “description” έχει μια γενική καταχώριση “υπολογιστής”.
  • Το πεδίο “product” δίνει τις ίδιες τυπικές πληροφορίες υπολογιστή QEMU που είδαμε με την εντολή dmidecode.
  • Το πεδίο “vendor” περιέχει το “QEMU”, το οποίο δηλώνει ξεκάθαρα ότι πρόκειται για εικονική μηχανή.

Αυτό είναι το αποτέλεσμα της εκτέλεσης της ίδιας εντολής στον φυσικό μας υπολογιστή.
hw lshw 1

Μπορείτε να δείτε ότι πρόκειται για φυσικό υπολογιστή, με μητρική πλακέτα Micro-Star .

  • Το υλικό προσδιορίζεται ως επιτραπέζιος υπολογιστής.
  • Το πεδίο “product” δίνει τον τύπο μητρικής πλακέτας, MS-7B86.
  • Το πεδίο “vendor” περιέχει το όνομα του κατασκευαστή.

Η εντολή hostnamectl

Αυτή η εντολή έχει το πλεονέκτημα ότι δεν χρειάζεται να έχετε sudo δικαιώματα για να την εκτελέσετε. Ωστόσο, είναι διαθέσιμη μόνο σε διανομές με ενεργοποιημένο το systemd. Η πλειοψηφία των σύγχρονων διανομών χρησιμοποιούν systemd .

Η εντολή διαμορφώνετε ως εξής: hostnamectl

Αυτή είναι η απάντηση από την εκτέλεση της εντολής στο  VirtualBox VM με Ubuntu.
ubuntu hostnamectl

  • Στο πεδίο “icon-name” έχει προσαρτηθεί το “-vm”.
  • Το πεδίο “Chassis” (Πλαίσιο) περιέχει το “vm”.
  • Το πεδίο “Virtualization” περιέχει το “oracle”.
  • Το πεδίο “Hardware Vendor” (Πωλητής υλικού) περιέχει “innotek GmbH”.
  • Το πεδίο “Hardware Model” (Μοντέλο υλικού) περιέχει “VirtualBox”.

Τα αποτελέσματα από το VM GNOME Boxes που τρέχει Feroda είναι παρόμοια.
fedora hostnamectl

  • Στο πεδίο “icon-name” εμφανίζεται το “-vm”.
  • Στο πεδίο “Chassis” υπάρχει το “vm”.
  • Το πεδίο “Virtualization” περιέχει το “kvm”.
  • Στο πεδίο “Hardware Vendor” υπάρχει το “QEMU”
  • Στο πεδίο “Hardware Model” εμφανίζεται το “Standard PC (Q35 + ICH9, 2009).”

Αν χρησιμοποιήσετε την εντολή hostnamectl σε ένα φυσικό υπολογιστή, θα δείτε ότι στα αποτελέσματα δεν εμφανίζεται η γραμμή “Virtualization”.
hw hostnamectl

Αν δεν δείτε το πεδίο “Virtualization”, τότε έχετε μπροστά σας ένα φυσικό υπολογιστή.

Η εντολή systemd-detect-virt

Αν θέλετε να λάβετε όσο το δυνατόν πιο σύντομη απάντηση, η εντολή systemd-detect-virt είναι πιθανότατα αυτό που ψάχνετε. Και πάλι αυτή απαιτεί μια διανομή εξοπλισμένη με systemd, αλλά δεν απαιτεί sudo προνόμια.

Η εντολή διαμορφώνετε ως εξής: systemd-detect-virt

Αυτό είναι το αποτέλεσμα της εκτέλεσης της εντολής στο VirtualBox με Ubuntu.
ubuntu systemd detect virt

Αντίστοιχα στο GNOME boxes που τρέχει Feroda
fedora systemd detect virt

Η εκτέλεση της εντολής systemd-detect-virt στο φυσικό μηχάνημα έχει ως αποτέλεσμα να εκτυπωθεί “nome” (κανένα) στο τερματικό.
hw systemd detect virt

Στην εντολή αυτή θα μπορούσατε να προσθέσετε περισσότερους διακόπτες για μεγαλύτερη αναζήτηση. Μπορείτε να δείτε την πλήρη λίστα της εντολής χρησιμοποιώντας την επιλογή –list.

Και για να είναι πιο εύκολο να τα δείτε την λίστα που σας παρέχεται βάλτε στην εντολή και το column.
systemd-detect-virt --list | column

Η παραπάνω εντολή θα σας επιστρέψει:
system detect virt list

Πάρτε το κόκκινο χάπι
Αυτές οι τεχνικές σας ενημερώνουν πότε μία διανομή linux εκτελείται σε φυσικό υλικό και πότε βρίσκεται μέσα σε μια εικονική μηχανή.

Όπως ο Νίο στο Matrix, θα γνωρίζετε τι είναι πραγματικό και τι όχι.

iGuRu.gr The Best Technology Site in Greecefgns

κάθε δημοσίευση, άμεσα στο inbox σας

Προστεθείτε στους 285 εγγεγραμμένους.
linux,virtual,machine,systemd,hostnamectl,dmidecode

Written by Δημήτρης

O Δημήτρης μισεί τις Δευτέρες.....

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).