7.9 KiB
| title | date | noSummary | featuredImage | categories | tags | author | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| [筆記] 用 proxmox & Mellanox SFP 網卡土炮 10G LAB | 2018-11-30T16:05:14+08:00 | false | https://h.cowbay.org/images/post-default-03.jpg |
|
|
Eric Chang |
想做一個 10G 的 LAB 環境出來已經很久了。
只是礙於10G RJ45的卡太貴了,然後光纖的種類又太複雜
如果直接在淘寶購買,很怕會買錯(什麼LC/FC LC/LC 多模單模 單芯雙芯 SFP/SFP+ 又是什麼光模塊的一大堆規格)
所以一直沒有付諸行動。
硬體的工作很久沒碰了,剛好在蝦皮看到有個賣家在賣 mellanox 的X2網卡,以在台灣的價格來說,算很便宜的 (550)
聊了一下,跟他請教了關於線材、光纖模塊的問題,回答也都很快很到位
就直接下訂了兩張網卡、兩個光纖模塊、一條LC/LC 光纖線
就是到貨有點久,等了兩個禮拜左右,一直到昨天東西才寄到
今天就花了點時間測試一下
先上個圖!
簡單說,就是有兩台機器,分別安裝 proxmox (一台是新裝的,另一台是本來就在線上的LAB用機器)以及光纖網卡
Mellanox 這張 X2 的卡, proxmox 5.1 / 5.2 可以直接抓到,所以不必另外安裝驅動程式
硬體安裝很順利,不過軟體的設定就碰到點麻煩了,所以才想說作個筆記..
必須作 vmbridge 才能指定這個網卡給VM用
安裝好網卡,開機,透過proxmox的WEB界面設定好網卡的資料後,原本以為可以直接使用了
但是proxmox 會提示需要重新開機才能變更設定
可是重新開機後,我兩台怎麼都ping不到對方
在這之前,我已經用兩台 ubuntu 18.04 client 測試過了,只要設定好IP就可以直接通
所以在這邊碰到這個問題,我滿訝異的
可是看網卡的燈號,明明就有亮起來,應該是正常的呀
原來,在proxmox 中,新增了網卡,並不是直接就可以拿來用
要先設定好 bridge ,然後才能起新的VM、指定新設定的 vmbridge 給這個新起的機器使用
Disk Cache type 要改
設定了新的 vmbridge 之後,就可以在新VM的設定畫面中,指定網卡走這個界面出去
可是這樣做出來的VM ,一直無法開機
錯誤訊息如下
kvm: -drive file=/zp/images/100/vm-100-disk-1.qcow2,if=none,id=drive-virtio0,format=qcow2,cache=none,aio=native,detect-zeroes=on: file system may not support O_DIRECT
kvm: -drive file=/zp/images/100/vm-100-disk-1.qcow2,if=none,id=drive-virtio0,format=qcow2,cache=none,aio=native,detect-zeroes=on: Could not open '/zp/images/100/vm-100-disk-1.qcow2': Invalid argument
TASK ERROR: start failed: command '/usr/bin/kvm -id 100 -name 123123 -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=da27a9ea-fd55-4542-b2a7-8d5b09bf7611' -smp '2,sockets=1,cores=2,maxcpus=2' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vga std -vnc unix:/var/run/qemu-server/100.vnc,x509,password -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce -m 2048 -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:b972d1ad783' -drive 'file=/zp/template/iso/ubuntu-18.04.1-live-server-amd64.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -drive 'file=/zp/images/100/vm-100-disk-1.qcow2,if=none,id=drive-virtio0,format=qcow2,cache=none,aio=native,detect-zeroes=on' -device 'virtio-blk-pci,drive=drive-virtio0,id=virtio0,bus=pci.0,addr=0xa,bootindex=100' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=A2:EA:45:EE:17:25,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300'' failed: exit code 1
當然先去拜google,果然就看到了提示,需要把 磁碟的 Cache 從預設的 Default(No Cache) 改成 write through
為什麼?我也不知道..不知道是不是因為我把磁碟種類選成用 Virtio Block 的關係
總之呢,改完之後就可以了 ...
必須手動設定路由
設定好新的VM,開機、設定IP、重開機之後,會發現還是ping 不到另一台機器..(翻桌!)
只好又去拜google ,就看到了底下這篇
https://forum.proxmox.com/threads/how-to-add-second-nic.40905/
大概點出了方向,必須要手動增加路由(感覺有點蠢)
像我的光纖網卡走的是 192.168.50.0/24 ,就要去把原有的192.168.50.0/24的路由給砍掉,然後再新增(是不是很蠢?)
root@ssd:/etc/network# ip route del 192.168.50.0/24
root@ssd:/etc/network# ip route add 192.168.50.0/24 dev vmbr1
root@ssd:/etc/network# ip route
default via 192.168.11.253 dev vmbr0 onlink
192.168.11.0/24 dev vmbr0 proto kernel scope link src 192.168.11.215
192.168.50.0/24 dev vmbr1 scope link
root@ssd:/etc/network#
OK ping 一下對面看能不能過
root@ssd:/etc/network# ping 192.168.50.10
PING 192.168.50.10 (192.168.50.10) 56(84) bytes of data.
64 bytes from 192.168.50.10: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from 192.168.50.10: icmp_seq=2 ttl=64 time=0.067 ms
64 bytes from 192.168.50.10: icmp_seq=3 ttl=64 time=0.080 ms
64 bytes from 192.168.50.10: icmp_seq=4 ttl=64 time=0.126 ms
^C
--- 192.168.50.10 ping statistics ---
GOOD !很好!通了一邊,另外一邊就照辦,兩邊都通了,就可以開始來測試速度了
p.s 這個路由不知道需不需要每次都手動增加,或者是有哪個config可以在開機時載入
沒記錯的話,應該是在 /etc/network/if-up.d/ 新增一個 route 檔案
不過這部份我不是很確定就是了
所以自己寫了一個 script 來用..
iperf 測試速度
在linux 上,我習慣用 iperf 來測試兩台主機的連接速度
兩邊都用 apt install iperf 裝好套件
然後找一台作為 server ,執行
iperf -s
然後到另一台,去執行
2018-11-30 15:36:58 [minion@ubuntu ~]$ iperf -d -t 600 -P 10 -c 192.168.50.200
WARNING: option -d is not valid for server mode
------------------------------------------------------------
Client connecting to 192.168.50.200, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.50.199 port 40980 connected with 192.168.50.200 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-600.0 sec 641 GBytes 9.18 Gbits/sec
哈哈哈,有目有!測試速度來到了 9.18 Gbits 啊! 就是一個爽啊!
記得那個 server IP 是你 VM 裡面設定的 IP,不是 proxmox 上面的
同場加映走 1Gb 網路的測試結果
2018-11-30 16:39:37 [minion@ubuntu ~]$ iperf -d -t 600 -P 10 -c 192.168.11.171
WARNING: option -d is not valid for server mode
------------------------------------------------------------
Client connecting to 192.168.11.171, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.11.55 port 38582 connected with 192.168.11.171 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-600.0 sec 65.8 GBytes 941 Mbits/sec
192.168.11.171 跟 192.168.50.200 是同一台機器,只是一個是10G網卡,一個是onboard的 1Gb 網卡
速度果然是提高了十倍呀,果然就是一個爽啊!!


