FreeBSD लिंक एकत्रीकरण एकल लिंक से तेज नहीं है


10

हम एक 4 बंदरगाह डाल इंटेल I340-T4 एक FreeBSD 9.3 सर्वर में एनआईसी 1 और के लिए इसे कॉन्फिगर लिंक एकत्रीकरण में LACP मोड 2- करने के लिए एक मास्टर फ़ाइल सर्वर से डेटा के 16 TiB के लिए समय यह दर्पण 8 लेता कमी करने की कोशिश में 4 क्लोन समानांतर में। हम 4 Gbit / sec समुच्चय बैंडविड्थ के लिए उठने की उम्मीद कर रहे थे, लेकिन कोई फर्क नहीं पड़ता कि हमने क्या कोशिश की है, यह कभी भी 1 Gbit / sec कुल से अधिक तेजी से नहीं निकलता है। 2

हम इसका उपयोग iperf3एक विलक्षण LAN पर कर रहे हैं । 3 पहला उदाहरण लगभग एक गीगाबिट को हिट करता है, जैसा कि अपेक्षित था, लेकिन जब हम समानांतर में एक दूसरे को शुरू करते हैं, तो दो क्लाइंट लगभग / Gbit / sec की गति में गिर जाते हैं। तीसरे ग्राहक को जोड़ने से तीनों ग्राहकों की गति ~ sec Gbit / sec, और इसी तरह आगे बढ़ती है।

हमने उन iperf3परीक्षणों को स्थापित करने में ध्यान रखा है, जो सभी चार परीक्षण ग्राहकों के ट्रैफ़िक अलग-अलग बंदरगाहों पर केंद्रीय स्विच में आते हैं:

LACP परीक्षण सेटअप

हमने सत्यापित किया है कि प्रत्येक परीक्षण मशीन में रैक स्विच पर एक स्वतंत्र पथ है और फ़ाइल सर्वर, उसका एनआईसी, और स्विच सभी में lagg0समूह को तोड़कर और प्रत्येक को एक अलग आईपी पता असाइन करने के लिए बैंडविड्थ है। इस इंटेल नेटवर्क कार्ड पर चार इंटरफेस में से। उस कॉन्फ़िगरेशन में, हमने ~ 4 Gbit / sec समुच्चय बैंडविड्थ हासिल किया।

जब हमने इस रास्ते को शुरू किया, तो हम एक पुराने SMC8024L2 प्रबंधित स्विच के साथ कर रहे थे । (पीडीएफ डेटाशीट, 1.3 एमबी।) यह अपने दिन का उच्चतम-अंत स्विच नहीं था, लेकिन ऐसा करने में सक्षम होना चाहिए। हमने सोचा कि इसकी उम्र के कारण स्विच में गलती हो सकती है, लेकिन बहुत अधिक सक्षम HP 2530-24G में अपग्रेड करने से लक्षण में बदलाव नहीं हुआ।

HP 2530-24G स्विच का दावा है कि प्रश्न में चार पोर्ट वास्तव में एक गतिशील LACP ट्रंक के रूप में कॉन्फ़िगर किए गए हैं:

# 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 / sec स्ट्रीम को विभाजित करता है, जाहिर है कि उनके बीच पिंग-पिंगिंग है। (एसएमसी और एचपी दोनों स्विच ने यह व्यवहार दिखाया।)

चूंकि क्लाइंट का एग्रीगेट बैंडविड्थ केवल एक ही स्थान पर एक साथ आता है - सर्वर के रैक में स्विच पर - केवल उस स्विच को एएसीपी के लिए कॉन्फ़िगर किया गया है।

इससे कोई फर्क नहीं पड़ता कि हम किस क्लाइंट को शुरू करते हैं, या हम उन्हें किस क्रम में शुरू करते हैं।

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 नेटवर्क ट्यूनिंग गाइड में उतनी ही सलाह दी है जितनी हमारी स्थिति के लिए। (इसमें से अधिकांश अप्रासंगिक है, जैसे कि अधिकतम एफडी बढ़ाने के बारे में सामान।)

हमने परिणामों में कोई बदलाव नहीं करने के साथ, टीसीपी विभाजन को बंद करने की कोशिश की है ।

दूसरे टेस्ट को सेट करने के लिए हमारे पास दूसरा 4-पोर्ट सर्वर NIC नहीं है। 4 अलग-अलग इंटरफेस के साथ सफल परीक्षण के कारण, हम इस धारणा पर चल रहे हैं कि कोई भी हार्डवेयर क्षतिग्रस्त नहीं है। 3

हम इन मार्गों को आगे देखते हैं, उनमें से कोई भी अपील नहीं है:

  1. एक बड़ा, बैडर स्विच खरीदें, यह उम्मीद करते हुए कि एसएमसी का एलएसीपी कार्यान्वयन केवल बेकार है, और यह कि नया स्विच बेहतर होगा। (HP 2530-24G में अपग्रेड करने से मदद नहीं मिली।)

  2. FreeBSD laggविन्यास को कुछ और देखें, उम्मीद है कि हम कुछ चूक गए। 4

  3. इसके बजाय लोड संतुलन को प्रभावित करने के लिए लिंक एकत्रीकरण को भूल जाएं और राउंड-रॉबिन डीएनएस का उपयोग करें।

  4. सर्वर एनआईसी को बदलें और फिर से स्विच करें, इस बार 10 गीगा सामान के साथ, इस एलएसीपी प्रयोग की लगभग 4 × हार्डवेयर लागत।


फुटनोट

  1. FreeBSD 10 में क्यों नहीं जाएं, आप पूछें? क्योंकि FreeBSD 10.0-RELEASE अभी भी ZFS पूल संस्करण 28 का उपयोग करता है, और इस सर्वर को ZFS पूल 5000 में अपग्रेड किया गया है, FreeBSD 9.3 में एक नई सुविधा है। 10. x लाइन तब तक नहीं मिलेगी जब तक FreeBSD 10.1 जहाजों के बारे में एक महीने नहीं । और नहीं, स्रोत से पुनर्निर्माण करके 10.0-स्टेबल ब्लीडिंग एज एक विकल्प नहीं है, क्योंकि यह एक उत्पादन सर्वर है।

  2. कृपया निष्कर्ष पर न जाएं। हमारे परीक्षा परिणाम बाद में प्रश्न में आपको बताते हैं कि यह इस प्रश्न का दोहराव क्यों नहीं है ।

  3. iperf3एक शुद्ध नेटवर्क परीक्षण है। हालाँकि अंतिम लक्ष्य डिस्क से उस 4 Gbit / sec समुच्चय पाइप को भरना और भरना है, हम अभी तक डिस्क सबसिस्टम को शामिल नहीं कर रहे हैं।

  4. छोटी गाड़ी या खराब डिज़ाइन, हो सकता है, लेकिन कारखाने से निकलते समय इससे अधिक टूटा नहीं।

  5. मैंने पहले ही ऐसा करने से किनारा कर लिया है।


1
मेरा प्रारंभिक अनुमान यह होगा कि यह हैशिंग एल्गोरिथ्म से संबंधित कुछ इस्तेमाल किया जा सकता है, लेकिन पैकेट का निरीक्षण करने की आवश्यकता होगी। अगर वह मदद नहीं करता है, तो टीसीपी विंडो को बदलने का प्रयास करें iperf कुछ बड़े का उपयोग करता है। लैग (4) मैन पेज में हैश ऑफलोडिंग को अक्षम करने के बारे में कुछ है, आप कोशिश कर सकते हैं।
जियोवानी टरलोनी

जवाबों:


2

सिस्टम और स्विच दोनों पर उपयोग में लोड संतुलन एल्गोरिदम क्या है?

इसके साथ मेरा सारा अनुभव लिनक्स और सिस्को पर है, फ्रीबीएसडी और एसएमसी पर नहीं, लेकिन वही सिद्धांत अब भी लागू होता है।

लिनक्स बॉन्डिंग ड्राइवर के LACP मोड पर और 2950 जैसे पुराने सिस्को स्विच पर डिफ़ॉल्ट लोड बैलेंसिंग मोड केवल मैक पते पर आधारित है।

इसका मतलब है कि यदि आपका सारा ट्रैफ़िक एक सिस्टम (फ़ाइल सर्वर) से एक दूसरे मैक (या तो एक डिफ़ॉल्ट गेटवे या स्विच पर स्विच किए गए वर्चुअल इंटरफ़ेस) में जा रहा है, तो स्रोत और गंतव्य मैक एक ही होगा, इसलिए केवल एक गुलाम कभी भी होगा इस्तेमाल किया गया।

आपके आरेख से ऐसा नहीं लगता कि आप डिफ़ॉल्ट गेटवे पर ट्रैफ़िक भेज रहे हैं, लेकिन मुझे यकीन नहीं है कि परीक्षण सर्वर 10.0.0.0/24 में हैं, या यदि परीक्षण सिस्टम अन्य सबनेट में हैं और इसके माध्यम से रूट किए जा रहे हैं स्विच पर एक परत 3 इंटरफ़ेस।

यदि आप स्विच पर रूटिंग कर रहे हैं, तो आपका जवाब होगा।

इसका समाधान एक अलग लोड संतुलन एल्गोरिदम का उपयोग करना है।

फिर से मुझे बीएसडी या एसएमसी के साथ अनुभव नहीं है, लेकिन लिनक्स और सिस्को एल 3 सूचना (आईपी पते) या एल 4 सूचना (पोर्ट नंबर) के आधार पर संतुलन कर सकते हैं।

जैसा कि आपके प्रत्येक परीक्षण सिस्टम में एक अलग आईपी होना चाहिए, L3 जानकारी के आधार पर संतुलन बनाने की कोशिश करें। यदि वह अभी भी काम नहीं करता है, तो आसपास के कुछ आईपी को बदलें और देखें कि क्या आप लोड बैलेंसिंग पैटर्न को बदलते हैं।


धन्यवाद, लेकिन आपका अनुमान गलत है। ऊपर दिखाया गया HP स्विच कॉन्फ़िगरेशन कहता है कि यह L3 संतुलन कर रहा है। इसके अलावा, ये एल 3 "स्विच नहीं हैं," उर्फ ​​रूटर्स। उनके पास केवल IG3 स्नूपिंग और LACP करने के लिए पर्याप्त L3 स्मार्ट हैं। भवन में एकमात्र सही राउटर इंटरनेट गेटवे में से एक है, जो ऊपर के परीक्षण आरेख के दृष्टिकोण से एक तरफ पैर पर है।
वारेन यंग

इससे कोई फर्क नहीं पड़ता कि यह एक L2 या L3 स्विच है, यह कॉन्फ़िगरेशन है जो बांड संतुलन को लोड करने के लिए उपयोग करता है जो एक अलग चीज है। स्विच में वीएलएएन के बीच मार्ग या एल 2 से परे यातायात में हेरफेर करने के लिए स्मार्ट नहीं हो सकता है, लेकिन बांड का लोड संतुलन एल्गोरिथ्म (शायद) हो सकता है।
23 अप्रैल को सुपरजामी

मैं देख रहा हूँ कि आपका स्विच ऊपर है Load Balancing Method: L3-based (default)। इसे बदलने का प्रयास करें।
23 अप्रैल को सुपरजामी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.