Apa perbedaan antara mode bonding saluran di Linux?

8

Di Linux Anda dapat menggabungkan beberapa antarmuka jaringan menjadi antarmuka jaringan "terikat" untuk menyediakan failover.

Tetapi ada beberapa mode, beberapa di antaranya tidak memerlukan dukungan sakelar. Saya tidak dibatasi pada saklar saya bahwa saya dapat menggunakan salah satu mode.

Namun, dalam membaca tentang mode yang berbeda itu tidak segera jelas apa pro dan kontra dari masing-masing.

  1. Apakah beberapa mode menyediakan failover yang lebih cepat?
  2. Bagaimana dengan dampak beban CPU untuk setiap mode?
  3. Mode mana yang dapat menggabungkan bandwidth dan bukan hanya menyediakan redundansi?
  4. Apakah ada batasan untuk itu?
  5. Apakah balance-rr memerlukan dukungan sakelar?
  6. Keandalan? Apa pengalaman Anda dalam jangka panjang?
Mat
sumber
Anda telah membaca bagaimana cara mengikat Kernel , bukan? Itu harus menjawab pertanyaan Anda.
the-wabbit
Ya, itu memberi tahu Anda apa yang mereka lakukan sampai taraf tertentu. Tapi itu tidak memberi tahu Anda seberapa baik kinerjanya dalam lingkungan produksi. Ada yang mengatakan "tidak perlu dukungan sakelar". Sementara yang lain tidak memiliki komentar dan membuat Anda menebak.
Matt
Tidak yakin mengapa downvote. Ini adalah pertanyaan yang benar-benar valid dan pada topik bukan?
Matt
Siapa pun yang melakukan voting turun dan / atau voting dekat harap berikan alasan sehingga saya setidaknya bisa mendapatkan kesempatan untuk meningkatkan pertanyaan.
Matt
Saya curiga suara itu turun, mungkin karena cara pertanyaan Anda diajukan sepertinya Anda tidak melakukan banyak penelitian atau membaca dokumentasi sebelum Anda menanyakannya. Lihat tip alat suara bawah.
Zoredache

Jawaban:

9
  1. Faktor terbesar dalam fail-over adalah kecepatan kegagalan link terdeteksi. Cabut kabel dari host dan semuanya akan bekerja dengan baik. Tinggalkan tautan langsung pada sakelar yang mati dan sebagian besar mode (kecuali untuk yang mendukung suar / keepalives) tidak akan mengirim bagian dari lalu lintas Anda ke mana pun.

  2. Secara umum lalu lintas jaringan didorong oleh interupsi. Berbagai algoritma hashing tidak akan membuat perbedaan yang berarti.

  3. Mode apa pun yang tidak aktif / siaga atau siaran-semua akan berbagi lalu lintas ke berbagai derajat. Beberapa mode dapat menyeimbangkan pada basis per paket, yang lain bekerja pada basis per-aliran. Yang pertama akan menyebarkan beban secara lebih merata sedangkan yang kedua jauh lebih berguna (baca: fungsional / stabil) di jaringan yang sebenarnya.

  4. Ya - ada batasan untuk setiap mode, tetapi kami perlu tahu lebih banyak tentang aplikasi Anda untuk berbicara dengannya.

  5. Hanya LACP / 802.3ad (mode 4) yang secara eksplisit membutuhkan dukungan pada sakelar. Yang mengatakan, hanya karena Anda mengirim ke switch dengan pola tertentu tidak berarti switch akan mengirim -kembali- kepada Anda dengan cara yang sama.

  6. Satu-satunya mode yang cenderung saya percayai pada produksi adalah 802.3ad yang, dengan sakelar yang dikonfigurasi dengan tepat, akan memastikan bahwa hanya tautan yang benar yang akan berakhir di saluran serta memberikan beberapa ukuran simetri dalam pembagian lalu lintas dan respons yang dapat diprediksi ketika suatu tautan sedang down. Mode ini juga menghindari beberapa masalah umum tapi tidak menyenangkan (mis. Banjir unicast). Aktif / siaga juga cukup umum. Mode lain mungkin diperlukan untuk kondisi tertentu tetapi, IMO, cenderung lebih menyakitkan.

Mode penyeimbangan berbasis aliran / MAC / IP lainnya atau aktif / siaga juga baik-baik saja, dan mungkin diperlukan saat berurusan dengan sakelar yang tidak dikelola.

rnxrx
sumber
10

Sebagian besar poin-poin ini dijelaskan secara menyeluruh dalam /usr/src/linux/Documentation/networking/bonding.txtfile dokumentasi dari paket sumber linux dari distro favorit Anda. Kecepatan failover dikendalikan oleh parameter "miimon" untuk sebagian besar mode, tetapi tidak boleh diset terlalu rendah; nilai normal berada di bawah satu detik.

Inilah bagian-bagian terbaik, diselesaikan oleh saya:

   balance-rr or 0
       Round-robin policy: Transmit packets in sequential
       order from the first available slave through the
       last. This mode provides load balancing and fault
       tolerance. 


   active-backup or 1
       Active-backup policy: Only one slave in the bond is
       active.  A different slave becomes active if, and only
       if, the active slave fails. The bond's MAC address is
       externally visible on only one port (network adapter)
       to avoid confusing the switch.

       This mode provides fault tolerance. The "primary"
       option affects the behavior of this mode.

   balance-xor or 2
       XOR policy: Transmit based on the selected transmit
       hash policy.  The default policy is a simple [(source
       MAC address XOR'd with destination MAC address) modulo
       slave count].  Alternate transmit policies may be
       selected via the xmit_hash_policy option.

       This mode provides load balancing and fault tolerance.

   broadcast or 3
       Broadcast policy: transmits everything on all slave
       interfaces.  This mode provides fault tolerance.

   802.3ad or 4
       IEEE 802.3ad Dynamic link aggregation.  Creates
       aggregation groups that share the same speed and
       duplex settings.  Utilizes all slaves in the active
       aggregator according to the 802.3ad specification.

       Slave selection for outgoing traffic is done according
       to the transmit hash policy, which may be changed from
       the default simple XOR policy via the xmit_hash_policy
       option. Note that not all transmit policies may be 802.3ad
       compliant, particularly inregards to the packet mis-ordering
       requirements of section 43.2.4 of the 802.3ad standard.
       Differing peer implementations will have varying tolerances for
       noncompliance.

       Note: Most switches will require some type of configuration
       to enable 802.3ad mode.

   balance-tlb or 5
       Adaptive transmit load balancing: channel bonding that
       does not require any special switch support.  The
       outgoing traffic is distributed according to the
       current load (computed relative to the speed) on each
       slave.  Incoming traffic is received by the current
       slave.  If the receiving slave fails, another slave
       takes over the MAC address of the failed receiving
       slave.

   balance-alb or 6
       Adaptive load balancing: includes balance-tlb plus
       receive load balancing (rlb) for IPV4 traffic, and
       does not require any special switch support.

       When a link is reconnected or a new slave joins the
       bond the receive traffic is redistributed among all
       active slaves in the bond by initiating ARP Replies
       with the selected MAC address to each of the
       clients. The updelay parameter must
       be set to a value equal or greater than the switch's
       forwarding delay so that the ARP Replies sent to the
       peers will not be blocked by the switch.

balance-rr, backup-aktif, balance-tlb, dan balance-alb tidak perlu beralih dukungan.

balance-rr menambah kinerja dengan harga fragmentasi, berkinerja buruk dengan beberapa protokol (CIFS) dan dengan lebih dari 2 antarmuka.

balance-alb dan balance-tlb mungkin tidak bekerja dengan baik dengan semua sakelar; sering ada beberapa masalah arp (beberapa mesin mungkin gagal terhubung satu sama lain misalnya). Anda mungkin perlu mengubah berbagai pengaturan (miimon, updelay) untuk mendapatkan jaringan yang stabil.

balance-xor mungkin atau mungkin tidak memerlukan konfigurasi switch. Anda perlu mengatur grup antarmuka ( bukan LACP) pada switch HP dan Cisco, tetapi tampaknya itu tidak diperlukan pada switch D-Link, Netgear, dan Fujitsu.

802.3ad benar-benar membutuhkan grup LACP di sisi sakelar. Ini adalah opsi terbaik yang didukung secara keseluruhan untuk meningkatkan kinerja.

Catatan: apa pun yang Anda lakukan, satu koneksi jaringan selalu melalui satu dan hanya satu tautan fisik. Jadi ketika menggabungkan antarmuka GigE, transfer file dari mesin A ke mesin B tidak dapat melebihi 1 gigabit / s, meskipun setiap mesin memiliki 4 antarmuka GigE agregat (apa pun mode ikatan yang digunakan).

wazoox
sumber
Perhatikan bahwa 802.3ad tidak mengamanatkan penggunaan LACP. LACP hanyalah sebuah protokol kontrol untuk konfigurasi agregasi tautan dinamis , Anda dapat dengan sempurna memiliki pengaturan LA statis tanpa LACP.
the-wabbit
1
Itu benar, namun sebagian besar sakelar tidak mengizinkan konfigurasi agregasi tautan statis dan panggilan agregat "mode LACP".
wazoox
802.3ad mendefinisikan keduanya - LA statis dan LACP. Jika sebuah saklar mengklaim mematuhi 802.3ad, ia perlu mengimplementasikan keduanya. Setiap model saklar yang saya miliki di tangan saya yang menerapkan LACP, menerapkan LA statis juga.
the-wabbit
1

Kernel docs menjawab beberapa pertanyaan itu:

Ikatan Ethernet

FINESEC
sumber
1
Luangkan waktu untuk memperbaiki jawaban ini lebih dari sekadar menyediakan tautan. Tautan ini bermanfaat, tetapi jawaban di sini harus lebih dari sekadar tautan ke dokumentasi.
Zoredache
Terima kasih atas tautannya. Bagian 12.1.1 Pemilihan Mode Ikatan MT untuk Topologi Sakelar Tunggal adalah yang saya cari.
Matt
Ya, itu sebabnya saya hanya menempelkan tautan tanpa komentar ;-)
FINESEC