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に繋がるように調整するってな具合