SMB限定のお話ですが、1枚のファイルの転送速度がNICの数で増やせるみたい。

Bonding/Teamingとかで物理的にnicを増やしてもそれは負荷分散、耐障害性への対応で1枚ファイルの転送速度の向上には繋がらない
&color(red){*};&size(10){愚生が知らないだけかもしれないけど...};

手元にVLAN設定可能なHUBがあるので、ファイルサーバ、クライアントともに複数のNICを備えSMBMulti-Channelを試してみた
配線の概要としては下記図になる
&ref(2017y12m19d_112334536.png,nolink,noborder);
&color(red){*};&size(10){VLAN設定可能なHUBであれば、上図の「メインHUB」「サブHUB1」「サブHUB2」は内包可能};


***ファイルサーバ側 [#w160a87e]
sambaサーバをファイルサーバとしてます。ActiveDirectoryは不要です。
&color(red){*};&size(10){samba4だからってADが必須ではないです。従来のAD関係無しのファイル共有も構築可能です};

ここではファイル共有に特化したsambaサーバとして作成して、その中でSMBMulti-Channelで必要な設定を示します
まずsambaサーバにnicカードを追加します。ここではオンボードの2つのnicの他に4portのnicカードを追加しました
#code(nonumber){{
[root@e ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether a0:36:9f:a1:5c:74 brd ff:ff:ff:ff:ff:ff
3: enp1s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether a0:36:9f:a1:5c:75 brd ff:ff:ff:ff:ff:ff
4: enp1s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
    link/ether a0:36:9f:a1:5c:76 brd ff:ff:ff:ff:ff:ff
5: enp1s0f3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
    link/ether a0:36:9f:a1:5c:77 brd ff:ff:ff:ff:ff:ff
6: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
    link/ether d0:50:99:c2:a0:eb brd ff:ff:ff:ff:ff:ff
7: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
    link/ether d0:50:99:c2:a0:ec brd ff:ff:ff:ff:ff:ff
[root@e ~]#
}}
な感じで認識され、下記のようにip addressをアサインします
|BGCOLOR(YELLOW):デバイス|BGCOLOR(YELLOW):ip address|BGCOLOR(YELLOW):備考|
|enp1s0f0|192.168.0.6/24(e.sybyl.local)|追加の4port NIC|
|enp1s0f1|192.168.1.6/24|~|
|enp1s0f2|192.168.2.6/24|~|

具体的なnmtui画面を下記に示します
&ref(2017y12m19d_113051365.png,nolink,noborder);
&color(red){*};&size(10){メインのHUBに繋がるNICにはGateway、DNS Serverを記述して、「Never use this ...」は無効にします};
ルーティング情報は下記になります
#code(nonumber){{
[root@e ~]# ip route
default via 192.168.0.1 dev enp1s0f0 proto static metric 100
192.168.0.0/24 dev enp1s0f0 proto kernel scope link src 192.168.0.6 metric 100
192.168.1.0/24 dev enp1s0f1 proto kernel scope link src 192.168.1.6 metric 100
192.168.2.0/24 dev enp1s0f2 proto kernel scope link src 192.168.2.6 metric 100
[root@e ~]#
}}

次に、sambaファイルサーバを構築してみます
#code(nonumber){{
[root@e ~]# yum install samba
[root@e ~]# mkdir /share
[root@e ~]# chown nobody:nobody /share
[root@e ~]# vi /etc/samba/smb.conf
[global]
  workgroup = MYGROUP
  log file = /var/log/samba/log.%m
  max log size = 50
  security = user
  load printers = No
  show add printer wizard = No
  printing = bsd
  printcap name = /dev/null
  guest account = nobody
  map to guest = Bad User

  server multi channel support = yes
  aio read size = 1
  aio write size = 1
[share]
  path = /share
  guest ok = yes
  writeable = yes

[root@e ~]#
}}
その後にsambaを起動します。
#code(nonumber){{
[root@e ~]# systemctl enable smb
[root@e ~]# systemctl start smb
}}

***クライアント側 [#f69868d4]
クライアントにも追加の2portNICを設置して、配線を行います。追加したnicにはip addressのみでDNSとかGWの指定はしません
&ref(2017y12m19d_212738654.png,nolink);
各ネットワークアダプタの設定項目は下記とした。別にこれ以外を追加しても問題ないみたい
&ref(2017y12m19d_213037052.png,nolink);

この状態で、PSから見ると
#code(nonumber){{
PS C:\Windows\system32> Get-SmbClientNetworkInterface

Interface Index RSS Capable RDMA Capable Speed    IpAddresses            Friendly Name
--------------- ----------- ------------ -----    -----------            -------------
15              False       False        1 Gbps   {192.168.2.21}         192.168.2
12              False       False        1 Gbps   {192.168.1.21}         192.168.1
10              False       False        1 Gbps   {192.168.0.21}         192.168.0

PS C:\Windows\system32>
}}
と表記された。「RSS Capable」がFALSEなのであるが、、、一応これでも動いた。。。
下図は、クライアント側からサーバ側へファイルをコピーしたときのスナップショット
&size(10){その逆の経路もほぼ同じ速度でコピーされていた};
&ref(2017y12m19d_213555596.png,nolink);
&color(red){*};FQDNな「\\e.sybyl.local\share\」とか「\\192.168.0.6\share\」でアクセスしないと
Multi-Channelを行ってくれなかった。他にも「\\192.168.&color(red){1};.6\share\」とか別の回線経由で一旦接続しないと
上手くMulti-Channelを行ってくれない時がある。原因は不明。微妙な気がする。
上手くMulti-Channelを行ってくれない時がある。原因は不明。微妙な気がするけど動きます。

***RSS [#y19b0eda]
インテル様の「I219-V」と「PRO/1000 PT Dual Port Server Adapter(82571EBチップ)」をwindows10で使った際、
RSSの設定項目があり、有効にしたが「&color(red){RSS Capable};」がFALSEであった。

マシン側のnicにRSS有効と無効が混在状態だとSMBMulti-Channelは無理なのかな?片方に寄せるなら大丈夫のように思えた

4portの「Ethernet Server Adapter I340-T4」だと「&color(red){RSS Capable};」がTrueになり、これも問題無しで
SMBMulti-Channelでの転送が行えた


***HUBは複数必要か? [#j20974d5]
ネットワークセグメントを分けるために複数のHUB(ここではVLAN)を使っているが、そうせずとも1つのHUBで
出来るよとの報告がある

https://www.reddit.com/r/homelab/comments/5p6gy6/my_experience_with_samba_and_smb_multi_channel/?st=jb4ttbho&sh=7e79019a

原理はルーティングを調整して特定のNICはサーバ側の特定のNICに繋がるように調整するってな具合

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS