GNU/Linux >> Tutoriales Linux >  >> Linux

Solución de problemas de hardware en Linux

Los servidores Linux ejecutan aplicaciones comerciales de misión crítica en muchos tipos diferentes de infraestructuras, incluidas máquinas físicas, virtualización, nube privada, nube pública y nube híbrida. Es importante que los administradores de sistemas de Linux entiendan cómo administrar la infraestructura de hardware de Linux, incluidas las funcionalidades definidas por software relacionadas con las redes, el almacenamiento, los contenedores de Linux y varias herramientas en los servidores de Linux.

Puede tomar algún tiempo solucionar y resolver problemas relacionados con el hardware en Linux. Incluso los administradores de sistemas con mucha experiencia a veces pasan horas trabajando para resolver misteriosas discrepancias de hardware y software.

Los siguientes consejos deberían hacer que sea más rápido y fácil solucionar problemas de hardware en Linux. Muchas cosas diferentes pueden causar problemas con el hardware de Linux; antes de comenzar a tratar de diagnosticarlos, es inteligente conocer los problemas más comunes y dónde es más probable encontrarlos.

Diagnóstico rápido de dispositivos, módulos y controladores

El primer paso para solucionar problemas suele ser mostrar una lista del hardware instalado en su servidor Linux. Puede obtener información detallada sobre el hardware usando ls comandos como lspci , lsblk , lscpu y lsscsi . Por ejemplo, aquí está la salida de lsblk comando:

# lsblk 
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk
├─xvda1 202:1    0   1M  0 part
└─xvda2 202:2    0  50G  0 part /
xvdb    202:16   0  20G  0 disk
└─xvdb1 202:17   0  20G  0 part

Si el ls los comandos no revelan ningún error, use procesos de inicio (por ejemplo, systemd ) para ver cómo funciona el servidor Linux. sistema es el proceso de inicio más popular para arrancar espacios de usuario y controlar múltiples procesos del sistema. Por ejemplo, aquí está el resultado del systemctl status comando:

# systemctl status 
● bastion.f347.internal
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Wed 2018-11-28 01:29:05 UTC; 2 days ago
   CGroup: /
           ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
           ├─kubepods.slice
           │ ├─kubepods-pod3881728a_f2af_11e8_af77_06af52f87498.slice
           │ │ ├─docker-88b27385f4bae77bba834fbd60a61d19026bae13d18eb147783ae27819c34967.scope
           │ │ │ └─23860 /opt/bridge/bin/bridge --public-dir=/opt/bridge/static --config=/var/console-config/console-c
           │ │ └─docker-a4433f0d523c7e5bc772ee4db1861e4fa56c4e63a2d48f6bc831458c2ce9fd2d.scope
           │ │   └─23639 /usr/bin/pod
....

Profundizando en múltiples registros

Dmesg le permite descubrir errores y advertencias en los últimos mensajes del núcleo. Por ejemplo, aquí está la salida de dmesg | más comando:

# dmesg | more 
....
[ 1539.027419] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 1539.042726] IPv6: ADDRCONF(NETDEV_UP): veth61f37018: link is not ready
[ 1539.048706] IPv6: ADDRCONF(NETDEV_CHANGE): veth61f37018: link becomes ready
[ 1539.055034] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 1539.098550] device veth61f37018 entered promiscuous mode
[ 1541.450207] device veth61f37018 left promiscuous mode
[ 1542.493266] SELinux: mount invalid.  Same superblock, different security settings for (dev mqueue, type mqueue)
[ 9965.292788] SELinux: mount invalid.  Same superblock, different security settings for (dev mqueue, type mqueue)
[ 9965.449401] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 9965.462738] IPv6: ADDRCONF(NETDEV_UP): vetheacc333c: link is not ready
[ 9965.468942] IPv6: ADDRCONF(NETDEV_CHANGE): vetheacc333c: link becomes ready
....

También puede ver todos los registros del sistema Linux en /var/log/messages archivo, que es donde encontrará errores relacionados con problemas específicos. Vale la pena monitorear los mensajes a través de la cola Comando en tiempo real cuando realiza modificaciones en su hardware, como montar un disco adicional o agregar una interfaz de red Ethernet. Por ejemplo, aquí está la salida de tail -f /var/log/messages comando:

# tail -f /var/log/messages
Dec  1 13:20:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain in-addr.arpa
Dec  1 13:20:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain cluster.local
Dec  1 13:21:03 bastion dnsmasq[30201]: setting upstream servers from DBus
Dec  1 13:21:03 bastion dnsmasq[30201]: using nameserver 192.199.0.2#53
Dec  1 13:21:03 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain in-addr.arpa
Dec  1 13:21:03 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain cluster.local
Dec  1 13:21:33 bastion dnsmasq[30201]: setting upstream servers from DBus
Dec  1 13:21:33 bastion dnsmasq[30201]: using nameserver 192.199.0.2#53
Dec  1 13:21:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain in-addr.arpa
Dec  1 13:21:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain cluster.local

Análisis de funciones de red

Puede tener cientos de miles de aplicaciones nativas de la nube para brindar servicios comerciales en un entorno de red complejo; estos pueden incluir virtualización, nube múltiple y nube híbrida. Esto significa que debe analizar si la conectividad de red funciona correctamente como parte de su solución de problemas. Los comandos útiles para averiguar las funciones de red en el servidor Linux incluyen ip addr , trazar ruta , nslookup , cavar y ping , entre otros. Por ejemplo, aquí está el resultado de ip addr show comando:

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 06:af:52:f8:74:98 brd ff:ff:ff:ff:ff:ff
    inet 192.199.0.169/24 brd 192.199.0.255 scope global noprefixroute dynamic eth0
       valid_lft 3096sec preferred_lft 3096sec
    inet6 fe80::4af:52ff:fef8:7498/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:67:fb:1a:a2 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:67ff:fefb:1aa2/64 scope link
       valid_lft forever preferred_lft forever
....

En conclusión

La solución de problemas de hardware de Linux requiere un conocimiento considerable, incluido cómo usar potentes herramientas de línea de comandos y averiguar los registros del sistema. También debe saber cómo diagnosticar el espacio del kernel, que es donde puede encontrar la causa raíz de muchos problemas de hardware. Tenga en cuenta que los problemas de hardware en Linux pueden provenir de muchas fuentes diferentes, incluidos dispositivos, módulos, controladores, BIOS, redes e incluso fallas simples de hardware antiguo.


Linux
  1. 5 comandos de solución de problemas de red de Linux

  2. Linux:¿obtener información sobre el hardware de una máquina en Linux?

  3. ¿Resolución de problemas y depuración de redes Linux?

  4. Solución de problemas comunes de NFS en Linux

  5. Obtener información sobre el hardware de una máquina en Linux

Encuentre información de hardware del sistema Linux con Hwinfo

Cómo encontrar especificaciones de hardware en Linux

Una guía para principiantes sobre la resolución de problemas de red en Linux

Cómo ver información de hardware en Linux

Solución de problemas del error "Certificado TLS inaceptable" en Linux

Hardware de terminal de texto (para Linux)