Hướng dẫn kiểm tra lỗi phần cứng máy chủ

Với bài viết này, VinaHost sẽ hướng dẫn kiểm tra lỗi phần cứng máy chủ cho bạn. Trong quá trình sử dụng, sẽ có lúc máy chủ gặp tình trạng bị treo, chạy chậm. Lúc này, ngoài việc tối ưu máy chủ, bạn cũng cần phải nghĩ đến việc phần cứng máy chủ đang gặp phải vấn đề, đặc biệt là với các trường hợp chậm đột ngột.
I. Dấu hiệu:
1.Tốc độ server chậm bất thường:
Những nguyên nhân gây chậm thường bao gồm:
 - RAM có vấn đề không nhận đủ dung lượng (hướng dẫn kiểm tra lỗi RAM bên dưới, riêng về dung lượng bạn có thể xem bằng lệnh  free -m).
 - HDD chậm dẫn đến việc không load dữ liệu kịp.
2. Server thường xuyên bị treo phải reboot:
Nguyên nhân có thể do RAM có vấn đề gây treo hoặc bộ nguồn có vấn đề không cung cấp đủ nguồn điện dẫn đến khi server load cao sẽ bị reboot.
II. Chuẩn đoán lỗi:
     Sau khi nhận ra những dấu hiệu trên, việc đầu tiên cần làm là dùng các công cụ để đánh giá và chuẩn đoán xem lỗi thật sự có phải do phần cứng hay không hay là do các phần mềm trên server. VinaHost xin giới thiệu một số công cụ giúp bạn chuẩn đoán lỗi cho server của mình trên nền tảng Linux.
1. HDD:
     Để kiểm tra tốc độ HDD, bạn dùng lệnh dd để xem. Nếu tốc độ quá chậm nghĩa HDD của server đã có vấn đề, và trong bất kỳ trường hợp nào cũng cần phải được thay thế.
     dd if=/dev/zero of=test bs=1G count=1 oflag=direct

     Ngoài ra, có thể dùng một công cụ khác là smartctl, công cụ này hoạt động dựa trên công nghệ tự theo dõi S.M.A.R.T của HDD. Để sử dụng công cụ này, đầu tiên các bạn cần phải khởi động dịch vụ smartd, dịch vụ này đi kèm sẵn trong các bản phân phối Linux nhưng thường không được kích hoạt sẵn.
     service smartd start

     Bạn có thể xem nhanh thông tin về smart bằng lệnh smartctl với tham số -H, lúc này smartctl sẽ chỉ hiện kết quả trả về về tình trạng ổ cứng mà không hiện chi tiết, bạn chỉ biết là Pass hoặc Fail thôi.
     smartctl -H /dev/sda

     Để xem thông tin chi tiết về smart, bạn dùng tham số -a
     smartctl –a /dev/sda
2. RAM
     Để kiểm tra bộ nhớ, bạn dùng công cụ memtester có sẵn trong linux, tuy nhiên nếu chưa có bạn có thể cài đặt bằng cách chạy yum install memtester
     Tham số của memtester là memtester <dung lượng> <số lần>
     Trong đó dung lượng là dung lượng bộ nhớ sẽ test, có thể thêm đơn vị M, K, G để nói rõ đơn vị. Số lần chính là số lần memtester sẽ chạy để tìm lỗi.
     Ví dụ, server có 8G RAM, cho chạy memtester 1 lần để tìm lỗi trên cả 8G thì chạy lệnh
     memtester 8G 1

     Nếu tất cả kết quả trả về đều OK nghĩa là RAM vẫn ổn định, nếu không bạn nên nghĩ đến việc thay RAM để đảm bảo server hoạt động ổn định 24/7.
3. Nguồn và các linh kiện khác
     Trong hầu hết các server đều có các cảm biến để theo dõi phần cứng, bao gồm nhiệt độ, tốc độ quạt, nguồn điện. Ở đây để theo dõi các thành phần này, đặc biệt là nguồn điện có bị sút áp hay không các bạn có thể dùng một gói ứng dụng tên là lm_sensors, gói này có sẵn trong repo của CentOS và bạn có thể cài đặt bằng lệnh:
     yum install lm_sensors
     Sau khi cài đặt gói này, cần phải cho lm_sensors detect các sensor có trong server bằng cách chạy lệnh   sensors-detect và chọn YES ở các câu hỏi để lm_sensors quét tìm các cảm biến.
     sensors-detect

     Sau khi detect xong, các bạn khởi động dich vụ lm_sensors bằng lệnh
     service lm_sensors start
     Từ lúc này, để xem thông tin hoạt động của các linh kiện trong server, bạn dùng lệnh sensors. Nếu có gì đó bất thường cần phải có biện pháp xử lý ngay.


Ngoài ra, trên Linux còn có một dịch vụ chuyên theo dõi các thiết bị phần cứng theo thời gian thực tên là mcelog. Mcelog là dịch vụ có sẵn trong các phiên bản Linux server. Mcelog sẽ hoạt động ngầm trong hệ thống dưới dạng daemon và sẽ ghi nhận lại các thông tin khi có lỗi phần cứng xảy ra. Tất cả các log về phần cứng sẽ được ghi nhận lại tại file /var/log/mcelog.
Để khởi động mcelog, bạn dùng lệnh:
     service mcelogd start

Để xem các thông tin log của mcelog, bạn dùng lệnh
     mcelog --client
Hoặc bạn cũng có thể xem trực tiếp file log của mcelog bằng lệnh
     cat /var/log/mcelog
Với một số server đang dùng Software-RAID trong Linux, bạn có thể xem tình trạng RAID hiện tại bằng các dùng lệnh sau:
     cat /proc/mdstat

Trên hình có thể thấy RAID 1 đang hoạt động bình thường với kết quả 2/2 [UU], trong trường hợp có một ổ đĩa bị lỗi, array sẽ trỡ thành 1/2 [_U] hoặc [U_] (với _ biểu hiện HDD lỗi)
Việc theo dõi phần cứng của server còn có thể thực hiện thông qua việc dùng IPMI. IPMI là một giao thức cho phép giao tiếp và theo dõi server ngay cả trong trường hợp có sự cố phần cứng (trừ khi sự cố bản thân IPMI controller). Tuy nhiên để dùng IPMI cần phải cắm dây mạng RJ45 vào port IPMI trên server và đặt IP cho nó, vì vậy trên thực tế việc này ít được sử dụng trừ khi đó là hệ thống lớn cần sự ổn định tuyệt đối.
Chúc bạn thành công!

Powered by WHMCompleteSolution