Solución de problemas de hardware en Linux

Los servidores Linux ejecutan aplicaciones comerciales de misión crítica en una variedad 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 Linux comprendan cómo administrar la infraestructura de hardware de Linux, incluidas las funciones definidas por software relacionadas con la red, el almacenamiento, los contenedores de Linux y una variedad de herramientas en los servidores de Linux.

Puede tomar algún tiempo solucionar y resolver los problemas de hardware en Linux. Incluso los administradores de sistemas con mucha experiencia a veces trabajan durante horas para resolver misteriosas incoherencias de hardware y software.

Los siguientes consejos deberían hacer que la resolución de problemas de hardware de Linux sea más rápida y sencilla. Muchas cosas diferentes pueden causar problemas con el hardware de Linux; antes de comenzar a tratar de diagnosticarlos, infórmese sabiamente sobre los problemas más comunes y dónde es más probable que los encuentre.

Índice

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

    El primer paso en la resolución de problemas suele ser mostrar una lista del hardware instalado en su servidor Linux. Puede obtener información detallada sobre el equipo utilizando ls equipos como lspci, lsblk, lscpu, y lsscsi. Por ejemplo, aquí está la conclusión. lsblk equipo:

    # 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

    Cuándo ls los equipos no detectan errores, usan procesos de iniciación (ej. sistemad) para ver cómo funciona el servidor Linux. sistemad es el proceso de iniciación más popular para cargar espacio de usuario y administrar múltiples procesos del sistema. Por ejemplo, aquí está la conclusión. sistema de estadoctl equipo:

    # 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
    ....

    Excavando en varios esquejes

    Dmesg le permite encontrar errores y advertencias en los últimos mensajes del kernel. Por ejemplo, aquí está la conclusión. dmesg | más equipo:

    # 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 de Linux /var/log/mensajes un archivo en el que encontrarás errores relacionados con determinados problemas. Sigue los mensajes a través de cola un comando en tiempo real cuando realiza cambios en su hardware, como montar una unidad adicional o agregar una interfaz de red Ethernet. Por ejemplo, aquí está la conclusión. cola -f/var/log/mensajes equipo:

    # 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

    Es posible que tenga cientos de miles de aplicaciones en la nube para brindar servicios comerciales en un entorno de red complejo; estos pueden incluir virtualización, nubes múltiples y una nube híbrida. Esto significa que debe analizar si la conexión de red funciona correctamente como parte de la solución de problemas. Incluya comandos útiles para descubrir funciones de red en servidores Linux dirección IP, rastreo, nslookup, cavar, y silbido, entre otros. Por ejemplo, aquí está la conclusión. mostrar dirección IP equipo:

    # 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 significativo, incluido el uso de potentes herramientas de línea de comandos y el registro del sistema. También necesita saber cómo diagnosticar un espacio del kernel 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 una variedad de fuentes, incluidos dispositivos, módulos, controladores, BIOS, redes e incluso fallas de hardware antiguas comunes.

    Artículos de interés

    Subir