<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Load-Balancing on BAFM</title><link>https://christian.blog.pakiheim.de/tags/load-balancing/</link><description>Recent content in Load-Balancing on BAFM</description><generator>Hugo -- 0.160.1</generator><language>en</language><lastBuildDate>Sat, 16 Aug 2014 10:18:13 +0000</lastBuildDate><atom:link href="https://christian.blog.pakiheim.de/tags/load-balancing/index.xml" rel="self" type="application/rss+xml"/><item><title>Adapter teaming on SLES10</title><link>https://christian.blog.pakiheim.de/posts/2014-08-16_adapter-teaming-on-sles10/</link><pubDate>Sat, 16 Aug 2014 10:18:13 +0000</pubDate><guid isPermaLink="false">http://blog.barfoo.org/2007/07/04/adapter-teaming-on-sles10/</guid><description>&lt;p&gt;Since one of the requirements for my current project is having NIC redundancy, I didn&amp;rsquo;t get around looking at the available &amp;quot; &lt;em&gt;adapter teaming&lt;/em&gt;&amp;quot; (or adapter bonding) solutions available for Linux/SLES.&lt;/p&gt;
&lt;p&gt;First I tried to dig into the Broadcom solution (since the Blade I first implemented the stuff uses a Broadcom NetXtreme II card) , but found out pretty soon that the basp configuration tool, which is &lt;em&gt;&lt;strong&gt;only&lt;/strong&gt;&lt;/em&gt; available on the Broadcom driver CD&amp;rsquo;s shipped with the Blade itself, pretty much doesn&amp;rsquo;t work.&lt;/p&gt;</description></item><item><title>PacketPro 1-7-0</title><link>https://christian.blog.pakiheim.de/posts/2008-01-15_packetpro-1-7-0/</link><pubDate>Tue, 15 Jan 2008 08:37:41 +0000</pubDate><guid isPermaLink="false">http://blog.barfoo.org/?p=183</guid><description>&lt;p&gt;After &lt;a href="https://christian.blog.pakiheim.de/posts/2014-08-16_bloody-cluster-solutions-continued"&gt;blogging&lt;/a&gt; &lt;a href="https://christian.blog.pakiheim.de/posts/2007-08-05_packetpro-450-and-ssh-checks"&gt;the last time&lt;/a&gt; about the PacketPro 450 LoadBalancer appliance, the guys over at &lt;a href="http://www.teamix.net/"&gt;teamix&lt;/a&gt; seem to have taken that to heart and implemented a rather nifty thing for their new release.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s called &amp;quot; &lt;em&gt;Port forwarding&lt;/em&gt;&amp;quot;, which is basically what you&amp;rsquo;d figure from the name. It bounces ports around the load balancer, but saves you from creating a separate virtual server (and adding the physical servers to that one), but also saves you from &lt;a href="https://christian.blog.pakiheim.de/posts/2014-08-16_bloody-cluster-solutions-continued"&gt;modifying&lt;/a&gt; the &lt;a href="https://christian.blog.pakiheim.de/posts/2014-08-16_bloody-cluster-solutions-continued"&gt;syslog-ng configuration&lt;/a&gt; on the balanced servers.&lt;/p&gt;</description></item><item><title>TYPO3 and MySQL replication</title><link>https://christian.blog.pakiheim.de/posts/2007-09-08_typo3-and-mysql-replication/</link><pubDate>Sat, 08 Sep 2007 20:33:13 +0000</pubDate><guid isPermaLink="false">http://blog.barfoo.org/2007/09/08/typo3-and-mysql-replication/</guid><description>&lt;p&gt;Apparently the TYPO3 version we are using, doesn&amp;rsquo;t play too nice with the MySQL MasterMaster replication.&lt;/p&gt;
&lt;p&gt;Sometimes, something like this is going to happen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt" id="hl-0-1"&gt;&lt;a class="lnlinks" href="#hl-0-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-2"&gt;&lt;a class="lnlinks" href="#hl-0-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;070826 0:44:32 [ERROR] Slave: Error &amp;#39;Duplicate entry &amp;#39;75-222419149&amp;#39; for key 1&amp;#39; on query. Default database: &amp;#39;t3nb&amp;#39;. Query: &amp;#39;INSERT INTO cache_pagesection
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;070826 0:44:32 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with &amp;#34;SLAVE START&amp;#34;. We stopped at log &amp;#39;dbc-mysql1.000192&amp;#39; position 611861372
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Well, as you can see from the last line in the log, the Slave-SQL thread found a duplicate entry and thought it is smart to just turn off the thread instead of disregarding the just made entry. So from now on, both databases drift since there ain&amp;rsquo;t no replication anymore until someone kick starts the replication again (someone being me).&lt;/p&gt;</description></item><item><title>miimon, arp_interval and the code</title><link>https://christian.blog.pakiheim.de/posts/2007-07-04_miimon-arp-interval-and-the-code/</link><pubDate>Wed, 04 Jul 2007 19:50:14 +0000</pubDate><guid isPermaLink="false">http://blog.barfoo.org/2007/07/04/miimon-arp_interval-and-the-code/</guid><description>&lt;p&gt;After &lt;a href="https://christian.blog.pakiheim.de/posts/2014-08-16_adapter-teaming-on-sles10" title="Adapter teaming on SLES10"&gt;today&amp;rsquo;s adventure&lt;/a&gt; with the kernel bonding, I just took a look at the &lt;a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/net/bonding/bond_main.c;hb=HEAD"&gt;code&lt;/a&gt; &amp;hellip;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt" id="hl-0-1"&gt;&lt;a class="lnlinks" href="#hl-0-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-2"&gt;&lt;a class="lnlinks" href="#hl-0-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-3"&gt;&lt;a class="lnlinks" href="#hl-0-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-4"&gt;&lt;a class="lnlinks" href="#hl-0-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-5"&gt;&lt;a class="lnlinks" href="#hl-0-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-6"&gt;&lt;a class="lnlinks" href="#hl-0-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-7"&gt;&lt;a class="lnlinks" href="#hl-0-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-8"&gt;&lt;a class="lnlinks" href="#hl-0-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-9"&gt;&lt;a class="lnlinks" href="#hl-0-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-10"&gt;&lt;a class="lnlinks" href="#hl-0-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-11"&gt;&lt;a class="lnlinks" href="#hl-0-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-12"&gt;&lt;a class="lnlinks" href="#hl-0-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-13"&gt;&lt;a class="lnlinks" href="#hl-0-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-14"&gt;&lt;a class="lnlinks" href="#hl-0-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-15"&gt;&lt;a class="lnlinks" href="#hl-0-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-16"&gt;&lt;a class="lnlinks" href="#hl-0-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-17"&gt;&lt;a class="lnlinks" href="#hl-0-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-18"&gt;&lt;a class="lnlinks" href="#hl-0-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-19"&gt;&lt;a class="lnlinks" href="#hl-0-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-20"&gt;&lt;a class="lnlinks" href="#hl-0-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-21"&gt;&lt;a class="lnlinks" href="#hl-0-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-22"&gt;&lt;a class="lnlinks" href="#hl-0-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-23"&gt;&lt;a class="lnlinks" href="#hl-0-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-24"&gt;&lt;a class="lnlinks" href="#hl-0-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-25"&gt;&lt;a class="lnlinks" href="#hl-0-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-26"&gt;&lt;a class="lnlinks" href="#hl-0-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-27"&gt;&lt;a class="lnlinks" href="#hl-0-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span class="lnt" id="hl-0-28"&gt;&lt;a class="lnlinks" href="#hl-0-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if (miimon) {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; printk(KERN_INFO DRV_NAME
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;: MII link monitoring set to %d msn&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; miimon);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; } else if (arp_interval) {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; int i;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; printk(KERN_INFO DRV_NAME
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;: ARP monitoring set to %d ms, validate %s, with %d target(s):&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arp_interval,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arp_validate_tbl[arp_validate_value].modename,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; arp_ip_count);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; for (i = 0; i &amp;lt; arp_ip_count; i++)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; printk (&amp;#34; %s&amp;#34;, arp_ip_target[i]);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; printk(&amp;#34;n&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; } else {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /* miimon and arp_interval not set, we need one so things
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; * work as expected, see bonding.txt for details
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; */
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; printk(KERN_WARNING DRV_NAME
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;: Warning: either miimon or arp_interval and &amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;arp_ip_target module parameters must be specified, &amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;otherwise bonding will not detect link failures! see &amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;bonding.txt for details.n&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If I read it right, you only get the &lt;strong&gt;KERN_WARNING&lt;/strong&gt; for &amp;ldquo;either miimon or arp_interval&amp;rdquo; only if miimon or arp_interval isn&amp;rsquo;t set &amp;hellip; but at least my config says it is .. &amp;#x1f937; .. bed time for me :rolling_eyes:&lt;/p&gt;</description></item></channel></rss>