<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How To on the bin</title><link>https://thebin.net/categories/how-to/</link><description>Recent content in How To on the bin</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 06 Aug 2018 00:00:00 +0000</lastBuildDate><atom:link href="https://thebin.net/categories/how-to/index.xml" rel="self" type="application/rss+xml"/><item><title>Amazon VPC Basics</title><link>https://thebin.net/2018/08/amazon-vpc-basics/</link><pubDate>Mon, 06 Aug 2018 00:00:00 +0000</pubDate><guid>https://thebin.net/2018/08/amazon-vpc-basics/</guid><description>&lt;p&gt;For the past five weeks we have been getting deep in our Scalable Solutions series.  At Entasis we work with our customers to help them build solutions that are Scalable in design, Resilient by nature, with Performance on demand.  We feel that these three components are the pillars that all truly scalable solutions are built with.  Here is what we have gone over thus far:&lt;/p&gt;&#10;&lt;p&gt;Week 1 – &lt;a href="https://thebin.net/2018/07/amazon-route-53-basics/"&gt;Amazon Route 53 Basics&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Amazon EC2 Security Groups</title><link>https://thebin.net/2018/07/amazon-ec2-security-groups/</link><pubDate>Mon, 30 Jul 2018 00:00:00 +0000</pubDate><guid>https://thebin.net/2018/07/amazon-ec2-security-groups/</guid><description>&lt;p&gt;In this installment of our Scalable Solutions series we are going to be reviewing one of the core components of EC2, the security group.  We have found that our customers find that the elasticity provided by security groups allows them to build more resilient solutions and expand them as performance dictates it, with consistent security policies.&lt;/p&gt;&#10;&lt;p&gt;In case you missed our previous articles you may want to go back and review these great resources.&lt;/p&gt;</description></item><item><title>AWS Application Load Balancer</title><link>https://thebin.net/2018/07/aws-application-load-balancer/</link><pubDate>Mon, 23 Jul 2018 00:00:00 +0000</pubDate><guid>https://thebin.net/2018/07/aws-application-load-balancer/</guid><description>&lt;p&gt;This week in our Scalable Solutions series we are going to be covering the Elastic Load Balancer (specifically the Application Load Balancer or v2). At Entasis we help our customers build elastic and resilient solutions with performance on-demand.  If you need help finalizing your design, or implementing your vision please don’t hesitate to reach out to us at &lt;a href="mailto:sales@entasistech.com"&gt;sales@entasistech.com&lt;/a&gt;.  Also if you are just looking to learn more about AWS and you are in the North Dallas area we sponsor the AWS User Group of North Dallas at our offices in McKinney, TX.  You can find this on meetup.com.&lt;/p&gt;</description></item><item><title>AWS Systems Manager Parameter Store</title><link>https://thebin.net/2018/07/aws-systems-manager-parameter-store/</link><pubDate>Mon, 16 Jul 2018 00:00:00 +0000</pubDate><guid>https://thebin.net/2018/07/aws-systems-manager-parameter-store/</guid><description>&lt;p&gt;At Entasis we help our customers understand and modify their technology stacks so that scaling is a function of cost not a function of technology.  However when we look at scaling one of the largest problems is the consistency of an environment.  When we are running 100 application nodes then the opportunity for one node to go sideways and start handling traffic differently is much higher than if we only have 2 application nodes.  So we work with our customers to help them abstract the configurations of their services from their code to enable their applications to auto-scale regardless of your hosting location.  We are very familiar with public cloud, private cloud, multi cloud and hybrid cloud.  If you need help in this area please reach out to our team at &lt;a href="mailto:sales@entasistech.com"&gt;sales@entasistech.com&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>AWS Certificate Manager</title><link>https://thebin.net/2018/07/aws-certificate-manager/</link><pubDate>Mon, 09 Jul 2018 00:00:00 +0000</pubDate><guid>https://thebin.net/2018/07/aws-certificate-manager/</guid><description>&lt;p&gt;Today we are going to take a look at another one of my favorite services.  AWS Certificate Manager.  In this exploration we are going to be interacting with JSON which Powershell makes more difficult then it ought to.  So please keep in mind that if you are using the AWS CLI on bash or cygwin or similar your mileage will vary (especially where it comes to parsing and generating JSON).  Our goal is to be able to walk all the way through the certificate issuance process, including validation.&lt;/p&gt;</description></item><item><title>Linux: Replace Disk in MD</title><link>https://thebin.net/2015/12/linux-replace-disk-in-md/</link><pubDate>Mon, 28 Dec 2015 00:00:00 +0000</pubDate><guid>https://thebin.net/2015/12/linux-replace-disk-in-md/</guid><description>&lt;p&gt;On my lab machines I use a pair of physical disks, configured in a RAID 1 with MD, with LVM on top of that.  This gives me a lot of flexibility with full redundancy.  However recently I had a failure of a drive.&lt;/p&gt;&#10;&lt;h2 id="identify-the-failure"&gt;Identify the Failure&lt;/h2&gt;&#10;&lt;p&gt;Here is what MD was telling me after I identified and removed the drive from the chassis to send it off for an RMA, notice how each device only has one member (md0 has sda1, md1 has sda2), this does not make a good RAID 1.  But this is easily resolved.&lt;/p&gt;</description></item><item><title>Bash: Dynamic Volume Group Mounter</title><link>https://thebin.net/2015/09/bash-dynamic-volume-group-mounter/</link><pubDate>Wed, 16 Sep 2015 00:00:00 +0000</pubDate><guid>https://thebin.net/2015/09/bash-dynamic-volume-group-mounter/</guid><description>&lt;p&gt;This is similar, but an enhanced version of my custom_mount.sh previously published here: &lt;a href="http://blog.allanglesit.com/2012/08/bash-automatically-mount-file-systems-on-volume-group-if-present/"&gt;Bash: Automatically Mount File Systems on Volume Group if Present&lt;/a&gt;. This previous version was just a simple init script.  This updated version is designed for newer Linux distributions that use Systemd instead of Init.&lt;/p&gt;&#10;&lt;h2 id="the-code"&gt;The Code&lt;/h2&gt;&#10;&lt;p&gt;The majority of the work is done by dvgmounter.sh.  It will check if the Volume Group is present, if it is it will parse the /etc/fstab file looking for entries that are marked noauto, then it will test if that file system is already mounted, if it is not it will mount it.&lt;/p&gt;</description></item><item><title>Fedora 20: Use PPTP VPN</title><link>https://thebin.net/2015/09/fedora-20-use-pptp-vpn/</link><pubDate>Tue, 15 Sep 2015 00:00:00 +0000</pubDate><guid>https://thebin.net/2015/09/fedora-20-use-pptp-vpn/</guid><description>&lt;p&gt;I have had this one in the queue for a while (I don’t even run of Fedora 20 anymore).  This one will be short and sweet, because there really isn’t a bunch of discussion that needs to go into it.&lt;/p&gt;&#10;&lt;p&gt;By default Fedora 20 will block outbound PPTP VPN connections.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;firewall-cmd --direct --add-rule ipv4 filter INPUT &lt;span class="m"&gt;0&lt;/span&gt; -p gre -j ACCEPT&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;firewall-cmd --direct --add-rule ipv6 filter INPUT &lt;span class="m"&gt;0&lt;/span&gt; -p gre -j ACCEPT&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Reload the rules.&lt;/p&gt;</description></item><item><title>Zimbra 8.6: Bayesian Poisoning</title><link>https://thebin.net/2015/09/zimbra-8-6-bayesian-poisoning/</link><pubDate>Mon, 14 Sep 2015 00:00:00 +0000</pubDate><guid>https://thebin.net/2015/09/zimbra-8-6-bayesian-poisoning/</guid><description>&lt;p&gt;Let me start by saying that this problem is not unique to Zimbra and it certainly isn’t unique the version 8.6, however I was using Zimbra 8.6 when I ran into this problem, so this is how I fixed it.&lt;/p&gt;&#10;&lt;h2 id="what-is-bayesian-poisoning"&gt;What is Bayesian Poisoning?&lt;/h2&gt;&#10;&lt;p&gt;One of the core tenants of spam filtering using Bayesian probability to increase or decrease a particular messages score based on the likelihood it is spam.  This is done by compiling a database, often called the Bayes DB, which contains tokens resulting from the Bayesian filtering, these tokens are keywords and combinations that will either push up or down the probability that a given message is spam.  So Bayesian Poisoning is when that DB is intentionally populated with invalid references which result in either more spam being marked as not spam, or more legitimate mails being marked as spam.&lt;/p&gt;</description></item><item><title>Fedora 20: Firefox Reports Flash as Vulnerable</title><link>https://thebin.net/2015/03/fedora-20-firefox-reports-flash-as-vulnerable/</link><pubDate>Wed, 04 Mar 2015 00:00:00 +0000</pubDate><guid>https://thebin.net/2015/03/fedora-20-firefox-reports-flash-as-vulnerable/</guid><description>&lt;p&gt;This problem starts with Firefox reporting that your flash-plugin is out of date.  This report looks like this and disables all flash.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://itfromallangles.sites.allanglesit.net/wp-content/uploads/2015/02/Screenshot-from-2015-02-06-164559.png"&gt;&lt;/a&gt;After this we will take a look Mozilla’s Plugin Check to see what it thinks is going on.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://itfromallangles.sites.allanglesit.net/wp-content/uploads/2015/02/Screenshot-from-2015-02-06-164931.png"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Now here we can see that version 11.2.202.440 is vulnerable.  We will then check about:plugins to see if it agrees.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://itfromallangles.sites.allanglesit.net/wp-content/uploads/2015/02/Screenshot-from-2015-02-06-164951.png"&gt;&lt;/a&gt;Again this is also reporting 11.2.202.440, so there must be a problem, but it also tells us that there is an update available.  Now I run regular yum updates on this machine, and I actually noticed flash-plugin was updated just a few hours prior to seeing this alert.  So lets check the installed version.&lt;/p&gt;</description></item><item><title>BlackBerry Z30: No Update to 10.3.1</title><link>https://thebin.net/2015/02/blackberry-z30-no-update-to-10-3-1/</link><pubDate>Thu, 26 Feb 2015 00:00:00 +0000</pubDate><guid>https://thebin.net/2015/02/blackberry-z30-no-update-to-10-3-1/</guid><description>&lt;p&gt;I have a BlackBerry Z30 (STA100-5) which I was excited to updated to the latest release of BB10, which was announced on February 9, 2015 (&lt;a href="http://press.blackberry.com/press/2015/blackberry-10-os-10-3-1-arrives-for-existing-blackberry-10-smart.html"&gt;link&lt;/a&gt;).  However when I was attempting to install the update over the air, it kept telling me that I was already on the latest version.  This was obviously incorrect (I was on 10.2.1.3062 which is the latest prior to 10.3.1).&lt;/p&gt;&#10;&lt;p&gt;Here are the things that I tried that were unsuccessful.&lt;/p&gt;</description></item><item><title>SPARC Logical Domains: Alternate Service Domains Part 3</title><link>https://thebin.net/2014/12/sparc-logical-domains-alternate-service-domains-part-3/</link><pubDate>Wed, 17 Dec 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/12/sparc-logical-domains-alternate-service-domains-part-3/</guid><description>&lt;p&gt;In Part One of this series we went through the initial configuration of our Logical Domain hypervisor, and took some time to explain the process of mapping out the PCI Root Complexes, so that we would be able to effectively split them between the primary and an alternate domain.&lt;/p&gt;&#10;&lt;p&gt;In Part Two of this series we took the  information from Part One and split out our PCI Root Complexes and we configured and installed an alternate domain.  We were also able to reboot the primary domain without impacting the operation of the alternate domain.&lt;/p&gt;</description></item><item><title>SPARC Logical Domains: Alternate Service Domains Part 2</title><link>https://thebin.net/2014/12/sparc-logical-domains-alternate-service-domains-part-2/</link><pubDate>Tue, 16 Dec 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/12/sparc-logical-domains-alternate-service-domains-part-2/</guid><description>&lt;p&gt;In Part One of this series we went through the initial configuration of our Logical Domain hypervisor, and took some time to explain the process of mapping out the PCI Root Complexes, so that we would be able to effectively split them between the primary and an alternate domain.&lt;/p&gt;&#10;&lt;p&gt;In Part Two (this article) we are going to take that information and split out our PCI Root Complexes and configure and install an alternate domain.  At the end of this article you will be able to reboot the primary domain without impacting the operation of the alternate domain.&lt;/p&gt;</description></item><item><title>SPARC Logical Domains: Alternate Service Domains Part 1</title><link>https://thebin.net/2014/12/sparc-logical-domains-alternate-service-domains-part-1/</link><pubDate>Mon, 15 Dec 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/12/sparc-logical-domains-alternate-service-domains-part-1/</guid><description>&lt;p&gt;In this series we will be going over configuring alternate I/O and Service domains, with the goal of increasing the serviceability the SPARC T-Series servers without impacting other domains on the hypervisor.  Essentially enabling rolling maintenance without having to rely on live migration or downtime.  It is important to note, that this is not a cure-all, for example base firmware updates would still be interruptive, however minor firmware such as disk and I/O cards only should be able to be rolled.&lt;/p&gt;</description></item><item><title>SPARC Logical Domains: Live Migration</title><link>https://thebin.net/2014/12/sparc-logical-domains-live-migration/</link><pubDate>Tue, 09 Dec 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/12/sparc-logical-domains-live-migration/</guid><description>&lt;p&gt;One of the ways that we are able to accomplish regularly scheduled maintenance is by utilizing Live Migration, with this we can migrate workloads from one physical machine to another without having service interruption.  The way that it is done with Logical Domains is much more flexible than with most other hypervisor solutions, it doesn’t require any complicated cluster setup, no management layer, so you could literally utilize any compatible hardware at the drop of the hat.&lt;/p&gt;</description></item><item><title>Solaris 11: Configure IP Over Infiniband Devices</title><link>https://thebin.net/2014/12/solaris-11-configure-ip-over-infiniband-devices/</link><pubDate>Mon, 08 Dec 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/12/solaris-11-configure-ip-over-infiniband-devices/</guid><description>&lt;p&gt;In this article we will be going over the configuration of an infiniband interface with the IPoIB protocol on Solaris 11, specifically Solaris 11.2 (previous versions of Solaris 11 should work the same, however there have been changes in the ipadm and dladm commands).&lt;/p&gt;&#10;&lt;p&gt;Identify Infiniband Datalinks&lt;/p&gt;&#10;&lt;p&gt;First we need to identify the underlying interfaces of the infiniband interfaces.  In my case net2 and net3.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dladm show-phys&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;LINK MEDIA STATE SPEED DUPLEX DEVICE&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net1 Ethernet unknown &lt;span class="m"&gt;0&lt;/span&gt; unknown ixgbe1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net0 Ethernet up &lt;span class="m"&gt;1000&lt;/span&gt; full ixgbe0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net2 Infiniband up &lt;span class="m"&gt;32000&lt;/span&gt; unknown ibp0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net3 Infiniband up &lt;span class="m"&gt;32000&lt;/span&gt; unknown ibp1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net5 Ethernet up &lt;span class="m"&gt;1000&lt;/span&gt; full vsw0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Another way to confirm the infiniband interfaces is to use the show-ib command.&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Mirrored Rpool</title><link>https://thebin.net/2014/12/adventures-in-zfs-mirrored-rpool/</link><pubDate>Mon, 01 Dec 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/12/adventures-in-zfs-mirrored-rpool/</guid><description>&lt;p&gt;It always makes sense to have a mirrored rpool for your production systems, however that is not always how they are configured.  This really simple procedure is also critical.&lt;/p&gt;&#10;&lt;h2 id="create-a-mirrored-zpool"&gt;Create a Mirrored Zpool&lt;/h2&gt;&#10;&lt;p&gt;Check the existing devices to identify the one currently in use.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zpool status rpool&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; pool: rpool&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; state: ONLINE&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; scan: none requested&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; NAME STATE READ WRITE CKSUM&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; rpool ONLINE &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; c0t5000CCA0436359CCd0 ONLINE &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;errors: No known data errors&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Once we know which one is currently in use, we need to find a different one to mirror onto.&lt;/p&gt;</description></item><item><title>Linux KVM: Bridging a Bond on CentOS 6.5</title><link>https://thebin.net/2014/10/linux-kvm-bridging-a-bond-on-centos-6-5/</link><pubDate>Mon, 27 Oct 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/10/linux-kvm-bridging-a-bond-on-centos-6-5/</guid><description>&lt;p&gt;Today we are going to hop back into the KVM fray, and take a  look at using CentOS as a hypervisor., and configuring very resilient network connections to support our guests.  Of course these instructions should be valid on Red Hat Linux and Oracle Linux as well, though there is a little more to be done around getting access to the repos on those distributions…&lt;/p&gt;&#10;&lt;h2 id="enable-bonding"&gt;Enable Bonding&lt;/h2&gt;&#10;&lt;p&gt;I am assuming this is a first build for you, so this step might not be applicable, but it won’t hurt anything.&lt;/p&gt;</description></item><item><title>BlackBerry OS 10: Caldav Setup with Zimbra</title><link>https://thebin.net/2014/10/blackberry-os-10-caldav-setup-with-zimbra/</link><pubDate>Tue, 21 Oct 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/10/blackberry-os-10-caldav-setup-with-zimbra/</guid><description>&lt;p&gt;I have owned my Blackberry Z10, going on a year now, and I have absolutely loved it.  However one of the issues that I have fought was in integrating it with my Zimbra Installation.  Email was easy, the IMAP protocol sorted that out easily enough…  However calendars turned out to be more of a challenge than I expected.&lt;/p&gt;&#10;&lt;p&gt;Here is the versions that I validated these steps on.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Blackberry Z10 with 10.2.1.2977&lt;/li&gt;&#10;&lt;li&gt;Zimbra Collaboration Server 8.5.0&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Here is how to get it done.&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Splitting a Zpool</title><link>https://thebin.net/2014/07/adventures-in-zfs-splitting-a-zpool/</link><pubDate>Wed, 09 Jul 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/07/adventures-in-zfs-splitting-a-zpool/</guid><description>&lt;p&gt;Today we are going to go through the process of splitting a zpool.  This is not something that you will do often, but when you do it, you must be very precise and do it properly.&lt;/p&gt;&#10;&lt;h2 id="create-our-test-zpool"&gt;Create Our Test Zpool&lt;/h2&gt;&#10;&lt;p&gt;First we will create a ZFS to hold our disk images.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zfs create rpool/testdisks&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Next we will create the disk images.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfile 1g /rpool/testdisks/disk0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfile 1g /rpool/testdisks/disk1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfile 1g /rpool/testdisks/disk2&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfile 1g /rpool/testdisks/disk3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Finally we will create our zpool, which in this case is tank.&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Destroy A Zpool Without Importing</title><link>https://thebin.net/2014/07/adventures-in-zfs-destroy-a-zpool-without-importing/</link><pubDate>Tue, 01 Jul 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/07/adventures-in-zfs-destroy-a-zpool-without-importing/</guid><description>&lt;p&gt;Recently I ran into an issue where I had a zpool that wasn’t imported in a system, and I was unable to import it due to zpool version incompatibilities.  This can happen if you are going to a older revision of Solaris or if you are crossing platforms between ZFS and OpenZFS.  This posed an interesting problem for me, as how do I destroy a pool that I haven’t imported?  There might be a quick command to handle this, but this actually presented another problem, as in my example I actually had a zpool name collision as well (this was the second mirror in an old rpool).&lt;/p&gt;</description></item><item><title>Install MySQL Server Community Edition on Fedora 20</title><link>https://thebin.net/2014/07/install-mysql-server-community-edition-on-fedora-20/</link><pubDate>Tue, 01 Jul 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/07/install-mysql-server-community-edition-on-fedora-20/</guid><description>&lt;p&gt;Today we are going to go through the process of installing MySQL Server Community Edition on Fedora 20.  You could of course simply use MariaDB, but this will focus on the Community Edition.&lt;/p&gt;&#10;&lt;h2 id="install-the-mysql-repository"&gt;Install the MySQL Repository&lt;/h2&gt;&#10;&lt;p&gt;We will need to install the MySQL Community Repository, the MySQL project hosts an RPM file with the repository.  First lets look at the repositories that I have already.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum repolist&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Loaded plugins: langpacks, refresh-packagekit&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;repo id repo name status&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adobe-flashplayer Adobe Flash Player - x86_64 &lt;span class="m"&gt;2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fedora/20/x86_64 Fedora &lt;span class="m"&gt;20&lt;/span&gt; - x86_64 38,597&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;google-chrome Google Chrome - x86_64 &lt;span class="m"&gt;3&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;oracle-virtualbox/20/x86_64 Oracle VirtualBox - x86_64 &lt;span class="m"&gt;10&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rpmfusion-free/20/x86_64 RPM Fusion &lt;span class="k"&gt;for&lt;/span&gt; Fedora &lt;span class="m"&gt;20&lt;/span&gt; - Free &lt;span class="m"&gt;468&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rpmfusion-free-updates/20/x86_64 RPM Fusion &lt;span class="k"&gt;for&lt;/span&gt; Fedora &lt;span class="m"&gt;20&lt;/span&gt; - Free - Updates &lt;span class="m"&gt;464&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rpmfusion-nonfree/20/x86_64 RPM Fusion &lt;span class="k"&gt;for&lt;/span&gt; Fedora &lt;span class="m"&gt;20&lt;/span&gt; - Nonfree &lt;span class="m"&gt;203&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rpmfusion-nonfree-updates/20/x86_64 RPM Fusion &lt;span class="k"&gt;for&lt;/span&gt; Fedora &lt;span class="m"&gt;20&lt;/span&gt; - Nonfree - Updates &lt;span class="m"&gt;299&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;updates/20/x86_64 Fedora &lt;span class="m"&gt;20&lt;/span&gt; - x86_64 - Updates 17,616&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;repolist: 57,662&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Now lets install the release file.  Keep in mind, you can do a separate wget or curl to download the file, or you can use the command as I have.  As of the time of this writing there are also repositories for Fedora 18 and 19 and Enterprise Linux 5, 6 and 7 (beta).  Though the only procedures I have validated are the Fedora 20, they should all work the same.&lt;/p&gt;</description></item><item><title>SQL Developer Crash on Fedora 20</title><link>https://thebin.net/2014/07/sql-developer-crash-on-fedora-20/</link><pubDate>Tue, 01 Jul 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/07/sql-developer-crash-on-fedora-20/</guid><description>&lt;p&gt;I ran into a painful issue on Fedora 20 with SQL Developer.  Basically every time it was launched via the shortcut it would go through loading, and then disappear.&lt;/p&gt;&#10;&lt;h2 id="manual-invocation-of-sql-developer"&gt;Manual Invocation of SQL Developer&lt;/h2&gt;&#10;&lt;p&gt;When launching it via the script itself it gives us a little more information.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/sqldeveloper/sqldeveloper.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Oracle SQL Developer&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Copyright &lt;span class="o"&gt;(&lt;/span&gt;c&lt;span class="o"&gt;)&lt;/span&gt; 1997, 2013, Oracle and/or its affiliates. All rights reserved.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;LOAD TIME : 279#&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;A fatal error has been detected by the Java Runtime Environment:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SIGSEGV &lt;span class="o"&gt;(&lt;/span&gt;0xb&lt;span class="o"&gt;)&lt;/span&gt; at &lt;span class="nv"&gt;pc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0x00000038a1e64910, &lt;span class="nv"&gt;pid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;12726, &lt;span class="nv"&gt;tid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;140449865832192&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;JRE version: Java&lt;span class="o"&gt;(&lt;/span&gt;TM&lt;span class="o"&gt;)&lt;/span&gt; SE Runtime Environment &lt;span class="o"&gt;(&lt;/span&gt;7.0_40-b43&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;build 1.7.0_40-b43&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Java VM: Java HotSpot&lt;span class="o"&gt;(&lt;/span&gt;TM&lt;span class="o"&gt;)&lt;/span&gt; 64-Bit Server VM &lt;span class="o"&gt;(&lt;/span&gt;24.0-b56 mixed mode linux-amd64 compressed oops&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Problematic frame:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;C 0x00000038a1e64910&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Failed to write core dump. Core dumps have been disabled. To &lt;span class="nb"&gt;enable&lt;/span&gt; core dumping, try &lt;span class="s2"&gt;&amp;#34;ulimit -c unlimited&amp;#34;&lt;/span&gt; before starting Java again&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;An error report file with more information is saved as:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/sqldeveloper/sqldeveloper/bin/hs_err_pid12726.log&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;thread &lt;span class="m"&gt;140449881597696&lt;/span&gt; also had an error&lt;span class="o"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;If you would like to submit a bug report, please visit:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;http://bugreport.sun.com/bugreport/crash.jsp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/sqldeveloper/sqldeveloper/bin/../../ide/bin/launcher.sh: line 611: &lt;span class="m"&gt;12726&lt;/span&gt; Aborted &lt;span class="o"&gt;(&lt;/span&gt;core dumped&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;JAVA&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;APP_VM_OPTS&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;APP_ENV_VARS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; -classpath &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;APP_CLASSPATH&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;APP_MAIN_CLASS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;APP_APP_OPTS&lt;/span&gt;&lt;span class="p"&gt;[@]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;I also noticed, that while executing as root it worked.  However that clearly isn’t the “solution”&lt;/p&gt;</description></item><item><title>Voyage Linux: Dialog Error with Apt</title><link>https://thebin.net/2014/07/voyage-linux-dialog-error-with-apt/</link><pubDate>Tue, 01 Jul 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/07/voyage-linux-dialog-error-with-apt/</guid><description>&lt;p&gt;This can happen on other Linux distributions, however in this case I found it on Voyage Linux, which is a Linux distribution for embedded hardware.&lt;/p&gt;&#10;&lt;h2 id="the-error"&gt;The Error&lt;/h2&gt;&#10;&lt;p&gt;Here we are dealing with an annoyance whenever you use apt-get or aptitude.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="text"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;text&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;debconf: unable to initialize frontend: Dialog&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, &amp;lt;&amp;gt; line 1.)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;debconf: falling back to frontend: Readline&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="the-fix"&gt;The Fix&lt;/h2&gt;&#10;&lt;p&gt;Simply install dialog, which is the package it is not finding.  This will no longer need the failback to readline.&lt;/p&gt;</description></item><item><title>Voyage Linux: Locale Error with Apt</title><link>https://thebin.net/2014/07/voyage-linux-locale-error-with-apt/</link><pubDate>Tue, 01 Jul 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/07/voyage-linux-locale-error-with-apt/</guid><description>&lt;p&gt;Voyage Linux is an embedded linux distribution.  I use it on some ALIX boards I have lying around, it is very stripped down, and as such there are a few annoyances which we have to fix.&lt;/p&gt;&#10;&lt;p&gt;The Error&lt;/p&gt;&#10;&lt;p&gt;This issue happens when attempting to install/upgrade packages using apt-get or aptitude.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="text"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;text&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;perl: warning: Setting locale failed.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;perl: warning: Please check that your locale settings:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;    LANGUAGE = (unset),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;    LC_ALL = (unset),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;    LANG = &amp;#34;en_US.utf8&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;    are supported and installed on your system.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;perl: warning: Falling back to the standard locale (&amp;#34;C&amp;#34;).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;The Fix&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Rename a Zpool</title><link>https://thebin.net/2014/06/adventures-in-zfs-rename-a-zpool/</link><pubDate>Mon, 30 Jun 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/06/adventures-in-zfs-rename-a-zpool/</guid><description>&lt;p&gt;Renaming a zpool is not as intuitive as I would expect, but it is still pretty simple.  We accomplish this through a three step process, export the zpool, import the zpool (using a new name), validate our mountpoints are how we want them (probably using the new zpool name).&lt;/p&gt;&#10;&lt;p&gt;Now why might I want to rename it?  That is simple, perhaps it is simply for organization or perhaps you already have a zpool by that name, or perhaps you use zpool mirrors as a method of backup (break the mirror rename one side, rebuild mirror with a new disk maintaining the previous copy offline).&lt;/p&gt;</description></item><item><title>BIND 9: Configure Slave Zones</title><link>https://thebin.net/2014/06/bind-9-configure-slave-zones/</link><pubDate>Wed, 25 Jun 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/06/bind-9-configure-slave-zones/</guid><description>&lt;p&gt;Today we are going over one of the fundamental aspects of administering a DNS infrastructure, that is maintaining consistency across multiple replicas.  The simplest method of accomplishing this is to have a master/slave relationship.  Essentially you have a read-write (master) copy and a read-only (slave) copy of the zone.  The slave looks to the master for information on changes.&lt;/p&gt;&#10;&lt;p&gt;Basic BIND Configuration&lt;/p&gt;&#10;&lt;p&gt;Here we are going to look at the key components of a BIND configuration, this should be the same regardless of if this is a master or a slave server.&lt;/p&gt;</description></item><item><title>Solaris Networking: Datalink Multipathing Protocol</title><link>https://thebin.net/2014/05/solaris-networking-datalink-multipathing-protocol/</link><pubDate>Mon, 19 May 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/05/solaris-networking-datalink-multipathing-protocol/</guid><description>&lt;p&gt;In this article we are going to go over Datalink Multipathing Protocol (DLMP) available in Solaris.  DLMP is similar to IPMP, however there are some key differences, the biggest being the layer at which it operates.  DLMP operates at the datalink layer of the OSI model, while IPMP operates at the network layer.  Due to the differences in those layers DLMP opens up a lot of possibilities that were not possible with IPMP.  For example if you had a requirement for redundant networking for a service, either IPMP and DLMP would both be able to meet that requirement very well.  However if you had a requirement that the service runs inside of a zone or a logical domain then the level of work in IPMP becomes much higher.  This is because these hypervisors assign datalink devices to their guests.  Since the redundancy for IPMP is built on a level higher we need to assign multiple non-redundant interfaces to the guests and then build the interfaces and IPMP groups inside each of the guests.&lt;/p&gt;</description></item><item><title>Solaris SMF: Define File Dependency</title><link>https://thebin.net/2014/05/solaris-smf-define-file-dependency/</link><pubDate>Thu, 15 May 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/05/solaris-smf-define-file-dependency/</guid><description>&lt;p&gt;One of the biggest benefits of migrating to the Service Management Framework is that we can introduce dependencies to a services, these dependencies can be other services which is very valuable, however they can also be file based.  This can be used in a number of ways, say for example you have some application trees that live on some NFS mounts, in the event that the mount hasn’t been successfully mounted it will still attempt to start the service.  However if we make our service dependent on the file, then if the file doesn’t exist it won’t even attempt to start the service.&lt;/p&gt;</description></item><item><title>Solaris SMF: Define Service Execution User</title><link>https://thebin.net/2014/05/solaris-smf-define-service-execution-user/</link><pubDate>Wed, 14 May 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/05/solaris-smf-define-service-execution-user/</guid><description>&lt;p&gt;Frequently we want a service to execute as a non-root user, this is pretty trivial in the context of the Service Management Facility in Solaris.  This article will go over exactly what goes into that.  The one complexity around that is the environment, if you have environment variables that the user will depend on those, they will need to be setup inside of the SMF.  I will not be going into that in this article.&lt;/p&gt;</description></item><item><title>Solaris SMF: Delegate Service Control</title><link>https://thebin.net/2014/05/solaris-smf-delegate-service-control/</link><pubDate>Tue, 13 May 2014 00:00:00 +0000</pubDate><guid>https://thebin.net/2014/05/solaris-smf-delegate-service-control/</guid><description>&lt;p&gt;In many of the environments that I deliver to a client we have a concept of an “environment account” this account is the credential set that the environment runs as.  Over time and the maturation of the Service Management Facility (SMF) we have been able to simplify this offering and increase its capabilities.  Today we are going to talk about allowing the environment user to manage a service controlled by SMF.&lt;/p&gt;</description></item><item><title>ZFS: Send and Receive</title><link>https://thebin.net/2013/09/zfs-send-and-receive/</link><pubDate>Tue, 24 Sep 2013 00:00:00 +0000</pubDate><guid>https://thebin.net/2013/09/zfs-send-and-receive/</guid><description>&lt;p&gt;ZFS gives us the ability to move data with ZFS send and receive.  This can be used to combine snapshots, create full or incremental backups, or replicate data between servers on your LAN or even over the WAN.&lt;/p&gt;&#10;&lt;p&gt;Local Backup with Send&lt;/p&gt;&#10;&lt;p&gt;This is very simple, simply perform a send of a snapshot then output it to the file, I have complicated it a bit to include a folder which is named off of the current date (as would be helpful with backups).&lt;/p&gt;</description></item><item><title>Solaris Networking: IP Multipathing Protocol</title><link>https://thebin.net/2013/09/solaris-networking-ip-multipathing-protocol/</link><pubDate>Tue, 10 Sep 2013 00:00:00 +0000</pubDate><guid>https://thebin.net/2013/09/solaris-networking-ip-multipathing-protocol/</guid><description>&lt;p&gt;In this article we are going to go over some basics of using IPMP in Solaris.  We will discuss this on the latest versions of Solaris 10 and 11 on the SPARC platform, these instructions should also work on the x86 platform, but will be dependent on the listed version numbers, as the networking stack has changed alot of the past few minor versions of Solaris 10 and 11.&lt;/p&gt;&#10;&lt;h2 id="solaris-111"&gt;Solaris 11.1&lt;/h2&gt;&#10;&lt;p&gt;Create an IPMP Group&lt;/p&gt;</description></item><item><title>Powerconnect: Configure Link Aggregation Groups</title><link>https://thebin.net/2013/07/powerconnect-configure-link-aggregation-groups/</link><pubDate>Tue, 16 Jul 2013 00:00:00 +0000</pubDate><guid>https://thebin.net/2013/07/powerconnect-configure-link-aggregation-groups/</guid><description>&lt;p&gt;Today we will be configuring LACP to interconnect some switch stacks as part of a network upgrade.  Please keep in mind that part of configuring the LAG will result in the ports losing connectivity, so while it is not necessary to use a console cable, please keep in mind how you are connecting to the switch and if you will interrupt that connection by any of your actions, and plan accordingly.&lt;/p&gt;</description></item><item><title>Dell Powerconnect 6200: Enable SSH and Disable Telnet</title><link>https://thebin.net/2013/07/dell-powerconnect-6200-enable-ssh-and-disable-telnet/</link><pubDate>Mon, 08 Jul 2013 00:00:00 +0000</pubDate><guid>https://thebin.net/2013/07/dell-powerconnect-6200-enable-ssh-and-disable-telnet/</guid><description>&lt;p&gt;Most modern switches include the ability to use SSH as a remote communications protocol.  Here we will enable that functionality and disable telnet on the Dell Powerconnect 6248 switches.&lt;/p&gt;&#10;&lt;h2 id="enable-ssh"&gt;Enable SSH&lt;/h2&gt;&#10;&lt;p&gt;In order to enable SSH we need to generate the keys which will be used by SSH to encrypt the traffic.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="text"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;text&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;console&amp;gt;enable&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;console# configure&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(config)# crypto key generate rsa&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(config)# crypto key generate dsa&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(config)# ip ssh server&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(config)# exit&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;console# copy running-config startup-config&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="disable-telnet"&gt;Disable Telnet&lt;/h2&gt;&#10;&lt;p&gt;Depending on your config you might not need to disable this, but if it is enabled you should disable it.&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Deletion of a Recursive Snapshot Set</title><link>https://thebin.net/2013/06/adventures-in-zfs-deletion-of-a-recursive-snapshot-set/</link><pubDate>Mon, 03 Jun 2013 00:00:00 +0000</pubDate><guid>https://thebin.net/2013/06/adventures-in-zfs-deletion-of-a-recursive-snapshot-set/</guid><description>&lt;p&gt;Quite often I will find it necessary to create a recursive snapshot over a large number of ZFS file systems.  In this case, I find that frequently have little long term need for them, and need a quick and easy way of disposing of the snapshots created without spending large amounts of time manually deleting all of the snapshots.&lt;/p&gt;&#10;&lt;h2 id="creating-some-snapshots"&gt;Creating Some Snapshots&lt;/h2&gt;&#10;&lt;p&gt;Here we will create some test snapshots.  Make sure you do this on a test system, in a throw away area, this way if something is mistyped it doesn’t cause any problems.&lt;/p&gt;</description></item><item><title>Oracle Linux 6: Create an OCFS2 Cluster and Filesystem</title><link>https://thebin.net/2013/03/oracle-linux-6-create-an-ocfs2-cluster-and-filesystem/</link><pubDate>Mon, 04 Mar 2013 00:00:00 +0000</pubDate><guid>https://thebin.net/2013/03/oracle-linux-6-create-an-ocfs2-cluster-and-filesystem/</guid><description>&lt;p&gt;Today we are going to go through the process of creating a clustered file system on a pair of Oracle Linux 6.3 nodes.  This exercise is not very resource intensive.  I am using two VMs each with 1GB of RAM a single CPU and a shared virtual disk file in addition to the OS drivers.&lt;/p&gt;&#10;&lt;h2 id="the-basic-concepts"&gt;The Basic Concepts&lt;/h2&gt;&#10;&lt;p&gt;Now why is a clustered file system important?  So basically if you have the need to have a shared volume between two hosts, you can provision the disk to both machines, and everything could appear to work, however in the event that writes ever happened to the same areas of the disk at the same time you will end up with data corruption.  Now the key here is that you need a way to track locks from multiple nodes.  This is called a Distributed Locking Manager or DLM.  Now to get this DLM functionality working then it will create a cluster.  Valid cluster nodes can then mount the disk and interact with it as a normal disk.  So as part of OCFS2 we have two file systems which are created /sys/kernel/config and /dlm the prior is used for the cluster configurations, and the latter is for the distributed lock manager&lt;/p&gt;</description></item><item><title>Oracle VM 3: Connecting to MySQL Backend</title><link>https://thebin.net/2013/02/oracle-vm-3-connecting-to-mysql-backend/</link><pubDate>Wed, 13 Feb 2013 00:00:00 +0000</pubDate><guid>https://thebin.net/2013/02/oracle-vm-3-connecting-to-mysql-backend/</guid><description>&lt;p&gt;Starting in Oracle VM 3.2.1 the built in database of the Oracle VM Manager was MySQL.  I had hoped that this change would also signal a change in the database schema.  In prior versions of OVM 3.x all data was populated in the database in a completely useless longblob form.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mysql ovs -u root -p&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Enter password:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ERROR &lt;span class="m"&gt;2002&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;HY000&lt;span class="o"&gt;)&lt;/span&gt;: Can&lt;span class="s1"&gt;&amp;#39;t connect to local MySQL server through socket &amp;#39;&lt;/span&gt;/var/lib/mysql/mysql.sock&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;As we can see it is attempting and failing to use /var/lib/mysql/mysql.sock as the connection.  So lets take a look at the process and see if it has any clues.&lt;/p&gt;</description></item><item><title>Linux KVM: Ubuntu 12.10 with Openvswitch</title><link>https://thebin.net/2012/10/linux-kvm-ubuntu-12-10-with-openvswitch/</link><pubDate>Wed, 24 Oct 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/10/linux-kvm-ubuntu-12-10-with-openvswitch/</guid><description>&lt;p&gt;Today I am revisiting my previous post on Openvswitch on Ubuntu 12.04.  Things have changed since then.  Previously Openvswitch was relatively new and as such the userland tools (with libvirt being the one I use) didn’t support it yet, so while you could have used Openvswitch by executing the kvm processes for each VM manually.  Since this was a predictable problem the Openvswitch guys created a brcompat module, which would take the place of the bridge_utils functionality and expose Openvswitch bridges as legacy bridges.  This allowed the existing userland which already had the legacy bridge functionality builtin to continue to operate the same way.  Anyways as of libvirt 0.9.11 the native Openvswitch functionality is present and supported.  As such I am updating my documentation to include this alternate and preferred method of operation.&lt;/p&gt;</description></item><item><title>Linux-LVM: Resize Partition to Grow LVM Volume Group</title><link>https://thebin.net/2012/08/linux-lvm-resize-partition-to-grow-lvm-volume-group/</link><pubDate>Mon, 20 Aug 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/08/linux-lvm-resize-partition-to-grow-lvm-volume-group/</guid><description>&lt;p&gt;Logical Volume Manager makes the dynamic expansion of file systems dead stupid simple.  However there is a weakness, if you are using a partitioned file system as your Physical Volume (PV) then you will end up needing to expand the file system if you ever need to grow the actual storage.  This can be avoided by using the actual physical device /dev/sda as the PV, however if this is the same volume where your /boot partition lives then you will have no choice but to partition it out since /boot cannot reside on a Logical Volume (LV).  The other way you can avoid this is by simply creating a second partition on the same disk and adding it as a new PV to the existing Volume Group (VG).  This is preferable as there is far less room for error than in this procedure, but I personally find that method a little more confusing to inherit then a straight forward single partition made an LV.&lt;/p&gt;</description></item><item><title>Solaris Virtualization: Using Logical Domains on Solaris 11 Part Two</title><link>https://thebin.net/2012/08/solaris-virtualization-using-logical-domains-on-solaris-11-part-two/</link><pubDate>Tue, 07 Aug 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/08/solaris-virtualization-using-logical-domains-on-solaris-11-part-two/</guid><description>&lt;p&gt;In our previous article we went through the process of preparing a Solaris 11 for SPARC machine as a Logical Domain hypervisor.  Now that we have laid out our foundation we are ready to create some Logical Domains.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://blog.allanglesit.com/2012/08/solaris-virtualization-using-logical-domains-on-solaris-11-part-one"&gt;Solaris Virtualization: Using Logical Domains on Solaris 11 Part One&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="create-the-logical-domain"&gt;Create the Logical Domain&lt;/h2&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ldm add-domain t4-g1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="configure-devices"&gt;Configure Devices&lt;/h2&gt;&#10;&lt;p&gt;We will need to add devices to our newly created domain.  Here we will add virtual CPUs, memory, and a network device.&lt;/p&gt;</description></item><item><title>Solaris Virtualization: Using Logical Domains on Solaris 11 Part One</title><link>https://thebin.net/2012/08/solaris-virtualization-using-logical-domains-on-solaris-11-part-one/</link><pubDate>Mon, 06 Aug 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/08/solaris-virtualization-using-logical-domains-on-solaris-11-part-one/</guid><description>&lt;p&gt;Solaris 11 for SPARC, as well as previous versions of Solaris, include a neat little technology called Logical Domains (which has been rebranded as Oracle VM for SPARC).  Logical Domains are implemented in the SPARC processor.&lt;/p&gt;&#10;&lt;p&gt;This series is going to focus on the basic administration of a Logical Domains environment using the basic command line tools of the Solaris 11 Operating System.  In Part One we will go over what it takes to configure a Solaris 11 installation to be a Logical Domains hypervisor.  In Part Two we will document defining and configuring Logical Domains.  In Part Three we will discuss connecting to the Logical Domain in order to perform an installation of the operating system.&lt;/p&gt;</description></item><item><title>Bash: Automatically Mount File Systems on Volume Group if Present</title><link>https://thebin.net/2012/08/bash-automatically-mount-file-systems-on-volume-group-if-present/</link><pubDate>Thu, 02 Aug 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/08/bash-automatically-mount-file-systems-on-volume-group-if-present/</guid><description>&lt;p&gt;Update 09/16/2015 – I have published an updated article for this here: &lt;a href="http://blog.allanglesit.com/2012/08/bash-automatically-mount-file-systems-on-volume-group-if-present/"&gt;http://blog.allanglesit.com/2012/08/bash-automatically-mount-file-systems-on-volume-group-if-present/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;In my laptop I have a solid state disk, and frankly I am way past addicted to solid state disks, but what you get in performance you lose in capacity.  As such I have had to be creative with how I can have the capacity and the performance that I need.  Lately the solution has been to have a spinning disk in the slot that would normally be occupied by my CD/DVD drive.  However the problem with this, revealed itself to be that my Fedora install would actually fail to boot when it tried and failed to mount the file systems if this device was not present.  So my first “solution” was to set noauto in the /etc/fstab for these secondary file systems.  Which presented a new problem…  I would forget to manually mount these devices before launching Virtualbox to start my VMs.  So I decided that I would need to have an auto-mount script which would check for the volume group to be present and then if it was mount the file systems contained within the /etc/fstab which live on the volume group.&lt;/p&gt;</description></item><item><title>Solaris 11: DNS Client Configuration Using Svccfg</title><link>https://thebin.net/2012/05/solaris-11-dns-client-configuration-using-svccfg/</link><pubDate>Wed, 23 May 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/05/solaris-11-dns-client-configuration-using-svccfg/</guid><description>&lt;p&gt;In Solaris 11, alot of configurations are being moved from configuration files into the Service Management Framework.  Here we will discuss this change around the DNS client.&lt;/p&gt;&#10;&lt;h2 id="view-existing-dns-client-configuration"&gt;View Existing DNS Client Configuration&lt;/h2&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;svccfg -s network/dns/client listprop config&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config application&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config/value_authorization astring solaris.smf.value.name-service.dns.client&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config/domain astring test.local&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config/nameserver net_address 10.0.0.152&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="update-existing-dns-client-configuration"&gt;Update Existing DNS Client Configuration&lt;/h2&gt;&#10;&lt;p&gt;Here we will update our name servers.  In this case we are replacing the original with two different addresses.&lt;/p&gt;</description></item><item><title>Solaris 11: Change Hostname Using Svccfg</title><link>https://thebin.net/2012/05/solaris-11-change-hostname-using-svccfg/</link><pubDate>Tue, 22 May 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/05/solaris-11-change-hostname-using-svccfg/</guid><description>&lt;p&gt;When Solaris 11 was released more configurations were moved into the service management framework, and moved out of configuration files, one of these changes was the hostname/nodename.&lt;/p&gt;&#10;&lt;p&gt;View Hostname in SMF&lt;/p&gt;&#10;&lt;p&gt;This will read back the configuration out of the SMF.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;svccfg -s system/identity:node listprop config&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config application&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config/nodename astring solaris11box&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;config/loopback astring solaris11box&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="change-hostname-in-smf"&gt;Change Hostname in SMF&lt;/h2&gt;&#10;&lt;p&gt;We have two separate settings, which need to be updated.&lt;/p&gt;</description></item><item><title>Oracle VM: Using Oracle VM Manager 3 from Ubuntu Linux</title><link>https://thebin.net/2012/05/oracle-vm-using-oracle-vm-manager-3-from-ubuntu-linux/</link><pubDate>Wed, 16 May 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/05/oracle-vm-using-oracle-vm-manager-3-from-ubuntu-linux/</guid><description>&lt;p&gt;In my initial work with Oracle VM, I have run into a few fringe cases, which are not well documented, but actually have rather simple solutions.  This one actually cropped up over the weekend for me.  Over the weekend I decided to rebuild my company-issued laptop with Ubuntu Linux (12.04 amd64) to be specific.  I did this for a number of reasons…&lt;/p&gt;&#10;&lt;p&gt;1)  I am far more effective with Linux, due to the nature of the shell, and tools which I am familiar with (vim, dd, really take your pick they are everywhere).&lt;/p&gt;</description></item><item><title>Oracle VM 3.x: Reset Agent Password</title><link>https://thebin.net/2012/05/oracle-vm-3-x-reset-agent-password/</link><pubDate>Tue, 15 May 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/05/oracle-vm-3-x-reset-agent-password/</guid><description>&lt;p&gt;Oracle VM, is a centrally managed hypervisor.  All administrative actions must be performed from the Oracle VM Manager.  In order to facilitate the initial discovery of the Hypervisor by the Management Server part of the setup requires that we not only set the password for the root user, but also the password for the ovs-agent.  We then initiate a discovery process from the management server to the hypervisor and end up able to manage our hypervisor.&lt;/p&gt;</description></item><item><title>Installing Oracle VM Manager 3.1.1</title><link>https://thebin.net/2012/05/installing-oracle-vm-manager-3-1-1/</link><pubDate>Mon, 14 May 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/05/installing-oracle-vm-manager-3-1-1/</guid><description>&lt;p&gt;In my new role at Keste, I am tasked with staying on the bleeding edge of software release cycles, so that we can be knowledgeable and authoritative about technology when we engage with customers.  One of the areas where Keste leads is on Oracle’s Virtualization Offerings.  So I will be posting more and more content with respect to those offerings.&lt;/p&gt;&#10;&lt;p&gt;Today I will be documenting the steps to install Oracle VM Manager 3.1.1.  Oracle VM (OVM) is a Xen-based Virtualization Technology.  An OVM Deployment consists of the OVM Server (the bare metal hypervisor) and the OVM Manager, the application stack which manages the afforementioned hypervisors (organized into Server Pools).&lt;/p&gt;</description></item><item><title>Bash: A Better Way to Sed</title><link>https://thebin.net/2012/05/bash-a-better-way-to-sed/</link><pubDate>Tue, 01 May 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/05/bash-a-better-way-to-sed/</guid><description>&lt;p&gt;So I frequently find myself in a situation where I need to modify files on a fairly programmatic basis, so sed has become a friend of mine for a lot of these situations.  So lets start with some basic sed…&lt;/p&gt;&#10;&lt;p&gt;If I have a file..&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat /etc/file.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;teststring&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;And I want to replace “teststring” with “productionvalue” then I could use sed.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sed -i &lt;span class="s1"&gt;&amp;#39;s/teststring/productionvalue/g&amp;#39;&lt;/span&gt; /etc/file.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat /etc/file.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;productionvalue&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blah&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;This is all well and good, but recently I found a better way…&lt;/p&gt;</description></item><item><title>Bash: Duplicate Logical Volume Configuration for a Volume Group</title><link>https://thebin.net/2012/04/bash-duplicate-logical-volume-configuration-for-a-volume-group/</link><pubDate>Mon, 30 Apr 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/04/bash-duplicate-logical-volume-configuration-for-a-volume-group/</guid><description>&lt;p&gt;I recently ran into a situation where I needed to create a large number of Logical Volumes for a server replacement situation.  I could have done some manual data input, but why not take the opportunity to quickly write a script to do the hard work for me?&lt;/p&gt;&#10;&lt;p&gt;For my situation this was a server that pulls data from other servers in order to optimize getting that data to tape.  So we had 2 VGs, one for the system and one for the data we wanted to move.  We planned on simply performing a rsync to move the data itself, but the volumes had to be pre-staged.&lt;/p&gt;</description></item><item><title>ESX 5: Command Line VM Manipulation</title><link>https://thebin.net/2012/04/esx-5-command-line-vm-manipulation/</link><pubDate>Tue, 24 Apr 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/04/esx-5-command-line-vm-manipulation/</guid><description>&lt;p&gt;I haven’t been working with ESX for a bit, but while I was I was mostly interacting with it via the command line.  Here is a list I had compiled while I was going through that exercise, and since I while be starting a job next week where I will no longer be interacting with much ESX I will just publish this one as-is.  It is by no means complete and frankly it is not even that helpful.  Notice that the commands which reference a specific virtual machine have a number, this is the VM ID for the VM you’d like to interact with.&lt;/p&gt;</description></item><item><title>Preparing Minimal Images with Debootstrap</title><link>https://thebin.net/2012/03/preparing-minimal-images-with-debootstrap/</link><pubDate>Tue, 27 Mar 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/03/preparing-minimal-images-with-debootstrap/</guid><description>&lt;p&gt;Debootstrap gives us a simple and consistent way to cleanly setup machines by installing packages directly into a file system directly from the repos.  These have the flexibility of being used across many different kind of machines.&lt;/p&gt;&#10;&lt;h2 id="create-directory-structure"&gt;Create Directory Structure&lt;/h2&gt;&#10;&lt;p&gt;Here we are just creating the directories into which we will be installing the operating systems into.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p /mnt/build/amd64 /mnt/build/i386&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /mnt/build/amd64&lt;span class="p"&gt;;&lt;/span&gt; mkdir ubuntu_10.04 ubuntu_10.10 ubuntu_11.04 ubuntu_11.10 debian_5 debian_6&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /mnt/build/i386&lt;span class="p"&gt;;&lt;/span&gt; mkdir ubuntu_10.04 ubuntu_10.10 ubuntu_11.04 ubuntu_11.10 debian_5 debian_6&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="install-required-software"&gt;Install Required Software&lt;/h2&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get install debootstrap&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="install-operating-systems-into-the-folders"&gt;Install Operating Systems into the Folders&lt;/h2&gt;&#10;&lt;p&gt;Ubuntu Lucid&lt;/p&gt;</description></item><item><title>Linux-KVM: Ubuntu 12.04 with Openvswitch</title><link>https://thebin.net/2012/03/linux-kvm-ubuntu-12-04-with-openvswitch/</link><pubDate>Mon, 26 Mar 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/03/linux-kvm-ubuntu-12-04-with-openvswitch/</guid><description>&lt;h2 id="update-october-29-2012"&gt;UPDATE: October 29, 2012&lt;/h2&gt;&#10;&lt;p&gt;This article doesn’t work on Ubuntu 12.10, to use Ubuntu 12.10 please refer to my new article &lt;a href="http://blog.allanglesit.com/2012/10/linux-kvm-ubuntu-12-10-with-openvswitch/"&gt;here&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Openvswitch is a better way of managing your virtual networking stacks for KVM and Xen.  This can be used instead of the bridge-utils package, and has the ability to use VLANs, LACP, QoS, sFlow, and others.  In this article we will be using Ubuntu 12.04 (beta1) to configure Openvswitch to hand out networking interfaces to KVM guests.&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Configuring iSCSI Targets</title><link>https://thebin.net/2012/02/adventures-in-zfs-configuring-iscsi-targets/</link><pubDate>Mon, 27 Feb 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/02/adventures-in-zfs-configuring-iscsi-targets/</guid><description>&lt;p&gt;The most critical thing about any storage implementation is flexibility.  This means that you need to be able to adapt your solution to changing environmental considerations.  The nice thing about a ZFS-based solution is that all of the building blocks are available.  If you want to use it as a NAS device, you can use CIFS, NFS.  If you want to provision Fibre Channel that is available too.  Even some of the more sought after SAN features are included, replication, deduplication, thin-provisioning, and many more.  Now in todays article we are going to discuss how you can go about setting up iSCSI targets.  I personally am not a fan of iSCSI (I have been bitten by the hard knee too many times), however you really can’t argue with the flexibility that is provided by being able to quickly provision storage on already existing or readily available hardware.  The best thing about this process is that it is really similar to provisioning fibre channel targets, so if you are familiar with this process (&lt;a href="http://blog.allanglesit.com/2011/08/adventures-in-zfs-configuring-fibre-channel-targets/"&gt;available here&lt;/a&gt;) then you will be able to quickly adapt to the iSCSI variation.&lt;/p&gt;</description></item><item><title>Securing SSH with Publicly Accessible Servers</title><link>https://thebin.net/2012/02/securing-ssh-with-publicly-accessible-servers/</link><pubDate>Thu, 16 Feb 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/02/securing-ssh-with-publicly-accessible-servers/</guid><description>&lt;p&gt;Just about every IT environment has some sort of remotely managed environment which requires that they have SSH open to the Internet.  Perhaps this is a VPS, dedicated server, or colocation.  Regardless of your reason, the fact is that there is just some times where you need to have SSH open to the internet.&lt;/p&gt;&#10;&lt;p&gt;However regardless of if it is necessary doesn’t mean that you should just do it…  One look at your auth.log will reveal that.&lt;/p&gt;</description></item><item><title>vCenter: VPXD Crash</title><link>https://thebin.net/2012/02/vcenter-vpxd-crash/</link><pubDate>Wed, 15 Feb 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/02/vcenter-vpxd-crash/</guid><description>&lt;p&gt;Recently I was trying to resolve an issue on a small vCenter 5.0.0 deployment.  Basically the primary symptom of the issue was that the service the vmware-vxpd service was crashing and needing to be restarted frequently.&lt;/p&gt;&#10;&lt;p&gt;The first thing I did was examine the log files, while the service was still in a failed state.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat /var/log/vmware/vpx/vpxd.log&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;I won’t bore you with an entire excerpt, however I will put some of the more helpful pieces of data from the log file here, perhaps it will help someone identify this article if they are having a similar issue but not really gaining any traction.&lt;/p&gt;</description></item><item><title>KVM Guests: Graceful Shutdown</title><link>https://thebin.net/2012/02/kvm-guests-graceful-shutdown/</link><pubDate>Mon, 06 Feb 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/02/kvm-guests-graceful-shutdown/</guid><description>&lt;p&gt;So a fairly trivial (but critical) aspect of using KVM is of course performing graceful shutdowns of your domains, without having to reach inside of the guest to perform the shutdown.  Now when it comes to turning off your guests you have two ways of proceeding (with virsh)…&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;virsh destroy vmname&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Which is a HARD power off of your guest.  This is the same as pulling the power cord from the wall, nothing is shutdown, but the noise stops just the same.  This method can result in data corruption if writes are interrupted.&lt;/p&gt;</description></item><item><title>Installing OpenIndiana in a Xen DomU</title><link>https://thebin.net/2012/01/installing-openindiana-in-a-xen-domu/</link><pubDate>Mon, 16 Jan 2012 00:00:00 +0000</pubDate><guid>https://thebin.net/2012/01/installing-openindiana-in-a-xen-domu/</guid><description>&lt;p&gt;So I am on the ground in Dallas and trying to get my head around some of the technologies that we use in my new environment.  One of those being the Xen kernel.  I have never actually used Xen before, though I have used xenserver a bit.  Anyways so my first foray into the Xen world is trying to get OpenIndiana (successor to OpenSolaris) running on it, and see what sort of performance issues it might have.  We are hoping to be able to leverage its CIFS and vscan functionality to provide some security for a secured network file server.&lt;/p&gt;</description></item><item><title>Linux-KVM: Converting Raw Disk Images to LVM Logical Volumes Redux</title><link>https://thebin.net/2011/11/linux-kvm-converting-raw-disk-images-to-lvm-logical-volumes-redux/</link><pubDate>Mon, 07 Nov 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/11/linux-kvm-converting-raw-disk-images-to-lvm-logical-volumes-redux/</guid><description>&lt;p&gt;This really is an update to my previous article “&lt;a href="http://blog.allanglesit.com/2011/03/linux-kvm-converting-raw-disk-images-to-lvm-logical-volumes/"&gt;Linux-KVM: Converting Raw Disk Images to LVM Logical Volumes&lt;/a&gt;“, but the process is significantly different and thus requires more explaining than a simple inline update would do it justice.  Now the big flaw with my first article was that by using dd on the hypervisor level, we are opening ourselves up to unintentional data loss due to incompetence or even a very competent slip of the finger.&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Time Slider is not Expiring Snapshots on Imported Zpools</title><link>https://thebin.net/2011/09/adventures-in-zfs-time-slider-is-not-expiring-snapshots-on-imported-zpools/</link><pubDate>Tue, 06 Sep 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/09/adventures-in-zfs-time-slider-is-not-expiring-snapshots-on-imported-zpools/</guid><description>&lt;p&gt;A few days ago someone contacted me with an interesting issue with regards to the ZFS automatic snapshots, facilitatedby the time slider service.&lt;/p&gt;&#10;&lt;h2 id="the-situation"&gt;The Situation&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;OpenSolaris machine with zpool exported.  Time slider was working prior to export.&lt;/li&gt;&#10;&lt;li&gt;Solaris 11 Express fresh install with zpool imported.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="the-symptoms"&gt;The Symptoms&lt;/h2&gt;&#10;&lt;p&gt;Basically the core of the issue was that the zpool was from an OpenSolaris machine, in lieu of doing an upgrade from OpenSolaris to Solaris 11 Express, the zpool was exported and imported into a machine which was already running Solaris 11 Express.  Upon the import new snapshots were being created by the time slider service however old ones were not being expired.  You can still manually delete snapshots.&lt;/p&gt;</description></item><item><title>Adventures in ZFS: Configuring Fibre Channel Targets</title><link>https://thebin.net/2011/08/adventures-in-zfs-configuring-fibre-channel-targets/</link><pubDate>Wed, 24 Aug 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/08/adventures-in-zfs-configuring-fibre-channel-targets/</guid><description>&lt;p&gt;In our environment ZFS has become a critical component of our Storage Infrastructure.  We have been able to provision Fibre Channel storage from our ZFS file systems which give us the benefit of data integrity, deduplication, performance through use of the ARC, L2ARC, and ZIL as needed.  Additionally the real benefit to ZFS is our storage can run on commodity hardware which reduces the TCO significantly over the major Storage vendors.   Now administering ZFS is really quite simple, however getting Fibre Channel can be a bit more work.  However after reading this you ought to be able to handle this with your eyes closed, well maybe not with your eyes closed.  But you will be much better prepared.&lt;/p&gt;</description></item><item><title>Linux-KVM Management: Live Migration Without Shared Storage</title><link>https://thebin.net/2011/08/linux-kvm-management-live-migration-without-shared-storage/</link><pubDate>Tue, 16 Aug 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/08/linux-kvm-management-live-migration-without-shared-storage/</guid><description>&lt;p&gt;Everyday I learn something new about Linux-KVM, this is why I love this platform.  Today we are going to talk about Live Migration.  The kicker?  Shared storage not required.  Now please keep in mind that just because shared storage is not required, doesn’t mean there is not a benefit to it.  Shared storage will accelerate this process, since the data will not have to move.  However virtualization is all about flexibility and so is Linux for that matter, so why shouldn’t we be able to make the choice?  That said this process is not documented by the libvirt team, as such it sounds like an “undocumented” feature.  Please use this at your own risk, and for heaven’s sake please test and understand thoroughly before using this in production.&lt;/p&gt;</description></item><item><title>Bash: Using Temporary SSH Keys Within A Script</title><link>https://thebin.net/2011/08/bash-using-temporary-ssh-keys-within-a-script/</link><pubDate>Wed, 10 Aug 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/08/bash-using-temporary-ssh-keys-within-a-script/</guid><description>&lt;p&gt;Every once and a while you will have the need to make multiple ssh calls to remote systems within a bash script.  Normally you would simply have the user enter their password multiple times, or have a requirement for SSH keys to be configured prior to running the keys.  This is widely accepted as the way to do it, however if that were the best way to do it, then I would not be writing this article.  Now the better way to do it would be to create ssh keys, and upload them as authorized keys to the remote host(s) then upon completion of the work we can then clean up the changes that we made.&lt;/p&gt;</description></item><item><title>Bash: Using pv to Display Progress of dd</title><link>https://thebin.net/2011/08/bash-using-pv-to-display-progress-of-dd/</link><pubDate>Tue, 09 Aug 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/08/bash-using-pv-to-display-progress-of-dd/</guid><description>&lt;p&gt;One of the biggest weaknesses of dd is that it has no way to display progress on its actions.  You can send a signal to the process which will pause, display statistics, and resume the process however this takes up alot of your terminal screen if you are doing any sort of long running copy.  Enter pv.  Pv allows us to monitor the progress of data through a pipe.&lt;/p&gt;&#10;&lt;h2 id="create-a-1gb-test-file"&gt;Create A 1GB Test File&lt;/h2&gt;&#10;&lt;p&gt;This is the file that we will use to peform the following tests.&lt;/p&gt;</description></item><item><title>Linux-KVM Management: Offline Migration</title><link>https://thebin.net/2011/08/linux-kvm-management-offline-migration/</link><pubDate>Mon, 08 Aug 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/08/linux-kvm-management-offline-migration/</guid><description>&lt;p&gt;When you compare Linux-KVM to Hyper-V or VMWare your initial results will indicate that Linux-KVM is lacking when it comes to management tools, and basic functionality.  You would be correct, however you would also be incorrect.  You see with Linux-KVM we can leverage the underlying power of the Linux userland, and with this frankly all things are possible.  Here is one of the basic bits of management functionality which can be attained with a little bit of bash scripting knowledge.  I started by writing a VM backup script, then a VM export script, and of course a VM import script.  Eventually I ended up with a full-blown end-to-end VM migration script.&lt;/p&gt;</description></item><item><title>Solaris 11: Mount SMB Share Locally</title><link>https://thebin.net/2011/05/solaris-11-mount-smb-share-locally/</link><pubDate>Tue, 31 May 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/05/solaris-11-mount-smb-share-locally/</guid><description>&lt;p&gt;Currently I have been working on a method of migrating some of our data from Windows file servers to Solaris ZFS CIFS servers, of course trying to retain as much feature parity as possible.  Permissions are an issue, however I have worked through most of those issues (look for this article in the future), now it is time to migrate data from Windows onto ZFS.  This first crack will be about 1TB of data.  Enter rsync.  The “easiest” way to do this would be to use a Linux box in the middle to mount both the Solaris CIFS share and with Windows CIFS share and perform the rsync from there.  A far more efficient way would be to mount the Windows CIFS share on the Solaris box or vice versa and perform the rsync between the two boxes.  This article will document how to mount a Windows CIFS file share onto the local file system of the Solaris 11 Express box.&lt;/p&gt;</description></item><item><title>Solaris 11: Join AD Domain for Samba</title><link>https://thebin.net/2011/03/solaris-11-join-ad-domain-for-samba/</link><pubDate>Wed, 30 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/solaris-11-join-ad-domain-for-samba/</guid><description>&lt;h2 id="configure-kerberos"&gt;Configure Kerberos&lt;/h2&gt;&#10;&lt;p&gt;Make a backup of our original, just in case.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp /etc/krb5/krb5.conf /etc/krb5/krb5.original.conf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;These sections already exist in the file so you will want to replace them with the correct values for your environment.&lt;/p&gt;&#10;&lt;div class="codeblock" data-lang="bash"&gt;&#10; &lt;div class="codeblock__bar"&gt;&#10; &lt;span class="codeblock__lang"&gt;bash&lt;/span&gt;&#10; &lt;button type="button" class="codeblock__copy" aria-label="Copy code"&gt;&#10; &lt;span class="codeblock__copy-label"&gt;Copy&lt;/span&gt;&#10; &lt;/button&gt;&#10; &lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vi /etc/krb5/krb5.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;libdefaults&lt;span class="o"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;default_realm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; ALLANGLESIT.COM&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;realms&lt;span class="o"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;allanglesit.com &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;kdc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; dc.allanglesit.com&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;admin_server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; dc.allanglesit.com&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;kpasswd_server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; dc.allanglesit.com&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;kpasswd_protocol&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; SET_CHANGE&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;domain_realm&lt;span class="o"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;.allanglesit.com &lt;span class="o"&gt;=&lt;/span&gt; ALLANGLESIT.COM&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Quick recycle of the services or a start if they aren’t running.&lt;/p&gt;</description></item><item><title>Solaris 11: Network Configuration Advanced</title><link>https://thebin.net/2011/03/solaris-11-network-configuration-advanced/</link><pubDate>Tue, 29 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/solaris-11-network-configuration-advanced/</guid><description>&lt;p&gt;In my previous post we went over the basics of configuring a network interface in Solaris 11, without using the Network Auto Magic (NWAM) which is enabled by default.  In this article we will go over some of the more advanced features which can be leveraged including VLANs, aggregation groups, and jumbo frames.&lt;/p&gt;&#10;&lt;h2 id="configure-vlan-tagging"&gt;Configure VLAN Tagging&lt;/h2&gt;&#10;&lt;p&gt;Create a VLAN, specify the VLAN id with the “-v”, then specify the interface with the “-l”, and finally create a name for the tagged interface (in this case user0 since this particular system is the user VLAN, if you have more descriptive names of your VLANs you can use them here).&lt;/p&gt;</description></item><item><title>Solaris 11: Network Configuration Basics</title><link>https://thebin.net/2011/03/solaris-11-network-configuration-basics/</link><pubDate>Mon, 28 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/solaris-11-network-configuration-basics/</guid><description>&lt;p&gt;I have been doing research for my next big series “So You Want to Learn ZFS.”  This series is basically going to be a multi-part series of How-To’s which hopefully will give you the ability to build a file server (or even a SAN) based on ZFS if you so choose.  However there are a few things that I failed to take into account.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Solaris 11 is so different from Solaris 10.&lt;/li&gt;&#10;&lt;li&gt;Solaris 11 is so different from EVERYTHING else.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I figured that I’d be able to kind of gloss over the high points of how to get your system up and running and just dive right into the fun ZFS stuff.  So before we get into the good stuff there are some basics that we will need to go over first.  Today we will cover basic networking.&lt;/p&gt;</description></item><item><title>Linux-KVM: Migrating Hyper-V VHD Images to KVM</title><link>https://thebin.net/2011/03/linux-kvm-migrating-hyper-v-vhd-images-to-kvm/</link><pubDate>Wed, 23 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/linux-kvm-migrating-hyper-v-vhd-images-to-kvm/</guid><description>&lt;p&gt;I have always been a big fan of Hyper-V, and was actually a Virtualization MVP 2 years in a row.  However recently I haven’t been able to get past the really poor support for Linux on the Hyper-V platform.  We run a large number of hypervisors in our international sales offices (15+) and have a need to run both Linux and Windows on them.  This has necessitated our switch to Linux-KVM as their Windows support is far better than Hyper-V’s Linux support.  As such with an upcoming trip planned to our European offices I have been planning exactly how our migration will look, of course the first iteration of this plan consisted of me deploying replacement VMs on the KVM stack then migrating to the VMs individually.  Though this plan was lengthy and cumbersome it would work.&lt;/p&gt;</description></item><item><title>KVM Guests: Install VirtIO Drivers for Windows Guests</title><link>https://thebin.net/2011/03/kvm-guests-install-virtio-drivers-for-windows-guests/</link><pubDate>Tue, 22 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/kvm-guests-install-virtio-drivers-for-windows-guests/</guid><description>&lt;p&gt;Windows guests on the KVM hypervisors can get a very large kick in the pants when it comes to performance if you install the drivers necessary to leverage the VirtIO bus.  So first here are the necessary download links so that you can download the drivers.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-1.1.16.iso"&gt;http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-1.1.16.iso&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/"&gt;http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Inside of the ISO we will find four directories Balloon, NetKVM, vioserial, and viostor.  We are only concerned with viostor and NetKVM, for the storage and networking drivers.  Vioserial is a serial interface which essentially lifts the single serial device limitation within KVM, and Balloon is a balloon memory driver I personally do not find this necessary due to the efficacy of the Kernel Samepage Merging (KSM) which is essentially memory deduplication.&lt;/p&gt;</description></item><item><title>Linux-KVM: Managing KVM Guests Using Virt-Manager on Windows</title><link>https://thebin.net/2011/03/linux-kvm-managing-kvm-guests-using-virt-manager-on-windows/</link><pubDate>Mon, 21 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/linux-kvm-managing-kvm-guests-using-virt-manager-on-windows/</guid><description>&lt;p&gt;When I first started using KVM, I was quite disappointed with the graphical management abilities of KVM.  Basically if you want to manage via the command line KVM is a fantasical dream world where anything is possible and it is all “musical sunshine” and “double rainbows” but if you want the ability to manage graphically it was a world which was very one sided in that if you wanted the ability to graphically manage your VMs then you had to use Linux.  Or so I thought…&lt;/p&gt;</description></item><item><title>Linux-KVM: Managing Disk Images</title><link>https://thebin.net/2011/03/linux-kvm-managing-disk-images/</link><pubDate>Wed, 16 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/linux-kvm-managing-disk-images/</guid><description>&lt;p&gt;Disk images have long been the traditional form of storage for virtualized environments, they are essentially containers in the form of a file on the host’s file system.  These files can be either fully allocated or sparsely allocated at time of disk creation, a fully allocated 20GB disk image will take up 20GB of storage on the host file system, a sparsely allocated 20GB disk image will only take up as much storage on the host file system as has actually been written inside of the disk, so if you have a newly created sparse file the file will be just a few KB in size.&lt;/p&gt;</description></item><item><title>KVM Guests: Manipulating Libvirt XML for Guest Creation</title><link>https://thebin.net/2011/03/kvm-guests-manipulating-libvirt-xml-for-guest-creation/</link><pubDate>Tue, 15 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/kvm-guests-manipulating-libvirt-xml-for-guest-creation/</guid><description>&lt;p&gt;Today we are going to discuss using the underlying XML which libvirt uses to define a VM to either create VMs or to make simple changes.  This method has the advantage of more control over what you are creating, although it is more manual.  Now first off, when you use virt-install, virt-manager, or another tool which uses libvirt under the covers an XML file is created for every VM that you define, libvirt stores these in  /etc/libvirt/qemu/ and names them vmname.xml.&lt;/p&gt;</description></item><item><title>KVM Guests: Using Virt-Install to Install VMs from a CD or ISO Image</title><link>https://thebin.net/2011/03/kvm-guests-using-virt-install-to-install-vms-from-a-cd-or-iso-imag/</link><pubDate>Mon, 14 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/kvm-guests-using-virt-install-to-install-vms-from-a-cd-or-iso-imag/</guid><description>&lt;p&gt;In my previous article &lt;a href="http://blog.allanglesit.com/2011/03/kvm-guests-using-virt-install-to-import-an-existing-disk-image/"&gt;KVM Guests: Using Virt-Install to Import an Existing Disk Image&lt;/a&gt; we discussed how to use virt-install to import an existing disk image, which already has an OS installed into it.  Additionally in &lt;a href="http://blog.allanglesit.com/2011/03/kvm-guests-using-virt-install-to-install-debian-and-ubuntu-guests/"&gt;KVM Guests: Using Virt-Install to Install Debian and Ubuntu Guests&lt;/a&gt; I documented how to initiate an install directly off of the apt mirror of your choice for Debian and Ubuntu Guests using virt-install.  In this article we will use virt-install to create a guest and begin the installation using a CD or ISO image for installation media.&lt;/p&gt;</description></item><item><title>Linux-KVM: Taking Advantage of Memory Deduplication</title><link>https://thebin.net/2011/03/linux-kvm-taking-advantage-of-memory-deduplication/</link><pubDate>Thu, 10 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/linux-kvm-taking-advantage-of-memory-deduplication/</guid><description>&lt;p&gt;Kernel Samepage Merging (KSM) is essentially active memory deduplication.  What does this means for our KVM guests?  Basically the more similar guests we have running, the more of a memory footprint they share, which means less memory they actually hold.  These free pages can then be reutilized by the host to provide improved i/o through some of the caching that KVM does or by an increased capacity for other guests.&lt;/p&gt;</description></item><item><title>Linux-KVM: Converting Raw Disk Images to LVM Logical Volumes</title><link>https://thebin.net/2011/03/linux-kvm-converting-raw-disk-images-to-lvm-logical-volumes/</link><pubDate>Wed, 09 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/linux-kvm-converting-raw-disk-images-to-lvm-logical-volumes/</guid><description>&lt;p&gt;Linux Logical Volume Manager provides a better method for managing your disks in the home and even more so in the datacenter.  I briefly outlined some of the benefits afforded us by LVM2 in a previous article &lt;a href="http://blog.allanglesit.com/2011/03/linux-lvm2-flexible-local-storage-management/"&gt;Linux LVM2: Flexible Local Storage Management&lt;/a&gt;.  In this article I will provide you with some very simple steps and scenarios to migrate your existing KVM VMs to LVM2 Logical Volumes.&lt;/p&gt;&#10;&lt;p&gt;In this article I am going to make an assumption that your disk images are raw disk images and that you are not using qcow2, vhd, vdi, vmdk or any other disk image format.  Additionally this process should work for a physical or RAID device as well, though I have not verified that.&lt;/p&gt;</description></item><item><title>KVM Guests: Using Virt-Install to Import an Existing Disk Image</title><link>https://thebin.net/2011/03/kvm-guests-using-virt-install-to-import-an-existing-disk-image/</link><pubDate>Tue, 08 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/kvm-guests-using-virt-install-to-import-an-existing-disk-image/</guid><description>&lt;p&gt;In my previous article &lt;a href="http://blog.allanglesit.com/2011/03/kvm-guests-using-virt-install-to-install-debian-and-ubuntu-guests/"&gt;KVM Guests: Using Virt-Install to Install Debian and Ubuntu Guests&lt;/a&gt; we identified how we can use the virt-install command to create a KVM VM and instead of using an iso or physical cd for the install media we can instead use a boot image from an apt mirror via http.  Now obviously this does not harness the true power of the virt-install command.  Today we will discuss how we can take an existing disk image and import it as a VM with the appropriate devices, this would most commonly be done with sysprepped Windows images, to speed up deployment. Though these instructions will easily work with any OS.&lt;/p&gt;</description></item><item><title>KVM Guests: Using Virt-Install to Install Debian and Ubuntu Guests</title><link>https://thebin.net/2011/03/kvm-guests-using-virt-install-to-install-debian-and-ubuntu-guests/</link><pubDate>Wed, 02 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/kvm-guests-using-virt-install-to-install-debian-and-ubuntu-guests/</guid><description>&lt;p&gt;I like to be able to spin up a VM without looking for CD media so for a while now I have been using ISO images for all of my installs directly, however I found my self scurrying around “digitally” looking for the correct iso in much the same way I used to scurry about looking for physical CDs, except I was not physically moving.  So anyways the time was wasted either way, I figured it is time that I find a better (read: lazier) way to do this.  So the idea is that since the apt package manager contains all the packages and files needed to install and upgrade a system, we ought to be able to find a way to initiate the install over the wire.&lt;/p&gt;</description></item><item><title>Linux LVM2: Flexible Local Storage Management</title><link>https://thebin.net/2011/03/linux-lvm2-flexible-local-storage-management/</link><pubDate>Tue, 01 Mar 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/03/linux-lvm2-flexible-local-storage-management/</guid><description>&lt;p&gt;Linux LVM provides a different way of looking at storage.  On the server side this provides much more flexibility than standard disks with partitions.  It allows us to migrate from old to new storage as well as expand the available storage to a particular file system easily (assuming that there is free space available).&lt;/p&gt;&#10;&lt;p&gt;Basically LVM abstracts the physical storage by creating Physical Volumes (PV), and each PV is divided into Physical Extents (PE) which are a consistent size.  Physical Volumes are then added to a Volume Group (VG) which essentially pools all of the PE on all member PV.  Once you have a VG you can then create a Logical Volume (LV) which can be formatted and used as if it were a physical disk, the difference is that the LV can be expanded as many times as needed up until all PE have been allocated within the VG.  In this event you could then simply add another PV to the VG, which would make available additional PE to be added to a LV.&lt;/p&gt;</description></item><item><title>Using Views with BIND 9</title><link>https://thebin.net/2011/02/using-views-with-bind-9/</link><pubDate>Thu, 24 Feb 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/02/using-views-with-bind-9/</guid><description>&lt;p&gt;In almost all organizations the network infrastructure needs to be designed in such a way as to allow both internal and external name resolution authoritatively.  In most organizations this has been accomplished by having separate internal and external servers.  Clearly this way is functional and simpler, however it is also wasteful considering how little resources DNS actually requires.  BIND 9 gives us a new method to manage these types of configurations.  The idea is that you can create a view which will reference specific zones based on the network location that you are coming from.&lt;/p&gt;</description></item><item><title>Installing Linux Integration Components v2.1 Beta</title><link>https://thebin.net/2010/03/installing-linux-integration-components-v2-1-beta/</link><pubDate>Wed, 31 Mar 2010 00:00:00 +0000</pubDate><guid>https://thebin.net/2010/03/installing-linux-integration-components-v2-1-beta/</guid><description>&lt;p&gt;On March 31, 2010 Microsoft released the beta of version 2.1 of the Linux Integration Components. The Linux ICs allow Linux VMs running on Hyper-V to be “enlightened” and have access to synthetic device drivers which perform much faster than their emulated counter parts. It can be downloaded by registering for the Linux Integration Services for Hyper-V on &lt;a href="http://connect.microsoft.com/"&gt;http://connect.microsoft.com&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;What is new in Linux Integration Components v2.1 Beta?&lt;/p&gt;&#10;&lt;p&gt;There are three new features, time sync, shutdown, and SMP. Time sync is communication through the vmbus which updates the guest’s time to match the hosts (without this time is only synced on boot up of the VM). Shutdown simply makes that little shutdown button in Hyper-V Manager work, previously you only had the option of using the Stop command or entering the guest via ssh or some other mechanism and initiating the shutdown. SMP is some fixes in the vmbus module which make the module SMP-safe, and in addition Microsoft will now support Linux guests (RHEL 5.3 &amp;amp; 5.4, and SUSE 10 &amp;amp; 11) with up to 4 vCPUs, previously only 1 vCPU was supported.  InputVSC (Citrix’s Project Satori) will continue to work with this release.&lt;/p&gt;</description></item><item><title>Hyper-V Guests: Compile Linux Kernel 2.6.32 on Debian</title><link>https://thebin.net/2009/12/hyper-v-guests-compile-linux-kernel-2-6-32-on-debian/</link><pubDate>Sat, 19 Dec 2009 00:00:00 +0000</pubDate><guid>https://thebin.net/2009/12/hyper-v-guests-compile-linux-kernel-2-6-32-on-debian/</guid><description>&lt;p&gt;In this post I will be detailing the steps needed to compile a new kernel in Debian Linux 5.  This particular case we are purpose building a kernel with the drivers necessary for Hyper-V Guests to take advantage of synthetic devices.  Additionally I plan on expanding this series with instructions for manual compiles of other distributions as well as some pre-compiled image based installs.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;DISCLAIMER:&lt;/strong&gt; These instructions are not provided with any guarantee of support.  Microsoft (company behind Hyper-V) does not acknowledge Debian as a supported guest operating system.&lt;/p&gt;</description></item><item><title>Hyper-V Guests: Linux Integration Components (v2) on Oracle Enterprise Linux</title><link>https://thebin.net/2009/09/hyper-v-guests-linux-integration-components-v2-on-oracle-enterprise-linux/</link><pubDate>Wed, 23 Sep 2009 00:00:00 +0000</pubDate><guid>https://thebin.net/2009/09/hyper-v-guests-linux-integration-components-v2-on-oracle-enterprise-linux/</guid><description>&lt;p&gt;In this article I am documenting the process for installing the Hyper-V Integration Components (v2) within a  Oracle Enterprise Linux 5.3 VM. My environment consists of x64 VMs, I have not taken the time to test this process for x86 VMs, however it should hold true, as long as you update the package names to reflect the appropriate architecture.&lt;/p&gt;&#10;&lt;p&gt;In my testing I have found that the current versions (v1 and v2) do not work with linux kernels 2.6.20 or newer (with some exceptions for v2), which means in order to use the ICs you will need to have 2.6.19 or older. Oracle Enterprise Linux 5.3 included the Linux 2.6.18-128 kernel.&lt;/p&gt;</description></item><item><title>Hyper-V Guests: Linux Integration Components Ubuntu and Debian</title><link>https://thebin.net/2009/05/hyper-v-guests-linux-integration-components-ubuntu-and-debian/</link><pubDate>Tue, 12 May 2009 00:00:00 +0000</pubDate><guid>https://thebin.net/2009/05/hyper-v-guests-linux-integration-components-ubuntu-and-debian/</guid><description>&lt;p&gt;In this article I am documenting the process for installing the Hyper-V Integration Components within a Ubuntu or Debian VM. I am specifically writing this for Ubuntu 8.04.2 and Debian 5, however I have additionally confirmed that this process works on both Ubuntu 8.10 and Ubuntu 9.04. My environment consists of x64 VMs, I have not taken the time to test this process for x86 VMs, however it should hold true, as long as you update the package names to reflect the appropriate architecture.&lt;/p&gt;</description></item></channel></rss>