Đặt ổ cứng ở chế độ chờ sau X phút sử dụng hdparm không hoạt động


11

Tôi sử dụng Ubuntu 12.04 trên máy chủ gia đình. Có 5 ổ cứng: một ổ SSD với HĐH và 4 ổ cứng (Samsung HD204UI) được cấu hình là RAID5 sử dụng mdadm.

Tôi không cần RAID thường xuyên (trung bình khoảng một lần mỗi ngày); nó chứa dữ liệu đa phương tiện và một số bản sao lưu, vì vậy tôi quyết định đặt các ổ đĩa ở chế độ chờ hầu hết thời gian.

Tôi đã cấu hình các ổ đĩa để tự động quay xuống sau 20 phút bằng hdparm, đây /dev/sdalà một ví dụ:

hdparm -S 240 /dev/sda

Đầu ra của lệnh đã xác nhận điều này:

/dev/sdb:
 setting standby to 240 (20 minutes)

Nhưng vấn đề là ổ đĩa quay xuống sau khoảng 5 giây (thay vì 20 phút) sau lần truy cập cuối cùng và

hdparm -C /dev/sdb

hiển thị:

/dev/sdb:
 drive state is:  standby

Tại sao ổ đĩa không đợi 20 phút như cấu hình? Nó có liên quan gì đến việc thiết lập RAID không? (Tôi không nghĩ vậy ...)

Thời gian chờ rất ngắn này là có vấn đề vì nó là RAID5 và khi tôi truy cập vào một tệp, nó sẽ được phát tán theo khối xung quanh bốn ổ đĩa. Vì ổ 1 không cần thiết khi ổ 2 được đọc, nên nó sẽ ngủ khi nó được sử dụng vào lần tiếp theo (sau khi ổ 3 đã được đọc từ đó). Vì vậy, các ổ đĩa liên tục quay lên và xuống trong suốt thời gian dẫn đến thông lượng gần bằng không.

Đối với những người quan tâm đến tuổi thọ của các ổ đĩa của tôi: Sẽ không có vấn đề gì khi các ổ đĩa được tăng tốc trung bình mỗi ngày một lần vì tôi thích tiết kiệm năng lượng và nhiệt hơn sức khỏe của các ổ đĩa (Tôi sử dụng RAID5 và nội dung không phải là 't rất quan trọng).


2
Vui mừng bạn đã có câu trả lời của bạn ở đây. Xấu hổ thay các anh chàng ServerFault rất kén chọn. Tôi đã nghĩ rằng các kỹ thuật tiết kiệm năng lượng sẽ khá quan trọng trong bất kỳ kịch bản doanh nghiệp tiên tiến nào. Thay vào đó họ sẽ bỏ lỡ.
tomfanning

1
@tomfanning Vâng, tôi giả sử rằng ServerFault chỉ dành cho các máy chủ quy mô lớn như trong trung tâm dữ liệu. Nhưng tôi không biết, và tôi dự đoán rằng một máy chủ gia đình cũng được tính là một máy chủ. Chà, nếu không, tôi nên đặt máy chủ của mình trong khu vườn của mình, để nó không ở trong nhà tôi nữa. Điều tôi thực sự không hiểu, là tại sao họ không sống với tôi những gì tôi muốn và chỉ trả lời câu hỏi nếu họ có câu trả lời mang tính xây dựng cho câu hỏi của tôi mà thay vào đó tôi muốn tôi làm điều đó. [cho những người khác không biết những gì chúng ta đang nói về: serverfault.com/q/389222/116951]
leeme

Câu trả lời:


11

AHCI có được bật trong BIOS của bạn không? Nếu không hãy thử bật nó lên và thử lại.

Nếu điều đó vẫn không hoạt động, thì bạn có thể phải thử một cái gì đó phức tạp hơn một chút, vì hdparmkhông phải lúc nào cũng chơi tốt với các ổ đĩa SATA, đó là những gì tôi cho là bạn có.

Kiểm tra trang này để biết giải pháp tương đối đơn giản sau sử dụng crontab:

sudo apt-get install sg3-utils
crontab -e

Bây giờ, thêm phần này vào dưới cùng của crontab của bạn (thay thế sdx bằng ổ đĩa bạn muốn đặt ở chế độ chờ):

0-59/15 * * * * ( if [ ! -f /dev/shm/1 ] ; then touch /dev/shm/1 /dev/shm/2; fi ; mv /dev/shm/1 /dev/shm/2; cat /proc/diskstats > /dev/shm/1 ) >/dev/null 2>&1
0-59/15 * * * * ( export HD="sdx "; if [ "$(diff /dev/shm/1 /dev/shm/2 | grep $HD )" =  "" ] ; then /usr/bin/sg_start --stop /dev/$HD; fi ) >/dev/null 2>&1

Tất nhiên, trước khi thử bất kỳ thứ gì trong số này, rất nên thực hiện sao lưu toàn bộ nội dung trong ổ cứng của bạn.


Làm việc như người ở. Tôi đã kích hoạt AHCI trong BIOS. Chế độ SATA được đặt thành RAID (bo mạch chủ của tôi có bộ điều khiển RAID trên bo mạch mà tôi không sử dụng). Tôi không biết rằng AHCI là cần thiết để điều khiển SMART đúng cách cho các ổ đĩa SATA hoặc bất cứ điều gì hdparm đang làm ở đây. Cảm ơn!
leeme

Thưa ông @SirCharlo, lệnh cơ bản để tạo hdd ở chế độ chờ (sử dụng cái đó sg3-utils) là gì? Phải /usr/bin/sg_start --stop /dev/sdxkhông
Oki Erie Rinaldi

1

Có lẽ một cách tốt hơn có thể là:

hdparm -B 1 -Y / dev / thiết bị
hdparm -B 255 / dev / thiết bị

Các hdparm đầu tiên đặt thiết bị chờ ngay lập tức. Cái thứ hai tắt APM, vì vậy đĩa sẽ ở chế độ chờ cho đến lần truy cập đĩa tiếp theo.


Đề nghị tốt, mặc dù cần phải nói rằng các lệnh này nên được sử dụng với một tập lệnh nhân các hành động.
Rucent88
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.