hdparm을 사용하여 X 분 후에 HDD를 대기 상태로 두십시오


12

홈 서버에서 Ubuntu 12.04를 사용합니다. 5 개의 하드 드라이브가 있습니다 : mdadm을 사용하여 RAID5로 구성된 OS 1 개의 SSD 및 4 개의 HDD (Samsung HD204UI).

RAID를 자주 필요로하지 않습니다 (예 : 평균 하루에 한 번 평균). 여기에는 멀티미디어 데이터와 일부 백업이 포함되어 있으므로 드라이브를 대부분 대기 상태로두기로 결정했습니다.

hdparm을 사용하여 20 분 후 드라이브가 자동으로 다운되도록 구성했습니다 /dev/sda.

hdparm -S 240 /dev/sda

명령의 출력은 다음을 확인했습니다.

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

그러나 문제는 마지막 액세스 후 약 5 초 (20 분 대신) 후에 드라이브가 회전하고,

hdparm -C /dev/sdb

표시합니다 :

/dev/sdb:
 drive state is:  standby

드라이브가 구성된대로 20 분 동안 기다리지 않는 이유는 무엇입니까? RAID 설정과 관련이 있습니까? (나는 그렇게 생각하지 않습니다 ...)

이 매우 짧은 시간 초과는 RAID5이므로 문제가되고 파일에 액세스 할 때 4 개의 드라이브 주위에 블록 단위로 분산됩니다. 드라이브 2를 읽을 때는 드라이브 1이 필요하지 않으므로 다음 번에 사용할 때 (드라이브 3을 읽은 후) 휴면 상태가되었습니다. 따라서 드라이브는 항상 계속 회전하면서 처리량을 거의 0으로 만듭니다.

드라이브 수명에 대해 우려하는 사람들을 위해 : 드라이브의 상태보다 에너지와 열을 절약하는 것을 선호하기 때문에 드라이브가 평균적으로 하루에 한 번 회전하는 문제는 없습니다 (RAID5를 사용하고 내용은 별로 중요하지 않습니다).


3
당신이 여기에 당신의 대답을 가지고 다행입니다. 부끄러운 서버 결함 사람들은 너무 까다로웠다. 미래 지향적 인 엔터프라이즈 시나리오에서 에너지 절약 기술이 매우 중요하다고 생각했습니다. 대신 그들은 놓칠 것이다.
tomfanning

1
@tomfanning 글쎄, ServerFault는 데이터 센터와 같은 대규모 서버 전용이라고 가정합니다. 그러나 나는 알지 못했고 홈 서버도 서버로 계산 될 것으로 예상했습니다. 그렇지 않다면 서버를 내 정원에 두어야하므로 더 이상 내 집에 있지 않습니다. 내가 정말로 이해하지 못하는 것은 그들이 왜 내가 원하는 것에 따라 살지 않고 내 질문에 대한 건설적인 대답이있는 경우에만 질문에 대답하지만 대신 내가 원하는 일을하게하고 싶습니다. [우리가 말하는 것을 모르는 다른 사람들을 위해 : serverfault.com/q/389222/116951]
leemes

답변:


11

BIOS에서 AHCI가 활성화되어 있습니까? 켜지지 않으면 다시 시도하십시오.

그래도 문제가 해결 hdparm되지 않으면 SATA 드라이브에서 항상 잘 작동하지는 않으므로 조금 더 복잡한 작업을 시도해야 할 수도 있습니다.

crontab을 사용하는 다음과 같은 비교적 간단한 솔루션에 대해서는 이 페이지 를 확인하십시오 .

sudo apt-get install sg3-utils
crontab -e

이제 이것을 crontab의 맨 아래에 추가하십시오 (sdx를 대기하려는 드라이브로 교체하십시오).

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

물론,이 중 하나를 시도하기 전에 하드 드라이브의 내용을 전체 백업하는 것이 좋습니다 .


매력처럼 일했다. BIOS에서 AHCI를 활성화했습니다. SATA 모드가 RAID로 설정되었습니다 (마더 보드에는 사용하지 않는 RAID 컨트롤러가 내장되어 있습니다). SATA 드라이브의 적절한 SMART 제어 또는 hdparm이 수행하는 작업에 AHCI가 필요한지 몰랐습니다. 감사!
leemes

@SirCharlo 경, 대기 모드에서 hdd를 만드는 기본 명령은 무엇 sg3-utils입니까? 그렇 /usr/bin/sg_start --stop /dev/sdx습니까?
Oki Erie Rinaldi

1

아마도 더 좋은 방법은 다음과 같습니다.

hdparm -B 1 -Y / dev / device
hdparm -B 255 / dev / device

첫 번째 hdparm은 장치를 즉시 대기 상태로 만듭니다. 두 번째 것은 APM을 끄므로 디스크는 다음 디스크에 액세스 할 때까지 대기 모드로 유지됩니다.


이러한 명령은 조치를 수행하는 스크립트와 함께 사용해야한다고 언급해야합니다.
Rucent88
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.