Solución de problemas de hardware en Linux

Los servidores Linux ejecutan aplicaciones comerciales críticas en muchos tipos de infraestructura, 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 las redes, el almacenamiento, los contenedores de Linux y varias herramientas en los servidores de Linux.

La solución de problemas y la resolución de problemas de hardware en Linux pueden llevar algún tiempo. Incluso los administradores de sistemas con mucha experiencia a veces pasan horas arreglando misteriosas inconsistencias de hardware y software.

Los siguientes consejos deberían hacer que la resolución de problemas de hardware de Linux sea más fácil y rápida. Muchas cosas diferentes pueden causar problemas con el hardware de Linux; Antes de comenzar a tratar de diagnosticarlos, es una buena idea conocer los problemas más comunes y dónde es más probable encontrarlos.

Índice

    Dispositivos, módulos y controladores de diagnóstico rápido

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

    # 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 la ls los comandos no revelan errores, use procesos de inicio (por ejemplo, sistemad) para ver cómo funciona el servidor Linux. sistemad es el proceso de inicio más popular para iniciar espacios de usuario y controlar varios procesos del sistema. Por ejemplo, aquí está la salida de estado del sistema pedido:

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

    Profundice en varios registros

    DmesgNombre lo ayuda a comprender los errores y las advertencias en los últimos mensajes del núcleo. Por ejemplo, aquí está la salida de dmesg | Siguiente pedido:

    # 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 el /var/registro/mensajes archivo, donde encontrará errores relacionados con temas específicos. Vale la pena monitorear los mensajes a través del cola control 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 salida de cola -f /var/log/mensajes pedido:

    # 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 las 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, multinube y nube híbrida. Esto significa que debe analizar si la conectividad de la red funciona correctamente como parte de la solución de problemas. Los comandos útiles para comprender las funciones de red en el servidor Linux incluyen dirección IP, trazar ruta, nslookup, cavar, y silbido, Entre otros. Por ejemplo, aquí está la salida de visualización de la dirección IP pedido:

    # 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 el uso de potentes herramientas de línea de comandos y la comprensión de los registros del sistema. También debe saber cómo diagnosticar el 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 muchas fuentes diferentes, incluidos dispositivos, módulos, controladores, BIOS, redes e incluso fallas de hardware más antiguas.

    Artículos de interés

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada.

    Subir

    Si continuas utilizando este sitio aceptas el uso de cookies. Más información