GNU/Linux >> Belajar Linux >  >> Linux

Memecahkan masalah perangkat keras di Linux

Server Linux menjalankan aplikasi bisnis mission-critical di berbagai jenis infrastruktur termasuk mesin fisik, virtualisasi, private cloud, public cloud, dan hybrid cloud. Sangat penting bagi sysadmin Linux untuk memahami cara mengelola infrastruktur perangkat keras Linux—termasuk fungsionalitas yang ditentukan perangkat lunak yang terkait dengan jaringan, penyimpanan, wadah Linux, dan beberapa alat di server Linux.

Diperlukan beberapa waktu untuk memecahkan masalah dan menyelesaikan masalah terkait perangkat keras di Linux. Bahkan sysadmin yang sangat berpengalaman terkadang menghabiskan waktu berjam-jam untuk memecahkan perbedaan perangkat keras dan perangkat lunak yang misterius.

Kiat-kiat berikut akan mempercepat dan mempermudah pemecahan masalah perangkat keras di Linux. Banyak hal berbeda yang dapat menyebabkan masalah dengan perangkat keras Linux; sebelum Anda mulai mencoba mendiagnosisnya, sebaiknya pelajari tentang masalah yang paling umum dan di mana kemungkinan besar Anda akan menemukannya.

Mendiagnosis perangkat, modul, dan driver dengan cepat

Langkah pertama dalam pemecahan masalah biasanya adalah menampilkan daftar perangkat keras yang terpasang di server Linux Anda. Anda dapat memperoleh informasi mendetail tentang perangkat keras menggunakan ls perintah seperti lspci , lsblk , lscpu , dan lsscsi . Misalnya, berikut adalah output dari lsblk perintah:

# 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

Jika ls perintah tidak mengungkapkan kesalahan apa pun, gunakan proses init (mis., systemd ) untuk melihat cara kerja server Linux. sistemd adalah proses init paling populer untuk mem-bootstrap ruang pengguna dan mengendalikan beberapa proses sistem. Misalnya, berikut adalah output dari systemctl status perintah:

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

Menggali beberapa logging

Dmesg memungkinkan Anda untuk mengetahui kesalahan dan peringatan dalam pesan terbaru kernel. Sebagai contoh, berikut adalah output dari dmesg | lainnya perintah:

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

Anda juga dapat melihat semua log sistem Linux di /var/log/messages file, di mana Anda akan menemukan kesalahan yang terkait dengan masalah tertentu. Sebaiknya pantau pesan melalui ekor perintah secara real time ketika Anda membuat modifikasi pada perangkat keras Anda, seperti memasang disk tambahan atau menambahkan antarmuka jaringan Ethernet. Misalnya, berikut adalah output dari tail -f /var/log/messages perintah:

# 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

Menganalisis fungsi jaringan

Anda mungkin memiliki ratusan ribu aplikasi cloud-native untuk melayani layanan bisnis di lingkungan jaringan yang kompleks; ini mungkin termasuk virtualisasi, multiple cloud, dan hybrid cloud. Ini berarti Anda harus menganalisis apakah konektivitas jaringan berfungsi dengan benar sebagai bagian dari pemecahan masalah Anda. Perintah yang berguna untuk mengetahui fungsi jaringan di server Linux termasuk ip addr , rute jejak , nslookup , gali , dan ping , diantara yang lain. Sebagai contoh, berikut adalah output dari ip addr show perintah:

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

Kesimpulan

Pemecahan masalah perangkat keras Linux membutuhkan pengetahuan yang cukup, termasuk bagaimana menggunakan alat baris perintah yang kuat dan mencari tahu sistem logging. Anda juga harus tahu cara mendiagnosis ruang kernel, di mana Anda dapat menemukan akar penyebab banyak masalah perangkat keras. Ingatlah bahwa masalah perangkat keras di Linux dapat berasal dari berbagai sumber, termasuk perangkat, modul, driver, BIOS, jaringan, dan bahkan kegagalan fungsi perangkat keras biasa.


Linux
  1. Linux – Mendapatkan Informasi Tentang Perangkat Keras Mesin Di Linux?

  2. Pemecahan Masalah Jaringan Linux Dan Debugging?

  3. Perangkat Keras Ampere &Kali Linux

  1. Mengelola perangkat keras Anda yang terpasang di Linux dengan systemd-udevd

  2. dmidecode:Dapatkan Informasi Perangkat Keras Sistem Di Linux

  3. Memecahkan masalah umum NFS di Linux

  1. Gunakan lspci di Linux untuk melihat perangkat keras Anda

  2. Perintah Linux untuk menampilkan informasi perangkat keras Anda

  3. Memecahkan masalah WiFi lambat di Linux