1
Sítě / Re:SMB client - multichannel support
« Poslední příspěvek od Michal Šmucr kdy 21. 11. 2024, 23:53:40 »V poslední době jsem neměl moc potřebu tohle řešit, protože jsem používal buď rychlejší rozhraní nebo bonding (a víc klientů), ale je to zajímavé.
Zkusil jsem si to nasimulovat a musím říct, že se to chová dost specificky.
Pokus jsem dělal jen teď na QEMU/KVM virtuálu, kde jsem pak zalimitoval rychlost dvou síťovek na fyzický počítač (který byl zároveň CIFS klientem) na cca 1Gbit.
SMB multichannel připojení se povedlo.
Pro jistotu jsem to ověřil přes
Při čtení ze serveru to pak jelo pokaždé pouze přes adresu a síťovku, kterou jsem použil při připojování CIFS sdílené složky (tedy v mém případě první).
Ať jsem nastavoval, co chtěl, měnil způsoby čtení (iodepth, vlákna..), zkoušel různé nastavení SAMBY na serveru atp.
Monitoroval jsem na serveru i device statistiku přes sar (ze sysstatu) a data šla vždy jen přes jednu síťovku.
Ano podle toho by se zdálo, že to opravdu nefunguje (minimálně na agregaci rychlosti, failover jsem nezkoušel)
Nicméně pak jsem testoval zápis.
Pokud to bylo jednovláknový zápis s iodepth=1 (nebo třeba jednoduchý zápis z urandom přes dd), tak se to chovalo úplně stejně jako čtení - vše přes první síť.
Ale když jsem zvedl iodepth třeba na 4, nebo na server zapisoval víc souborů naráz, tak to vysaturovalo obě linky na max.
I při kopírování souboru v Nautilu (GNOME) na server to šlo v pohodě až na 220MB/s - kopírování tady evidentně také naplní delší frontu IO operací a ty pak jedou přes obě spojení/adresy.
Takže v tomhle testovacím prostředí to vypadá, že multichannel smysl má i z Linuxového CIFS klienta, ale jen pro zápis.
Možná by na to čtení teoreticky mohlo mít vliv i to, že mám s těmi virtuály specifickou topologii sítě s bridgem a pokud bych to opakoval třeba na dvou fyz. počítačích, kdy by měl každý dvě fyz. síťovky, tak by se to mohlo chovat odlišně.. Ale moc bych na to nesázel. Plus jsem dělal teď jen rychlý test, nehledal jsem nikde ve fórech, mailing listech atp.
Zkusil jsem si to nasimulovat a musím říct, že se to chová dost specificky.
Pokus jsem dělal jen teď na QEMU/KVM virtuálu, kde jsem pak zalimitoval rychlost dvou síťovek na fyzický počítač (který byl zároveň CIFS klientem) na cca 1Gbit.
SMB multichannel připojení se povedlo.
Pro jistotu jsem to ověřil přes
echo 1 >/proc/sys/kernel/sysrq
echo 1 >/proc/fs/cifs/cifsFYI
cat /proc/fs/cifs/DebugData
...kde pak bylo následující:
Server interfaces: 2 Last updated: 570 seconds ago
1) Speed: Unknown
Capabilities: None
IPv4: 192.168.202.240
Weight (cur,total): (1,1)
Allocated channels: 1
[CONNECTED]
2) Speed: Unknown
Capabilities: None
IPv4: 192.168.202.134
Weight (cur,total): (1,1)
Allocated channels: 1
[CONNECTED]
Při čtení ze serveru to pak jelo pokaždé pouze přes adresu a síťovku, kterou jsem použil při připojování CIFS sdílené složky (tedy v mém případě první).
Ať jsem nastavoval, co chtěl, měnil způsoby čtení (iodepth, vlákna..), zkoušel různé nastavení SAMBY na serveru atp.
Monitoroval jsem na serveru i device statistiku přes sar (ze sysstatu) a data šla vždy jen přes jednu síťovku.
Ano podle toho by se zdálo, že to opravdu nefunguje (minimálně na agregaci rychlosti, failover jsem nezkoušel)
Nicméně pak jsem testoval zápis.
Pokud to bylo jednovláknový zápis s iodepth=1 (nebo třeba jednoduchý zápis z urandom přes dd), tak se to chovalo úplně stejně jako čtení - vše přes první síť.
Ale když jsem zvedl iodepth třeba na 4, nebo na server zapisoval víc souborů naráz, tak to vysaturovalo obě linky na max.
I při kopírování souboru v Nautilu (GNOME) na server to šlo v pohodě až na 220MB/s - kopírování tady evidentně také naplní delší frontu IO operací a ty pak jedou přes obě spojení/adresy.
Takže v tomhle testovacím prostředí to vypadá, že multichannel smysl má i z Linuxového CIFS klienta, ale jen pro zápis.
Možná by na to čtení teoreticky mohlo mít vliv i to, že mám s těmi virtuály specifickou topologii sítě s bridgem a pokud bych to opakoval třeba na dvou fyz. počítačích, kdy by měl každý dvě fyz. síťovky, tak by se to mohlo chovat odlišně.. Ale moc bych na to nesázel. Plus jsem dělal teď jen rychlý test, nehledal jsem nikde ve fórech, mailing listech atp.