<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ZFS on the bin</title><link>https://thebin.net/categories/zfs/</link><description>Recent content in ZFS on the bin</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 01 Dec 2014 00:00:00 +0000</lastBuildDate><atom:link href="https://thebin.net/categories/zfs/index.xml" rel="self" type="application/rss+xml"/><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>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>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>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>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>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>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>Adventures in ZFS: Faulted Cache Devices</title><link>https://thebin.net/2011/08/adventures-in-zfs-faulted-cache-devices/</link><pubDate>Mon, 15 Aug 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/08/adventures-in-zfs-faulted-cache-devices/</guid><description>&lt;p&gt;We recently had an issue with Crucial M4 Solid State Disks when using them with ZFS on Solaris 11 Express (snv_151a).  Basically the disks were showing a whole bunch of write errors and had been “FAULTED” by ZFS. Now to make this problem even worse when we tried to zfs clear them it locked up my SSH session, as well as subsequent sessions, it would allow me to initiate subsequent sessions (and authenticate), however would not deliver me to the prompt.  Additionally when I went onto the console if I ran a “zfs list, zpool list, or zpool status” it would lock up the shell every time.  When I say lock up, I mean lock up, no CTRL + C or Z or anything.  So since these devices were cache devices only this wasn’t the end of the world for us.&lt;/p&gt;</description></item><item><title>So You Want to Learn ZFS Part One</title><link>https://thebin.net/2011/04/so-you-want-to-learn-zfs-part-one/</link><pubDate>Mon, 04 Apr 2011 00:00:00 +0000</pubDate><guid>https://thebin.net/2011/04/so-you-want-to-learn-zfs-part-one/</guid><description>&lt;p&gt;Enterprise Storage is currently broken.  IT departments big and small spend way too much money on completely ineffective storage solutions which only partially fulfil the companies storage need.  All  the while having to justify massive expenditures to the business which do not meet the need.  Essentially IT departments everywhere have become storage sales reps, sure we work with vendors who provide us with quotes, but when the rubber meets the road it is the IT department which is selling the storage to the business.  If any of you have ever been in this position as I have and literally felt sick to your stomach because you knew it was all wrong, then this article is for you.  This article does not provide an Enterprise Storage cure-all.  What it does provide is an interesting look at a solution which really revolutionises the entire Enterprise Storage model.  More importantly it allows you the flexibility, features, and densities needed to make it far superior to any modern day Enterprise Storage solution.  Also it is pretty darn cheap.&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></channel></rss>