Top 10 cách kiểm tra máy chủ Linux là máy chủ ảo hay máy chủ vật lý ?

Khi các bạn quản lý một VPS/Cloud Server hoặc một máy chủ Linux được cung cấp. Có lẽ sẽ có lúc bạn cần kiểm tra máy chủ Linux của mình có phải ảo hoá (VPS) không ? Hay là một máy chủ vật lý (dedicated server) đang hoạt động. Nếu là máy chủ ảo thì hệ thống đang được sử dụng công nghệ ảo hoá nào, có đúng như nhà cung cấp VPS/Cloud Server đã cấp máy chủ ảo Linux cho ta ?! Vấn đề đơn giản này sẽ được hỗ trợ giải đáp thông qua Top 10 cách xác định máy chủ Linux ảo hoá hay máy chủ vật lý.

Các chương trình lệnh trong bài viết này được sử dụng để kiểm tra thông tin hệ thống Linux ảo hoá hay vật lý gồm :

  • dmidecode
  • lshw
  • facter
  • virt-what
  • hostnamectl
  • systemd-detect-virt
  • dmesg
  • lscpu

1. Chương trình lệnh “dmidecode”

dmidecode” là một chương trình lệnh cho phép bạn đọc bảng thông tin DMI (Desktop Management Interface) giúp thống kê thông tin về phần cứng hệ thống và thông tin BIOS. Bảng DMI này có cả thông tin nhà sản xuất máy chủ, dòng model, serial number, phiên bản BIOS, CPU Socket, module gắn bộ nhớ RAM,…

– Ảo hoá VmWare.

# dmidecode -t system | grep -E "Manufacturer|Product"
Manufacturer: VMware, Inc.
Product Name: VMware Virtual Platform

– Ảo hoá KVM.

# dmidecode -t system | grep -E "Manufacturer|Product"
Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)

– Máy chủ vật lý HP.

# dmidecode -t system | grep -E "Manufacturer|Product"
Manufacturer: HP
Product Name: ProLiant BL460c Gen9

2. Chương trình lệnh “lshw”

lshw” (list hardware) là một chương trình nhỏ gọn cung cấp đầy đủ thông tin về phần cứng của máy chủ. Nó có thể xuất thông tin về bộ nhớ RAM, phiên bản firmware, mainboard, card mạng, CPU, bus, thông tin bảng DMI,… Vậy bạn cũng hoàn toàn có thể sử dụng chương trình này để kiểm tra khả năng hệ thống Linux là ảo hoá hay vật lý.

Bạn có thể cài đặt “lshw” như sau :

+ CentOS

# yum install -y lshw

+ Ubuntu

# apt-get install -y lshw

Hãy sử dụng cấu trúc lệnh “lshw” như dưới và kiểm tra output lệnh.

– Ảo hoá VmWare.

# lshw -class system | grep -E "product|vendor"
product: VMware Virtual Platform ()
vendor: VMware, Inc.

– Ảo hoá KVM.

# lshw -class system | grep -E "product|vendor"
product: Standard PC (i440FX + PIIX, 1996)
vendor: QEMU

– Máy chủ vật lý HP.

# lshw -class system | grep -E "product|vendor"
product: ProLiant BL460c Gen9 (813198-B21)
vendor: HP

3. Chương trình lệnh “facter”

Facter” là một chương trình mã nguồn Ruby giúp cung cấp thông tin về hệ thống. Bạn có thể cài đặt “facter” thông qua các chương trình quản lý gói cài đặt của hệ điều hành.

+ CentOS

# yum install -y facter

+ Ubuntu

# apt-get install -y facter

Hãy sử dụng cấu trúc lệnh như dưới và kiểm tra output lệnh.

– Ảo hoá VMWare.

# facter virtual
vmware

– Ảo hoá KVM.

# facter virtual
kvm

– Máy chủ vật lý.

# facter virtual
physical

4. Chương trình lệnh “virt-what”

virt-what” là một bash shell script đơn giản phục vụ cho đúng một mục đích đó là xác định xem hệ thống Linux đang chạy có phải máy chủ ảo không. Nếu phải thì sẽ xác định công nghệ ảo hoá được sử dụng là gì. Nếu không phải là máy chủ ảo hoá thì script sẽ không xuất bất kì output nào cả.

Lưu ý:
– Máy chủ vật lý thật sẽ không có dòng thông tin về ảo hoá trong output lệnh “virt-what“.

Bạn có thể cài đặt “virt-what” như sau :

+ CentOS

# yum install -y virt-what

+ Ubuntu

# apt-get install -y virt-what

Kiểm tra output lệnh “virt-what“.

– Ảo hoá VMWare

# virt-what
vmware

– Ảo hoá KVM

# virt-what
kvm

5. Chương trình lệnh “systemd-detect-virt”

systemd-detect-virt” là chương trình chỉ có trên các hệ thống Linux systemd mới sau này như (CentOS 7 hoặc Ubuntu 16.04 trở lên). Chương trình này hỗ trợ xác định công nghệ ảo hoá của máy chủ Linux đang chạy.

Kiểm tra output lệnh “systemd-detect-virt“.

– Ảo hoá KVM

# systemd-detect-virt
kvm

– Ảo hoá VMWare

# systemd-detect-virt
vmware

– Máy chủ vật lý

# systemd-detect-virt
none

6. Thông tin filesystem /sys/class/dmi/id/*

Kernel Linux chứa một vài thông tin DMI trong hệ thống filesystem nằm ở thư mục /sys/ . Chính vì vậy chúng ta cũng có thể dễ dàng nắm bắt được thông tin DMI liên quan công nghệ ảo hoá dựa trên một vài file như sau.

# ls /sys/class/dmi/id/ -l
total 0
-r--r--r-- 1 root root 4096 Aug 10 13:46 bios_date
-r--r--r-- 1 root root 4096 Aug 4 14:48 bios_vendor
-r--r--r-- 1 root root 4096 Aug 10 13:46 bios_version
-r--r--r-- 1 root root 4096 Aug 10 13:46 chassis_asset_tag
-r-------- 1 root root 4096 Aug 10 13:46 chassis_serial
-r--r--r-- 1 root root 4096 Aug 10 13:46 chassis_type
-r--r--r-- 1 root root 4096 Aug 10 13:46 chassis_vendor
-r--r--r-- 1 root root 4096 Aug 10 13:46 chassis_version
-r--r--r-- 1 root root 4096 Aug 4 14:48 modalias
drwxr-xr-x 2 root root 0 Aug 10 13:46 power
-r--r--r-- 1 root root 4096 Aug 4 14:48 product_name
-r-------- 1 root root 4096 Aug 10 13:46 product_serial
-r-------- 1 root root 4096 Aug 10 13:46 product_uuid
-r--r--r-- 1 root root 4096 Aug 10 13:46 product_version
lrwxrwxrwx 1 root root 0 Aug 10 13:46 subsystem -> ../../../../class/dmi
-r--r--r-- 1 root root 4096 Aug 4 14:48 sys_vendor
-rw-r--r-- 1 root root 4096 Aug 4 14:48 uevent

Hai file chúng ta cần quan tâm trong thư mục “/sys/class/dmi/id/” chính là “product_name” và “sys_vendor“.

– Ảo hoá VMware.

# cat /sys/class/dmi/id/{product_name,sys_vendor}
VMware Virtual Platform
VMware, Inc.

– Ảo hoá KVM.

# cat /sys/class/dmi/id/{product_name,sys_vendor}
Standard PC (i440FX + PIIX, 1996)
QEMU

– Máy chủ vật lý HP.

# cat /sys/class/dmi/id/{product_name,sys_vendor}
ProLiant BL460c Gen9
HP

7. Chương trình lệnh “hostnamectl”

hostnamectl” là một công cụ được cung cấp cho quản trị viên quản lý thông tin hostname của hệ thống Linux systemd (CentOS 7 hoặc Ubuntu 16.04 trở lên). Thế nhưng “hostnamectl” cũng đem đến các thông tin khá là hữu ích đối với nhu cầu cần kiểm tra máy chủ Linux của mình là server vật lý hay ảo hoá.

Với output dưới đây, nếu có dòng thông tin gồm :
+ Chassis : vm
+ Virtualization : kvm/vmware/ …

thì chứng tỏ máy chủ Linux này là một máy chủ ảo, còn không có thì đây là chủ Linux vật lý.

– Ảo hoá KVM

# hostnamectl status
Static hostname: lab.cuongquach.com
Icon name: computer-vm
Chassis: vm
Machine ID: 9f2f99fe97ab174e87be18036ae2790f
Boot ID: b5dd90ad53124c76bf4f04154555857c
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.10.2.el7.x86_64
Architecture: x86-64

– Server vật lý

# hostnamectl status
Static hostname: lab.cuongquach.com
Icon name: computer-server
Chassis: server
Machine ID: c92e571268e7429295028470c21547ba
Boot ID: a87abb4314e54797abe296532092b8e1
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64

8. Thông tin trong file /proc/cpuinfo

File “/proc/cpuinfo” là một file text có chứa các thông tin về CPU trên hệ thống Linux. Bạn có thể biết được hệ thống Linux của bạn là máy chủ vật lý hay máy chủ ảo bằng cách tìm kiếm cụm từ tham số “hypervisor” trong file text ‘cpuinfo‘ liên quan đến CPU.

# grep -i "hypervisor" /proc/cpuinfo 
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm constant_tsc nopl pni cx16 x2apic hypervisor lahf_lm

Với server vật lý thì sẽ không có tham số “hypervisor” này trong file text.

9. Chương trình lệnh “lscpu”

lscpu” là chương trình lệnh giúp thống kê và hiển thị thông tin về kiến trúc CPU cũng như các thông tin khác liên quan đến CPU như số threads, cores, sockets, CPU L cache, CPU Family, model,.. Các thông tin này sẽ được hiển thị với cấu trúc output dễ đọc cho quản trị viên.

Bạn có thể cài đặt “lspcu” như sau :

+ CentOS

# yum install -y lscpu

+ Ubuntu

# apt-get install -y lscpu

Lưu ý:
– Máy chủ vật lý thật sẽ không có dòng thông tin về ảo hoá “Hypervisor vendor” trong output lệnh “lscpu“.

Hãy sử dụng cấu trúc lệnh “lscpu” như dưới và kiểm tra output lệnh.

– Ảo hoá KVM

# lscpu | grep Hypervisor
Hypervisor vendor: KVM

– Ảo hoá VMware

# lscpu | grep Hypervisor
Hypervisor vendor: VMware

10. Chương trình lệnh “dmesg”

dmesg” là một chương trình lệnh rất phổ biến trên các hệ điều hành Linux, vì chương trình này được sử dụng với mục đích là ghi lại các log kernel (log boot-time) lúc khởi động hệ thống Linux vào các file log dịch vụ syslogd. Ta có thể tìm thấy file log này ở đường dẫn “/var/log/dmesg“.

Các log do “dmesg” ghi lại có thể giúp ta xử lý vấn đề hệ thống liên quan đến hardware. Vậy nên thông qua log này ta sẽ tìm các thông tin DMI của chúng trong file log hoặc output log dmesg (thực tế lệnh dmesg giúp ta đọc nội dung file ‘/var/log/dmesg‘).

– Ảo hoá VMware

# dmesg | grep DMI
[ 0.000000] DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 09/17/2015

– Ảo hoá KVM

# dmesg | grep DMI
[ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014

– Máy chủ vật lý HP.

# dmesg | grep DMI
[ 0.000000] DMI: HP ProLiant BL460c Gen9, BIOS I36 02/17/2017

Như vậy với top 10 các câu lệnh trên, “Cuongquach.com” nghĩ bạn hoàn toàn đã biết cách để tìm kiếm thông tin kiểm tra xem hệ thống Linux mình đang quản lý là máy chủ ảo (VPS/Cloud Server) hay là máy chủ vật lý bình thường (dedicated server). Nếu có khó khăn hay thắc mắc gì các bạn đừng ngại comment ngay bên dưới để trao đổi với mình nhé.

Quách Chí Cường (Theo VINADATA.VN)

Previous articleHavij 1.17 Pro + Crack – Chương trình khai thác SQL Injection
Next articleKiểm tra port đang mở trên máy chủ Linux
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !