<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>ipHouse Blog &#187; Doug Rau</title> <atom:link href="http://blogs.iphouse.net/author/drow/feed/" rel="self" type="application/rss+xml" /><link>http://blogs.iphouse.net</link> <description>A friendly, local ISP with a view.</description> <lastBuildDate>Sat, 04 Feb 2012 04:14:51 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Speeding up CSS</title><link>http://blogs.iphouse.net/2012/01/31/speeding-up-css/</link> <comments>http://blogs.iphouse.net/2012/01/31/speeding-up-css/#comments</comments> <pubDate>Tue, 31 Jan 2012 16:14:16 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[System Administrators]]></category> <category><![CDATA[geeky]]></category> <category><![CDATA[Hosting]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=2344</guid> <description><![CDATA[As web pages become richer and more complex, they can also become burdened with numerous CSS files, background images, icons, and scripts which put additional load on your network and degrade the user experience of your website. Fortunately, there are a few things you can do to improve things. First, its become common practice for <a href="http://blogs.iphouse.net/2012/01/31/speeding-up-css/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>As web pages become richer and more complex, they can also become burdened with numerous CSS files, background images, icons, and scripts which put additional load on your network and degrade the user experience of your website. Fortunately, there are a few things you can do to improve things.</p><p><span id="more-2344"></span>First, its become common practice for many pages to have at least three stylesheets; one for all media, one for screen-specific instructions, and another for print. Other stylesheets might be imported for specific pages or resources, such as a lightbox library or HTML form suite. Instead of putting each stylesheet existing in a separate file which must be loaded and parsed separately, consider consolidating them as much as possible by using @media directives within the CSS file. For example,</p><blockquote><p><code><br /> // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br /> // combined.css<br /> // these styles apply everywhere, all the time</code></p><p>body { color: black; }<br /> h1 { font-size: 150%; font-weight: bold; }</p><p>// &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - -<br /> // these styles only apply on-screen</p><p>@media screen {<br /> body { background: url(&#8216;background.jpg&#8217;); }<br /> div.nav a:hover { font-weight: bold; }<br /> }</p><p>// &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - -<br /> // these styles only apply in-print</p><p>@media print {<br /> div.nav { display: none; }<br /> p { text-align: justify; }<br /> }</p><p>// &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - &#8211; - -</p></blockquote><p>Placing all your stylesheets in the &lt;head&gt; section of your web page is best practice, and also improves apparent performance since the web browser can load and parse the style information before it begins rendering the page body. Associating stylesheets via &lt;link&gt; tags instead of @import is better, since not all browsers handle @import directives promptly.</p><p>Also consider using Expires headers to instruct web clients to cache CSS files for a long time. In apache, this is easily achieved through the mod_expires instructions,</p><blockquote><p><code><br /> ExpiresActive On<br /> ExpiresByType text/css "access plus 1 year"<br /> </code></p></blockquote><p>If you need to retain the ability to change your CSS files more frequently, add a version number to the filename and update it as necessary. For example, combined-1.0.css</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2012/01/31/speeding-up-css/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>What does a VDC get you out of?</title><link>http://blogs.iphouse.net/2012/01/20/what-does-a-vdc-get-you-out-of/</link> <comments>http://blogs.iphouse.net/2012/01/20/what-does-a-vdc-get-you-out-of/#comments</comments> <pubDate>Fri, 20 Jan 2012 18:38:45 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[ipHouse Products]]></category> <category><![CDATA[System Administrators]]></category> <category><![CDATA[Virtual Machines]]></category> <category><![CDATA[Virtualization]]></category> <category><![CDATA[vmForge]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=2178</guid> <description><![CDATA[A vmForge virtual data center gets you into a private pool of computing resources which you can custom configure to your needs. It gets you into a lean, efficient, reliable, and elastic platform for your business, which can easily grow as you do. But it&#8217;s also worth looking at what it gets you out of. <a href="http://blogs.iphouse.net/2012/01/20/what-does-a-vdc-get-you-out-of/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>A <a title="ipHouse vmForge Virtual Data Center" href="http://www.iphouse.com/vmforge/vdc.html">vmForge virtual data center</a> gets you into a private pool of computing resources which you can custom configure to your needs. It gets you into a lean, efficient, reliable, and elastic platform for your business, which can easily grow as you do. But it&#8217;s also worth looking at what it gets you out of.</p><p><span id="more-2178"></span>It gets you out of hardware. Out of substantial up-front costs, management and repair, depreciation, and end-of-life planning.</p><p><a style="padding: 2em;" href="http://blogs.iphouse.net/2012/01/20/what-does-a-vdc-get-you-out-of/hardware/" rel="attachment wp-att-2179"><img class="aligncenter size-full wp-image-2179" title="hardware" src="http://blogs.iphouse.net/wp-content/uploads/2012/01/hardware.jpg" alt="" width="352" height="454" /></a></p><p>It gets you out of data centering. Out of power, cooling, and cabling overhead and management.</p><p><a style="padding: 2em;" href="http://blogs.iphouse.net/2012/01/20/what-does-a-vdc-get-you-out-of/cables/" rel="attachment wp-att-2180"><img class="aligncenter size-full wp-image-2180" title="cables" src="http://blogs.iphouse.net/wp-content/uploads/2012/01/cables.jpg" alt="" width="352" height="469" /></a></p><p>It might even get you out of this. With a virtualized infrastructure, you can get access to and administer your servers and network from almost anywhere. From your office, your home, the beach&#8230;</p><p><a style="padding: 2em;" href="http://blogs.iphouse.net/2012/01/20/what-does-a-vdc-get-you-out-of/815-2/" rel="attachment wp-att-2182"><img class="aligncenter size-full wp-image-2182" title="815" src="http://blogs.iphouse.net/wp-content/uploads/2012/01/8151.jpg" alt="" width="352" height="240" /></a></p><p>What else could you be getting out of with a virtual data center?</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2012/01/20/what-does-a-vdc-get-you-out-of/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Idle Thoughts: Things to do with your VDC</title><link>http://blogs.iphouse.net/2012/01/17/idle-thoughts-things-to-do-with-your-vdc/</link> <comments>http://blogs.iphouse.net/2012/01/17/idle-thoughts-things-to-do-with-your-vdc/#comments</comments> <pubDate>Tue, 17 Jan 2012 20:19:31 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[System Administrators]]></category> <category><![CDATA[Virtual Machines]]></category> <category><![CDATA[Virtualization]]></category> <category><![CDATA[vmForge]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=2106</guid> <description><![CDATA[By now, you might have a virtual datacenter, and whether by design or happenstance, you might have some extra capacity in reserve. Rather than letting it sit idle, why not utilize it for some small, temporary projects? Since creating and starting a virtual machine takes minutes instead of hours, and the resources invested can be <a href="http://blogs.iphouse.net/2012/01/17/idle-thoughts-things-to-do-with-your-vdc/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>By now, you might have a <a title="ipHouse vmForge Virtual Data Center services" href="http://www.iphouse.com/vmforge/vdc.html" target="_blank">virtual datacenter</a>, and whether by design or happenstance, you might have some extra capacity in reserve. Rather than letting it sit idle, why not utilize it for some small, temporary projects? Since creating and starting a virtual machine takes minutes instead of hours, and the resources invested can be recovered just as quickly, its relatively easy to explore options which you might not have had time for before. Maybe you can solve a problem you&#8217;ve been struggling with, or discover new capabilities for your business. Here&#8217;s a few ideas.</p><p><span id="more-2106"></span></p><p>If your company still doesn&#8217;t have a blog, it can be a great way for your employees to connect and communicate with your market in a regular and timely manner. If you&#8217;re already blogging on LiveJournal or some other blog community, you might want to bring it in-house, to take greater control over your blog&#8217;s capabilities or user experience, or to consolidate staff blogs in a single location.</p><p>Managing a modern, complex web site can be made easier using a CMS, or content management system. A CMS can help you think about your website as separate design, structure, and content layers, and work with these layers separately for best effect. It can also help decentralize maintenance and updating, while enforcing consistency across the site. Some blog software can double as a basic CMS, but there are many systems capable of much heavier duty.</p><p>A photo gallery, either public or private, can provide a single, controlled repository of photos taken by your company of products, processes, and publicity events for reference or use in blogs, training, etc.</p><p>As your business grows, you may reach a point where email can&#8217;t keep up with your customer support needs. A support ticketing system offers a single, shared repository of customer issues and responses which can be used and referenced by everyone on your staff.</p><p>Wikis can be a great solution for collaborative knowledge management and documentation. An internal wiki could be used to document and maintain your company&#8217;s documentation on everything from products to processes and policies. Pages can be created in the wiki for ad hoc planning and documentation of individual projects.</p><p>Have more ideas on what else you could use your VDC for? Post them in the comments!</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2012/01/17/idle-thoughts-things-to-do-with-your-vdc/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Building things: cubicle analogy time</title><link>http://blogs.iphouse.net/2012/01/04/building-things-cubicle-analogy-time/</link> <comments>http://blogs.iphouse.net/2012/01/04/building-things-cubicle-analogy-time/#comments</comments> <pubDate>Wed, 04 Jan 2012 22:17:34 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[Data Center]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Virtual Machines]]></category> <category><![CDATA[Hosting]]></category> <category><![CDATA[Virtualization]]></category> <category><![CDATA[vmForge]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=2011</guid> <description><![CDATA[This week, I&#8217;ve been building (actually, rebuilding) cubicle desks in our new office space and comparisons were naturally drawn to building virtual machines a few weeks ago. Building a cubicle, no matter what the instructions say, is not exactly trivial. Even after putting the walls together, trying to get them all even and lined up <a href="http://blogs.iphouse.net/2012/01/04/building-things-cubicle-analogy-time/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>This week, I&#8217;ve been building (actually, rebuilding) cubicle desks in our new office space and comparisons were naturally drawn to building virtual machines a few weeks ago.</p><p><span id="more-2011"></span></p><p>Building a cubicle, no matter what the instructions say, is not exactly trivial. Even after putting the walls together, trying to get them all even and lined up is a trick. Then putting up the desk supports and the desk surfaces themselves, which are usually massive slabs of particle board and plastic veneer. If they&#8217;re fastened with screws, it&#8217;s always from beneath, out of the light, where you&#8217;re certain to get wood dust in your face.</p><p>In stark contrast, using vCloud Director to build a virtual machine was easy. Login, select a hardware and OS template, optionally configure, and deploy. It was up and running in a few minutes, maybe a little longer if you have added software or network configuration requirements. It&#8217;s all done with a keyboard and mouse, and I&#8217;m pretty certain I&#8217;ve never gotten wood dust in my face from it.</p><p>In both cases, a little planning goes a long way. Making a map of your cubicle layout lets you know whether everything is going to fit, what you&#8217;ll need, and whether you have it. Updating your map when you change your mind is also important. Making a map of your systems and network is similarly illuminating. How much CPU, memory, and disk do you need? What systems need outside IP addresses?</p><p>Also, paying attention to the details pays off. It&#8217;s a lot easier to make the desks level if all the supports are attached at the same height. Double check your IP address assignments and DNS records.</p><p>Finally, building a virtual machine doesn&#8217;t involve any power tools. Well, let&#8217;s hope not.</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2012/01/04/building-things-cubicle-analogy-time/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Setting up a LogicMonitor Agent</title><link>http://blogs.iphouse.net/2011/12/30/setting-up-a-logicmonitor-agent/</link> <comments>http://blogs.iphouse.net/2011/12/30/setting-up-a-logicmonitor-agent/#comments</comments> <pubDate>Fri, 30 Dec 2011 19:38:21 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[Data Center]]></category> <category><![CDATA[ipHouse Products]]></category> <category><![CDATA[System Administrators]]></category> <category><![CDATA[Hosting]]></category> <category><![CDATA[IPv6]]></category> <category><![CDATA[Monitoring]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=1966</guid> <description><![CDATA[LogicMonitor is a really cool server and network monitoring and measurement system which we&#8217;ve been working with. It uses a lightweight monitoring agent installed on your local network which collects data from your systems and passes it over SSL to an external aggregator. It&#8217;s capable of auto-discovery and is mostly self-configuring though you can adjust <a href="http://blogs.iphouse.net/2011/12/30/setting-up-a-logicmonitor-agent/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>LogicMonitor is a really cool server and network monitoring and measurement system which we&#8217;ve been working with. It uses a lightweight monitoring agent installed on your local network which collects data from your systems and passes it over SSL to an external aggregator. It&#8217;s capable of auto-discovery and is mostly self-configuring though you can adjust many of the metrics. After many years of working with patchwork monitoring and alert systems we&#8217;re pretty excited about it. Call us if you&#8217;re interested.</p><p>Setting up a monitoring agent on your local network is easy. The server hosting the agent just needs a JRE (Java Runtime Environment) installed using version 1.6 or greater and must be able to make an outgoing SSL connection. To monitor Windows systems, you&#8217;ll need to install the agent on a Windows server.</p><p><span id="more-1966"></span></p><p>Login to the LogicMonitor website, click on the &#8220;Settings&#8221; tab, then on &#8220;Agents&#8221; in the left navigation, then on the &#8220;Add&#8221; button. Click past the introduction, and indicate whether you&#8217;ll be installing the LogicMonitor agent on a Windows or Linux server. Download the agent installer, or copy the link and use wget to download the installer directly to your Linux system. Run the installer to install the agent on your server then return to your web browser and click &#8220;Next&#8221; to verify that its been installed correctly and is able to communicate with the LogicMonitor system.</p><p><a href="http://blogs.iphouse.net/2011/12/30/setting-up-a-logicmonitor-agent/downlaod-agent/" rel="attachment wp-att-1967"><img class="aligncenter size-full wp-image-1967" title="downlaod agent" src="http://blogs.iphouse.net/wp-content/uploads/2011/12/downlaod-agent.png" alt="" width="883" height="382" /></a></p><p>To begin monitoring a host on your network, click on the &#8220;Hosts&#8221; tab, then on the &#8220;Add Hosts&#8221; button and select &#8220;New Host (wizard)&#8221;. Enter the host name or IP address. Note that if your monitoring agent and host are on a private internal network then this should be the IP address visible to your agent. Select your monitoring agent (if you have more than 1), and LogicMonitor will go ahead and verify that its able to gather information about the host.</p><p>NOTE: at this time, LogicMonitor does not support IPv6</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2011/12/30/setting-up-a-logicmonitor-agent/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>SysAdmin Golf: The Hard Way</title><link>http://blogs.iphouse.net/2011/12/09/sysadmin-golf-the-hard-way/</link> <comments>http://blogs.iphouse.net/2011/12/09/sysadmin-golf-the-hard-way/#comments</comments> <pubDate>Fri, 09 Dec 2011 19:04:01 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[ipHouse Products]]></category> <category><![CDATA[System Administrators]]></category> <category><![CDATA[Virtual Machines]]></category> <category><![CDATA[Hosting]]></category> <category><![CDATA[SysAdmin Golf]]></category> <category><![CDATA[Virtualization]]></category> <category><![CDATA[vmForge]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=1824</guid> <description><![CDATA[This is the hard way to p2v a Linux server into a vmForge VDC. You&#8217;ll need the VMware Converter bootable CD, and somewhere to store your disk image. If you have a Windows server and shared disk on your local network, that may be faster than a USB hard drive, which is what I used. <a href="http://blogs.iphouse.net/2011/12/09/sysadmin-golf-the-hard-way/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>This is the hard way to p2v a Linux server into a vmForge VDC. You&#8217;ll need the VMware Converter bootable CD, and somewhere to store your disk image. If you have a Windows server and shared disk on your local network, that may be faster than a USB hard drive, which is what I used. This is a cold clone procedure, which means that your server is down while its being copied. And it may be down for a while, depending on how much disk your server has, how quickly it can be cloned to local storage, and finally how quickly it can be uploaded to your VDC.</p><p><span id="more-1824"></span></p><p>Reboot your server from the VMware Converter CD. Once VMware Converter is running, click on &#8220;Import Machine&#8221;. Click through the first couple of panels. On the &#8220;Source Data&#8221; panel, select &#8220;Import all disks and maintain size&#8221;. On the &#8220;Destination Type&#8221; panel, set the destination type to &#8220;Other VMware Virtual Machine&#8221;. On the next panel, set the VM Name and the Location where you&#8217;re storing your disk image. Since Converter doesn&#8217;t support direct OVF export here, you&#8217;ll have to set the type of virtual machine to Workstation 6.x and change it later. Click through the rest of the panels, and Finish. VMware Converter will now export your server to a .vmx description file and .vmdk disk image(s). This may take a while.</p><p style="text-align: center;"><a href="http://blogs.iphouse.net/wp-content/uploads/2011/12/clone-progress.png"><img class="aligncenter size-full wp-image-1826" title="clone progress" src="http://blogs.iphouse.net/wp-content/uploads/2011/12/clone-progress.png" alt="" width="578" height="110" /></a></p><p>After VMware Converter is done, you&#8217;ll need to use VMware&#8217;s OVF Tool to convert the .vmx file to a .ovf file.</p><blockquote><p><code>ovftool.exe name.vmx name</code></p></blockquote><p>Next, the tricky bit. You&#8217;ll need to edit the .ovf file, which is in XML format, and find and update the VirtualSystemType field to vmx-07, a reasonably current version. Once you&#8217;ve edited the .ovf file, you&#8217;ll also need to generate its SHA1 hash and update the .mf manifest file. Now, you should have something which can be imported into your vmForge VDC.</p><p>Login to your vmForge VDC (or any VMware vCloud Director system), and create a new catalog if you don&#8217;t already have one. In your catalog, click on the Upload button. Select your .ovf file, give it a name and description, and click on the Upload button. Again, this may take a while. Once its done, you&#8217;ll be able to use the template from your catalog to create a new virtual machine, a clone of your old physical server. The last step will be to power on the virtual server, login via the virtual console, and reconfigure networking.</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2011/12/09/sysadmin-golf-the-hard-way/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>uncomplicated firewall</title><link>http://blogs.iphouse.net/2011/12/02/uncomplicated-firewall/</link> <comments>http://blogs.iphouse.net/2011/12/02/uncomplicated-firewall/#comments</comments> <pubDate>Fri, 02 Dec 2011 17:05:55 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[Online Security]]></category> <category><![CDATA[System Administrators]]></category> <category><![CDATA[Security]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=1504</guid> <description><![CDATA[ufw, or uncomplicated firewall, is the default host firewall tool for Ubuntu and is designed to be easy to use. unless you don&#8217;t realize that its been enabled for you, in which case you&#8217;re likely to spend an hour bashing your head into something trying to get nfs to work. ufw is normally driven from <a href="http://blogs.iphouse.net/2011/12/02/uncomplicated-firewall/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>ufw, or uncomplicated firewall, is the default host firewall tool for Ubuntu and is designed to be easy to use.</p><p>unless you don&#8217;t realize that its been enabled for you, in which case you&#8217;re likely to spend an hour bashing your head into something trying to get nfs to work. ufw is normally driven from the command line, although a GUI is also available.</p><p>you&#8217;ll need to have root privileges to run ufw.</p><p><span id="more-1504"></span><br /> the command to see whether or not ufw is running is &#8216;ufw status&#8217;. if ufw is not running, you should see&#8230;</p><pre>$ ufw status
Status: inactive</pre><p>if ufw is running, you&#8217;ll see something like this instead&#8230;</p><pre>$ ufw status
Status: active

To                         Action      From
--                         ------      ----
Bind9                      DENY        Anywhere
22                         ALLOW       Anywhere
3306                       DENY        Anywhere
Apache Full                ALLOW       Anywhere</pre><p>here, ufw is active, and is configured to deny or allow specific types of traffic. for example, connections to port 22 (ssh) are allowed from anywhere, whereas connections to port 3306 (mysql) are denied from anywhere. in addition to simple port numbers, ufw can recognize applications, such as &#8216;Apache Full&#8217; (ports 80 and 443/tcp). for more information, see the <em>Application Integration</em> section of the man page.</p><p>the basic command for opening ports is &#8216;ufw allow 161&#8242;. ufw will also refer to the /etc/services file if you specify services by name, &#8216;ufw allow snmp&#8217;. either will allow connections to port 161 (SNMP) from anywhere.</p><p>these examples imply &#8216;from any to any&#8217;, but you can also specify source and host addresses. for example, &#8216;ufw allow from 10.0.0.42 to any port 161&#8242; only allows connections to port 161 from a single address. you can also specify a netblock, such as 10.0.0.0/24. there are additional options, including specifying protocol (tcp or udp) and direction, and limiting or rejecting connections (instead of dropping them); see the man page for these and for more examples.</p><p>also note that rules are processed in order, and the first match wins. more specific rules should come first, followed by more general rules. you can insert a rule into the list using &#8216;ufw insert 2 allow snmp&#8217; (here, into the number 2 slot, moving the current number 2 and following rules down one slot).</p><p>ufw isn&#8217;t a bad thing to have running on your ubuntu host, and is particularly important if its not behind a network firewall. but if you&#8217;re having problems getting a new service running, it&#8217;s probably something worth looking at.</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2011/12/02/uncomplicated-firewall/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>comparing software load balancers</title><link>http://blogs.iphouse.net/2011/12/01/comparing-software-load-balancers/</link> <comments>http://blogs.iphouse.net/2011/12/01/comparing-software-load-balancers/#comments</comments> <pubDate>Thu, 01 Dec 2011 19:42:19 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[Data Center]]></category> <category><![CDATA[Virtual Machines]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[Hosting]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=1679</guid> <description><![CDATA[now that i have three different software load balancers installed (Balance, Crossroads, and Pen), i want to evaluate their relative performance. benchmarking a single web server isn&#8217;t difficult using tools like ab, but trying to benchmark a load balanced cluster is somewhat different. since most load balancers support stickiness, all the requests from a single <a href="http://blogs.iphouse.net/2011/12/01/comparing-software-load-balancers/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>now that i have three different software load balancers installed (Balance, Crossroads, and Pen), i want to evaluate their relative performance. benchmarking a single web server isn&#8217;t difficult using tools like <a href="http://httpd.apache.org/docs/2.0/programs/ab.html">ab</a>, but trying to benchmark a load balanced cluster is somewhat different. since most load balancers support stickiness, all the requests from a single source will be directed to a single back-end server. thus, i&#8217;ll need to run the benchmarker from several different sources simultaneously, or i&#8217;m really just testing one server with something in the way. fortunately, i have three machines on different IP addresses sitting idle.</p><p><span id="more-1679"></span></p><p>my first test is 10,000 requests for a static HTML page (2866 bytes). this test was run against a single apache server in the pool and against each of software load balancers with two back-end servers, from one source and from three simultaneously.</p><table style="margin: 0ex auto 4ex auto;"><tbody><tr><th>handler</th><th>single source</th><th>three sources</th></tr><tr><td>apache only</td><td>21.659 seconds</td><td>33.822</td></tr><tr><td>balance</td><td>106.794</td><td>failed</td></tr><tr><td>crossroads</td><td>37.729</td><td>failed</td></tr><tr><td>pen</td><td>39.112</td><td>failed</td></tr></tbody></table><p>the single apache server actually performed the best, easily beating any of the software load balancers in raw throughput. the test from three sources is effectively a mild denial-of-service attack, and none of the software load balancers could handle it. each of them failed and stopped accepting connections well before 10,000 requests were completed.</p><p>the second test is 20 requests for a PHP script which performs exactly 1 second of mathematics then returns results. in this case, almost all the load is on the back-end servers, and there was negligible difference in results between the four front-ends.</p><p>the third test is 400 requests for the PHP script, but issuing 20 concurrent requests from each source at a time. this generates significant load on the back-end servers, but is the first test where having multiple back-ends shows any improvement.</p><table style="margin: 0ex auto 4ex auto;"><tbody><tr><th>handler</th><th>single source</th><th>three sources</th></tr><tr><td>apache only</td><td>23.493 seconds</td><td>31.097</td></tr><tr><td>balance</td><td>22.820</td><td>26.191</td></tr><tr><td>crossroads</td><td>34.199</td><td>40.355</td></tr><tr><td>pen</td><td>24.721</td><td>28.365</td></tr></tbody></table><p>the fourth test is a monster, 400 requests for the PHP script, 100 concurrent requests from each source at a time.</p><table style="margin: 0ex auto 4ex auto;"><tbody><tr><th>handler</th><th>single source</th><th>three sources</th></tr><tr><td>apache only</td><td>14.912 seconds</td><td>22.604</td></tr><tr><td>balance</td><td>10.355</td><td>18.909</td></tr><tr><td>crossroads</td><td>failed</td><td>failed</td></tr><tr><td>pen</td><td>15.219</td><td>failed</td></tr></tbody></table><p>these results suggest that a software load balancer might be an option for putting more capacity and resilience into a script-heavy website, but clearly shouldn&#8217;t be chosen for performance. the single apache server performed better than my small cluster in nearly every test, and much better in a few cases. the total meltdown of the software load balancers in difficult situations is of particular concern. the results for the cluster might improve with more back-end servers, but the software load balancer itself seems to be the bottleneck.</p><p>of the three software load balancers, the simpler Balance and Pen outperformed Crossroads in general. interestingly, Balance fared spectacularly poorly against heavy traffic in the first test, but very well against a different sort of heavy traffic in the fourth.</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2011/12/01/comparing-software-load-balancers/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>software load balancing</title><link>http://blogs.iphouse.net/2011/11/29/software-load-balancing/</link> <comments>http://blogs.iphouse.net/2011/11/29/software-load-balancing/#comments</comments> <pubDate>Tue, 29 Nov 2011 17:20:56 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[Data Center]]></category> <category><![CDATA[Virtual Machines]]></category> <category><![CDATA[Web Development]]></category> <category><![CDATA[Hosting]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=1583</guid> <description><![CDATA[load balancing is a common technique for distributing a workload, such as handling a web site, across multiple servers. a pool of several smaller servers can be more efficient than a single large server, since the size and capability of the &#8220;server&#8221; can be changed just by adding or eliminating servers from the pool. a <a href="http://blogs.iphouse.net/2011/11/29/software-load-balancing/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>load balancing is a common technique for distributing a workload, such as handling a web site, across multiple servers. a pool of several smaller servers can be more efficient than a single large server, since the size and capability of the &#8220;server&#8221; can be changed just by adding or eliminating servers from the pool. a pool of servers can also be more responsive than a single server, and more fault-tolerant.</p><p>one of the simplest forms of load balancing is round-robin DNS, where a single hostname is pointed at multiple IP addresses, each of an individual server. this is very easy to set up, but changes to the pool are limited by DNS caching and TTL. on the other end of the spectrum are dedicated hardware load balancers, such as the F5 Big-IP we use, which monitor the status of each server in the pool and intelligently route incoming requests. these are awesome machines, but come with equally awesome price tags. between these two extremes lie some network firewalls with load balancing, and software load balancers, which run on a front-end server.</p><p>i&#8217;ve been looking at a few software load balancers for a small virtual server project; Balance, Crossroads, and Pen.</p><p><span id="more-1583"></span></p><p><a href="http://www.inlab.de/balance.html" target="balance">Balance</a> looks interesting, and supports either round-robin or sticky load balancing, and failover. it also supports IPv6 on the listening side, which might be useful if you have to bridge IPv6 into a pool of IPv4 servers. unfortunately, the Ubuntu package is an old version which i was unable to get working properly, and i had to compile from source instead.</p><p><em>what&#8217;s sticky load balancing?</em> directing requests from a particular client to the same back-end server, when possible. this is useful for applications that need to support state or session information between requests.</p><p><em>what&#8217;s failover?</em> if none of the servers in the regular pool are available, requests are directed to a backup server. the backup server is usually only intended to return a friendly &#8216;site down&#8217; page.</p><p><a href="http://crossroads.e-tunity.com/index.xr" target="crossroads">Crossroads</a> appears to be a fast, multi-threaded, and very capable load balancer. it supports a variety of dispatching algorithms, including several different ways of handling stickiness. although it doesn&#8217;t support failover, it does offer options for access control, protection against overloading, and a basic web interface. although the Ubuntu package is an older version, i&#8217;m using it because i wasn&#8217;t able to get the current version to compile.</p><p><a href="http://siag.nu/pen/" target="pen">Pen</a> is probably the simplest of the three. and although it&#8217;s the only one with a current package which installed correctly, its documentation is pretty sketchy. it supports round-robin and sticky load balancing, and has &#8220;highly experimental&#8221; support for SSL.</p> ]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2011/11/29/software-load-balancing/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Reengineering in a Virtualized System</title><link>http://blogs.iphouse.net/2011/02/10/reengineering-in-a-virtualized-system/</link> <comments>http://blogs.iphouse.net/2011/02/10/reengineering-in-a-virtualized-system/#comments</comments> <pubDate>Thu, 10 Feb 2011 18:06:53 +0000</pubDate> <dc:creator>Doug Rau</dc:creator> <category><![CDATA[ipHouse Products]]></category> <category><![CDATA[System Administrators]]></category> <category><![CDATA[Hosting]]></category> <category><![CDATA[Virtualization]]></category><guid isPermaLink="false">http://blogs.iphouse.net/?p=753</guid> <description><![CDATA[In addition to scalability and redundancy, one of the advantages of a virtualized system can be a single point of configuration across multiple servers. This not only streamlines day-to-day maintenance, it can also facilitate making significant system engineering changes. For example, several months ago, we looked to FastCGI to improve the performance of PHP scripts <a href="http://blogs.iphouse.net/2011/02/10/reengineering-in-a-virtualized-system/" class="more-link">More &#62;</a>]]></description> <content:encoded><![CDATA[<p>In addition to scalability and redundancy, one of the advantages of a virtualized system can be a single point of configuration across multiple servers.  This not only streamlines day-to-day maintenance, it can also facilitate making significant system engineering changes.</p><p>For example, several months ago, we looked to <a href="http://httpd.apache.org/mod_fcgid/">FastCGI</a> to improve the performance of PHP scripts on our webhosting cluster.  These scripts have always run under individual account UIDs for security, via mod_cgi and <a href="http://httpd.apache.org/docs/current/suexec.html">suexec</a>.  However, this additional overhead meant that PHP scripts took longer to run and required more CPU relative to the in-process execution of mod_php.</p><p><span id="more-753"></span></p><p>The ipHouse webhosting platform is a load-balanced cluster of multiple identical web servers.  In a non-virtualized system, each of these web servers would have its own set of account and server configuration files (etc/passwd, httpd.conf, usw.) which needed to be maintained and kept synchronized between servers.  In our virtualized cluster, each server loads its configuration from centralized sources.  All server configuration is stored in a shared file repository, and all user account information is stored in a database and retrieved as required.</p><p>After determining the necessary pieces, implementing PHP via FastCGI was relatively trivial.  Beside installing the mod_fcgid package, it took just a few changes to the shared server configuration files.  After waiting for each server in the cluster to load the updates (an automatic process), we were done.  Really, that&#8217;s it.  Virtually any change is write once, run everywhere.</p><h3>Technical</h3><pre># Load the FastCGI module
LoadModule fcgid_module libexec/mod_fcgid.so

# Assign PHP scripts to the FastCGI module
AddHandler fcgid-script .php

# Execute PHP scripts via the fcgid_php wrapper script
FcgidWrapper /webroot/cgi-bin/fcgid_php .php

# Enable additional script path processing
# Make sure that cgi.fix_pathinfo is set to 1 in php.ini
FcgidFixPathInfo 1

# Terminate processes after handling some number of requests
FcgidMaxRequestsPerProcess 10000</pre><p>The fcgid_php wrapper script is a relatively simple shell which sets up the environment before launching the PHP interpreter.</p><pre>#!/bin/sh

export PHP_FCGI_MAX_REQUESTS='10001'
ulimit -t 3600
exec /usr/local/bin/php-cgi</pre>]]></content:encoded> <wfw:commentRss>http://blogs.iphouse.net/2011/02/10/reengineering-in-a-virtualized-system/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching using memcached
Object Caching 667/729 objects using memcached

Served from: blogs.iphouse.net @ 2012-02-07 06:00:07 -->
