SMB3 client in linux voor Multipath I/O

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Tha Ra
  • Registratie: Oktober 2005
  • Laatst online: 14-05 07:43
Beste Tweakers,

Sinds kort heb ik mijn PC en NAS via getrunkte gigabitverbindingen aangesloten en wil ik kijken of ik de Multipath I/O-feature van het SMB3 protocol werkend kan krijgen om zo hogere doorvoorsnelheden te krijgen. Echter krijg ik het idee dat mijn file manager (Nautilus in Ubuntu) of het onderliggende systeem dit niet ondersteunt en maar tot versie 2.x gaat. Kan iemand mij vertellen of dit mogelijk is en hoe?

Relevante software en hardware die ik gebruik:
  • Client met Ubuntu 16.10LTS en dual Intel NICs
  • Server met FreeNAS 9.10, Samba 4.3.11 en dual intel NICs
  • HP Procurve managed switch met LACP ingesteld
Helaas heb ik niemand gevonden die een vergelijkbaar probleem heeft, ik ben er ook niet achter welke versies van SMB zijn ondersteund door Nautilus (of GVfs). Het enige waar ik op uit kom zijn mensen die samba-servers willen draaien met SMB3 op Linux, maar het gaat mij juist om de client.
Wanneer ik in FreeNAS bij de CIFS-instellingen een minimumprotocol van 3_00 forceer, vindt de Ubuntu-machine hem wel maar kan er niet mee verbinden. Iemand enig idee?

Beste antwoord (via Tha Ra op 25-08-2016 14:29)


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Ik denk dat je het idee van SMB multichannel niet helemaal begrijpt.
Bij multichannel wordt door de client en server besloten 1 of meerdere netwerkkaarten te gebruiken.
Als jij je interface op OS niveau al in een team zet, heeft de applicatie maar 1 interface (meestal zal die bond0 heten).

Voor echte multichannel moet je losse interfaces gebruiken, met aparte IP addressen. Dus een eth0, eth1 etc.

Overigens is een bond vaak net zo efficient als een echte multichannel, zolang de switch waar je het op aan sluit maar LACP (802.3ad) ondersteund en je bond in mode "4" draait. Bij XOR of andere loadbalancing technieken gebruik je maar 1 interface.

Qua ondersteuning vanuit Samba:

Een recentere presentatie (april 2016)
http://events.linuxfounda...s/smb3-in-samba.pr__0.pdf
Het schijnt er in te zitten vanaf versie 4.4. Check dus eerst eens of jouw versie wel zo recent is.

Slide 29 somt het mooi op:
1 messaging rewrite using unix dgm sockets with sendmsg
[DONE,4.2]
2 add fd-passing to messaging [DONE,4.2]
3 preparations in internal structures [DONE,4.4]
4 prepare code to cope with multiple channels [DONE,4.4]
5 implement smbd message to pass a tcp socket [DONE,4.4]
6 transfer connection in Negotiate (by ClientGUID) [DONE,4.4]
7 implement session bind [DONE,4.4]
8 implement channel epoch numbers [DONE,4.4]
9 implement interface discovery [DONE(linux/conf),4.4]
10 implement test cases [WIP(isn’t it always?... ,)]
11 implement fd-passing in socket-wrapper [WIP]
12 implement lease break replay [TODO]
In de relase notes:
https://www.samba.org/samba/history/samba-4.4.0.html
In Samba, multi-channel can be enabled by setting the new
smb.conf option "server multi channel support" to "yes".
It is disabled by default.
Let ook op het volgende stukje (best logisch, als je naar de TODO list kijkt
CAVEAT: While this should be working without problems mostly,
there are still corner cases in the treatment of channel failures
that may result in DATA CORRUPTION when these race conditions hit.
It is hence

NOT RECOMMENDED TO USE MULTI-CHANNEL IN PRODUCTION

at this stage. This situation can be expected to improve during
the life-time of the 4.4 release. Feed-back from test-setups is
highly welcome.

We are pentium of borg. Division is futile. You will be approximated.

Alle reacties


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 17:40

thunder7

houten vaas/schaal nodig?

handmatig mounten? mount -t cifs enzovoorts?

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • Xudonax
  • Registratie: November 2010
  • Laatst online: 16:36
Volgens mij moet je voor multipath bij SMB juist géén trunks aanleggen, maar gewoon zorgen dat zowel de server als de client meerdere ethernet aansluitingen hebben. Oh, en je moet minstens evenveel CPU cores hebben als dat je ethernetverbindingen wilt gebruiken dacht ik. Volgens mij word er één verbinding per CPU core opgezet.

Acties:
  • 0 Henk 'm!

  • Tha Ra
  • Registratie: Oktober 2005
  • Laatst online: 14-05 07:43
Dank voor de reacties zover!
thunder7 schreef op woensdag 24 augustus 2016 @ 19:12:
handmatig mounten? mount -t cifs enzovoorts?
Met mount.cifs krijg ik de volgende foutmelding als de server op SMB3 of hoger staat:
code:
1
2
mount error(95): Operation not supported
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Wanneer ik geen minimum protocol instel, mount hij gewoon (maar waarschijnlijk op een lagere versie dus).
Xudonax schreef op woensdag 24 augustus 2016 @ 19:17:
Volgens mij moet je voor multipath bij SMB juist géén trunks aanleggen, maar gewoon zorgen dat zowel de server als de client meerdere ethernet aansluitingen hebben. Oh, en je moet minstens evenveel CPU cores hebben als dat je ethernetverbindingen wilt gebruiken dacht ik. Volgens mij word er één verbinding per CPU core opgezet.
Dat eerste weet ik niet zeker, daarom wil ik het testen door in elk geval met het juiste protocol te verbinden. De NAS heeft een quadcore E3, dus het aantal threads zit wel goed, maar bedankt voor de tip.

[ Voor 17% gewijzigd door Tha Ra op 24-08-2016 21:13 ]


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 17:40

thunder7

houten vaas/schaal nodig?

Als ik https://wiki.samba.org/index.php/Samba3/SMB2#Multi_Channel lees, is het mounten van zoiets nog work-in-progress?

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Ik denk dat je het idee van SMB multichannel niet helemaal begrijpt.
Bij multichannel wordt door de client en server besloten 1 of meerdere netwerkkaarten te gebruiken.
Als jij je interface op OS niveau al in een team zet, heeft de applicatie maar 1 interface (meestal zal die bond0 heten).

Voor echte multichannel moet je losse interfaces gebruiken, met aparte IP addressen. Dus een eth0, eth1 etc.

Overigens is een bond vaak net zo efficient als een echte multichannel, zolang de switch waar je het op aan sluit maar LACP (802.3ad) ondersteund en je bond in mode "4" draait. Bij XOR of andere loadbalancing technieken gebruik je maar 1 interface.

Qua ondersteuning vanuit Samba:

Een recentere presentatie (april 2016)
http://events.linuxfounda...s/smb3-in-samba.pr__0.pdf
Het schijnt er in te zitten vanaf versie 4.4. Check dus eerst eens of jouw versie wel zo recent is.

Slide 29 somt het mooi op:
1 messaging rewrite using unix dgm sockets with sendmsg
[DONE,4.2]
2 add fd-passing to messaging [DONE,4.2]
3 preparations in internal structures [DONE,4.4]
4 prepare code to cope with multiple channels [DONE,4.4]
5 implement smbd message to pass a tcp socket [DONE,4.4]
6 transfer connection in Negotiate (by ClientGUID) [DONE,4.4]
7 implement session bind [DONE,4.4]
8 implement channel epoch numbers [DONE,4.4]
9 implement interface discovery [DONE(linux/conf),4.4]
10 implement test cases [WIP(isn’t it always?... ,)]
11 implement fd-passing in socket-wrapper [WIP]
12 implement lease break replay [TODO]
In de relase notes:
https://www.samba.org/samba/history/samba-4.4.0.html
In Samba, multi-channel can be enabled by setting the new
smb.conf option "server multi channel support" to "yes".
It is disabled by default.
Let ook op het volgende stukje (best logisch, als je naar de TODO list kijkt
CAVEAT: While this should be working without problems mostly,
there are still corner cases in the treatment of channel failures
that may result in DATA CORRUPTION when these race conditions hit.
It is hence

NOT RECOMMENDED TO USE MULTI-CHANNEL IN PRODUCTION

at this stage. This situation can be expected to improve during
the life-time of the 4.4 release. Feed-back from test-setups is
highly welcome.

We are pentium of borg. Division is futile. You will be approximated.


  • Tha Ra
  • Registratie: Oktober 2005
  • Laatst online: 14-05 07:43
Rainmaker schreef op donderdag 25 augustus 2016 @ 13:39:
Ik denk dat je het idee van SMB multichannel niet helemaal begrijpt.
Bij multichannel wordt door de client en server besloten 1 of meerdere netwerkkaarten te gebruiken.
Als jij je interface op OS niveau al in een team zet, heeft de applicatie maar 1 interface (meestal zal die bond0 heten).

Voor echte multichannel moet je losse interfaces gebruiken, met aparte IP addressen. Dus een eth0, eth1 etc.

Overigens is een bond vaak net zo efficient als een echte multichannel, zolang de switch waar je het op aan sluit maar LACP (802.3ad) ondersteund en je bond in mode "4" draait. Bij XOR of andere loadbalancing technieken gebruik je maar 1 interface.

Qua ondersteuning vanuit Samba:

Een recentere presentatie (april 2016)
http://events.linuxfounda...s/smb3-in-samba.pr__0.pdf
Het schijnt er in te zitten vanaf versie 4.4. Check dus eerst eens of jouw versie wel zo recent is.

Slide 29 somt het mooi op:

[...]


In de relase notes:
https://www.samba.org/samba/history/samba-4.4.0.html


[...]


Let ook op het volgende stukje (best logisch, als je naar de TODO list kijkt

[...]
Bedankt voor je uitgebreide reactie! Ik draai versie 4.3, dus multi-channel zit er dan nog niet in denk ik. Wellicht in een toekomstige versie.

Wat bedoel je trouwens met mode 4? Is dit een instelling op de switch op op de clients? Op de switch heb ik gewoon LACP ingesteld op de poorten waar de PC en NAS aan hangen.
Op Ubuntu kan ik bij mode kiezen uit:
  • Round-robin
  • Active backup
  • XOR
  • Broadcast
  • 802.3ad
  • Adaptive transmit load balancing
  • Adaptive load balancing
Hier heb ik voor 802.3ad gekozen

Op FreeNAS kan ik kiezen uit:
  • Failover
  • FEC
  • LACP
  • Load Balance
  • Round Robin
  • None
Hier heb ik voor LACP gekozen (dat is volgens mij hetzelfde als 802.3ad?)

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:21

Hero of Time

Moderator LNX

There is only one Legend

Tha Ra, die dingen kan je makkelijk met Google vinden en in de documentatie van Bonding op Linux. ;) Sterker nog, je hoeft het niet eens door Google heen te gooien, Wikipedia: Link aggregation heeft al alles voor je.

Commandline FTW | Tweakt met mate


  • Tha Ra
  • Registratie: Oktober 2005
  • Laatst online: 14-05 07:43
Hero of Time schreef op donderdag 25 augustus 2016 @ 15:03:
Tha Ra, die dingen kan je makkelijk met Google vinden en in de documentatie van Bonding op Linux. ;) Sterker nog, je hoeft het niet eens door Google heen te gooien, Wikipedia: Link aggregation heeft al alles voor je.
Dat was inderdaad niet zo lastig te vinden, hij stond inderdaad al op mode 4. Ik was echter in de war omdat ik de GUI gebruikte ipv de configuratiefiles Het zal de hitte zijn :D

@Rainmaker: je zegt dat LACP vaak net zo goed werkt als Multipath, betekent dit dat het toch zou moeten werken in mijn huidige setup (dus beide systemen met 802.3ad geconfigureerd)?

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:21

Hero of Time

Moderator LNX

There is only one Legend

Tha Ra schreef op donderdag 25 augustus 2016 @ 15:23:
[...]

Dat was inderdaad niet zo lastig te vinden, hij stond inderdaad al op mode 4. Ik was echter in de war omdat ik de GUI gebruikte ipv de configuratiefiles Het zal de hitte zijn :D
Omdat ik het ook warm heb, zullen we het daar maar op houden. ;)
@Rainmaker: je zegt dat LACP vaak net zo goed werkt als Multipath, betekent dit dat het toch zou moeten werken in mijn huidige setup (dus beide systemen met 802.3ad geconfigureerd)?
Kijk eens welke doorvoersnelheid je haalt. Dan weet je het. ;) En dan niet alleen de snelheid die je over SMB haalt uiteraard, want als die niet super hoog is, weet je nog niet of je LACP config werkt.

Commandline FTW | Tweakt met mate


  • Tha Ra
  • Registratie: Oktober 2005
  • Laatst online: 14-05 07:43
Hero of Time schreef op donderdag 25 augustus 2016 @ 16:06:
Kijk eens welke doorvoersnelheid je haalt. Dan weet je het. ;) En dan niet alleen de snelheid die je over SMB haalt uiteraard, want als die niet super hoog is, weet je nog niet of je LACP config werkt.
Ik haal een consistente leessnelheid van 120 MiB/s over SMB, op de server haal ik een lokale leessnelheid van 450 MiB/s.

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:21

Hero of Time

Moderator LNX

There is only one Legend

En netwerk an sich? * Hero of Time mompelt iets met iperf ofzo....

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

[b][message=48095773,noline]Tha Ra schreef op donderdag 25 augustus 2016

@Rainmaker: je zegt dat LACP vaak net zo goed werkt als Multipath, betekent dit dat het toch zou moeten werken in mijn huidige setup (dus beide systemen met 802.3ad geconfigureerd)?
Ja, dat klopt. Je zou met die instellingen de volledige 2x1 gbit moeten kunnen halen, zowel up als down.

Je 1e benchmark (leessnelheid van 120MB/s) doet vermoeden dat je maar 1 channel gebruikt.

Maar dat is dan een probleem met "het bonden van je interfaces" en niet met "het aan de praat krijgen van smb multichannel".

Andere oorzaken voor een wat generiekere "slechte netwerk / samba performance" kan natuurlijk ook. Bijvoorbeeld jumbo frames, socket opties, tcp buffers of gewoon packet loss.

Zijn nog een beetje teveel opties om iets zinnigs te zeggen. Benchmark netwerk, probeer NFS / FTP / HTTP, kijk welke interface daadwerkelijk gebruikt wordt etc.

We are pentium of borg. Division is futile. You will be approximated.

Pagina: 1