View previous topic :: View next topic |
Author |
Message |
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 1:08 pm Post subject: Gibt es ein P2P-Netzwerkdateisystem (fürs LAN)? |
|
|
Also ich meine damit etwas wie ein Mischung zwischen NFS und Bittorent, d.h. jeder Cleint stellt etwas Speicherplatz zur Verfügung und damit wird ein LAN-weites Dateisystem geschaffen in dem die Daten quasi über alle Clients verteilt werden, evt. mit gewisser Redundanz. (Vergleichbar in gewisser Weise mit einem RAID5)
Gibt es sowas?
(Hintergrund: Ich habe mehrere Rechner im LAN und würde gern deren freien Gesamt-Speicherplatz effektiv ausnutzen.)
EDIT: -[OT]
*edit - Think4UrS11* verschoben ins Diskussionsforum; keine Supportfrage
Last edited by slick on Mon Jun 06, 2005 6:05 pm; edited 1 time in total |
|
Back to top |
|
|
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Mon Jun 06, 2005 1:16 pm Post subject: |
|
|
Wenn ich mich recht erinnere, arbeitet AFS mit großen Caches auf den Clients, vielleicht geht das so ungefähr in Deine Richtung? _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
|
Archaon n00b
Joined: 08 Apr 2005 Posts: 9 Location: Offenburg
|
Posted: Mon Jun 06, 2005 1:25 pm Post subject: |
|
|
Vielleicht suchts du sowas wie Direct Connect? |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 1:45 pm Post subject: |
|
|
Also hinter das Prinzip von Direct Connect bin ich noch nicht ganz gestiegen, aber es schaut so aus als wäre es eine "normale" Tauschbörse...
Ums nochmal zu präzisieren:
Also ich suche was mit dem ich folgendes machen könnte. Reine Wunschvorstellung, aber evt. kennt ja jemand was in der Richtung. Ich beschreibe das mal als Client-Server-Lösung, so kann mans besser beschreiben
- jeder teilnehmende Client kann einstellen wieviel Speicher er freigibt
- die Server faßt diesen Speicher zu einer großer "Ressource" zusammen (optimal: mountbar)
- kopiert man Daten auf diese Ressource werden diese in Häppchen auf den Clients abgelegt
- durch entfernen eines Clients lassen sich die Daten immernoch lesen... d.h. die Häppchen werden je auf mehrere Clients verteilt...
(Eine, rein theoretische(!) Idee die ich dazu hatte war auch noch auf jedem Client einen NFS-Server zu starten und dann darin ein Containerfile abzulegen, dieses auf dem Server mounten und alle Containerfiles irgendwie als irgendein RAID verknüpfen.)
Soweit zumindest die Theorie
Nochmal zum Hintergrund: Ich habe ca. 5 Maschinen mit je 40GB freien Platz, d.h. 200GB gesamt... durch 50% Abzug für Redundanzen wären das immernoch 100GB... so könnte ich mir einen Fileserver sparen... wenn denn die Rechner irgendwie in einem Speichercluster zusammenarbeiten würden. |
|
Back to top |
|
|
Hilefoks l33t
Joined: 29 Jan 2003 Posts: 849 Location: Emden / Deutschland
|
Posted: Mon Jun 06, 2005 2:26 pm Post subject: |
|
|
Moin,
schöne Idee! Ich habe mal was von einem GnutellaFS gelesen. Könnte sein das das in die Richtung geht. Leider habe ich keine Idee wo ich das gelesen habe - aber Google wird schon helfen.
Mfg Hilefoks |
|
Back to top |
|
|
reptile Guru
Joined: 19 Nov 2002 Posts: 363
|
Posted: Mon Jun 06, 2005 2:26 pm Post subject: |
|
|
eine lösung habe ich nicht, aber direct connect ist definitiv nicht das, was du suchst. ist, wie du sagtest, eine 'normale' tauschbörse. |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 2:43 pm Post subject: |
|
|
Hilefoks wrote: | ...! Ich habe mal was von einem GnutellaFS gelesen... |
Ist auch nur ein etwas anderer Gnutella-Client...
http://lufs.sourceforge.net/lufs/fs.html wrote: | Forget everything you knew about file sharing clients. This is a glimpse of the future...
You mount a gnetfs in ~/gnet. You wait a couple of minutes so it can establish its peer connections. You start a search by creating a subdirectory of SEARCH: mkdir ~/gnet/SEARCH/metallica mp3. You wait a few seconds for the results to accumulate. The you chdir to SEARCH/metallica mp3 and try a ls: surprise the files are there! You shoot up mpg123 and enjoy... You are happy.
Sounds too good to be true? Well, it's here...
GnetFS is a Gnutella network interface. You can perform searches and access resources without downloading them locally. |
|
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 3:59 pm Post subject: |
|
|
slick wrote: | Eine, rein theoretische(!) Idee die ich dazu hatte war auch noch auf jedem Client einen NFS-Server zu starten und dann darin ein Containerfile abzulegen, dieses auf dem Server mounten und alle Containerfiles irgendwie als irgendein RAID verknüpfen. |
Habe ich jetzt mal ausprobiert. Man muß die Containerdateien von den NFS-Servern zwar erstmal mit losetup behandeln, aber dann funktioniert das tatsächlich. RAID5 über Netzwerk... KRASS.... das sind die Gründe warum ich Linux so mag... |
|
Back to top |
|
|
the-pugnacity Apprentice
Joined: 20 Dec 2004 Posts: 236 Location: Germany//Berlin
|
Posted: Mon Jun 06, 2005 4:13 pm Post subject: |
|
|
wenn du jetzt noch beschreibst wie du das mit NFS gemacht hast währe ich glücklich....son kleines howto wäre fein _________________ Gentoo 2.6.12-gentoo // Pentium4 2800 || Aopen XC Cube || TwinMOS 1024 MB PC 3200 || 250GB Hitachi 7k250 || Aopen Aeolus FX5900XT || MX500 |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 5:17 pm Post subject: |
|
|
Jetzt im Wiki, siehe: http://de.gentoo-wiki.com/HOWTO_RAID_over_NFS
Ok, kleines RAID-over-NFS-HowTo...
(in english)
Nur für Leute die wissen was sie tun und nicht für den produktiven Einsatz.
Zuerst am "Client" einen NFS-Server aufsetzen (Das auf jedem "Client" machen)
Dann dort eine Freigabe schaffen und diese in /etc/exports eintragen (ACHTUNG: Freigabe mit root-Rechten, ggf. anpassen, hier fürs ganze LAN)
Code: | mkdir /freigabe
echo "/freigabe 192.168.0.0/24(rw,async,no_root_squash)" >> /etc/exports
/etc/init.d/nfs start |
Die Containerdateien müssen bei RAID5 gleich groß sein, für andere RAID-Arten weiß ich es nicht genau.. bitte Suchmaschinen fragen...
Am "Server" installieren:
Code: | emerge nfs-utils raidtools
/etc/init.d/nfs start
| Auch muß ebenso die jeweilige RAID-Art im Kernel sein.
Jetzt am "Server" Mountpoints anlegen und die entfernten NFS-Freigaben mounten.
Code: | mkdir /mnt/client1
mkdir /mnt/client2
mkdir /mnt/client3
mount host1:/freigabe /mnt/client1
mount host2:/freigabe /mnt/client2
mount host3:/freigabe /mnt/client3 |
Dann auf den Freigaben die Containerdateien anlegen... (hier 3x500MB)
Code: | dd if=/dev/zero of=/mnt/client1/container bs=1M count=500
dd if=/dev/zero of=/mnt/client2/container bs=1M count=500
dd if=/dev/zero of=/mnt/client3/container bs=1M count=500 |
Die Containerdateien über ein Loopback-Device legen
Code: | losetup /dev/loop1 /mnt/client1/container
losetup /dev/loop2 /mnt/client2/container
losetup /dev/loop3 /mnt/client3/container |
Dann /etc/raidtab entsprechend erstellen... hier ein passendes Beispiel:
Code: | raiddev /dev/md0
raid-level 5
nr-raid-disks 3
nr-spare-disks 0
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 128
device /dev/loop1
raid-disk 0
device /dev/loop2
raid-disk 1
device /dev/loop3
raid-disk 2 |
Dann den Raid erzeugen und zuschauen bis er sich fertig aufgebaut hat:
Code: | mkraid /dev/md0
watch cat /proc/mdstat |
Dann Raid formatieren und mounten:
Code: | mke2fs /dev/md0
mount /dev/md0 /mountpoint |
Ich übernehme keine Gewähr für verlorene Daten, das ist rein experimentell!
Last edited by slick on Sat Aug 12, 2006 6:32 pm; edited 2 times in total |
|
Back to top |
|
|
the-pugnacity Apprentice
Joined: 20 Dec 2004 Posts: 236 Location: Germany//Berlin
|
Posted: Mon Jun 06, 2005 5:43 pm Post subject: |
|
|
danke dafür. ich überleg mir nur grad wie ein passendes init script aussieht, weil im normalfall wird ja erst raid ausgeführt und dann mount aber das geht ja nicht da für raidtab ja erst nfs gemounted werden muss..... _________________ Gentoo 2.6.12-gentoo // Pentium4 2800 || Aopen XC Cube || TwinMOS 1024 MB PC 3200 || 250GB Hitachi 7k250 || Aopen Aeolus FX5900XT || MX500 |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 5:56 pm Post subject: |
|
|
Ich überlege wie ich diese Erkenntnis am besten nutzen kann. Wahrscheinlich nicht so sehr, weil sich die Größe des freien Speichers auf allen Rechner unterscheidet, daher käme nur ein Raid0 in Frage was mir zu unsicher ist und auch keine Redundanzen bietet.
Just4Info hier mal das Ergebnis von tiotest, alle 3 Containerdateien über NFS, RAID5 wie oben beschreiben, 100MBit LAN
Code: | # tiotest
Tiotest results for 4 concurrent io threads:
,----------------------------------------------------------------------.
| Item | Time | Rate | Usr CPU | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write 40 MBs | 6.3 s | 6.308 MB/s | 0.2 % | 13.7 % |
| Random Write 16 MBs | 6.0 s | 2.602 MB/s | 0.1 % | 4.4 % |
| Read 40 MBs | 0.1 s | 268.125 MB/s | 6.7 % | 92.5 % |
| Random Read 16 MBs | 0.1 s | 244.500 MB/s | 6.3 % | 89.2 % |
`----------------------------------------------------------------------'
Tiotest latency results:
,-------------------------------------------------------------------------.
| Item | Average latency | Maximum latency | % >2 sec | % >10 sec |
+--------------+-----------------+-----------------+----------+-----------+
| Write | 0.127 ms | 327.244 ms | 0.00000 | 0.00000 |
| Random Write | 0.107 ms | 66.123 ms | 0.00000 | 0.00000 |
| Read | 0.014 ms | 0.795 ms | 0.00000 | 0.00000 |
| Random Read | 0.014 ms | 1.582 ms | 0.00000 | 0.00000 |
|--------------+-----------------+-----------------+----------+-----------|
| Total | 0.068 ms | 327.244 ms | 0.00000 | 0.00000 |
`--------------+-----------------+-----------------+----------+-----------' |
|
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 6:14 pm Post subject: Re: Gibt es ein P2P-Netzwerkdateisystem (fürs LAN)? |
|
|
slick wrote: | Also ich meine damit etwas wie ein Mischung zwischen NFS und Bittorent, d.h. jeder Cleint stellt etwas Speicherplatz zur Verfügung und damit wird ein LAN-weites Dateisystem geschaffen in dem die Daten quasi über alle Clients verteilt werden, evt. mit gewisser Redundanz. (Vergleichbar in gewisser Weise mit einem RAID5) |
Hmm.. freenet macht das so ähnlich, nur müßte man die Verschlüsselung weglassen und das ganze mountbar machen... Gibts ein java-guru hier der freenet kennt und der was dazu sagen könnte. |
|
Back to top |
|
|
think4urs11 Bodhisattva
Joined: 25 Jun 2003 Posts: 6659 Location: above the cloud
|
|
Back to top |
|
|
dakjo Veteran
Joined: 31 Jan 2004 Posts: 1544
|
Posted: Mon Jun 06, 2005 6:47 pm Post subject: |
|
|
@slick Ich wollt nur mal sagen. GEiL Ey! Typ! Das Krass das so mit nfs raid. _________________ 'Dieselben Naturkräfte, die uns ermöglichen, zu den Sternen zu fliegen, versetzen uns auch in die Lage, unseren Stern zu vernichten.' - Wernher von Braun
http://www.mpsna.de |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 8:56 pm Post subject: |
|
|
Also habs grad mal nochmal in Ruhe ausprobiert... also RAID-over-NFS ist nicht für den realistischen Betrieb geeignet. Fällt ein Client während des Betriebs weg ist schreiben und lesen unmöglich (lesen nur was noch so im Cache ist). Der zugreifende Prozess "friert" dann ein. Fehlt ein Client schon beim Start des RAIDs läßt sich dieses gar nicht erst starten... also einen experimentellen Einsatz für das kleine Home-Lan sehe ich da nur gegeben wenn die Clients 100% verfügbar sind was unter normalen Unständen zwar theoretisch möglich ist, aber wichtige Daten würde ich darauf nicht verwetten. |
|
Back to top |
|
|
76062563 l33t
Joined: 16 Aug 2004 Posts: 637 Location: 127.0.0.1
|
Posted: Mon Jun 06, 2005 9:01 pm Post subject: |
|
|
Egal, allein die Idee find ich super! _________________ gentoo - compile your own world |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Jun 06, 2005 9:08 pm Post subject: |
|
|
Hmm... ich mal mir grad so andere witzige Szenarien aus... also RAID-over-Samba oder RAID-over-SHFS sollten damit auch möglich sein |
|
Back to top |
|
|
think4urs11 Bodhisattva
Joined: 25 Jun 2003 Posts: 6659 Location: above the cloud
|
Posted: Mon Jun 06, 2005 9:38 pm Post subject: |
|
|
na da fehlt aber dann noch Raid over USB-Stick und Raid over 'various flash media'
schließlich hat so ein Cardreader von Haus aus mindestens 4 Slots die auch parallel bestückt werden können _________________ Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself |
|
Back to top |
|
|
spielc Guru
Joined: 20 Apr 2004 Posts: 452
|
Posted: Mon Jun 06, 2005 9:51 pm Post subject: |
|
|
Think4UrS11 wrote: | na da fehlt aber dann noch Raid over USB-Stick und Raid over 'various flash media'
schließlich hat so ein Cardreader von Haus aus mindestens 4 Slots die auch parallel bestückt werden können |
LOL keine bloede idee |
|
Back to top |
|
|
the-pugnacity Apprentice
Joined: 20 Dec 2004 Posts: 236 Location: Germany//Berlin
|
Posted: Tue Jun 07, 2005 3:09 am Post subject: |
|
|
irgend wo hab ich mal in den weiten des netz es nen disketten raid gefunden.... 20 disks arbeiten zusammen _________________ Gentoo 2.6.12-gentoo // Pentium4 2800 || Aopen XC Cube || TwinMOS 1024 MB PC 3200 || 250GB Hitachi 7k250 || Aopen Aeolus FX5900XT || MX500 |
|
Back to top |
|
|
M@rio n00b
Joined: 01 Dec 2004 Posts: 27 Location: Graz
|
Posted: Tue Jun 07, 2005 5:20 am Post subject: |
|
|
Irgendwie steckt in dem Konzept ein Denkfehler.
Schließlich müssen alle Daten auf allen Workstations vorhanden sein. Bei Raid-5 z.b. könnte man 1 Client abschalten, aber schon beim 2. abgeschaltenen Client wären die Daten nicht mehr komplett.
Das ist bei P2P ja auch so. Wenn nur 1 Block fehlt, ist die restliche Datei wertlos. Während man bei P2P Anwendungen aber einfach mal ein paar Stunden/Tage/Wochen wartet bis der fehlende Block möglicherweise doch noch von irgendwem ge-shared wird, will wohl keiner ein paar Stunden auf seine Daten im LAN warten.
Also bliebe im Endeffekt nur die Möglichkeit die Daten einfach per rsync auf alle Clients zu verteilen. Was zwar sehr redundant wäre, aber auch heftige Platzverschwendung. |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Tue Jun 07, 2005 7:01 am Post subject: |
|
|
Ich denke es kommt darauf an wie man es betrachtet. Das RAID-over-LAN nicht praxistauglich ist schrieb ich ja bereits, das war nur ein "Nebenprodukt" der Überlegungen... aber einen P2P Lösung könnte ich mir durchaus vorstellen. Wenn man die Daten wie einem einem RAID verteilen würde und das jeweils zusätzlich noch redundant, könnte schon mehr als 1 Client wegfallen. Das sollte das Cluster dann merken und diese Daten raid-ähnlich neu berechnen und auf die bleibenden Maschinen verteilen. Geht der Client wieder ans Netz werden die Daten wieder neu auf ihn verteilt. Es geht ja auch nicht darum die Gesamtanzahl der freien Bytes direkt zu nutzen, bei einem wie oben beschriebenen Verfahren wären wohl so ca. 1/3 - 1/2 effektiv nutzbar, was aber bei einer gewissen Anzahl Clients schon Sinn machen kann. Außerdem geht es nicht darum eine High-Speed-Ressource zu haben. Ich stelle mir das eher als Ablage für Sachen die man nicht so häufig benötigt... z.B. Distfiles, Images von irgendwelchen CDs o.ä. |
|
Back to top |
|
|
limes Tux's lil' helper
Joined: 18 Sep 2004 Posts: 129
|
Posted: Tue Jun 07, 2005 8:18 am Post subject: was krass |
|
|
Linux gehört eindeutig verboten |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Tue Jun 07, 2005 9:50 am Post subject: |
|
|
Soo... ich habe mir nochmal Gedanken gemacht wie so ein P2P-Filesystem aussehen müßte. Ich versuchs mal zu beschreiben, evt. ist ja jemand mit ausreichend Programmierkenntnissen von der Idee begeistert:
Es gibt eine Software, im folgenden als Client bezeichnet, die folgendes macht:
- Dateien werden auf Client geschrieben
- Client zerlegt diese Daten in Blöcke bestimmter Größe
- jeder Block erhält noch Metainformationen (von welcher Datei, welche Block-Nr, eindeutige ID)
- Client macht für jeden Block den er hat:
-- Broadcast ins Netz welcher Client denn noch den Block mit Id: X hat
-- Clients ohne den Block X melden sich und melden auch ihren "Status" (z.B. Y% belegt, Empfang ok...)
-- Client entscheidet nun welcher andere Client am besten geeignet ist (Bandbreite oder Speicherstatus) und
sendet Block an zweiten Client
-- melden sich mehr als 1 Client die den Block schon haben entscheidet der broadcastende Client welcher der Clients den Block löschen kann, weil er braucht nur 2x da zu sein
Wenn das alle Clients machen, sollten die Blöcke redundant im Netz liegen und bei Wegfall eines Clients würde sich das Netz selbst neu syncronisieren. Die effektive Nutzbarkeit wäre bei 50% der Gesamtgröße der Ressourcen in Netz minus evt. zusätzliche Redundanzen... |
|
Back to top |
|
|
|