Tìm hiểu phần cứng qua các thông tin server

Giả định bạn tiếp nhận một server mới toanh, bạn cần tìm một số thông tin về nó như loại CPU, loại main, loại memory, memory dùng của hãng nào… chẳng lẽ lại đi hỏi người bàn giao, hay đi lấy giấy tờ mua thiết bị từ phòng hành chính kế toán, hay lên tận DC, reboot và vào trong BIOS. Tất nhiên bạn có thể hỏi và thường thì người được hỏi vẫn phai tra cứu lại vì không ai đủ sức nhớ nổi hết các chi tiết, nhưng thế thì thà tự đi tìm cho nhanh. Còn tra trong giấy tờ sổ sách thì chắc đến khuya. Reboot để xem trong BIOS thì qúa nguy. Vậy nếu không làm các cách trên thì có thể điều tra thông tin thế nào ? Mình sẽ đi lần lượt vài mục. Vẫn còn nhiều công cụ lấy thông tin mình chưa nắm hết, nên có gì thì các bạn có thể comment bổ sung nhé.

Lấy thông tin CPU

dmidecode -t processor | grep -i version
Version: Intel(R) Xeon(R) CPU           L5520  @ 2.27GHz
Version: Intel(R) Xeon(R) CPU           L5520  @ 2.27GHz

Ở đây mình có hai CPU, loại Xeon L5520, hoạt động ở xung 2.27GHz

dmidecode -t process | grep -i cache
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: 0x0007
L1 Cache Handle: 0x0009
L2 Cache Handle: 0x000A
L3 Cache Handle: 0x000B

CPU này có ba tầng cache

dmidecode -t processor  | grep -i count

TSC (Time stamp counter)
        Core Count: 4
        Thread Count: 8
TSC (Time stamp counter)
        Core Count: 4
        Thread Count: 8

Mỗi CPU này có base là 4 core nhưng dùng công nghệ hyper threading nên thực tế chạy với 8 core.

lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit -> có hỗ trợ x64
Byte Order:            Little Endian
CPU(s):                16 -> 16 cores
On-line CPU(s) list:   0-15
Thread(s) per core:    2 -> hyper threading
Core(s) per socket:    4 -> mỗi socket có 4 core
Socket(s):             2 -> 2 CPU
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 26
Stepping:              5
CPU MHz:               2266.542
BogoMIPS:              4532.68
Virtualization:        VT-x -> có hỗ trợ ảo hóa
L1d cache:             32K -> độ lớn L1, L2, L3 cache
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
NUMA node0 CPU(s):     0-3,8-11
NUMA node1 CPU(s):     4-7,12-15

Lấy thông tin về linux kernel

uname -r
2.6.32-573.12.1.el6.x86_64

Lấy thông tin về OS distribution

cat /etc/issue
CentOS release 6.7 (Final)
Kernel \r on an \m

hoặc dùng cat /etc/redhat-*

Lấy thông tin về memory

free -m
             total       used       free     shared    buffers     cached
Mem:         15939        424      15515          0         13        167
-/+ buffers/cache:        242      15697 
Swap:         1999          0       1999 

Tổng 16G, swap 2G

dmidecode -t memory | grep -i "Number of devices"
Number Of Devices: 12

Hỗ trợ 12 slot để cắm memory

dmidecode -t memory | grep -i "Maximum"
Maximum Capacity: 384 GB

memory tối đa là 384G.

Memory tối đa phụ thuộc loại CPU Ví dụ
E3-1230 hỗ trợ tối đa 32G

dmidecode -t memory | grep -i "Manufacturer"
        Manufacturer: Micron        
        Manufacturer:               
        Manufacturer: Micron        
        Manufacturer:               
        Manufacturer:               
        Manufacturer:               
        Manufacturer: Micron        
        Manufacturer:               
        Manufacturer: Micron        
        Manufacturer:               
        Manufacturer:               
        Manufacturer:

Như vậy memory thuộc nhà sản xuất Micron, căn cứ trên output có thể thấy server này có 4 thanh memory, tổng memory lúc xem qua free là 16G nên mỗi thanh sẽ là 4G. Để chắc chắn thì:

dmidecode -t memory | grep -i "size"
        Size: 4096 MB
        Size: No Module Installed
        Size: 4096 MB
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed
        Size: 4096 MB
        Size: No Module Installed
        Size: 4096 MB
        Size: No Module Installed
        Size: No Module Installed
        Size: No Module Installed

Đúng là 4G mỗi thanh.

dmidecode -t memory | grep -i "speed"
        Speed: 1066 MHz
        Speed: Unknown
        Speed: 1066 MHz
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown
        Speed: 1066 MHz
        Speed: Unknown
        Speed: 1066 MHz
        Speed: Unknown
        Speed: Unknown
        Speed: Unknown

Mỗi thanh chạy với speed 1066Mhz

dmidecode -t memory | grep -i "Part"
        Part Number: 18KSF51272PZ-1G6K1
        Part Number:                   
        Part Number: 18KSF51272PZ-1G6K1
        Part Number:                   
        Part Number:                   
        Part Number:                   
        Part Number: 18KSF51272PZ-1G6K1
        Part Number:                   
        Part Number: 18KSF51272PZ-1G6K1
        Part Number:                   
        Part Number:                   
        Part Number:                   

Mã sản phẩm là 18KSF51272PZ-1G6K1
Thông tin part number dùng để tra cứu thông tin về toàn bộ memory để thay thế sau này

Lấy thông tin slab

cat /proc/meminfo  | grep -i slab
Slab:              55676 kB

khoảng 56M

Lấy thông tin main

dmidecode -t baseboard
# dmidecode 2.12
SMBIOS 2.6 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: Supermicro
        Product Name: X8DTT
        Version: 2.0       
        Serial Number: OM19S32637
        Asset Tag: 1234567890
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: 1234567890
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0

Một số loại main Supermicro hỗ trợ IPMI, một bộ đặc tả giao tiếp cho phép quản trị viên truy cập từ xa vào server khi có sự cố nghiêm trọng ví dụ không thể SSH được: do hỏng raid, kernel panic, lỗi memory, hay như có lần mình dùng lệnh fuser bất cẩn khiến sshd bị kill… Trong trường hợp này bạn chỉ có thể lên DC xem trực tiếp, hoặc nhờ DC cắm KVM. Nhưng cả hai giải pháp trên đều chậm trễ. Nay với IPMI, bạn có thể remote ngay lâp tức. Giải pháp này yêu cầu main phải hỗ trợ và trên các loại main này thường sẽ có bố trí một dedicated network LAN port dành riêng cho IPMI.

Tips: Rút ra từ cuộc trao đổi với hai đàn anh ở công ty.
Có một mối quan hệ giữa CPU và main và memory. Xét thử CPU E3-1230
http://ark.intel.com/products/52271/Intel-Xeon-Processor-E3-1230-8M-Cache-3_20-GHz
CPU này hoạt động single nên chỉ dùng với loại main hỗ trợ single CPU socket
Memory tối đa 32G, speed DDR3 1066/1333, hỗ trợ ECC. Lượng memory tối đa hỗ trợ khá thấp nên khả năng nó chỉ dùng memory unbufferd. Socket type của CPU này là LGA1155.

Ví dụ bạn định mua main SuperMicro, thì tra trong https://www.supermicro.com/products/motherboard/SuperMicro hỗ trợ phân loại main theo CPU. Như trên có E3-1230 thuộc socket 1155 nên thuộc nhóm main hỗ trợ socket 1155, tra vào đó bạn sẽ thấy một loạt. Chọn một chú main là X9SCLhttps://www.supermicro.com.tw/products/motherboard/Xeon/C202_C204/X9SCL.cfm

Main này kế thừa các ràng buộc về CPU mà mình vừa viết ở trên cộng thêm vài ràng buộc khác hỗ trợ 4 khe memory, mỗi khe chỉ chấp nhận các memory 8GB hoặc 4GB hoặc 2GB hoặc 1GB. Ngoài ra còn một ràng buộc quan trọng mà ở trước đó mình chỉ đồ đoán là chỉ hỗ trợ unbuffered memory. Ràng buộc này rất quan trọng vì bạn không thể cắm lẫn các thanh unbuffered memory và bufferd memory với nhau. Server sẽ không thể boot được trong trường hợp đó. Khi cần thay memory, tốt nhất tra cứu thông tin về CPU và main để có lựa chọn chính xác.

Lấy thông tin về network card

lspci | egrep -i ‘network|ethernet’

e1000e00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 05)
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Loại network card sử dụng phải tương ứng với main
Quay về main X9SCL, xem spec của nó có thể thấy nó hỗ trợ:
2x Gigabit Ethernet LAN ports: Intel® 82579LM and Intel® 82574L

Network card thường cắm trên chuẩn khe PCI-e. Thông qua PCI-e để giao tiêp với main. Main X9SCL hỗ trợ
2 (x8) PCI-E 3.0 in x8 slots***
1 (x4) PCI-E 2.0 in x8 slots
2 khe loại x8 tốc độ x8 chuẩn PCI-e 3.0
1 khe loại x8 nhưng tốc độ x4 chuẩn PCI-e 2.0

Về bandwidth mỗi lane và mỗi chuẩn PCI-e bạn có thể xem trong:
https://serverfault.com/questions/11633/whats-the-bandwidth-and-form-factor-for-pcie-x1-x4-x8-and-x16

Căn cứ vào đó thì có thể thấy PCI-e 2.0 tốc độ x4 tương đương với 2GB/s. Rất lớn nên không lo bottle neck cho các thiết bị khác giao tiếp. Network card tốc độ có đến 1Gbps có port channel thêm cũng chỉ lên đến 2Gbps, cũng không khiến bị bottle neck tại tầng PCI-e.

Lấy thông tin Raid

lspci | grep -i raid
00:1f.2 RAID bus controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA RAID Controller (rev 05)

Raid này là onboard, disk sẽ dùng chuẩn SATA để giao tiếp với main. Trường hợp dùng card raid rời thì card raid đó cũng cắm qua khe PCI-e. Thông qua PCI-e để giao tiêp với main

Loại raid, số lượng disk, giao tiếp giua card raid và disk cũng là một ràng buộc của main. Ví dụ main X9SCL chỉ hỗ trợ
6x SATA2 (3Gb/s) w/ RAID 0, 1, 5, 10
Hỗ trợ 6 disk

SATA2 là giao tiếp giua raid controller và disk controller

Vì số lượng PCI-e trên một main có giới hạn nên bạn không thể mở rộng liên tục các thiết bị ngoại vi được.

Post Author: administrator

Leave a Reply

Your email address will not be published. Required fields are marked *