GNU/Linux >> Linux Esercitazione >  >> Linux

Risoluzione dei problemi hardware in Linux

I server Linux eseguono applicazioni aziendali mission-critical in molti diversi tipi di infrastrutture, tra cui macchine fisiche, virtualizzazione, cloud privato, cloud pubblico e cloud ibrido. È importante che gli amministratori di sistema Linux comprendano come gestire l'infrastruttura hardware Linux, comprese le funzionalità definite dal software relative a reti, storage, container Linux e strumenti multipli sui server Linux.

La risoluzione dei problemi relativi all'hardware su Linux può richiedere del tempo. Anche gli amministratori di sistema di grande esperienza a volte trascorrono ore a lavorare per risolvere misteriose discrepanze hardware e software.

I seguenti suggerimenti dovrebbero rendere più semplice e veloce la risoluzione dei problemi hardware in Linux. Molte cose diverse possono causare problemi con l'hardware Linux; prima di iniziare a provare a diagnosticarli, è utile conoscere i problemi più comuni e dove è più probabile che li trovi.

Dispositivi, moduli e driver a diagnosi rapida

Il primo passaggio nella risoluzione dei problemi di solito consiste nel visualizzare un elenco dell'hardware installato sul server Linux. È possibile ottenere informazioni dettagliate sull'hardware utilizzando ls comandi come lspci , lsblk , lscpu e lsscsi . Ad esempio, ecco l'output di 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

Se il ls i comandi non rivelano alcun errore, utilizzano processi init (ad es. systemd ) per vedere come funziona il server Linux. sistema di sistema è il processo di inizializzazione più popolare per il bootstrap degli spazi utente e il controllo di più processi di sistema. Ad esempio, qui viene visualizzato lo stato systemctl 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
....

Analisi in più registri

Dmesg ti consente di capire errori e avvisi negli ultimi messaggi del kernel. Ad esempio, ecco l'output di dmesg | di più 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
....

Puoi anche guardare tutti i log di sistema Linux in /var/log/messages file, che è dove troverai gli errori relativi a problemi specifici. Vale la pena monitorare i messaggi tramite la coda comando in tempo reale quando si apportano modifiche all'hardware, come il montaggio di un disco aggiuntivo o l'aggiunta di un'interfaccia di rete Ethernet. Ad esempio, ecco l'output di 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

Analisi delle funzioni di rete

Potresti avere centinaia di migliaia di applicazioni cloud native per servire servizi aziendali in un ambiente di rete complesso; questi possono includere la virtualizzazione, il cloud multiplo e il cloud ibrido. Ciò significa che dovresti analizzare se la connettività di rete funziona correttamente come parte della tua risoluzione dei problemi. I comandi utili per capire le funzioni di rete nel server Linux includono ip addr , tracciare , nslookup , scava e ping , tra gli altri. Ad esempio, ecco l'output di 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
....

In conclusione

La risoluzione dei problemi dell'hardware Linux richiede una conoscenza considerevole, incluso come utilizzare potenti strumenti da riga di comando e capire i log di sistema. Dovresti anche sapere come diagnosticare lo spazio del kernel, che è dove puoi trovare la causa principale di molti problemi hardware. Tieni presente che i problemi hardware in Linux possono derivare da molte fonti diverse, inclusi dispositivi, moduli, driver, BIOS, reti e persino semplici malfunzionamenti hardware vecchi.


Linux
  1. Gestire l'hardware collegato su Linux con systemd-udevd

  2. Comandi Linux per visualizzare le informazioni sull'hardware

  3. Risoluzione dei problemi di WiFi lento su Linux

  4. dmidecode:ottieni informazioni sull'hardware di sistema su Linux

  5. Linux:ottenere informazioni sull'hardware di una macchina in Linux?

Trova le informazioni sull'hardware del sistema Linux con Hwinfo

Come trovare le specifiche hardware su Linux

Una guida per principianti alla risoluzione dei problemi di rete in Linux

Come visualizzare le informazioni sull'hardware in Linux

Risoluzione dei problemi "Certificato TLS inaccettabile" Errore in Linux

Hardware del terminale di testo (per Linux)