Jump to content

Allocation method: high water? most-free?


derjp
Go to solution Solved by jj1987,

Recommended Posts

Ich habe folgende Platten:

 

1x 18TB Parity

2x 18TB Array

 

Nun habe ich einen share Ordner Media mit den Unterordner Filme, Serien, Musik

 

Primary storage (for new files and folders): Cache

Secondary storage: Array

 

Nun hatte ich bei Allocation method: high-water angegeben und dachte dann er verteilt neue Datein dann gleichmäßig auf beiden Platten. Bis jetzt ist jedoch nur auf Disk1 alles drauf.

 

Also müsste ich das Allocation method auf Most-free umstellen, damit er neue Datein in den Ordnern gleichmäßig verteil oder nicht? Und was sollte ich bei Split-level am besten einstellen? Die Beschreibung verstehe ich nicht so recht muss ich gestehen.

 

Oder sollte ich das ganze erstmal so lassen und erstmal eine Platte vollschreiben und dann die nächste?

 

Disk2 schläuft eigentlich durchgehen, was ja auch nicht ganz schlecht ist.

Disk1 jedoch schläft komischerweise auch wirklich NIE. Kann ich irgendwie nachschauen warum nicht? Kann ich irgendwie feststellen, was eventuell die ganze Zeit auf Platte 1 zugreift und sie deswegen am schlafen hindert? Denn es wird definitiv nicht die ganze Zeit auf Disk1 zugegriffen, oder kann es sein, dass es an Plex liegt, welches durchgehen schaut ob etwas neues vorhanden ist?

 

Link to comment
2 hours ago, derjp said:

Nun hatte ich bei Allocation method: high-water angegeben und dachte dann er verteilt neue Datein dann gleichmäßig auf beiden Platten. Bis jetzt ist jedoch nur auf Disk1 alles drauf.

 

Korrekt. Die erste Platte wird zunächst bis zur Hälfte gefüllt:

 

Quote

The High-water setting works with switch points based on continually halving the size of the largest drive in the array. 

 

Link to comment
3 hours ago, derjp said:

2x 18TB Array

Nun habe ich einen share Ordner Media mit den Unterordner Filme, Serien, Musik

Nun hatte ich bei Allocation method: high-water angegeben und dachte dann er verteilt neue Datein dann gleichmäßig auf beiden Platten. Bis jetzt ist jedoch nur auf Disk1 alles drauf.

 

Und nur mal so am Rande: bist Du sicher, daß Du wirklich alles in einem Unterordner immer Stück für Stück auf 2 Festplatten verteilt haben willst?

Wenn es beispielsweise um Urlaubsbilder, Musik oder eben Serien geht, müßten immer (kurz nacheinander) beide Platten anlaufen, wenn Du ein Bild nach dem anderen ansehen, ein Musikstück nach dem anderen oder eine Serie "wegbingen" willst.

Selbst wenn Du im Shufflebetrieb keine vorgegebene Reihenfolge einhälst würde dann wohl doch des öftern Abruf wechselnd auf die Festplatten stattfinden müssen.

Das ist nicht wirklich die stromsparenste Nutzung, die man sich vorstellen kann.

Bei einzelnen Filmen hingegen  sollte es im Groben keinen Unterschied machen, wenn man die so verteilt.

Solange unraid (oder das Plugin oder ein Frontend wie Plex oder so) die Festplattenverzeichnisse nicht zwischen-cached, wäre aber ggf. schon das Abrufen eines Shares/Verzeichnisses um dann das Video darin zu suchen ggf. ein grund, daß das System wieder beide Festplatten anlaufen lassen muß um den Inhalt des Shares anzuzeigen, denn ein teil würde dann ja auf einer Disk liegen und die andere Hälfte auf der anderen Disk. Und as müßte unraid ja erst einmal einlesen um es anzuzeigen.

 

Ich bevorzuge es meine Verzeichnisstruktur dahingehend etwas weniger über alle Disks zu verstreuen. Dadurch reduzieren sich auch die Festplattenanlaufzeiten, wenn ich etwas auf Dateiebene suche/mache.

 

Unraid hat zwar eine gewisse Einsetllmäglichkeiten für das beibehalten der Verzeichnisstruktur und darunter liegender Ebenen, aber für meine Zwecke ist das nicht zielführend.

 

3 hours ago, derjp said:

Also müsste ich das Allocation method auf Most-free umstellen, damit er neue Datein in den Ordnern gleichmäßig verteil oder nicht?

 

Solange die verwendeten/gespeicherten Dateien immer annähernd gleich groß sind: ja.

Aber wenn eine Datei schon erheblich größer (mehrfach so groß) ist als die nächsten paar Dateien, würde diesen Monstrum auf einer Festplatte landen und dann die nächsten paar nur halb (oder kleiner) so grossen Dateien alle auf der anderen.

 

Beispiel:

 

A.IMG = 30GB

B.JPG = 1GB

C.PNG = 1GB

D.GIF = 2GB

F.AVI = 5GB

 

Wenn man 2 gleich große und leere Festplatten hat, würde also Datei A auf der ersten Festplatte landen und somit würde alles dieser Auflistung danach auf der zweiten Festplatte landen, weil ja imme rnoch auf der zweiten Festplatte mehr frei ist, als auf der ersten.

 

"most free" macht genau das, was man dem Namen nach vermutet: es schreibt immer dort, wo man am meisten Platz hat.

Diese Funktion habe ich mal anfangs testweise benutzt als ich ein Array ohne Parity mit nur SMR-Festplatten (12 Stück) gefüllt habe.

Dadurch, daß die Schreibzugriffe nach kurzer Zeit immer wieder auf einer anderen Festplatte stattfand hatten alle anderen Zeit sich mit sich selbst zu beschäftigen und keine hat somit durch überbeanspruchung gebremst.

Aber wie oben schon beschrieben. Wenn ich dann in einer Verzeichnisstruktur einfach mal geschaut habe, was da drin war, liefen auch alle 12 Festplatten an um ihre Informationen an unraid(fuse) zu übergeben, damit es das als ein Share anzeigen konnte.

Im Endeffekt habe ich dann damit den möglichen Energiespareffekt, den man im Array durch Spindown erreichen kann durch sogar häufige Anlaufzyklen und die höheren Anlaufströme konterkariert.

War eben mein erster Test.  :) 

 

 

3 hours ago, derjp said:

Und was sollte ich bei Split-level am besten einstellen? Die Beschreibung verstehe ich nicht so recht muss ich gestehen.

 

Das hängt davon ab, was Du am Ende wirklich erreichen willst. Wenn Du keien besondere Präferenz hast, ist High-Water schon eine gute Sache, da dadurch anfangs zusammengehörende Dateien auch auf einer Festplatte zusammen bleiben. Erst mit hohem Füllstand könnte es dann sein, daß dan Die zusammenhängenden Dateien verteilt weden. Aber vielleicht ist es dann sowieso Zeit für eine/weitere/größere neue Festplatte.

 

3 hours ago, derjp said:

Oder sollte ich das ganze erstmal so lassen und erstmal eine Platte vollschreiben und dann die nächste?

 

High-Water schreibt nicht voll, wenn eine andere noch sehr viel freien Platz hat.

Wie schon dargelegt:

bei Deinen 2gleich großen Festplatten ist es so, daß High-Water

Die erste bis 50% füllt und dann die Zweite bis 50%.

Dannach die erste bis 75% und dann die zweite bis 75% der Kapazität.

und so weiter, bis sich beide imme rweiter der 100% Marke nähern.

 

naja und dann solltest Du da mal aufräumen oder erweitern :)

 

https://docs.unraid.net/unraid-os/manual/shares/user-shares/#allocation-method

"High-water method

The High-water setting works with switch points based on continually halving the size of the largest drive in the array. It does multiple passes to fill each disk so at the end of each step there is equal free space left on each disk. This progressively fills each disk but without constantly going back and forth between disks each time new data is written. Most times, only a single disk will be needed when writing a series of files to the array so the array will only spin-up the needed disk. The high-water level is initially set equal to one-half of the size of the largest disk. A new high water level is again set to one-half of the previous high level once all the disks have less free space than the current high water level."

 

3 hours ago, derjp said:

Disk2 schläuft eigentlich durchgehen, was ja auch nicht ganz schlecht ist.

 

Korrekt.

 

3 hours ago, derjp said:

Disk1 jedoch schläft komischerweise auch wirklich NIE.

 

Solange darauf geschrieben oder davon gelesen wird ist Disk1 wach (wenn Du den Spinndown timer nicht vermurkst hast).

Wenn Du schreibst läuft auch gleichzeitig die Parity mit.

 

3 hours ago, derjp said:

Kann ich irgendwie nachschauen warum nicht?

 

Solltest Du manuell nicht auf das share schreiben und der Timer für Spindown abgelaufen sein, bedeutet eine weiter laufende Festplatte im Array:

a) das dusselige Ding macht einfach kein Spindowsn (das ist bei einigen SAS Festplatten oder auch einigen USB Gehäusen der Fall).

b) es finden Dateioperationen statt. Wenn gleichzeitig auch Parity wach bleibt wird da wohl geschrieben. Wenn Parity schläft wird nur gelesen.

 

Oft bedeutet es, daß jemand eines der Systemshares irgendwie auf das Array (diese Disk) verfrachtet hat. Und solange diese Systemshares (für Docker, VM) benötigt werden wird eben geleesen/geschrieben und deshalb kann die Disk nicht schlafen.

 

Du kannst im Tab "Shares" nachsehen, wodie Systemshares liegen.

Siehe Screenshot 1: Wenn Du die Systemshares (rot eingekreist) siehst und rechts auf "compute" klickst, zeigt er Dir darunter an, wo diese liegen (links) und wieviel Platz sie dort einnehmen (rechts) (siehe die gelben Striche),

 

3 hours ago, derjp said:

Kann ich irgendwie feststellen, was eventuell die ganze Zeit auf Platte 1 zugreift und sie deswegen am schlafen hindert?

 

Wenn es Dateizugriffe sind, können diese mit dem Plugin File Activity anzeigen lassen (Screenshot 2).

 

3 hours ago, derjp said:

Denn es wird definitiv nicht die ganze Zeit auf Disk1 zugegriffen, oder kann es sein, dass es an Plex liegt, welches durchgehen schaut ob etwas neues vorhanden ist?

 

Es kann an Plex liegen, daß es vielleicht falsch eingestellt ist und seine Daten auf das Array, anstatt auf den Cache/pool schreibt. Dann bleibt die g´jeweilge Festplatte (und Parity) natürlich daueraktiv.

 

 

Screenshot 1:

SYSSHAREScreenshot 2024-01-22 224534.png

 

Screenshot 2:

FACScreenshot 2024-01-22 224850.png

Edited by DataCollector
Link to comment

@DataCollector

 

Vielen Dank für deine ausführliche Antwort.

 

Also macht es ja, vermutlich auch aus Stromspargründen, am meisten Sinn, wenn ich bei meinem Medienordner die Allocation method: auf Fill-up stelle, damit er erstmal die eine Platte vollschreibt und die andere schön weiter schlafen kann.

 

Aktuell sind meine shares wie folgt eingestellt:

 

image.thumb.png.a78b189150148e042b395fd05c9b90c1.png

 

also es liegt ja wirklich nur das media verzeichnis auf dem array. 

 

Das Plugin File Activity habe ich installiert, jetzt muss ich nur mal schauen wie ich das nutze und wo mir das plugin nun anzeigt was genutzt wird.

 

Link to comment
19 minutes ago, derjp said:

damit er erstmal die eine Platte vollschreibt und die andere schön weiter schlafen kann

 

Das kommt doch auf das Gleiche raus: Irgendeine Platte wird beschrieben während die andere schläft. Es gibt nur eine Überlappung von 15 Minuten beim Wechsel (ist bei mir so eingestellt). Diese Überlappung hast Du aber auch in beiden Fällen ...

 

Link to comment

 

5 minutes ago, hawihoney said:

 

Das kommt doch auf das Gleiche raus: Irgendeine Platte wird beschrieben während die andere schläft. Es gibt nur eine Überlappung von 15 Minuten beim Wechsel (ist bei mir so eingestellt). Diese Überlappung hast Du aber auch in beiden Fällen ...

 

Wenn nun aber durch Plex Daten abgerufen werden und auf der einen Platte noch nichts drauf ist, dann kann die ja weiterhin schlafen, wenn ich aber durch High Water die zweite platte früher befülle, liegen ja einige Dateien auf Platte 1 und andere auf Platte 2. Somit würden ja eher beide anspringen, als wenn ich erstmal nur die Disk1 befülle. Vor allem wenn mehrere Benutzer gleichzeitig Plex benutzen.

 

oder nicht?

Link to comment
20 minutes ago, derjp said:

oder nicht?

 

Es wird nur die Platte anspringen dessen Content genutzt wird - sofern Du mit Disk-Shares in Plex arbeitest, oder mit User-Shares und die Verzeichnis-/Dateistruktur ist im RAM gecached.

 

Im Übrigen wäre es dann stromsparender die zweite Platte überhaupt noch nicht ins Array zu packen ...

 

Das Ganze ist IMHO Haarspalterei.

 

Edited by hawihoney
Link to comment
10 minutes ago, hawihoney said:

 

Es wird nur die Platte anspringen dessen Content genutzt wird - sofern Du mit Disk-Shares in Plex arbeitest, oder mit User-Shares und die Verzeichnis-/Dateistruktur ist im RAM gecached.

 

Im Übrigen wäre es dann stromsparender die zweite Platte überhaupt noch nicht ins Array zu packen ...

 

Das Ganze ist IMHO Haarspalterei.

 

Ja aber wenn er bei High Water dann irgendwann die zweite Platte beschreibt, dann liegen ja Daten auf der ersten und der zweiten Platte. Dann ist doch die Wahrscheinlichkeit größer, dass beide Platten anspringen, wenn mehrere Nutzer unterschiedliche Sachen schauen, was nicht der Fall wäre, wenn ich erstmal alles auf eine Platte schreiben lassen würde, bis sie voll ist.

 

Denn wenn alles anfangs auf einer Platte ist, weil sie halt noch Platz genug hat, dann ist es ja egal wieviele Benutzer schauen, sie greifen ja eh alle nur auf eine Platte zu.

 

 

Link to comment
7 minutes ago, hawihoney said:

 

Du willst hier allen Ernstes über Wahrscheinlichkeiten reden? Du kannst das doch machen wie Du willst, Du brauchst meinen Segen nicht.

 

Ich bin jetzt hier raus.

 

Warum fühlst du dich denn gleich angegriffen?

Ich versuche nur die sinnvollste Einstellung hierfür zu finden und teile meine Gedankengänge. Ich möchte natürlich eure Meinung dazu hören, da ihr von dem ganzen Thema mehr Ahnung habt als ich.

 

Nur wenn die Daten auf einer Platte liegen, dann springt ja auch nur eine an, wenn die nicht eh schon läuft und nicht noch eine zweite, daher war meine Frage ob das Fill-up in dem Fall nicht vielleicht sonnvoller ist, oder ob ich dadurch andere Nachteile habe.

 

Dazu wollte ich eure Meinungen hören und keinen verärgern, sondern dann nur eure Meinung dazu auch verstehen.

Link to comment
9 minutes ago, derjp said:

eure Meinungen hören

Also ich bin ein "High-Water-Fan".

Lasse alles gleichmäßig auf die Platten verteilen. Einfach weil es geht. Hat keinen besonderen Hintergedanken.

Wir sind auch nur ein 2-Personen-Haushalt. Da wird so gut wie nie gleichzeit auf unterschiedliche Dinge zugegriffen. 😉

 

Durch die Verteilung mit "High-Water" sind die Daten aber eben auch, nun ja, besser verteilt.

Stichwort Plattenausfall.

Worst-Case: Datenplatte und Parity fällt aus. Daten weg. Mit Fill-Up dann eben das ganze Zeug auf der einen Platte.

  • Like 1
Link to comment
27 minutes ago, saber1 said:

Also ich bin ein "High-Water-Fan".

Lasse alles gleichmäßig auf die Platten verteilen. Einfach weil es geht. Hat keinen besonderen Hintergedanken.

Wir sind auch nur ein 2-Personen-Haushalt. Da wird so gut wie nie gleichzeit auf unterschiedliche Dinge zugegriffen. 😉

 

Durch die Verteilung mit "High-Water" sind die Daten aber eben auch, nun ja, besser verteilt.

Stichwort Plattenausfall.

Worst-Case: Datenplatte und Parity fällt aus. Daten weg. Mit Fill-Up dann eben das ganze Zeug auf der einen Platte.

Ja da hast du auch wieder recht. 🙂

Link to comment
48 minutes ago, derjp said:

Warum fühlst du dich denn gleich angegriffen?

 

Meine Intention, hier in meiner Freizeit zu helfen, ist Unraid weiter zu bringen. Die Fakten habe ich oben aufgeführt. Was Du daraus machst ist Deine Angelegenheit. 

 

Die Wertung des Für und Wider einer Funktion unterscheidet sich von Benutzer zu Benutzer. Da gibt es keine "Beste" Lösung. Das ist wie die Diskussion über den besten Editor. Selbst wenn Dir 10 Leutchen eine andere Lösung vorschlagen, kannst Du immer noch mit "Ja, aber" Deine Lösung wählen. Und das ist gut so.

 

Sobald ich aber merke, dass ein Thread in "Aber, aber, aber" Runden abdriftet, verlasse ich diesen abrupt, denn das bringt mich persönlich nicht weiter.

 

Und ja, alle meine Server laufen seit über dutzend Jahren mit High-Water. Für mich war es eine gute Entscheidung.

 

Edited by hawihoney
Link to comment
31 minutes ago, hawihoney said:

 

Meine Intention, hier in meiner Freizeit zu helfen, ist Unraid weiter zu bringen. Die Fakten habe ich oben aufgeführt. Was Du daraus machst ist Deine Angelegenheit. 

 

Die Wertung des Für und Wider einer Funktion unterscheidet sich von Benutzer zu Benutzer. Da gibt es keine "Beste" Lösung. Das ist wie die Diskussion über den besten Editor. Selbst wenn Dir 10 Leutchen eine andere Lösung vorschlagen, kannst Du immer noch mit "Ja, aber" Deine Lösung wählen. Und das ist gut so.

 

Sobald ich aber merke, dass ein Thread in "Aber, aber, aber" Runden abdriftet, verlasse ich diesen abrupt, denn das bringt mich persönlich nicht weiter.

 

Und ja, alle meine Server laufen seit über dutzend Jahren mit High-Water. Für mich war es eine gute Entscheidung.

 

Ich habe nur versucht zu erklären, wie ich das Prinzip verstanden habe und daraus auf meinen Gedankengang gekommen bin. Ich wollte gar nicht gegen angehen. Das war nicht miene Intention.

 

mich bringen eure Meinungen weiter und ich danke euch dafür.

 

Ich werde meins auch auf High Water stehen lassen.

Link to comment
2 hours ago, derjp said:

Also macht es ja, vermutlich auch aus Stromspargründen, am meisten Sinn, wenn ich bei meinem Medienordner die Allocation method: auf Fill-up stelle,

 

Vergiß bitte nicht den "minimum free Space" im Share einzustellen. bevorzugt etwas größer als die jemals dort aufzuspeichernde Datei.
Gleiches gibt auch für einen vorgeschalteten Cache/Pool.

Sonst läuft da ein Datenträger voll und es kann zu Problemen kommen.

 

 

2 hours ago, derjp said:

Aktuell sind meine shares wie folgt eingestellt:

image.thumb.png.a78b189150148e042b395fd05c9b90c1.png

also es liegt ja wirklich nur das media verzeichnis auf dem array. 

 

Diese Anzeige zeigt nur, wo die Dateien theoretisch liegen sollen.

Klicke mal in jedem Share rechts auf "compute".

Dann siehst Du, ob sich da nicht vielleicht doch etwas verirrt hat.

 

Link to comment
12 minutes ago, DataCollector said:

 

Vergiß bitte nicht den "minimum free Space" im Share einzustellen. bevorzugt etwas größer als die jemals dort aufzuspeichernde Datei.
Gleiches gibt auch für einen vorgeschalteten Cache/Pool.

Sonst läuft da ein Datenträger voll und es kann zu Problemen kommen.

 

 

 

Diese Anzeige zeigt nur, wo die Dateien theoretisch liegen sollen.

Klicke mal in jedem Share rechts auf "compute".

Dann siehst Du, ob sich da nicht vielleicht doch etwas verirrt hat.

 

 

Okay also bei downloads, isos und bei system liegt ja etwas auf Disk1. Das wollte ich ja eigentlich alles auf dem Cache liegen haben, wenn es denn Sinn macht. Wie bekomme ich das dann also von der Disk1 weg? Grade das System sollte da ja vielleicht runter.

 

image.thumb.png.679b8ebae956a59dbf6d8bd4354c3750.png

Link to comment
  • Solution
1 minute ago, derjp said:

Wie bekomme ich das dann also von der Disk1 weg?

Den jeweiligen Share anklicken, primary storage Cache, secondary Array, mover direction: Array -> Cache.

VM Dienst und Docker Dienst beenden, mover starten

Nochmal kontrollieren ob alles verschoben wurde

Wenn alles gut: VM Dienst & Docker wieder starten

Wenn nicht: die Brechstange rausholen und mittels mc verschieben und danach dann VM & Docker starten

  • Like 1
Link to comment
2 minutes ago, jj1987 said:

Den jeweiligen Share anklicken, primary storage Cache, secondary Array, mover direction: Array -> Cache.

VM Dienst und Docker Dienst beenden, mover starten

Nochmal kontrollieren ob alles verschoben wurde

Wenn alles gut: VM Dienst & Docker wieder starten

Wenn nicht: die Brechstange rausholen und mittels mc verschieben und danach dann VM & Docker starten

 

Also einmal alle Docker beenden?

 

VMs habe ich noch keine laufen

Edited by derjp
Link to comment
29 minutes ago, derjp said:

 

Okay also bei downloads, isos und bei system liegt ja etwas auf Disk1.

 

... als hätte ich es geahnt.

Da hast Du vermutlich die Verursacher für die dauerdrehende Festplatte.

Wobei downloads kein Systemverzeichnis/Share ist, welches ein nacktes unraid selber erstellt.

Das hast Du manuell vorgegeben. Da wird vermutlich von irgendeiner Anwendung (VM/Docker) benutzt. Wenn Du diese Anwendung beendest, sollte das auch die Disk nicht wach halten.

 

29 minutes ago, derjp said:

Das wollte ich ja eigentlich alles auf dem Cache liegen haben, wenn es denn Sinn macht. Wie bekomme ich das dann also von der Disk1 weg? Grade das System sollte da ja vielleicht runter.

 

Ein Weg ist der, den jj1987 über den Mover beschrieb (der ist auch der sicherste, wenn man sich nicht mit anderen Wegen besser auskennt).

 

Ich mache es ansonsten üder auch von jj1987 benannten Weg mit dem mc: indem ich kurz alle Docker und VM beendet, dann diese Dienste im Setting auch stoppe und dann mit mc (midnight commander) von der Disk in den cache verschiebe.

Danach in Settings Docker und Vm wieder aktivieren und die gewünschten Docker und Vm wieder starten.

Bei den paar Bytes (wenn ich es nicht falsch gezählt habe rund 25 GB, die zu verschieben sind) sollte das in unter 8-10 Minuten erledigt sein.

 

Edited by DataCollector
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...