Beiträge von gelbasack

    Ich fühl' mich weniger als Informatiker als als Bürger einer "Demokratie" getroffen. Die Politik vertritt uns, vertritt mich. Die geheimen Verhandlungen waren unter keinen Umständen akzeptabel und ganz egal, was in ACTA überhaupt steht, darf schon allein deswegen ein solches Abkommen niemals durchgewunken werden.

    In dem Code sieht man nur die Deklaration/Initialisierung von "kurz". Wie/wo du die Variable falsch verwendest, können wir weiterhin nur erraten. Oder auch eher nicht. Lauffähiges Minimalbeispiel, am besten in [code]-Tags, damit auch lesbar, wäre hilfreich für alle ohne Glaskugel.

    Also die 10h sind allgemein gültig für Verifikation/Rebuild/sonstige Operation über die kompletten Daten, das hängt alles an der Geschwindigkeit der Festplatte und lässt sich mit Größe / Zeit + etwas Overhead überschlagsmäßig bestimmen. Die 10h sind aber wirklich nur Größenordnung, je nachdem welche Platten und Controller verbaut sind.
    Verwenden kann man das RAID allerdings im Normalfall sofort. Die Operationen laufen alle im Hintergrund. Die genannte Zeit macht's halt nicht wirklich Spass, die Daten verwenden zu müssen, wird vermutlich langsam werden dann.

    Aufbau: Größenordnung 10h.

    Größe: Größe der kleinsten Platte * (Anzahl Platten - 1), bei 4 Platten mit 2TB wären das 6TB, das entspricht 5,46TiB, die du wohl im System siehst. Dann geht noch was für das Dateisystem drauf, evtl. reservierten Speicher, ist abhängig von deinem konkreten Setup. Ja, deine Werte klingen noch normal.

    Du kannst zwischen mehr Datenvolumen und mehr Datensicherheit wählen.

    * RAID-5 aus 4 Platten: 6TB Speicher, eine beliebige darf ausfallen.
    * RAID-1 aus 4 Platten: 2TB Speicher, drei beliebige dürfen ausfallen.
    * 2x RAID-1 aus 2 Platten: insgesamt 4TB Speicher, jeweils eine aus den beiden RAIDs darf ausfallen, hier macht evtl. auch RAID-6 Sinn:
    * RAID-6 aus 4 Platten: 4TB Speicher, beliebige 2 Platten dürfen ausfallen.

    RAID ist kein Backup, also falls sonst keine Backups vorhanden sind, macht evtl. die 2x RAID-1-Lösung Sinn: einmal für die Daten, einmal für Backups. Allgemein davon abhängig, was man eigentlich damit tun möchte...

    Und wer die Möglichkeit hat, es zu verwenden und auf Encryption verzichten kann: ZFS. Wurde auch hier diskutiert: http://www.informatik-forum.at/showthread.php…rschl%FCsselung Meiner Meinung nach unbedingt jedem anderen RAID vorzuziehen. Daten auf einer Platte können immer defekt sein/werden, da müssen Prüfsummen her.

    Im Beispiel in der Quelle wird in C++ eine Referenz verwendet, das ist grob ausgedrückt ein dereferenzierter Pointer. Im Java-Beispiel wird eine Referenz verwendet. Bei der swap-Methode wird in C++ der dereferenzierte Wert getauscht, in Java die Referenz. Die Java-Referenz ist allerdings eher mit einem Pointer zu vergleichen, die Beispiele sind also nicht direkt vergleichbar. Das Java-Äquivalent zu dem C++-Beispiel würde in der Swap-Methode das übergebene Objekt modifizieren, nicht die Referenz.

    Der Argumentation in dem Beispiel kann ich nicht folgen, Java übergibt Referenzen.

    für ein von der FFG gefördertes Praktikum suchen wir eine Studentin (Informatik, mind. 2. Semester, sorry Burschen: diesmal wirklich nur Frauen) um uns bei der Entwicklung einer Facebook Application zu unterstützen. Bei der Application geht es primär um ein Data-/Textmining Frontend für Jugendliche.

    Wenn solche sexistischen Jobangebote wirklich notwendig sind, verwende wenigstens Ausdrücke auf gleichem Niveau. "Sorry Mädels" würde ja auch niemand durchgehen lassen.

    welches RAID verwendest du denn bei sowas (linux software RAID?)? ich kann mir beim besten willen nicht vorstellen, dass das im sinne der RAID erfinder ist. gibts dazu irgendwelche berichte in foren? ich hatte jedenfalls noch nie solche probleme und benutze ein normales ext3 für die datenpartition.
    es wär mir vollkommen neu, dass man für die datenkonsistenz bei RAID unbedingt ein spezielles dateisystem bräuchte.

    Ja, das gefällt mir prinzipiell auch überhaupt nicht, dass man dafür ein besonderes Dateisystem braucht. Theoretisch kann man die Datenintegrität ja unterhalb des Dateisystems sicherstellen. Einfach von allen Platten lesen, Daten überprüfen und gut ist es.
    Leider macht das ein Standard-Linux-SW-RAID (ja, ein solches verwende ich, RAID-5 bzw. RAID-1) nicht und somit landen immer wieder kaputte Daten im Dateisystem. Das spezielle Dateisystem ist also eigentlich nicht unbedingt notwendig, aber im Fall von ZFS ist es eben nicht nur Dateisystem sondern gleichzeitig auch die scheinbar einzige Möglichkeit eines Software-RAIDs, das meine Anforderungen an Datenintegrität erfüllt.

    Nein, reicht mir nicht. Ich rechne die MTTF ja nicht für einen Totalausfall (im Fall von RAID 5 >= 2 Platten), sondern für Datenverlust. Und der kann schon auftreten, wenn nur eine Platte ein wenig Probleme macht. Ich hatte das leider schon öfters mit unterschiedlichen Platten...

    Genauer läuft es folgendermaßen ab: Ich will Daten kopieren. Eine Platte hat Probleme, klackt, im dmesg kommt dann ein Eintrag von wegen "resetting link". Sitzt man dabei fällt auch eine kurze Verzögerung auf. Kopiert werden die Daten aber, es kommt keine Fehlermeldung, das RAID wird als konsistent angezeigt. In dem Fall reicht es, wenn eine Platte Probleme macht. Kann auch ein schlechter Kontakt beim SATA-Kabel sein, eine "Laune", was weiß ich. Hatte das auf jeden Fall schon öfters. Prozentuell geht dabei nicht so viel verloren - aber es soll gar nichts verloren gehen.

    Daher der Wunsch nach ZFS. Wenn was inkonsistent ist, soll das ganze über Prüfsummen repariert werden. Anders kann gar nicht festgestellt werden, welche Platte die kaputten Daten hat.

    RAM-Defekt ist ja ein ähnliches Problem. Die Daten zwar gespiegelt, aber wenn sie von der Quelle schon falsch gelesen werden... und auch wenn man mehrere Backups hat und alte aufhebt - wer will das wieder sortieren, wo die Daten ok sind?

    Ich entschied mich jetzt für ZFS ohne Verschlüsselung und hoffe, dass zfs-fuse da bald nachzieht. rsync hat built-in Verification, memtest lief auch erst und die RAIDs sind nur Ersatz für normale Platten - also Backup zwischen denen wie früher zwischen normalen Platten.

    Sehr fein, wusste nicht, dass Encryption wirklich schon implementiert ist, danke für den Tipp. Dann werde ich mir das self-healing nochmal ansehen (hab' auf die schnelle nichts gefunden, wann das durchgeführt wird - nur bei Zugriff oder regelmäßig über den kompletten Bestand - ich hab' viel Zeug rumliegen, was evtl. Jahre nicht angegriffen wird, wobei ein touch-Script noch immer einfacher wäre als mit Prüfsummen rumtun).

    Gibt's da mittlerweile was brauchbares? Verlangt ist nur hohe Sicherheit vor sterbenden Platten und Verschlüsselung.

    Momentan verwende ich Standard-SW-RAID 1 bzw. 5 mit LUKS und ext4.

    SW-RAID prinzipiell geht eh halbwegs. Leider sind dann die Daten auf einer Platte korrupt und nicht mehr wirklich wiederherstellbar (ja, hab' eh Backups, aber will das nicht gleich ausreizen). Bei RAID6 könnte ich theoretisch die Daten wiederherstellen - geht das in der Praxis brauchbar? Also - mir ist schon klar, wenn eine Platte ausfällt, kann ich die aus dem RAID kicken und auf der "guten" sind die Daten ok. Ich hatte grad wieder so eine lustige Platte, die Wochen mitlief, ich hab' nicht ganz genau in dmesg geschaut und jetzt hat sich einiges an Müll angesammelt. Wenn da jetzt zwei Platten spinnen...

    Ich suche eigentlich eher eine Lösung mit Prüfsummen im Dateisystem, ähnlich wie bei zfs bzw. btrfs. Am liebsten hätte ich es, wenn die Daten bei jeder Lese- oder Schreiboperation geprüft werden - also nicht zum Optimieren bei einem RAID1 etwa abwechselnd von den Platten gelesen wird sondern ich mag höchstmögliche Datenintegrität. Zusätzlich regelmäßige Überprüfungen des gesamten Datenbestandes - also Dateien gegen Prüfsummen.

    zfs und btrfs haben den Nachteil, dass RAID/Filesystem auf einer Ebene sind und ich somit mit LUKS nicht mehr dazwischenkomme.

    Wie macht ihr das so? Mein bester Ansatz ist händisch die Prüfsummen zu den Files zu verwalten und abzugleichen... bzw. Prüfsummen von aktuellen Files mit Backup vergleichen (betreffend der Dateien, die eher gelagert werden und nicht verändert).

    (Edit: Ich habe die Frage hier in eigenen Worten zusammengefasst, weil die vollständige Aufgabenbeschreibung wäre mir zu kompliziert es nieder zu schreiben.)

    Evtl. wäre die aber eindeutig und verständlich.

    Wenn du nur 4 verschiedene Objekte hast und 4 ziehst, wirst du nie auf 1820 Möglichkeiten kommen (wobei mir eigentlich auch nicht ganz klar ist, ob du jetzt Kombinationen oder Permutationen suchst).

    Dass von den unterschiedlichen Objekten 0-4 in der Kiste sind, ist für die Anzahl an Möglichkeiten unerheblich, das wäre nur für die Wahrscheinlichkeiten relevant. Was die Möglichkeiten betrifft, musst du ohnehin immer von 4 Objekten ausgehen.

    Wenn du also eigentlich nur wissen willst, wieviele Möglichkeiten es gibt, 4x aus 13 verschiedene Objekten zu ziehen, wobei diese 4x vorhanden sind: 13**4 (ich bin mal von einer Permutation ausgegangen...).

    das sind halt schon sehr akademische sprachen, die in der praxis nur wenig eingesetzt werden. ich habe nur von einem breiteren anwendungsfall für haskell gehört, ich glaube es waren sony ericcson, die das in größerem umfang verwendet haben. es wird sicher mehr firmen geben, die es einsetzen, aber vermutlich noch einmal deutlich weniger jobs als etwa perl und python.

    Das ist Erlang (ERicsson LANGuage). Z.B. der Jabber-Server ejabberd ist in Erlang geschrieben, ist auch recht bekannt.

    Wobei ich es ja fast ein wenig doof finde, dass man überall als "Java Programmierer" o.ä. gesucht wird und somit eigentlich irgendwie darauf reduziert wird...
    ich vergleich das immer gern als würd man einen "Bosch-Bohrmaschinen-Bohrer" suchen statt einen Handwerker.

    Es wird jemand gesucht, der mit der Bosch-Bohrmaschine umgehen kann. Wenn du aus dem akademischen Umfeld kommst, mit brennstoffzellenbetriebenen Laserbrennern arbeitest aber auch mit Bosch-Bohrmaschinen umgehen kannst, hast du gute Chancen!

    Haskell ist eher akademisch interessant. Wenn laufend Projekte erfolgreich mit Java/C#/C++ umgesetzt werden, will da niemand weg. Das kauft auch kein Kunde. Das lässt sich nicht vermarkten, dass man auf einmal eine "komplett unbekannte" Sprache einsetzt, die beim Kunden niemand warten kann. Da gibt's keine Umwelt, keine Community, keinen Support, das ist nicht durch unzählige Projekte und Programmierer getestet. Es gibt keine riesen Auswahl an Application Server, IDEs,... man findet nicht sofort ein paar neue Programmierer, die die Sprache kennen. Die ausgefalleneren Sprachen sind numerisch in der Überzahl, da gibt's viel zu viele. Klar, jemand der Haskell und Prolog schreiben kann, wird mit Erlang schnell zurechtkommen, aber so _richtig_ können ist schon was anderes.

    Und was sind schon die Vorteile? Scala gefällt mir auch besser (von den Sprachkonzepten, die Syntax is' schiach ;) ), aber so wirklich viel effizienter ist man damit nicht. Wenn man ein kurzes Tool hackt, machen die modernen Sprachen Spass, aber in größeren Projekten schreibt man eh nur paar Zeilen Code am Tag, da finde ich's weitaus wichtiger, dass man ein anständiges Typsystem hat und nicht so ein Duck-Typing-Klumpatt wie in Python oder ähnliches. Das ist akademisch beim 10-Zeilen-Ausschnitt toll, was man damit schreiben kann, in einem großen Projekt mag ich das Zeug nicht debuggen müssen.

    Und weil der Vorschlag nach gezielt suchen z.B. nach Cobol bei Banken kam: Cobol ist total grindig, das verwendet dort niemand, weil's noch immer so toll ist. Da entwickelt niemand damit, das wird nur noch gewartet. Wo Cobol lief, wollen heute auch alle Java/C#. Es wollen alle zu den Standardsprachen.