Netzwerkkopieren zwischen Samba-Shares lahm

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
shh
Beiträge: 140
Registriert: 16.06.2002 14:29:44

Netzwerkkopieren zwischen Samba-Shares lahm

Beitrag von shh » 12.02.2012 14:56:29

Hallo!

Ich habe hier zwei große Platten je als eigenen Samba-Share freigegeben und möchte über Netzwerk Daten hin- und herschaufeln.
Also so:
[share1] -> /dev/sda5
[share2] -> /dev/sdb1

timings dazu:

Code: Alles auswählen

root@server:/# hdparm -t -T /dev/sda5

/dev/sda5:
 Timing cached reads:   1422 MB in  2.00 seconds = 711.19 MB/sec
 Timing buffered disk reads:  338 MB in  3.01 seconds = 112.42 MB/sec
root@server:/# hdparm -t -T /dev/sdb1

/dev/sdb1:
 Timing cached reads:   1424 MB in  2.00 seconds = 712.20 MB/sec
 Timing buffered disk reads:  324 MB in  3.01 seconds = 107.61 MB/sec
Alignment:

Code: Alles auswählen

root@server:/# fdisk -l -u /dev/sdb

Platte /dev/sdb: 2000.4 GByte, 2000398934016 Byte
255 Köpfe, 63 Sektoren/Spur, 243201 Zylinder, zusammen 3907029168 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1            2048  3907029167  1953513560   83  Linux
root@server:/# fdisk -l -u /dev/sda

Platte /dev/sda: 2000.4 GByte, 2000398934016 Byte
255 Köpfe, 63 Sektoren/Spur, 243201 Zylinder, zusammen 3907029168 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ece5d

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS
Partition 1 endet nicht an einer Zylindergrenze.
/dev/sda2          206848    83888127    41840640    7  HPFS/NTFS
/dev/sda3        83888128    92276735     4194304   83  Linux
/dev/sda4        92276736  3907028991  1907376128    5  Erweiterte
/dev/sda5        92278784  3907028991  1907375104   83  Linux
Jetzt habe ich hier GBit-LAN und kann via Win7 auf diese Laufwerke mit ~60MB/s etwas speichern und mit ~45MB/s wieder auslesen.
Beim Kopieren auf der Linux-Maschine, von einer Platte auf die andere geht das mit ~56MB/s (mit mc gecheckt).
Beide Shares sind bei der Win7-Maschine als Netzwerk-Laufwerk eingeklinkt. Wenn ich aber von der Win7-Maschine Kopieren zwischen share1 und share2 starte, also netzwerkseitig, geht das nur schnarchlahm mit ~26MB/s. Das ist offenkundig ungefähr die Hälfte des normalen Durchsatzes. Wenn ich direkt zwischen den Netzwerkpunkten kopieren ist das noch etwas langsamer: ~22MB/s

Anscheinend wird so kopiert: Linux/share1 -> Win7 -> Linux/share2
Jetzt habe ich wahrscheinlich ein Verständnisproblem und vielleicht kann das einer aufklären. ;)
Aber, gibt's ne Möglichkeit, dass Samba Quell- und Ziellaufwerk automatisch erkennt und so direkt zwischen den Platten kopiert, und nicht über's Netzwerk?
Ist das eine Beschränkung vom Samba-Protokoll? (oder vielleicht nur des "dummen" Win7-Clients)
Oder ist das einfach immer so bei Netzwerk-Clients?
Gibt's andere Netzwerk-Protokolle oder -shares, bei denen die Clients ein direktes kopieren initiieren können?

Grüße

Benutzeravatar
crane
Beiträge: 145
Registriert: 03.01.2006 15:43:18
Wohnort: Marburg
Kontaktdaten:

Re: Netzwerkkopieren zwischen Samba-Shares lahm

Beitrag von crane » 12.02.2012 19:25:30

Grüß dich

Eine kurze Aufklärung, warum der Durchsatz so gering ist.
Sagen wir, es gilt share1 IP 192.168.0.2 ----- Windows Client 192.168.0.3 ---- share2 192.168.0.2
1. Du hast recht, denn zunächst werden die Pakete vom share1 zum Windows Client gesendet. Dieser sendet die Pakete anschließend zurük an share2.

2. Nein, samba weiß gar nichts davon, dass die Daten nur vom einen auf den anderen Share kopiert werden, denn Windows fordert die Daten vom share1 an, was in Paketen geschieht. Die Pakete erhalten als Quelle die IP 192.168.0.2 und als Ziel 192.168.0.3. Was Windows aber nun letztendlich mit den Paketen macht, davon bekommt der samba Server nichts mit. Anschließend erhält der samba Server vom Windows Client Pakete gesendet. Woher diese Pakete aber stammen, kann der samba Client nicht erkennen. Die Quell IP Adresse ist 192.168.0.3 und das Ziel ist 192.168.0.2

Bei Fragen einfach fragen :)

Grüße

shh
Beiträge: 140
Registriert: 16.06.2002 14:29:44

Re: Netzwerkkopieren zwischen Samba-Shares lahm

Beitrag von shh » 13.02.2012 02:13:25

Danke für die Erläuterung zunächst mal.

Dem ganze Prinzip des "unwissenden Samba", was nur Daten von Quelle nach Ziel schickt, widerspricht, dass Samba Dateien innerhalb eines shares sehr wohl ohne Netzwerk-Kopiervorgang verschieben kann. Beispielsweise von einem Unterverzeichnis ins andere.
Der Client-Befehl an den Samba-Server ist hierbei gleich(!), nur dass Samba da anscheinend erkennt, dass es sich um die selbe Platte handelt, und dass der Befehl einfach nur als Verschiebungs-Befehl ans Dateisystem weitergegeben werden kann.
Bei zwei eingebauten Platten könnte dies von Samba eigentlich auch erkannt werden, dass nicht "ewig" über Netzwerk hin- und herkopiert werden müsste. Warum wird das nicht erkannt und abgekürzt?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Netzwerkkopieren zwischen Samba-Shares lahm

Beitrag von rendegast » 13.02.2012 03:35:08

Du könntest die eine Platte in die andere mounten, und das als ein share anbieten?

Zwei Netzwerkkarten verwenden,
jedes share separat an eine Karte binden?
(samba für jedes share separat starten, unterschiedliche smb.conf, 'interfaces' + 'bind interfaces only')
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

shh
Beiträge: 140
Registriert: 16.06.2002 14:29:44

Re: Netzwerkkopieren zwischen Samba-Shares lahm

Beitrag von shh » 14.02.2012 14:33:30

rendegast hat geschrieben:Du könntest die eine Platte in die andere mounten, und das als ein share anbieten?
Das scheint bei Verschiebungen zu klappen, allerdings friert der Dialog über den den ganzen Vorgang hin ein. Ob das tatsächlich schneller geht, kann ich hier nicht messen. Und ob Windows überhaupt so lange auf längere Verschiebevorgänge wartet und nicht irgendwann abbricht, weiß ich auch nicht.
Beim Kopieren bringt das gar nichts: Zwar Fortschrittsanzeige, aber keine Verbesserung vom Durchsatz. Momentan zeigt er zwar ~28-30MB/s an, also schon besser, aber die paar MB/s mehr dürften eher an der Platte selber liegen.
rendegast hat geschrieben:Zwei Netzwerkkarten verwenden, jedes share separat an eine Karte binden?
(samba für jedes share separat starten, unterschiedliche smb.conf, 'interfaces' + 'bind interfaces only')
Selbst wenn ich zwei Netzwerkkarten hätte (ich hab leider auch nicht die Möglichkeit eine zweite Karte einzubauen), hätte ich dabei doch zwei Samba-Server laufen und eben jedes auf ein ethX-device. Bei einem Verschiebe/Kopiervorgang "redet" der eine Server mit dem anderen und schickt die Daten über die Devices, also über's Netzwerkkabel raus. Also gleiches Problem: Lahm.
Oder meintest du irgendein anderes Konstrukt mit virtueller Netzwerkkarte (loopback, vpn)?

Ich hab ja eigentlich Glück mit dem GBit-Ethernet. Hätte ich noch 100MBit wäre das Problem ja noch gravierender.
Nun funktioniert der Fortschrittsbalken glaube ich nur, wenn beim Client auch Daten ankommen und wieder verschickt werden. Verschiebevorgänge werden ja direkt an den Server weitergegeben(?)
Deshalb hier nochmals meine Frage eingangs, ob man denn Verschieben/Kopieren (auch zwichen shares) direkt an den Samba-Server übertragen kann ggf. mit welcher Option.
Falls das grundsätzlich nicht möglich ist, gibt's dafür andere Protokolle? NFS vielleicht? Dabei werden aber dann wahrscheinlich auch keine Statusmeldungen (Kopierfortschritt) übertragen... Hmm.

Grüße...

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Netzwerkkopieren zwischen Samba-Shares lahm

Beitrag von rendegast » 14.02.2012 14:57:06

Selbst wenn ich zwei Netzwerkkarten hätte (ich hab leider auch nicht die Möglichkeit eine zweite Karte einzubauen), hätte ich dabei doch zwei Samba-Server laufen und eben jedes auf ein ethX-device.
Ich hatte daran gedacht, daß es vielleicht an der Karte / dem Treiber liegt,
und deswegen das full-duplex zusammenbricht.
Bei zwei Interfaces sollte jeweils die volle Datenrate zur Verfügung stehen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten