Tìm hiểu những gì đang quay lên ổ cứng


10

Tôi là chủ sở hữu của một NAS, chạy một số bản phân phối Linux. Nó đi kèm với một quản trị trang web, nơi tôi có thể quản lý một số dịch vụ, quyền người dùng và cả khi nó nên đi ngủ. Vấn đề của tôi là, vì một số lý do, khi NAS đã đi ngủ, ổ cứng sẽ bật lại sau vài phút. Sau đó nó sẽ quay một lúc, rồi lại ngủ. Điều này tiếp tục diễn ra vô thời hạn.

Làm thế nào tôi có thể cố gắng xác định nguyên nhân cho việc này? Tôi rất mới với Linux, nhưng tôi đã có được quyền truy cập root và hiện có kết nối SSH.


Điều này rất cũ, nhưng vẫn có thể có lời khuyên liên quan.
Gilles 'SO- ngừng trở nên xấu xa'

Bạn có một số plugin phân tích / thích với giao diện web / frontend cho hộp NAS không? các chi tiết hộp NAS là gì? Tôi tự hỏi nếu một số công cụ systemtap có thể được sử dụng trong đó để kiểm tra hoạt động của đĩa. systemtap chỉ có sẵn cho các phiên bản kernel Linux sau này.
Nikhil Mulley

NAS là Lacie d2 Network 2. Không có tùy chọn plugin, nhưng tôi đoán tôi có thể tải bất cứ thứ gì vào nó. Nó chạy một máy chủ web Green Unicorn. Hạt nhân là 2.6.31,14-svn6790.
Andreas

Câu trả lời:


6

inotify-tools là một cách đơn giản để làm điều này. Có một số ví dụ trên trang web của họ sẽ có thể làm những gì bạn muốn (xem ví dụ inotifywatch cho một ví dụ thực sự cơ bản).


Tôi hiện đang xem xét điều này. Đầu tiên, tôi cần biên dịch nguồn cho cpu ARMv5TE. Điều đó có thể chứng tỏ là đủ khó :)
Andreas


2

Một mẹo khác: Sử dụng Systemtap, có rất nhiều tập lệnh thăm dò trên trang web của systemtap đủ hữu ích để tìm ra thủ phạm.

Trong một trường hợp khác hoàn toàn,

Nếu bạn muốn tìm hiểu quá trình nào khiến đĩa quay lên, bạn có thể thu thập thông tin bằng cách đặt cờ /proc/sys/vm/block_dump. Khi cờ này được đặt, Linux báo cáo tất cả các hoạt động đọc và ghi đĩa diễn ra và tất cả các hành vi làm bẩn khối được thực hiện đối với các tệp. Điều này làm cho nó có thể gỡ lỗi tại sao một đĩa cần phải quay lên, và để tăng tuổi thọ pin hơn nữa. Đầu ra của block_dump được ghi vào đầu ra kernel và nó có thể được truy xuất bằng cách sử dụng "dmesg" hoặc xem cơ sở kern syslog của bạn để biết đích của các thông báo gỡ lỗi. Nói chung, nó nên được /var/log/debug. Khi bạn sử dụng block_dump và mức ghi nhật ký kernel của bạn cũng bao gồm các thông báo gỡ lỗi kernel, bạn có thể muốn tắt klogd, nếu không, đầu ra của block_dump sẽ được ghi lại, gây ra hoạt động của đĩa không bình thường ở đó.


2

Bạn cần nói với kernel để thông báo cho bạn về tất cả các lần đọc / ghi vào đĩa, sau đó bạn cần xem thông tin đó.

Vì thế:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

syncxóa tất cả các ghi đang chờ xử lý vào đĩa, do đó bạn sẽ chỉ thấy các lần đọc hoặc ghi mới.
dmesg -chiển thị cho bạn các thông báo kernel và xóa chúng (nếu không bạn cũng thấy các thông báo cũ, mỗi lần bạn chạy dmesg). greplọc đầu ra của dmesg cho hoạt động cho đĩa bạn quan tâm. Thay thế / dev / sda bằng thiết bị thực tế của bạn.

Tôi thường sử dụng một cái gì đó như thế này để quay xuống đĩa, sau đó kiểm tra khi nó quay trở lại:

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

Các whilekiểm tra vòng lặp đĩa tích cực tình trạng / nhàn rỗi mỗi 10 phút. Khi bạn thấy nó tăng sức mạnh, hãy chạy dmesgdòng trên để xem whodunnit.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.