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.