这篇稿子是同事总结的,自己存下来学习下,也分享给大家
目录
设置环境变量LANG,修改语言为英文:
export LANG=C
使用systemd-detect-virt确定不是虚拟化环境。
已知的虚拟化技术(systemd 243):
- ┌──────────┬────────────────┬────────────────────────────────────────────┐
- │Type │ ID │ Product │
- ├──────────┼────────────────┼────────────────────────────────────────────┤
- │VM │ qemu │ QEMU software virtualization, without KVM │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ kvm │ Linux KVM kernel virtual machine, with │
- │ │ │ whatever software, except Oracle │
- │ │ │ Virtualbox │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ zvm │ s390 z/VM │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ vmware │ VMware Workstation or Server, and related │
- │ │ │ products │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ microsoft │ Hyper-V, also known as Viridian or Windows │
- │ │ │ Server Virtualization │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ oracle │ Oracle VM VirtualBox (historically │
- │ │ │ marketed by innotek and Sun Microsystems), │
- │ │ │ for legacy and KVM hypervisor │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ xen │ Xen hypervisor (only domU, not dom0) │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ bochs │ Bochs Emulator │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ uml │ User-mode Linux │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ parallels │ Parallels Desktop, Parallels Server │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ bhyve │ bhyve, FreeBSD hypervisor │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ qnx │ QNX hypervisor │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ acrn │ ACRN hypervisor[1] │
- ├──────────┼────────────────┼────────────────────────────────────────────┤
- │Container │ openvz │ OpenVZ/Virtuozzo │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ lxc │ Linux container implementation by LXC │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ lxc-libvirt │ Linux container implementation by libvirt │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ systemd-nspawn │ systemd's minimal container │
- │ │ │ implementation, see systemd-nspawn(1) │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ docker │ Docker container manager │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ podman │ Podman[2] container manager │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ rkt │ rkt app container runtime │
- │ ├────────────────┼────────────────────────────────────────────┤
- │ │ wsl │ Windows Subsystem for Linux[3] │
- └──────────┴────────────────┴────────────────────────────────────────────┘
物理机输出如下:
systemd-detect-virt none
uname -a Linux localhost.localdomain 4.19.90-24.4.v2101.ky10.aarch64 1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
cat /etc/.productinfo Kylin Linux Advanced Server release V10 (SP2) /(Sword)-aarch64-Build09/20210524
uname -m aarch64 uname -p aarch64 arch aarch64
针对服务器基本信息,包括BIOS、system、baseboard、chassis等信息都可以通过DMI信息获取。
dmidecode -s system-manufacturer Huawei
dmidecode -s system-product-name TaiShan 200K (Model 2280K)
dmidecode -s chassis-type Main Server Chassis
dmidecode -t chassis | grep Height | tr -d '\t' Height: 2 U
dmidecode -s bios-vendor Huawei Corp.
dmidecode -s bios-version 1.32.K
dmidecode -s bios-release-date 04/03/2020
CPU信息获取通过多种方式,可以使用lscpu(也使用/proc/cpuinfo)或者dmidecode -t processor获取。
ARM很多cpuinfo相关的寄存器是implement defined(实现定义的行为是由编译器设计者决定采取何种行动,并写入实用手册),另外很多bit都是保留的,因此各个厂家实现不一致,另外就是将来的变化会导致ABI的变化。所以在不同ARM平台获取的信息也不完全一致。
以下是Intel CPU使用lscpu的输出:
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 48 On-line CPU(s) list: 0-47 Thread(s) per core: 2 Core(s) per socket: 6 Socket(s): 4 NUMA node(s): 4 Vendor ID: GenuineIntel CPU family: 6 Model: 47 Model name: Intel(R) Xeon(R) CPU E7- 4807 @ 1.87GHz Stepping: 2 CPU MHz: 1862.000 CPU max MHz: 1862.0000 CPU min MHz: 1064.0000 BogoMIPS: 3723.98 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 18432K NUMA node0 CPU(s): 0-5,24-29 NUMA node1 CPU(s): 6-11,30-35 NUMA node2 CPU(s): 12-17,36-41 NUMA node3 CPU(s): 18-23,42-47 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt aes lahf_lm ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid dtherm arat spec_ctrl intel_stibp flush_l1d
在内核源代码里(arch/x86/include/asm/cpufeatures.h)找到了每个flag的相关注释,通过这些注释可以很方便我们理解这些 flags 缩写:
/* Intel-defined CPU features, CPUID level 0x00000001 (EDX), word 0 */ define X86_FEATURE_FPU ( 0*32+ 0) /* Onboard FPU */ define X86_FEATURE_VME ( 0*32+ 1) /* Virtual Mode Extensions */ define X86_FEATURE_DE ( 0*32+ 2) /* Debugging Extensions */ define X86_FEATURE_PSE ( 0*32+ 3) /* Page Size Extensions */ define X86_FEATURE_TSC ( 0*32+ 4) /* Time Stamp Counter */ define X86_FEATURE_MSR ( 0*32+ 5) /* Model-Specific Registers */ define X86_FEATURE_PAE ( 0*32+ 6) /* Physical Address Extensions */ define X86_FEATURE_MCE ( 0*32+ 7) /* Machine Check Exception */ define X86_FEATURE_CX8 ( 0*32+ 8) /* CMPXCHG8 instruction */ define X86_FEATURE_APIC ( 0*32+ 9) /* Onboard APIC */ define X86_FEATURE_SEP ( 0*32+11) /* SYSENTER/SYSEXIT */ define X86_FEATURE_MTRR ( 0*32+12) /* Memory Type Range Registers */ define X86_FEATURE_PGE ( 0*32+13) /* Page Global Enable */ define X86_FEATURE_MCA ( 0*32+14) /* Machine Check Architecture */ define X86_FEATURE_CMOV ( 0*32+15) /* CMOV instructions (plus FCMOVcc, FCOMI with FPU) */ define X86_FEATURE_PAT ( 0*32+16) /* Page Attribute Table */ define X86_FEATURE_PSE36 ( 0*32+17) /* 36-bit PSEs */ define X86_FEATURE_PN ( 0*32+18) /* Processor serial number */ define X86_FEATURE_CLFLUSH ( 0*32+19) /* CLFLUSH instruction */ define X86_FEATURE_DS ( 0*32+21) /* "dts" Debug Store */ define X86_FEATURE_ACPI ( 0*32+22) /* ACPI via MSR */
[root@localhost ~] dmidecode -t 16 dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 3.2.0 present. Handle 0x0006, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 8 TB Error Information Handle: Not Provided Number Of Devices: 32
Maximum Capacity和Number Of Devices分别标识内存最大容量和可以插入内存个数。
-t表示按照DMI的类别进行显示。
-t后面可以加DMI type number也可以加keyword( bios, system, baseboard, chassis, processor, memory, cache, connector, slot)。
16表示Physical Memory Array。详见SMBIOS的规范https://www.dmtf.org/dsp/DSP0134
由于服务器可以插入几十根甚至数百根内存条,一般为了保证兼容,也都会插入相同型号的内存。
我们分两步进行内存信息的收集:
通过smartctl可以获取SCSI Disk的基本信息。
思考:服务器上插入的是希捷的ST1200MM0009盘并组的RAID0,为什么smartctl获取到的厂商、型号都不一致?
[root@localhost ~] smartctl -i /dev/sda smartctl 7.1 2019-12-30 r5022 [aarch64-linux-4.19.90-24.4.v2101.ky10.aarch64] (l ocal build) Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Vendor: AVAGO Product: HW-SAS3508 Revision: 5.06 Compliance: SPC-3 User Capacity: 13,188,994,170,880 bytes [13.1 TB] Logical block size: 512 bytes Logical Unit id: 0x6d47c44d13dae000275c728169566c37 Serial number: 00376c566981725c2700e0da134dc447 Device type: disk Local Time is: Sat Aug 7 15:35:51 2021 CST SMART support is: Unavailable - device lacks SMART capability.
服务器上存储环境比较复杂,不单独讲,后面会融合到RAID、HBA等一块讲解。
因为Ethernet controller、Fibre Channel、RAID bus controller、SATA controller、Serial Attached SCSI controller、USB controller等都是通过PCI总线连接。
PCI设备分类可以通过PCI Device Classes 获取。
通过Ethernet controller类(0200)获取
[root@localhost ~] lspci -d ::0200 07:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) 08:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) 09:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) 0a:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45) 7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21) 7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21) 7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21) 7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
通过Fibre Channel类(0c04)获取
[root@localhost ~] lspci -d ::0c04 03:00.0 Fibre Channel: Huawei Technologies Co., Ltd. Hi1822 Family (2*8G FC) (rev 45) 04:00.0 Fibre Channel: Huawei Technologies Co., Ltd. Hi1822 Family (2*8G FC) (rev 45)
通过RAID bus controller类(0104)获取
[root@localhost ~] lspci -d ::0104 0b:00.0 RAID bus controller: Broadcom / LSI MegaRAID Tri-Mode SAS3508 (rev 01) 78:01.0 RAID bus controller: Huawei Technologies Co., Ltd. HiSilicon RDE Engine (rev 21) b8:01.0 RAID bus controller: Huawei Technologies Co., Ltd. HiSilicon RDE Engine (rev 21)
通过SATA controller类(0106)获取
[root@localhost ~] lspci -d ::0106 74:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21) b4:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
通过Serial Attached SCSI controller类(0107)获取
[root@localhost ~] lspci -d ::0107 74:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21) 74:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21) b4:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21) b4:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
通过USB controller类(0c03)获取
[root@localhost ~] lspci -d ::0c03 n
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!