Die Festplatten (im USB-Gehäuse) werden auch dann wieder aktiviert, wenn sie nicht installiert sind

13

Installieren

Ich habe ein USB-Gehäuse (Buffalo DriveStation Quad) mit vier Laufwerken, die an meinen NAS-Server (Ubuntu Server 14.04) angeschlossen sind. Das Gehäuse ist im JBOD-Modus konfiguriert, daher werden alle Festplatten in Linux angezeigt.

Zwei der Festplatten (sdb und sdc) sind mit dem Software-RAID als /dev/md0(RAID1) konfiguriert . Und /dev/md0wird als einzelne Partition ( /mnt/part1) mit ext4-Dateisystem ohne Journalling gemountet.

Die anderen beiden Datenträger (sdd und sde) werden mit LVM als eine Datenträgergruppe eingerichtet, von der aus ich zwei logische Partitionen bereitgestellt habe. Einer davon entspricht 90% der Kapazität der gesamten Volumengruppe ( /mnt/part2) und einer 10% ( /mnt/part3). Beide sind auch ext4 ohne Journaling.

APM-Probleme

Meine Probleme begannen mit den Standard-APM-Modi, als ich bemerkte, dass der Kopf der Festplatte alle paar Minuten ziemlich aggressiv geparkt war. Nachdem ich ein bisschen über das Thema recherchiert hatte, benutzte ich schließlich hdparm -B198 /dev/sd[bcde]. Dies scheint ein gewisses Maß an Energieeinsparung zu ermöglichen, ohne jedoch wirklich ein Kopf-Parken durchzuführen.

Schlaf?

Ich bin mit der aktuellen Situation ein bisschen zufrieden, aber ich möchte trotzdem, dass die Laufwerke in den Ruhezustand versetzt werden, wenn keine Aktivität stattfindet. Besonders die sdb und sdc ( /mnt/part1), die 95% der Zeit nicht wirklich aktiv sind. Was auch immer ich versucht habe, das Problem scheint zu sein, dass die Laufwerke nicht länger als eine Minute oder zwei schlafen.

Durch das Aufheben der Bereitstellung aller Partitionen und das Ausgeben hdparm -y /dev/sd[bcde]werden die Laufwerke in den Energiesparmodus versetzt, jedoch nur für einige Minuten. Danach werden sie alle nacheinander aufwachen. Ich habe versucht, das Problem durch Aktivieren von block_dump ( echo 1 > /proc/sys/vm/block_dump) zu beheben , sehe aber keinen Zugriff auf die Festplatten.

Ich habe auch versucht, APM mit zu deaktivieren hdparm -B255 /dev/sd[bcde]und ihnen danach zu befehlen, zu schlafen, aber das Gleiche. Nach ein paar Minuten wachen die Laufwerke immer noch auf.

Ich habe keine mdadmMöglichkeit, im Daemon-Modus zu arbeiten (nur eine einzige Überprüfung einmal am Tag), und es sollte auch nichts anderes vorhanden sein, das die Laufwerke überprüft. Also irgendwelche Ideen, was als nächstes zu versuchen ist? Ist das Buffalo-USB-Gehäuse nur beschissen (und das alleine)?

Update Nr. 1

Ich habe mir die Zeit genommen, wie lange es dauert, bis die Datenträger nach der Ausgabe aufwachen hdparm -y /dev/sd[bc]. Die folgenden Zeitstempel veranschaulichen das Muster:

00:00 hdparm -y /dev/sd[bc]
00:40 disks start to wake up
00:59 disks fully awake
01:00 hdparm -y /dev/sd[bc]
03:40 disks start to wake up
03:59 disks fully awake
04:00 hdparm -y /dev/sd[bc]
06:40 disks start to wake up
06:59 disks fully awake

Dh es scheint, dass alle 3 Minuten etwas die Festplatten überprüft / weckt. Der erste Befehl, der in den Standby-Modus wechselt, war zufällig 40 Sekunden vom Kontrollpunkt entfernt.

Update Nr. 2

Starten Sie die Maschine mit acpi=off apm=off. Hat auch nicht geholfen. Übrigens ist die Maschine Lenovo L520 Laptop. Nur für den Fall, dass jemand dies für relevant hält.

Toni
quelle
2
my $ .02: Versuchen Sie, alles auf Ihrem Computer zu stoppen (übereifrige Dämonen schauen sich möglicherweise um, um Geräte zu untersuchen). Verwenden Sie die Option noatime mount.
Laszlo Valko,
@LaszloValko, hat es geschafft, Prozesse auf upstart-{socket,file}-bridge, dhclient, getty and sshd- kein Glück :( zu reduzieren . Es laufen natürlich viele Kernel-Prozesse (in Klammern). Habe noch nicht nachgesehen, ob ich diese durch einige Kernel-Parameter reduzieren könnte ... und welche wären gute Kandidaten
Toni
1
Eine einfache Möglichkeit, festzustellen, ob es sich um das Gehäuse oder Ihr Betriebssystem handelt, besteht darin, die Laufwerke herunterzufahren und dann den USB-Anschluss zu trennen.
Circus Cat
@qasdfdsaq, leider ist diese Buffalo Drivestation mit einer ausgefallenen Powerdown-Funktion ausgestattet. Das Gehäuse schaltet sich sofort aus, wenn das USB-Kabel abgezogen wird. Auch der Netzschalter hat nur die Optionen "Aus" und "Auto".
Toni
1
Nur ein Schuss im Dunkeln: Überprüfen Sie die beschnittenen Pfade und Bindungs-Mounts von updatedb.conf, damit diese Pfade explizit übersprungen werden (Dienst 'locate'). Es könnte sich aber auch leicht um einen ähnlichen Dienst handeln.
Michael

Antworten:

2

Könnte ein bisschen übertrieben sein, SystemTapkönnte Ihnen aber dabei helfen, herauszufinden, welcher Prozess I / O auf dieser Festplatte ausführt.

Bereiten Sie SystemTap vor

[root@localhost ~]# stap-prep
snip

Installieren Sie das Ablaufverfolgungsskript

[root@localhost ~]# cat >/tmp/traceio2.stp
#! /usr/bin/env stap
global device_of_interest

probe begin {
  /* The following is not the most efficient way to do this.
      One could directly put the result of usrdev2kerndev()
      into device_of_interest.  However, want to test out
      the other device functions */
  dev = usrdev2kerndev($1)
  device_of_interest = MKDEV(MAJOR(dev), MINOR(dev))
}

probe vfs.write, vfs.read
{
  if (dev == device_of_interest)
        printf ("%s(%d) %s 0x%x\n",
            execname(), pid(), ppfunc(), dev)
}

Finden Sie die Geräte-ID heraus, die Sie überwachen möchten. In diesem Fall werde ich / dev / sda5 überwachen

[root@localhost ~]#  df -k /
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda5       18141508 16293424    903496  95% /
[root@localhost ~]# ls -l /dev/sda5
brw-rw----. 1 root disk 8, 5 Jul  1 01:21 /dev/sda5
[root@localhost ~]# 

Überwachen Sie mit der Major + Minor Nummer (8,5) in hex. Finde den Täter. Jubeln

[root@localhost ~]# /tmp/traceio2.stp 0x805
accounts-daemon(434) vfs_read 0x800005
accounts-daemon(434) vfs_read 0x800005
accounts-daemon(434) vfs_read 0x800005
lightdm(503) vfs_write 0x800005
bash(3036) vfs_read 0x800005
bash(3036) vfs_read 0x800005
^C
[root@localhost ~]#
Steve
quelle