เราใส่ 4 พอร์ตIntel I340-T4 NIC ใน FreeBSD 9.3 เซิร์ฟเวอร์1และกำหนดค่าสำหรับการรวมลิงค์ในโหมด LACPในความพยายามที่จะลดเวลาที่ใช้ในการกระจก 8-16 TiB ข้อมูลจากไฟล์เซิร์ฟเวอร์หลักเพื่อ 2- 4 โคลนในแบบคู่ขนาน เราคาดหวังว่าจะได้รับแบนด์วิดธ์รวมสูงถึง 4 Gbit / วินาที แต่ไม่ว่าเราจะพยายามอะไรมันก็ไม่เคยออกมาเร็วกว่าการรวม 1 Gbit / วินาที 2
เรากำลังใช้iperf3
เพื่อทดสอบสิ่งนี้บน LAN ที่เงียบสงบ 3อินสแตนซ์แรกเกือบจะได้รับกิกะบิตตามที่คาดไว้ แต่เมื่อเราเริ่มต้นครั้งที่สองแบบขนานไคลเอนต์ทั้งสองจะลดความเร็วลงเหลือประมาณ½ Gbit / วินาที การเพิ่มลูกค้ารายที่สามลดความเร็วของลูกค้าทั้งสามให้เป็น ~ ⅓ Gbit / วินาทีและอื่น ๆ
เราได้ดูแลการตั้งค่าการiperf3
ทดสอบที่ทราฟฟิกจากไคลเอนต์ทดสอบทั้งสี่เข้าสู่สวิตช์ส่วนกลางในพอร์ตต่าง ๆ :
เราได้ตรวจสอบแล้วว่าเครื่องทดสอบแต่ละเครื่องมีเส้นทางอิสระกลับไปที่แร็คสวิตช์และเซิร์ฟเวอร์ไฟล์ NIC และสวิตช์ทั้งหมดมีแบนด์วิดท์เพื่อดึงข้อมูลนี้โดยแยกlagg0
กลุ่มและกำหนดที่อยู่ IP แยกต่างหากให้กับแต่ละเครื่อง ของสี่อินเตอร์เฟสในการ์ดเครือข่าย Intel นี้ ในการกำหนดค่านั้นเราได้แบนด์วิดท์รวมที่ ~ 4 Gbit / วินาที
เมื่อเราเริ่มต้นลงเส้นทางนี้เรากำลังทำเช่นนี้กับเก่าสวิทช์ SMC8024L2 การจัดการ (แผ่นข้อมูล PDF ขนาด 1.3 MB.) มันไม่ใช่สวิตช์ระดับสูงที่สุดของวัน แต่ควรจะทำเช่นนี้ได้ เราคิดว่าสวิตช์อาจผิดปกติเนื่องจากอายุของมัน แต่การอัพเกรดเป็นHP 2530-24G ที่มีความสามารถมากกว่านั้นไม่เปลี่ยนอาการ
สวิตช์ HP 2530-24G อ้างว่าสี่พอร์ตที่มีปัญหานั้นได้รับการกำหนดค่าให้เป็น LACP trunk แบบไดนามิก:
# show trunks
Load Balancing Method: L3-based (default)
Port | Name Type | Group Type
---- + -------------------------------- --------- + ----- --------
1 | Bart trunk 1 100/1000T | Dyn1 LACP
3 | Bart trunk 2 100/1000T | Dyn1 LACP
5 | Bart trunk 3 100/1000T | Dyn1 LACP
7 | Bart trunk 4 100/1000T | Dyn1 LACP
เราได้ลองใช้ LACP ทั้งแบบพาสซีฟและแอคทีฟแล้ว
เราได้ตรวจสอบแล้วว่าพอร์ต NIC ทั้งสี่พอร์ตได้รับปริมาณการใช้ข้อมูลในฝั่ง FreeBSD ด้วย:
$ sudo tshark -n -i igb$n
อย่างผิดปกติtshark
แสดงให้เห็นว่าในกรณีของลูกค้าเพียงคนเดียวสวิตช์จะแยกสตรีม 1 Gbit / วินาทีผ่านสองพอร์ต (ทั้งสวิตช์ SMC และ HP แสดงพฤติกรรมนี้)
เนื่องจากแบนด์วิดธ์รวมของลูกค้าจะมารวมกันในที่เดียว - ที่สวิตช์ในชั้นวางของเซิร์ฟเวอร์ - เท่านั้นที่มีการกำหนดค่าสวิตช์สำหรับ LACP
ไม่สำคัญว่าเราจะเริ่มลูกค้ารายใดก่อน
ifconfig lagg0
ทางฝั่ง FreeBSD พูดว่า:
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=401bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
ether 90:e2:ba:7b:0b:38
inet 10.0.0.2 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::92e2:baff:fe7b:b38%lagg0 prefixlen 64 scopeid 0xa
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: active
laggproto lacp lagghash l2,l3,l4
laggport: igb3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: igb2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: igb1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: igb0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
เราได้ใช้คำแนะนำในคู่มือการปรับแต่งเครือข่าย FreeBSDให้เหมาะสมกับสถานการณ์ของเรา (ส่วนใหญ่ไม่เกี่ยวข้องเช่นสิ่งที่เกี่ยวกับการเพิ่ม max FDs)
เราได้ลองปิดการแบ่งส่วน TCP ออกโดยไม่มีการเปลี่ยนแปลงในผลลัพธ์
เราไม่มีเซิร์ฟเวอร์ 4 พอร์ตที่สอง NIC เพื่อตั้งค่าการทดสอบครั้งที่สอง เนื่องจากการทดสอบที่ประสบความสำเร็จด้วยส่วนต่อประสานที่แยกจากกัน 4 ตัวเราจึงดำเนินการสมมติว่าไม่มีฮาร์ดแวร์ใดเสียหาย 3
เราเห็นเส้นทางเหล่านี้ไปข้างหน้าไม่มีใครสนใจ:
ซื้อสวิตช์ที่ใหญ่กว่าและแย่กว่าหวังว่าการติดตั้ง LACP ของ SMC จะแย่ลงและสวิตช์ใหม่จะดีขึ้น(การอัพเกรดเป็น HP 2530-24G ไม่ได้ช่วย)มองที่การ
lagg
กำหนดค่าFreeBSD อีกหวังว่าเราจะพลาดบางสิ่ง 4ลืมการรวมลิงก์และใช้ round-robin DNS เพื่อให้เกิดความสมดุลในการโหลดแทน
แทนที่เซิร์ฟเวอร์ NIC และสลับอีกครั้งคราวนี้ด้วย10 GigE stuff ที่ราคาฮาร์ดแวร์ประมาณ 4 เท่าของการทดลอง LACP นี้
เชิงอรรถ
ทำไมไม่ย้ายไปที่ FreeBSD 10 คุณถาม? เนื่องจาก FreeBSD 10.0-RELEASE ยังคงใช้พูล ZFS เวอร์ชัน 28 และเซิร์ฟเวอร์นี้ได้รับการอัพเกรดเป็นพูล ZFS 5000 ซึ่งเป็นคุณสมบัติใหม่ใน FreeBSD 9.3 10 xบรรทัดจะไม่ได้รับว่าจนถึง FreeBSD 10.1 เรือประมาณเดือนด้วยเหตุนี้ และไม่ต้องสร้างใหม่จากแหล่งที่มาเพื่อเข้าสู่ขอบเลือดออก 10.0-STABLE ไม่ใช่ตัวเลือกเนื่องจากนี่เป็นเซิร์ฟเวอร์ที่ใช้งานจริง
โปรดอย่าข้ามไปที่ข้อสรุป ผลการทดสอบของเราในคำถามจะบอกคุณว่าทำไมสิ่งนี้จึงไม่ซ้ำกับคำถามนี้
iperf3
เป็นการทดสอบเครือข่ายที่แท้จริง ในขณะที่เป้าหมายท้ายที่สุดคือการลองและเติมไปป์ที่รวม 4 Gbit / วินาทีจากดิสก์เรายังไม่ได้เกี่ยวข้องกับระบบย่อยของดิสก์Buggy หรือได้รับการออกแบบมาไม่ดีอาจจะ แต่ไม่มีอะไรแตกหักไปกว่าตอนที่มันออกจากโรงงาน
ฉันไม่ได้ทำแบบนั้น