WD RED 8TB kein Spindown möglich?

finality

Neuling
Thread Starter
Mitglied seit
19.01.2016
Beiträge
6
Hallo zusammen,

ich habe seit ca 2 Wochen 2x WD RED 8TB Festplatten im meinem Eigenbau Server (Debian Stretch) verbaut. Leider habe ich es noch nicht geschafft, diese automatisch nach 1 Stunde im Spindown zu schicken. Ich habe schon diverse Anleitungen usw probiert. Immer ohne Erfolg. Was habe ich bisher probiert:
APM deaktiviert. Standard bei diesen Platten ist apm = 254.
Mittels hdparm -y /dev/sdX gehen die Platten im Spindown.
Weder über die hdparm.conf noch über hd-idle gehen die Platten automatisiert im Spindown. Und es erfolgt kein Zugriff auf die Platten in diesem Zeitraum. Getestet mit iosnoop.
hd-idle conf:
Code:
HD_IDLE_OPTS="-i 0 -a /dev/disk/by-uuid/106e5984-8830-49cb-9ff6-c995dc5d10a4 -i 3600 -a /dev/disk/by-uuid/b1d16e5a-6ee5-4063-891e-64f0602fd366 -i 3600 -l /var/log/hd-idle.log"
hdparm:
Code:
/dev/disk/by-uuid/106e5984-8830-49cb-9ff6-c995dc5d10a4 {
spindown_time = 242
apm = 255
}


Hat jemand zufällig die gleichen Platten und kann was zum Spindown sagen? Ich hatte vorher WD Green Platten verbaut, da hatte ich keine Probleme mit dem Spindown mittel HD-Idle. Üben jeden Tipp wäre ich dankbar.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hatte seit dem upgrade von 16.04 auf 18.04 ein ähnliches Problem das hdparm nichts mehr bewirkte.

Fehler #1:
Hd-idle wurde für >usb< Festplatten entwickelt, der Befehl den hd-idle an die Platten sendet funktioniert nicht bei sata Festplatten.

Ich habe mein hd-idle modifiziert das es das selbe kommando wie "hdparm -y" sendet.

Jemand anders hat auch eine version für SATA festplatten entwickelt.
Leider in go und eine golang Umgebung kommt mir nicht in auf den PC!
Wenn du es trotzdem testen möchtest: GitHub - adelolmo/hd-idle: Hard Disk Idle Spin-Down Utility .

Ansonsten kann ich dir auch meine modifizierte source schicken.
 
Hatte seit dem upgrade von 16.04 auf 18.04 ein ähnliches Problem das hdparm nichts mehr bewirkte.

Fehler #1:
Hd-idle wurde für >usb< Festplatten entwickelt, der Befehl den hd-idle an die Platten sendet funktioniert nicht bei sata Festplatten.

Ich habe mein hd-idle modifiziert das es das selbe kommando wie "hdparm -y" sendet.

Jemand anders hat auch eine version für SATA festplatten entwickelt.
Leider in go und eine golang Umgebung kommt mir nicht in auf den PC!
Wenn du es trotzdem testen möchtest: GitHub - adelolmo/hd-idle: Hard Disk Idle Spin-Down Utility .

Ansonsten kann ich dir auch meine modifizierte source schicken.

Vielen Dank für die Rückmeldung und den Hinweis mit HD-IDLE und Sata Festplatten. War mir so gar nicht bewusst. Komisch ist aber, dass ich ein weiteres NAS betreue und dort sind 4TB WD REDs verbaut. Dort funktioniert es ohne Probleme mit HD-IDLE.

Modifizierte sources möchte ich ungern einsetzen. Aber danke für das Angebot.
 
Das es bei dem anderen Server funktioniert könnte mit dem verwendeten Controller bzw. dessen Treiber zusammenhängen.
Der Befehl den hd-idle sendet ist ein SCSI Befehl der eventuell per libata das passenden ata Kommando übersetzt wird.
Bei mir hängen die Platten jedoch hinter einem SAS-Expander und Controller und der wird einen SCSI Befehl auch 1:1 als solchen übertragen.

Meine Modifikation an der Spindown Funktion:
Code:
#define SG_ATA_16		0x85
#define SG_ATA_16_LEN		16
#define SG_ATA_PROTO_NON_DATA	( 3 << 1)
#define SG_CHECK_CONDITION	0x02
#define ATA_USING_LBA  (1 << 6)
#define ATA_OP_STANDBYNOW1   0xe0
#define ATA_OP_STANDBYNOW2   0x94
#define SG_CDB2_CHECK_COND	( 1 << 5 )
static void spindown_disk(const char *name)
{
  struct sg_io_hdr io_hdr;
  unsigned char sense_buf[32];
  char dev_name[100];
  int fd;

  dprintf("spindown: %s\n", name);
	//@added
	unsigned char cdb[SG_ATA_16_LEN];
	memset(&cdb, 0, sizeof(cdb));
	cdb[0] = SG_ATA_16;
	cdb[1] = SG_ATA_PROTO_NON_DATA;
	cdb[2] = SG_CDB2_CHECK_COND; 
	cdb[13] = ATA_USING_LBA;
	cdb[14] = ATA_OP_STANDBYNOW1;
  /* fabricate SCSI IO request */
  memset(&io_hdr, 0x00, sizeof(io_hdr));
  
  io_hdr.interface_id = 'S';
  io_hdr.mx_sb_len = (unsigned char) sizeof(sense_buf);
  io_hdr.dxfer_direction = SG_DXFER_NONE;
  io_hdr.dxfer_len = 0;
  io_hdr.dxferp		= NULL;
  io_hdr.cmdp = cdb;
  io_hdr.sbp = sense_buf;
  io_hdr.cmd_len = SG_ATA_16_LEN;
  io_hdr.pack_id		= 0;
  io_hdr.timeout		= 15 * 1000; /* msecs */

  /* open disk device (kernel 2.4 will probably need "sg" names here) */
  snprintf(dev_name, sizeof(dev_name), "/dev/%s", name);
  if ((fd = open(dev_name, O_RDONLY|O_NONBLOCK)) < 0) {
    perror(dev_name);
    return;
  }
	if (debug)
		phex(cdb, sizeof(cdb), "outgoing cdb buffer:\n");
  /* execute SCSI request */
  if (ioctl(fd, SG_IO, &io_hdr) < 0) {
    char buf[100];
    snprintf(buf, sizeof(buf), "ioctl on %s:", name);
    perror(buf);

  } else if (io_hdr.status && io_hdr.status != SG_CHECK_CONDITION) {
    fprintf(stderr, "error: SCSI command failed with status 0x%02x\n",
            io_hdr.masked_status);
    if (io_hdr.masked_status == CHECK_CONDITION) {
      phex(sense_buf, io_hdr.sb_len_wr, "sense buffer:\n");
    }
  }
  if (debug)
  {	
    phex(sense_buf, io_hdr.sb_len_wr, "sense buffer:\n");
	fprintf(stderr, "SG_IO: ATA_%u status=0x%x, host_status=0x%x, driver_status=0x%x\n",
		io_hdr.cmd_len, io_hdr.status, io_hdr.host_status, io_hdr.driver_status);
  }
  close(fd);
}
 
Zuletzt bearbeitet:
In diesem Fall sind es 1:1 die gleichen Systeme. Gleiches Board, CPU und RAM. Nur die Festplatten sind unterschiedliche.
 
Kurze Frage: Handelt es sich um eine WD80EFZX (älter, mit Helium) oder eine WD80EFAX (neuer, ohne Helium)? Zumindest wenn es eine WD80EFZX ist, geht sie mindestens mit Ubuntu 16.04 durchaus in den Spindown. Meine hdparm.conf sieht dazu so aus (auf sda liegt das Betriebssystem):

/dev/sdb {
spindown_time = 240
}
 
Kurze Frage: Handelt es sich um eine WD80EFZX (älter, mit Helium) oder eine WD80EFAX (neuer, ohne Helium)? Zumindest wenn es eine WD80EFZX ist, geht sie mindestens mit Ubuntu 16.04 durchaus in den Spindown. Meine hdparm.conf sieht dazu so aus (auf sda liegt das Betriebssystem):

/dev/sdb {
spindown_time = 240
}

Es handelt sich um die WD80EFAX. Laut Reddit sind diese aber auch mit Helium gefüllt
 
Es handelt sich um die WD80EFAX. Laut Reddit sind diese aber auch mit Helium gefüllt

Ganz einfach herauszufinden, flache Oberfläche, keine Schrauben auf der Oberseite: Helium, alles anderes Luft. Die 8TB Reds sind seit einigen Wochen/Monaten fast nur noch mit Luft gefüllt.
 
Kurze Frage: Handelt es sich um eine WD80EFZX (älter, mit Helium) oder eine WD80EFAX (neuer, ohne Helium)? Zumindest wenn es eine WD80EFZX ist, geht sie mindestens mit Ubuntu 16.04 durchaus in den Spindown. Meine hdparm.conf sieht dazu so aus (auf sda liegt das Betriebssystem):

/dev/sdb {
spindown_time = 240
}

welcher Wert wird dir für das APM Level angezeigt?

- - - Updated - - -

Ganz einfach herauszufinden, flache Oberfläche, keine Schrauben auf der Oberseite: Helium, alles anderes Luft. Die 8TB Reds sind seit einigen Wochen/Monaten fast nur noch mit Luft gefüllt.

Guter Hinweis. Prüfe ich mal am WE.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh