<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XO &#8211; XtremeOwnage</title>
	<atom:link href="https://xtremeownage.com/author/eric/feed/" rel="self" type="application/rss+xml" />
	<link>https://xtremeownage.com</link>
	<description>Cars, Computers, and Code.</description>
	<lastBuildDate>Thu, 29 Feb 2024 14:09:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://xtremeownage.com/wp-content/uploads/2019/09/cropped-Turbo-512-2-100x100.png</url>
	<title>XO &#8211; XtremeOwnage</title>
	<link>https://xtremeownage.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>This Blog, is being Migrated</title>
		<link>https://xtremeownage.com/2022/12/10/this-blog-is-being-migrated/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Sat, 10 Dec 2022 21:21:57 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2665</guid>

					<description><![CDATA[Migrating away from wordpress]]></description>
										<content:encoded><![CDATA[
<p>This will be the final post I put onto this wordpress blog.</p>



<p>My blog, is not going away- I am just moving to other software</p>



<h2 class="wp-block-heading">Why?</h2>



<p>I posted on the new site, <a rel="noreferrer noopener" href="https://static.xtremeownage.com/blog/2022/static-site/" target="_blank">HERE</a> surrounding my reasons to migrate away from wordpress to a new static site design. </p>



<p>To summarize the post- Security, Privacy, and Performance.</p>



<h3 class="wp-block-heading">Security</h3>



<p>WordPress nearly always has a new vulnerability, in either its core, or via a 3rd party plugin needed to add desired functionality. By shifting to a completely static design, there is basically nothing which can be exploited. </p>



<p>As well, since the new site is completely static, with no dynamic content whatsoever, It can be hosted by a service such as&#8230; Cloudflare pages, github pages, etc.</p>



<h3 class="wp-block-heading">Privacy</h3>



<p>While- I try my best to keep a hand on the data of my users, in the event this site is PWNED, I cannot promise, nor guarantee the privacy of my users. As such, in the new site, I have full control over exactly what data goes where. </p>



<h3 class="wp-block-heading">Performance</h3>



<p>While I have done numerous optimizations to make this blog very responsible and performant- It will never be able to compete with a fully cached/static site. </p>



<h2 class="wp-block-heading">Where</h2>



<p>New posts will be done at <a href="https://static.xtremeownage.com/" target="_blank" rel="noreferrer noopener">https://static.xtremeownage.com/</a></p>



<h3 class="wp-block-heading">New post notifications</h3>



<p>For those who rely on wordpress to send notifications of new content, The only option I currently have for you is to setup a RSS feeder, and keep an eye on the <a rel="noreferrer noopener" href="https://static.xtremeownage.com/feed_rss_created.xml" target="_blank">NEW RSS FEED</a>.</p>



<p>If you wish to self-host a feeder, FreshRSS is amazing.</p>



<p>If you wish to use a cloud-service, Feedly.IO works well.</p>



<p>Outlook also has built-in support for RSS feeds.</p>



<h2 class="wp-block-heading">When</h2>



<p>I have already started posting new content at the static site months ago. At this particular point in time, I have already migrated over a few handfuls of content&#8230; and will continue migrating content as time goes on.</p>



<p></p>



<p>For content which has already been migrated, you will be redirected automatically to the new location.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to run public wordpress securely, from your home.</title>
		<link>https://xtremeownage.com/2022/08/23/how-to-run-public-wordpress-securely-from-your-home/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Tue, 23 Aug 2022 20:47:51 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2550</guid>

					<description><![CDATA[The anwser? You don&#8217;t. However, there are many precautions you can take when running a public WordPress site, which will reduce the chances of you being PWNED, or, at least,...]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">The anwser?</h2>



<p>You <span style="text-decoration: underline;">don&#8217;t.</span></p>



<p>However, there are many precautions you can take when running a public WordPress site, which will reduce the chances of you being PWNED, or, at least, greatly mitigate the damages. </p>



<p>WordPress itself, has frequent security issues. This site itself, isn&#8217;t immune to them. However, over the course of the last decade running this site, it has so far, only managed to be pwned once&#8230;. and that was due to a plugin which introduced a vulnerability. The impact was limited, due to precautions I will discuss below&#8230; and it took me all of 10 minutes to get everything back up and running.</p>



<h2 class="wp-block-heading">Use a dedicated DMZ.</h2>



<p>A DMZ, is typically a subnet reserved for &#8220;Untrusted services&#8221;.</p>



<p>It is best to treat any publicly available service on your home network, as thought it WILL be exploited, and attackers WILL be able to gain full control over it.</p>



<p>Step one, is to run your public services as either a dedicated server, or a dedicated VM. You want to limit this server&#8217;s network access to only the bare minimal required for its operation. </p>



<ol><li>Internet Access &#8211; Your server will need to be able to access the internet.</li><li>DNS &#8211; To limit exposure of potential vulnerabilities on your local DNS server, I would recommend using a public DNS server, instead of your internal server&#8230;.. Just in the event this box gets PWNED, and your internal DNS server has a potential vulnerability. </li><li>NTP &#8211; Again- I recommend using public NTP services, rather then your internal services, in the event you have a vulnerability in your NTP server.</li><li>Allow NOTHING else. This server should be able to ping the internet, but, have NO access to any of your internal services.</li></ol>



<p>I personally, leverage vlans to control my DMZ network. The switch enforces, only properly tagged traffic is accepted on the port. Even better, would be to step it up and use a dedicated switch for your vlan.</p>



<h2 class="wp-block-heading">Keep everything up to date.</h2>



<p>If you intend on exposing services to the internet, you NEED to keep everything up to date.</p>



<p>This means, you need to keep your firewall up to date. You need to keep your server up to date, and, you need to keep your wordpress up to date.</p>



<p>For me, this blog you are currently reading, is hosted on a linux server, inside of my DMZ. Since, I don&#8217;t log into my server daily to check for updates, I setup <a href="https://docs.rackspace.com/support/how-to/manually-enable-auto-updates-on-debian-ubuntu-14.04-and-16.04-public-cloud-servers/" data-type="URL" data-id="https://docs.rackspace.com/support/how-to/manually-enable-auto-updates-on-debian-ubuntu-14.04-and-16.04-public-cloud-servers/" target="_blank" rel="noreferrer noopener">AUTOMATIC security update installations</a>.</p>



<p>The above step, also includes updates to your php libraries. </p>



<p>Your WordPress itself, also has updates. I enabled automatic platform security updates to keep it up to date.</p>



<p>Most importantly- your WordPress PLUGINs are THE most common attack vector for WordPress. I cannot say I would recommend automatic updates here,  but, I would ensure you keep a very close eye on them.</p>



<p>TLDR; You need to keep everything up to date for security patches.</p>



<h2 class="wp-block-heading">Limit Attack Surface</h2>



<p>Some endpoints, such as /wp-admin, have no functionality which a general user should have access to. I would recommend blocking access to any requests hitting /wp-admin, and locking this behind a trusted IP / SSO. For an example on how this would look, visit <a href="https://xtremeownage.com/wp-admin" target="_blank" rel="noreferrer noopener">https://xtremeownage.com/wp-admin</a></p>



<p>I personally, leverage cloudflare&#8217;s tools for providing a layer of SSO on top of this.</p>



<p>From your PHP configuration, I also recommend disabling php info, and headers which may give out version information. Knowing the particular version of software running on a server, makes it much easier to find relevant vulnerabilities for that particular piece of software.</p>



<h2 class="wp-block-heading">Use Secure/Unique Passwords</h2>



<p>If say, you use a common and simple password such as &#8220;hunter2&#8221; for all of your internal services.</p>



<p>Lets say, an attacker managers to get access to the local server running your blog. Lets assume they managed to find a way to escape your DMZ, such as&#8230; you neglecting to block a certain service, neglecting to apply your security updates, etc&#8230;.</p>



<p>Now, they have access to your network. When they do determine you use the credentials admin // hunter2 for all of your internal services&#8230;. they have just obtained access to everything.</p>



<p>My recommend here, is to use a password manager, and use unique/strong passwords for all of your internal accounts. There are both paid, free, and self-hosted services you can use for managing credentials. </p>



<p>I would personally, recommend either paying for such a service, or hosting your own&#8230;. assuming you can keep it secure.</p>



<h2 class="wp-block-heading">Have Backups</h2>



<p>The MOST IMPORTANT thing you can do when hosting a public service, always assume it will be pwned, and always assume everything on the box will become a complete loss.</p>



<p>To mitigate this risk, have backups. </p>



<p>In my case, assuming the server hosting this blog becomes a total loss, I have the capability of rolling back to a previous snapshot (which are taken daily), or pulling a backup out of cold storage.</p>



<p>Anything worth having, is worth backing up.</p>



<p>I am not going to go in depth on how to make proper backups- but, having a folder on the same server, named &#8220;backups&#8221;, isn&#8217;t going to cut it&#8230; If someone can gain access to your server, and delete your backups, your &#8220;backups&#8221; aren&#8217;t going to help you.</p>



<p>Ideally, you want your backups stored offsite. There are services such as backblaze which can assist you with this.</p>



<h2 class="wp-block-heading">Use Cloudflare Argo / Access</h2>



<p>I personally, recommend <a href="https://www.cloudflare.com/products/tunnel/" target="_blank" rel="noreferrer noopener">cloudflare argo tunnel</a>.</p>



<p>It allows you to expose a service on your local network, WITHOUT opening a port on your firewall. It does this, by doing a reverse proxy from your network, back into cloudflare&#8217;s network.</p>



<p>There are a few advantages to doing this.</p>



<ol><li>It hides your actual IP Address</li></ol>



<p>While- your actual IP might not seem like a huge thing to give out- I personally don&#8217;t want you to know roughly where I live. Even knowing the general vicinity of where you live, causes a small attack surface&#8230; such as being able to figure out your zip-code, ISP, etc.</p>



<p>While- that information by itself, usually isn&#8217;t an issue at all&#8230;.. if you are ever targeted by a dedicated &#8220;hacker&#8221;, you want to disclose as little information as possible. </p>



<p>Another thing to consider- your security questions you provide on many websites, generally have a question of, where did you grow up? What school did you attend, etc.</p>



<p>Assuming, you may live around the area you grew up- by giving out your public IP address, you just gave away a few potential pieces of information.</p>



<p>Also- don&#8217;t assume you can KEEP your ip address hidden. There are occasionally vulnerabilities/exploits which will disclose this information. </p>



<p>The second advantage- you can add an additional layer of authentication around &#8220;sensitive&#8221; endpoints, such as your admin settings. </p>



<p>Lastly, I personally use cloudflare to block a few countries&#8230;. China, Russia, Belarus, for example&#8230; Because I receive a TON of vulnerability scans from those countries. Also- this particular website does not cater to those countries.</p>



<h2 class="wp-block-heading">&#8220;Security&#8221; plugins</h2>



<p>There are many &#8220;security&#8221; plugins you can acquire for wordpress, which will help mitigate some risk. Jetpack, for example, has its own security plugins. Cleartalk does a great job of blocking spam and a few other potential security issues.</p>



<p>I do advise you to look around&#8230;. the cheapest option here, is not always the best.</p>



<p>Also, these plugins aren&#8217;t going to be the be-all/end-all solution, as they DO rely on WordPress itself&#8230; which might have an unmitigated vulnerability. </p>



<h2 class="wp-block-heading">Fail2Ban</h2>



<p>I enjoy the use of fail2ban for detecting vulnerability scanning attempts in my logs. Detecting scan attempts is quite easy. Look at the 404 not found records being logged on your server.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="409" src="https://xtremeownage.com/wp-content/uploads/2022/08/image-1024x409.png" alt="" class="wp-image-2555" srcset="https://xtremeownage.com/wp-content/uploads/2022/08/image-1024x409.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/08/image-300x120.png 300w, https://xtremeownage.com/wp-content/uploads/2022/08/image-768x307.png 768w, https://xtremeownage.com/wp-content/uploads/2022/08/image-1536x614.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/08/image-2048x818.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>I receive THOUSANDS of such attempts every single day on this site. Using fail2ban to temporarily block the IP greatly reduces the chance of a valid vulnerability being located.</p>



<p>Why temporarily? Hackers/Scammers frequently rotate to new IPs. Chances are- the one scanning now, won&#8217;t be in use in a few weeks.</p>



<p>If you have a sensor of humor, you can get very creative with a reverse proxy / .htaccess / nginx configuration.</p>



<p>Example, <a href="https://xtremeownage.com/backup.gz" target="_blank" rel="noreferrer noopener">https://xtremeownage.com/backup.gz</a></p>



<h2 class="wp-block-heading">Security Event Notifications</h2>



<p>I personally, recommend a solution for syslog traffic. My favorite solution, happens to be Splunk.</p>



<p>You can also use logstash/influx/other service.</p>



<p>The service you choose isn&#8217;t the important part. The important part, is having notifications for when something &#8220;unexpected&#8221; happens. <br></p>



<p>Generally- there shouldn&#8217;t be any logins to your servers, unless you are logging into them to do maintenance. As such, setup a notification for new/unexpected logins. </p>



<p>One of the most important steps here, is to just ensure you have a way to be aware something is wrong.</p>



<h2 class="wp-block-heading">The most important tip</h2>



<p>The most important thing to remember- you CANNOT perfectly secure your public facing WordPress site. There are always new vulnerabilities occurring.  Your best line of defense, is to PLAN on it being PWNED, and to have steps in place to mitigate the amount of risk / reduce the amount of time to recover.</p>



<p>As well, ensure you are logging requests to a location where the attacker has a much, much harder time of finding / removing the logs.</p>



<h2 class="wp-block-heading">TLDR;</h2>



<ol><li>Keep everything up to date.</li><li>Treat your DMZ Server hosting wordpress, like it has an attacker already on it. Keep it isolated from EVERYTHING else.</li><li>Keep backups of everything.</li><li>Maintain logs and paper trails.</li></ol>



<h3 class="wp-block-heading">Why am I posting this article?</h3>



<p>So you don&#8217;t end up like <a rel="noreferrer noopener" href="https://www.reddit.com/r/homelab/comments/wuyqty/my_homelab_got_hacked" data-type="URL" data-id="https://www.reddit.com/r/homelab/comments/wuyqty/my_homelab_got_hacked" target="_blank">THIS GUY</a>.</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fire Tablet as Home Assistant Kiosk</title>
		<link>https://xtremeownage.com/2022/07/08/fire-tablet-as-home-assistant-kiosk/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Fri, 08 Jul 2022 13:03:03 +0000</pubDate>
				<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Fire]]></category>
		<category><![CDATA[Fire Tablet]]></category>
		<category><![CDATA[Fully Kiosk]]></category>
		<category><![CDATA[home assistant]]></category>
		<category><![CDATA[Kiosk]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2463</guid>

					<description><![CDATA[Using a Fire Tablet as a Kiosk for home assistant]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Introduction</h1>



<p>For over a year, I have been wanting to experiment with a wall-mounted tablet for viewing and controlling my home automation.</p>



<p>This week, I caught Amazon&#8217;s Fire HD10 tablets on sale for 60$ a piece, and decided to pick up a couple.</p>





<h1 class="wp-block-heading">Parts / Subscriptions Required</h1>



<h3 class="wp-block-heading"><a rel="noreferrer noopener" href="https://amzn.to/3ut8THq" data-type="URL" data-id="https://amzn.to/3ut8THq" target="_blank">A Tablet</a></h3>



<a href="https://www.amazon.com/Fire-HD-10-tablet/dp/B08BX7FV5L?keywords=fire+hd+10&amp;qid=1657680432&amp;smid=ATVPDKIKX0DER&amp;sr=8-1&amp;linkCode=li3&amp;tag=mobilea09d6c7-20&amp;linkId=dce45009dd23480218861ef16af3be78&amp;language=en_US&amp;ref_=as_li_ss_il" target="_blank" rel="noopener"><img decoding="async" border="0" src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;ASIN=B08BX7FV5L&amp;Format=_SL250_&amp;ID=AsinImage&amp;MarketPlace=US&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=mobilea09d6c7-20&amp;language=en_US"></a><img decoding="async" src="https://ir-na.amazon-adsystem.com/e/ir?t=mobilea09d6c7-20&amp;language=en_US&amp;l=li3&amp;o=1&amp;a=B08BX7FV5L" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;">



<p>For this article, I will be using a <a rel="noreferrer noopener" href="https://amzn.to/3ut8THq" data-type="URL" data-id="https://amzn.to/3ut8THq" target="_blank">Fire HD 10 Tablet</a>. You can pick them up as low as 50/60$ (for a refurbished one)</p>



<p>I will note, I have previously tried to get everything up and running on older tablets, but, I had pretty bad luck due to their web browsers being pretty far out of date&#8230;. and thus, not working too well with home assistant. </p>



<p>Why a fire tablet? Simple. You can pick them up quite cheap.</p>



<h3 class="wp-block-heading">(Optional) A Wall Mount</h3>



<p>This item is optional. However, I wanted a nice looking wall mount to hold the tablet. I personally went with <a rel="noreferrer noopener" href="https://amzn.to/3bYXYPq" data-type="URL" data-id="https://amzn.to/3bYXYPq" target="_blank">THIS OPTION</a> for ~ 50$ If you have a 3d printer, you can print your own case from <a rel="noreferrer noopener" href="https://www.thingiverse.com/thing:4734399" target="_blank">THINGVERSE</a>.</p>



<a href="https://www.amazon.com/dp/B082VHYQ48?&amp;linkCode=li3&amp;tag=mobilea09d6c7-20&amp;linkId=7b3731d7faf4c57b1b811537f6bf3c2d&amp;language=en_US&amp;ref_=as_li_ss_il" target="_blank" rel="noopener"><img decoding="async" border="0" src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;ASIN=B082VHYQ48&amp;Format=_SL250_&amp;ID=AsinImage&amp;MarketPlace=US&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=mobilea09d6c7-20&amp;language=en_US"></a><img decoding="async" src="https://ir-na.amazon-adsystem.com/e/ir?t=mobilea09d6c7-20&amp;language=en_US&amp;l=li3&amp;o=1&amp;a=B082VHYQ48" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;">



<p>I will note, while I did order this mount&#8230; as of the time of writing this article, I leveraged a piece of <a rel="noreferrer noopener" href="https://amzn.to/3uyVOMG" data-type="URL" data-id="https://amzn.to/3uyVOMG" target="_blank">3m double sided tape</a> to do the job&#8230;. since this mount is a week or two out in the mail.</p>



<h3 class="wp-block-heading">(Optional) A Smart Plug</h3>



<p>Completely optional. however, if you want to automate charging the battery, you will need a smart plug.</p>



<p>For this&#8230;. you can use anything that integrates with home assistant.</p>



<p><a rel="noreferrer noopener" href="https://amzn.to/3OUTNm7" data-type="URL" data-id="https://amzn.to/3OUTNm7" target="_blank">KASA Plugs</a> &#8211; These are still local control as far as I know. I still have 5 or 10 of them around my house.</p>



<a href="https://www.amazon.com/TP-LINK-HS103P2-Required-Google-Assistant/dp/B07B8W2KHZ?crid=2H2ADOJIVII7X&amp;keywords=kasa+plug&amp;qid=1657680527&amp;smid=ATVPDKIKX0DER&amp;sprefix=kasa+plug%2Caps%2C91&amp;sr=8-3&amp;linkCode=li3&amp;tag=mobilea09d6c7-20&amp;linkId=de1ff0c4a39c9cccd3486e0f397bcee2&amp;language=en_US&amp;ref_=as_li_ss_il" target="_blank" rel="noopener"><img decoding="async" border="0" src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;ASIN=B07B8W2KHZ&amp;Format=_SL250_&amp;ID=AsinImage&amp;MarketPlace=US&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=mobilea09d6c7-20&amp;language=en_US"></a><img loading="lazy" decoding="async" src="https://ir-na.amazon-adsystem.com/e/ir?t=mobilea09d6c7-20&amp;language=en_US&amp;l=li3&amp;o=1&amp;a=B07B8W2KHZ" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;">



<p>There are also plugs using z-wave, zigbee, etc. Up to your personal preference if you choose to do this, and what plug you choose to do it with.</p>



<h3 class="wp-block-heading"><a href="https://www.fully-kiosk.com/" data-type="URL" data-id="https://www.fully-kiosk.com/" target="_blank" rel="noreferrer noopener">Fully Kiosk</a></h3>



<p>While you don&#8217;t HAVE to buy this subscription- It costs a one-time payment of around 7$ USD per device to unlock all of the features. Trust me- some of the additional features are worth having.</p>



<p>To note, you can fully try everything without having this license. Please feel free to experiment before buying this software. The only limitation without an active license, will be a large watermark across the screen reminding you to acquire a license.</p>



<p>To also note, this post is not affiliated or sponsored by Fully Kiosk in any way whatsoever.</p>



<h2 class="wp-block-heading">HACs Integrations/Front End Modules Used</h2>



<h3 class="wp-block-heading"><a href="https://github.com/cgarwood/homeassistant-fullykiosk" data-type="URL" data-id="https://github.com/cgarwood/homeassistant-fullykiosk" target="_blank" rel="noreferrer noopener">Fully Kiosk</a></h3>



<p>This integration handles getting fully kiosk fully integrated with home assistant.</p>



<h3 class="wp-block-heading"><a href="https://github.com/piitaya/lovelace-mushroom" data-type="URL" data-id="https://github.com/piitaya/lovelace-mushroom" target="_blank" rel="noreferrer noopener">Mushroom Cards / lovelace-mushroom</a></h3>



<p>These cards are pretty to look at, and are extremely suitable for a touchscreen interface, such as this tablet.</p>



<h3 class="wp-block-heading"><a href="https://github.com/NemesisRE/kiosk-mode" data-type="URL" data-id="https://github.com/NemesisRE/kiosk-mode" target="_blank" rel="noreferrer noopener">Kiosk-Mode</a></h3>



<p>This card can hide side bars, menu bars, and more allowing you to more easily build suitable dashboards for mobile devices.</p>



<h3 class="wp-block-heading"><a href="https://github.com/mattieha/slider-button-card" data-type="URL" data-id="https://github.com/mattieha/slider-button-card" target="_blank" rel="noreferrer noopener">Slider Button Card</a></h3>



<p>Thanks for the tip by r/filtertuple.</p>



<p>This card makes for a great sliding control for my HVAC.</p>



<h1 class="wp-block-heading">Getting Started</h1>



<h3 class="wp-block-heading">Step 1. Acquire a tablet. </h3>



<p>Acquire the tablet. Charge the tablet.</p>



<p>Configure the tablet.</p>



<p>UPDATE the tablet.</p>



<p>Once the tablet is charged, up to date, and configured, move onto the next step.</p>



<h3 class="wp-block-heading">Step 2. Enable Development Mode on the Tablet</h3>



<p>We will need to enable development mode in order to install unsigned apks (fully-kiosk).</p>



<p>Go to Settings, Device Options, About Fire Tablet.</p>



<p>Once you are here, click on the serial number field about 5 or 10 times. You will see a prompt appear at the bottom of the screen.</p>



<p>Go back one menu, back to device options. You should now see Developer Options.</p>



<p>Go into developer options.</p>



<p>Turn it off (at the top).</p>



<p>Scroll down slightly to the debugging section. Enable USB Debugging.</p>



<h3 class="wp-block-heading">Installation &amp; Configuration of Fully Kiosk</h3>



<h4 class="wp-block-heading">Install Fully Kiosk Browser</h4>



<p>On the tablet, visit this page: https://www.fully-kiosk.com/en/#download-box</p>



<p>You can also google, &#8220;Fully Kiosk Browser&#8221; to get to this location.</p>



<p>You want to download, &#8220;Fully Kiosk Browser&#8221;. Click on GET APK File.</p>



<p>After you download this, you will receive a prompt regarding unsigned device. You will need to grant the silk browser the ability to install unknown apps. Afterwards, the app should install. Open it.</p>



<h4 class="wp-block-heading">Network Configuration (Optional)</h4>



<p>I personally want to leverage this tablet on a dedicated IOT network, where it will have no network access.</p>



<p>For my home network, I have a dedicated SSID for this network. I configured the device to connect to this new SSID, and gave it a static IP. The static IP is a bit important, as it ensures your device retains the same IP when home assistant tries to talk to it.</p>



<p>Blocking&#8230; the device from the internet, also keeps amazon from sneaking in unwanted updates&#8230; or advertisements. </p>



<p>Note, if you purchase a license, the device will need internet access initially to fetch the license. You can disable internet access once it is activated.</p>



<h4 class="wp-block-heading">Configure Fully Kiosk Browser</h4>



<p>The first step, was to set the default URL. I set this to https://hass.mydomain.com/</p>



<p>Next, I created a new non-administrative user account within home assistant, with local sign-in only, and used this new account to sign in on the tablet, remember to click the button, &#8220;Keep me signed in&#8221;</p>



<p>At this point, you should be able to see your home assistant dashboards on the fire tablet without issues.</p>



<p>BUT, we are not done yet&#8230;</p>



<h4 class="wp-block-heading">Enable Fully Kiosk Remote Access (PLUS Only)</h4>



<p>Note, Plus only, means you need to have a paid license for these features.</p>



<p>Swipe your screen from the left, which should reveal the fully kiosk menu.</p>



<p>Click Settings.</p>



<p>Go to Remote Administration (PLUS)</p>



<p>Enable Remote Administration. Set a password. Note the remote administration URL.</p>



<p>After which, back out of the settings screen, and you will be presented with a bunch of permissions prompts. Accept all of the permissions, and grant fully kiosk all of the other special required permissions.</p>



<p>From a computer on your network, browse the the remote administration URL from earlier.</p>



<p>From here, we can continue the process of configuring the app, without needing to interact directly with the tablet.</p>



<h4 class="wp-block-heading">Enable Start on boot (PLUS Only)</h4>



<p>Under Device Management, there is a checkbox for Launch on boot. You will want to select this.</p>



<h4 class="wp-block-heading">Set Power Settings</h4>



<p>Under Settings -&gt; Power Settings</p>



<p>Note- You will want to initially set the wakeup/sleep schedules via the app instead of the remote UI.</p>



<p>I scheduled the device to wake up at 7:30am every day, and go to sleep at 10:30pm every night. This should correspond with times I will actually be awake.</p>



<p>Next, I enabled the battery warning. I set this value to 20%.</p>



<h4 class="wp-block-heading">Kiosk Settings (PLUS Only)</h4>



<p>Under Settings -&gt; Kiosk Mode</p>



<p>I enabled Kiosk mode. This will force a pin to exist kiosk mode. Note, I had to configure this via the app itself. I setup the exit gesture to require 5 taps on the screen.</p>



<p>After saving this, I needed to grant additional notifications permissions to fully Kiosk. </p>



<p>I also disabled all of the buttons, notifications, calls. I left the camera active for the motion detection feature.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="616" height="1024" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-4-616x1024.png" alt="" class="wp-image-2470" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-4-616x1024.png 616w, https://xtremeownage.com/wp-content/uploads/2022/07/image-4-180x300.png 180w, https://xtremeownage.com/wp-content/uploads/2022/07/image-4.png 651w" sizes="(max-width: 616px) 100vw, 616px" /></figure>



<h4 class="wp-block-heading">Configure Motion Detection (PLUS Only)</h4>



<p>Under Settings -&gt; Motion Detection</p>



<p>I enabled motion detection, and enabled turning on the screen when  motion is detected.</p>



<p>I also enabled, &#8220;Turn screen off in darkness&#8221;. If the lights are out, there is no need for this tablet to be active.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="651" height="788" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-3.png" alt="" class="wp-image-2469" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-3.png 651w, https://xtremeownage.com/wp-content/uploads/2022/07/image-3-248x300.png 248w" sizes="(max-width: 651px) 100vw, 651px" /></figure>



<h4 class="wp-block-heading">Configure &#8220;Other Settings&#8221;</h4>



<p>Under Settings -&gt; Other Settings.</p>



<p>I enabled Daily Usage Stats, Environmental Sensors, and MQTT.</p>



<p>For MQTT, I slightly modified the topics to include the prefix of kiosk.</p>



<p>After saving the settings, the device instantly appeared in my broker. The devie does send motion events via MQTT as well.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="462" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-2-1024x462.png" alt="" class="wp-image-2468" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-2-1024x462.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/07/image-2-300x135.png 300w, https://xtremeownage.com/wp-content/uploads/2022/07/image-2-768x347.png 768w, https://xtremeownage.com/wp-content/uploads/2022/07/image-2-1536x693.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/07/image-2.png 1704w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="657" height="1006" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-1.png" alt="" class="wp-image-2467" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-1.png 657w, https://xtremeownage.com/wp-content/uploads/2022/07/image-1-196x300.png 196w" sizes="(max-width: 657px) 100vw, 657px" /></figure>



<h3 class="wp-block-heading">Add Fully Kiosk To Home Assistant</h3>



<h4 class="wp-block-heading">Install Fully Kiosk Browser Integration via HACs</h4>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="498" height="189" src="https://xtremeownage.com/wp-content/uploads/2022/07/image.png" alt="" class="wp-image-2464" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image.png 498w, https://xtremeownage.com/wp-content/uploads/2022/07/image-300x114.png 300w" sizes="(max-width: 498px) 100vw, 498px" /></figure>



<p>Self explanatory- But, install the Fully Kiosk Browser Integration via HACs. Restart home assistant afterwards. </p>



<h4 class="wp-block-heading">Add The Integration</h4>



<p>After home assistant has been added, Navigate to Settings -&gt; Devices &amp; Services -&gt; Integrations.</p>



<p>Click Add Integration</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="200" height="70" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-5.png" alt="" class="wp-image-2471"/><figcaption>Type in Kiosk, and then select Fully Kiosk Browser</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="517" height="264" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-6.png" alt="" class="wp-image-2472" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-6.png 517w, https://xtremeownage.com/wp-content/uploads/2022/07/image-6-300x153.png 300w" sizes="(max-width: 517px) 100vw, 517px" /></figure>



<p>After adding in the static IP you were told to add earlier, and your remote administration password, the integration will be added.</p>



<p>With the integration, you have the ability to manage the tablet from home assistant. You can start apps change the browser&#8230; turn it on/off, reboot it&#8230; whatever you wish!</p>



<p>As a bonus, you can also transmit text to speech through the tablet.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="897" height="1024" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-7-897x1024.png" alt="" class="wp-image-2473" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-7-897x1024.png 897w, https://xtremeownage.com/wp-content/uploads/2022/07/image-7-263x300.png 263w, https://xtremeownage.com/wp-content/uploads/2022/07/image-7-768x877.png 768w, https://xtremeownage.com/wp-content/uploads/2022/07/image-7.png 1012w" sizes="(max-width: 897px) 100vw, 897px" /></figure>



<p>At this point, I modified a few of the scenes for my office, to turn the tablet on while my &#8220;Working&#8221; scene was active, and turn it off when my &#8220;Away&#8221; scene is active. </p>



<p>You can adjust the screen brightness for each scene.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="897" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-8-1024x897.png" alt="" class="wp-image-2474" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-8-1024x897.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/07/image-8-300x263.png 300w, https://xtremeownage.com/wp-content/uploads/2022/07/image-8-768x673.png 768w, https://xtremeownage.com/wp-content/uploads/2022/07/image-8.png 1247w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Charging Automation</h3>



<p>Some people will tell you to add a smart plug, to maintain the battery level between 20 -&gt; 80% or so.</p>



<p>If, you so choose to do this, Fully Kiosk does expose the battery percentage via the integration. You can easily toggle a smart plug to control the charging this way.</p>



<p>If you choose to do this, I would set an automation to turn on the smart plug when it is below 20-40%, and leave it on until the device is &gt; 80%, at which point I would disconnect the charger. </p>



<p>I personally, will not be doing this at this time. This device will remain plugged in forever, while sitting on my wall. While this can potentially cause battery degradation, to re-clarify, it will always be plugged in.</p>



<h3 class="wp-block-heading">Create Tablet-Specific Dashboards</h3>



<p>So, my primary dashboard isn&#8217;t exactly suited for the lower resolution of this tablet.. It was developed with a 4k screen in mind. As well, I want this tablet tailed more specifically for my office. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="496" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-9-1024x496.png" alt="" class="wp-image-2476" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-9-1024x496.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/07/image-9-300x145.png 300w, https://xtremeownage.com/wp-content/uploads/2022/07/image-9-768x372.png 768w, https://xtremeownage.com/wp-content/uploads/2022/07/image-9-1536x744.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/07/image-9.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>My Primary Dashboard</figcaption></figure>



<p>So, I will be taking the relevant elements from various dashboards to create a panel tailored specifically to the area where this tablet will be located.</p>



<p>I will bring attention to the <a rel="noreferrer noopener" href="https://github.com/NemesisRE/kiosk-mode" data-type="URL" data-id="https://github.com/NemesisRE/kiosk-mode" target="_blank">kiosk-mode</a> addon which is available via HACs. It can hide headers, sidebars, and more for your tablet user.</p>



<p>For my mostly-finished product-</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="640" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-10-1024x640.png" alt="" class="wp-image-2478" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-10-1024x640.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/07/image-10-300x188.png 300w, https://xtremeownage.com/wp-content/uploads/2022/07/image-10-768x480.png 768w, https://xtremeownage.com/wp-content/uploads/2022/07/image-10-1536x960.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/07/image-10.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>While, this, doesn&#8217;t look very&#8230; appealing on the web, Capturing a screenshot from a fire tablet is a bit more challenging than expected&#8230; especially, with a background video playing.</p>



<p>For an actual picture-</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="484" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-11-1024x484.png" alt="" class="wp-image-2479" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-11-1024x484.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/07/image-11-300x142.png 300w, https://xtremeownage.com/wp-content/uploads/2022/07/image-11-768x363.png 768w, https://xtremeownage.com/wp-content/uploads/2022/07/image-11-1536x727.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/07/image-11.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>I will note, the space is almost perfectly filled up. I have instant navigation to sections of home assistant where I may need to go via the buttons on the left. I have access to all of the relevant scenes for this room on the bottom left.</p>



<p>The top-center panel will display any alerts I may need to be aware of. Batteries running low, devices not working. Fridge/Freezer getting too hot. Home battery running low.. Fire alarms going off&#8230; etc.</p>



<p>Under that, I have controls for this room&#8217;s lighting and <a href="https://xtremeownage.com/2022/03/27/pioneer-mini-split-home-assistant/" data-type="post" data-id="2089">HVAC systems</a>. To the right, I have my home security. I have alarm control, as well as instant access to the primary security cameras on the exterior of the house.</p>



<p>Overall, this dashboard will likely grow and be expanded in the future. However, for now, it has all of the basic needs I would leverage while I am in the office. </p>



<p>For layout, the above dashboard uses&#8230;</p>



<ol><li>Single panel dashboard view, with a horizontal card with 3 columns being the only panel.</li><li>Each column, contains a verticle stack.</li><li>The buttons on the left, leverages the grid card.</li><li>The lamp and alarm control leverages <a rel="noreferrer noopener" href="https://github.com/piitaya/lovelace-mushroom" data-type="URL" data-id="https://github.com/piitaya/lovelace-mushroom" target="_blank">lovelace-mushroom</a>. </li></ol>



<p><s>My only big complaint right now- the thermostat card takes up a lot of screen real-estate for its given function. </s></p>



<p>7/13/22 &#8211; This issue was resolved by the slider button card, which gives a nice slider for setting the temp.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="892" height="418" src="https://xtremeownage.com/wp-content/uploads/2022/07/image-12.png" alt="" class="wp-image-2503" srcset="https://xtremeownage.com/wp-content/uploads/2022/07/image-12.png 892w, https://xtremeownage.com/wp-content/uploads/2022/07/image-12-300x141.png 300w, https://xtremeownage.com/wp-content/uploads/2022/07/image-12-768x360.png 768w" sizes="(max-width: 892px) 100vw, 892px" /></figure>



<h2 class="wp-block-heading">Kiosk-specific automations</h2>



<h3 class="wp-block-heading">Restart when &#8220;waking&#8221;</h3>



<p>I noticed occasionally when I got up in the morning, the tablet would be displaying a white screen. After some investigation, refreshing the page would not resolve the issue. However, restarting the browser would. So&#8230;. I made an automation to do this.</p>



<p>Quite simply, when the screen turns on, it restarts the browser.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">alias: Kiosk - Restart Browser On Wakeup
description: Kiosk likes to wake up with a blank/white screen.
trigger:
  - platform: device
    type: turned_on
    device_id: 8c55dffb0aedf92bcc0c63f9cbc6f9df
    entity_id: light.bedroom_kiosk_screen
    domain: light
condition: []
action:
  - device_id: 8c55dffb0aedf92bcc0c63f9cbc6f9df
    domain: button
    entity_id: button.bedroom_kiosk_restart_browser
    type: press
mode: single
</pre>



<p>This turned out to be a simple, yet stupid solution for fixing the issue&#8230;. and it does work.</p>



<h3 class="wp-block-heading">Announce Alarmo State</h3>



<p>A simple idea, but, I wanted the kiosk to announce the state of my alarm when it changes.</p>



<p>IE, when you set the alarm to &#8220;Armed Home&#8221;, the kiosk will say, &#8220;Alarm Armed Home.&#8221;</p>



<p>Very simple automation, but, was very effective for the task at hand.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">alias: Kiosk - Announce Alarm State
description: ''
trigger:
  - platform: state
    entity_id:
      - alarm_control_panel.alarmo
condition: []
action:
  - service: tts.cloud_say
    data:
      entity_id: media_player.bedroom_kiosk_media_player
      message: >-
        Alarm {{ states('alarm_control_panel.alarmo') | regex_replace(find='_',
        replace=' ', ignorecase=False) }}
mode: single
</pre>



<h3 class="wp-block-heading">Display NVR Popup when motion is detected</h3>



<p>When people are detected outside of my house, I wanted to automatically announce via the kiosk, and display a live video feed of the cameras.</p>



<p>For this, I used the binary_sensors provided by the frigate integration for when a person is detected. When detected, I leverage the TTS service to announce motion, and then tell fully kiosk to show the blue iris footage. </p>



<p>After 30 seconds, it reverts back to the primary dashboard.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">alias: Kiosk - NVR Popup
description: ''
trigger:
  - type: motion
    platform: device
    device_id: 3b6e1cf99252fc44fbd4ca2159ca609d
    entity_id: binary_sensor.front_door_person_motion
    domain: binary_sensor
  - type: motion
    platform: device
    device_id: ef15f114880855207dfefc401dfda68c
    entity_id: binary_sensor.front_driveway_person_motion
    domain: binary_sensor
  - type: motion
    platform: device
    device_id: ec6af8f8edaa09c3c46d4d9dec430ee1
    entity_id: binary_sensor.mailbox_person_motion
    domain: binary_sensor
condition: []
action:
  - service: tts.cloud_say
    data:
      entity_id: media_player.bedroom_kiosk_media_player
      message: Front Motion Detected
  - service: fullykiosk.load_url
    data:
      entity_id: media_player.bedroom_kiosk_media_player
      url: https://nvr.xtremeownage.com/ui3.htm?group=Front
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - device_id: 8c55dffb0aedf92bcc0c63f9cbc6f9df
    domain: button
    entity_id: button.bedroom_kiosk_load_start_url
    type: press
mode: single
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>r720XD / TrueNAS continued power reduction</title>
		<link>https://xtremeownage.com/2022/05/02/r720xd-truenas-continued-power-reduction/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Mon, 02 May 2022 19:31:55 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2280</guid>

					<description><![CDATA[Trying to further reduce the power consumption from my R720XD.]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Introduction</h1>



<p>During the <a href="https://xtremeownage.com/2022/04/10/attempting-to-reduce-power-consumption-and-improving-performance/" data-type="post" data-id="2165">LAST POST</a>, I reduced the average power consumption of my r720xd running truenas from 400 watts, down to around 200 watts running. This was a pretty big reduction. Most of the reduction was caused by moving my loads to newer, slightly more efficient servers to run docker. The remaining reduction was made possible by removing the 2nd CPU.</p>



<p>For this post, I am going to try and further reduce the power consumption of my server, without butchering performance.</p>



<h2 class="wp-block-heading">Baseline</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-2 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow"><div class="wp-block-group__inner-container">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="416" height="297" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-36.png" alt="" class="wp-image-2281" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-36.png 416w, https://xtremeownage.com/wp-content/uploads/2022/04/image-36-300x214.png 300w" sizes="(max-width: 416px) 100vw, 416px" /><figcaption>iDrac usage &#8211; Last Day</figcaption></figure>
</div></div>
</div>
</div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="423" height="295" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-37.png" alt="" class="wp-image-2282" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-37.png 423w, https://xtremeownage.com/wp-content/uploads/2022/04/image-37-300x209.png 300w" sizes="(max-width: 423px) 100vw, 423px" /><figcaption>iDrac reported consumption &#8211; Last Week</figcaption></figure>
</div>
</div>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-40-1024x65.png" alt="" class="wp-image-2288" width="840" height="53" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-40-1024x65.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/image-40-300x19.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-40-768x49.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/image-40-1536x98.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/04/image-40-2048x130.png 2048w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>I captured this AFTER setting the power management options below- hence, the min peak time shows the current time.</figcaption></figure>



<p>Based on iDrac&#8217;s reported power consumption, this server averages around 215 watts running normally. </p>



<p>So, for the baseline, We are going to go with 215 watts as the target number to beat. </p>



<h2 class="wp-block-heading">TrueNAS &#8211; Configure Drive Power Management</h2>



<p>At this point, I do believe a big chunk of the overall power consumption is from my HDDs themselves. However, I do not want them to spindown, risking increased wear.</p>



<p>However, there are some options we can tweak to potentially reduce power consumption, without spinning down the disks. It appears, by default on scale, power management features are disabled.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="518" height="317" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-38.png" alt="" class="wp-image-2284" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-38.png 518w, https://xtremeownage.com/wp-content/uploads/2022/04/image-38-300x184.png 300w" sizes="(max-width: 518px) 100vw, 518px" /></figure>



<p>So, I am going to specify level 128, which should offer the best power consumption, without causing the drives to spin down.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="494" height="321" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-39.png" alt="" class="wp-image-2285" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-39.png 494w, https://xtremeownage.com/wp-content/uploads/2022/04/image-39-300x195.png 300w" sizes="(max-width: 494px) 100vw, 494px" /><figcaption>Available disk power options</figcaption></figure>



<p>I went through all 13 spinning disks in my system, and adjusted the power consumption to 128.</p>



<p>I do have a couple(2) other drives which are not currently in use on my system, for any reason. I set those drives to level 1, with standby enabled.</p>



<p>After adjusting the power options, off the bat, it appeared to have reduced overall consumption by 20 watts (195w, down from 215w). However- I need to leave the server alone for a few hours at least to establish a proper baseline.</p>



<h4 class="wp-block-heading">A few hours later&#8230;</h4>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="383" height="264" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-43.png" alt="" class="wp-image-2292" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-43.png 383w, https://xtremeownage.com/wp-content/uploads/2022/04/image-43-300x207.png 300w" sizes="(max-width: 383px) 100vw, 383px" /></figure>



<p>It is safe to say, we saved around 10-15 watts by enabling power management features. Not a dramatic amount, but, every little bit helps.</p>



<h3 class="wp-block-heading">Results &#8211; 10-15 watts saved.</h3>



<h2 class="wp-block-heading"><a href="https://xtremeownage.com/2022/04/29/moving-from-truenas-scale-to-core/" data-type="post" data-id="2300">Installing TrueNAS Core</a></h2>



<p>I replaced Scale with Core for performance benefits. However, this actually had the downside of increasing the average power utilization. But, it did improve performance pretty significantly. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="68" src="https://xtremeownage.com/wp-content/uploads/2022/05/image-1024x68.png" alt="" class="wp-image-2347" srcset="https://xtremeownage.com/wp-content/uploads/2022/05/image-1024x68.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/05/image-300x20.png 300w, https://xtremeownage.com/wp-content/uploads/2022/05/image-768x51.png 768w, https://xtremeownage.com/wp-content/uploads/2022/05/image-1536x103.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/05/image-2048x137.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>These performance benefits will come in very handy when I replace the processor.</p>



<h3 class="wp-block-heading">Result &#8211; Negated previous step. But, improved performance.</h3>



<h2 class="wp-block-heading">r720XD &#8211; Swapping E5-2695v2 with E5-2630L v2</h2>



<p>Browsing the r720XD&#8217;s owner manual, and doing a few comparisons on <a rel="noreferrer noopener" href="https://www.cpubenchmark.net/" target="_blank">CpuBenchmark.net</a>, I found I could swap my E5-2695v2 out for a E5-2630L v2 and cut my CPU&#8217;s TDP in half.</p>



<p>There were other options, such as the E5-2650L v2, which offers increased cores, but, lower clock speed.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="903" height="651" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-41.png" alt="" class="wp-image-2289" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-41.png 903w, https://xtremeownage.com/wp-content/uploads/2022/04/image-41-300x216.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-41-768x554.png 768w" sizes="(max-width: 903px) 100vw, 903px" /></figure>



<p></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="911" height="267" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-42.png" alt="" class="wp-image-2290" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-42.png 911w, https://xtremeownage.com/wp-content/uploads/2022/04/image-42-300x88.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-42-768x225.png 768w" sizes="(max-width: 911px) 100vw, 911px" /></figure>



<p>Since my TrueNAS server has been delegated to storage-only, I decided to prioritize the single-threaded performance. </p>



<h3 class="wp-block-heading">Results &#8211; MABYE 10 watts saved</h3>



<p>After swapping the CPU, I gave it a bit to start calculating a new average. Overall, I can see a reduced trend&#8230; but, the difference is not very dramatic. </p>



<p>The data below was collected from my <a href="https://xtremeownage.com/2021/08/11/energy-monitoring-options/" data-type="post" data-id="1605">Iotawatt</a>. If you focus on the 400 watt line, you can see before swapping the CPU, the circuit spent the majority of the time slightly above it. After swapping the CPU, you will notice the circuit spends the majority of the time right under it, slightly. Do note, circuit, refers to the entire circuit powering my rack, and is not specific to just the server.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="499" src="https://xtremeownage.com/wp-content/uploads/2022/05/image-1-1024x499.png" alt="" class="wp-image-2353" srcset="https://xtremeownage.com/wp-content/uploads/2022/05/image-1-1024x499.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/05/image-1-300x146.png 300w, https://xtremeownage.com/wp-content/uploads/2022/05/image-1-768x374.png 768w, https://xtremeownage.com/wp-content/uploads/2022/05/image-1.png 1334w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Overall, there is a reduction. But, it is not very significant. I believe I would see more reductions by removing the 40G networking card.</p>



<h2 class="wp-block-heading">Conclusions / Next Steps</h2>



<p>At this point, I don&#8217;t think there is much more room for optimizing the performance of this system, other then removing NICs, and replacing 8G dimms, with 32G dimms, as the dimms themselves, do consume energy.</p>



<p>Personally, the next step I take reducing energy, will be to retire the R720XD, and replace it with a Ryzen 5 3600, which I have sitting in my closet. The only thing missing, is a decent, rack-mountable case.</p>



<p>I did, however, through the various optimizations, get the r720XD to idle around 170-200 watts, with the main array always spinning. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>My 40GBe NAS Journey.</title>
		<link>https://xtremeownage.com/2022/04/29/my-40gbe-nas-journey/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Fri, 29 Apr 2022 20:30:25 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[TrueNAS - Scale]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2332</guid>

					<description><![CDATA[My journey for building a home nas capable of performing nearly as well as a locally attached NVMe.]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Introduction</h1>



<p>I have been trying to see exactly how fast I can push my existing hardware, without dumping ridiculous amounts of money on it.</p>



<p>I have tried many things to maximize the amount of performance, including even temporarily buying a pair of 100GBe nics a while back. (TLDR; lots of driver issues&#8230;.)</p>



<p>Well, after months and months of tinkering, I have finally reached my goal of being able to easily saturate 40GBe ethernet. </p>



<p>If you wish to read more of the details which led me to this point, here are a few of the previous posts:</p>



<h2 class="wp-block-heading">Backstory</h2>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2020/07/24/closet-mini-server-build/" data-type="post" data-id="1067">The Original NAS &#8211; 500$ Mini Build</a></h4>



<p>I started my current NAS journey, with a 500$ build, after being disappointed at the high prices of synology / drobo / qnap systems. I wanted to prove I could build a more capable system for less money. I did succeed.</p>



<p>This unit was eventually replaced due to the underpowered CPU.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2021/03/16/2021-server-and-gaming-pc-build/" data-type="post" data-id="1441" target="_blank" rel="noreferrer noopener">Combined Gaming PC / Server</a></h4>



<p>I ended up selling the above build, and for a few months, I turned my gaming PC into a combined gaming PC and server. Overall, it worked great. The only downside was the amount of heat being put into my bedroom. Oh, and limited number of PCIe lanes.</p>



<p>This was replaced by a Dell R720XD, which I picked up for 500$ shipped, with 128GB of ram included.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2021/09/04/10-40g-home-network-upgrade/" data-type="URL" data-id="https://xtremeownage.com/2021/09/04/10-40g-home-network-upgrade/" target="_blank" rel="noreferrer noopener">Upgrading my home network to 10/40G backbone</a></h4>



<p>Sept of last year, I picked up a pair of brocade ICX-6610 10/40G switches. As well, this is the first article where my Dell R720XD was mentioned. I never did a formal write up on obtaining it. However, it replaced my <a href="https://xtremeownage.com/2021/03/16/2021-server-and-gaming-pc-build/" data-type="post" data-id="1441" target="_blank" rel="noreferrer noopener">Combined GamingPC/Server</a>.</p>



<p>As apart of this project, I also ran 10GBe to my office.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2021/11/05/rack-em-up/" data-type="URL" data-id="https://xtremeownage.com/2021/11/05/rack-em-up/" target="_blank" rel="noreferrer noopener">Adding a server rack</a></h4>



<p>Self explanatory, however, since having all of your hardware sitting on buckets and cardboard boxes is not the best thing to do, I invested in a rack&#8230; and made everything somewhat presentable.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2021/12/12/reducing-power-consumption-without-reducing-performance/" data-type="URL" data-id="https://xtremeownage.com/2021/12/12/reducing-power-consumption-without-reducing-performance/" target="_blank" rel="noreferrer noopener">Reducing power consumption &#8211; Retiring Brocade</a></h4>



<p>Turns out, the brocade ICX-6610 produces more heat/noise then I was happy with. In this post, I retired the old switches. This saved a big chunk of power, but, also meant, I no longer had a 40GBe network core. Instead, I leveraged my opnsense firewall for providing a 10G core, although routed.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2022/01/26/40gb-ethernet-cost-and-benchmarks/" data-type="URL" data-id="https://xtremeownage.com/2022/01/26/40gb-ethernet-cost-and-benchmarks/" target="_blank" rel="noreferrer noopener">Running 40Gbit Fiber</a></h4>



<p>Since, 10GBe just wasn&#8217;t cutting it for me, I finally got around to running 40Gbe fiber from my server closet to my office. This also added a Chelsio 40GBe NIC to my Gaming PC.</p>



<p>Since the 40GB was point to point, no switches, no routers, etc, This also improved performance significantly over the 10GBe routed iscsi from previous steps.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2022/01/08/dell-r270xd-bifurcation/" data-type="post" data-id="1937">Adding &#8220;Bifurcation&#8221;</a></h4>



<p>Since, my r720XD does not support bifurcation, I found a few PCIe cards to work as switches for my NVMes. This allowed me to run many more NVMe drives rather then only being able to leverage a single NVMe per PCIe-slot.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2022/03/26/truenas-scale-infiniband/" data-type="URL" data-id="https://xtremeownage.com/2022/03/26/truenas-scale-infiniband/" target="_blank" rel="noreferrer noopener">Infiniband</a></h4>



<p>One day a few months back, I experimented with using Infiniband.</p>



<p>This involved custom compiling drivers for TrueNAS, and having to hack up a lot of bits and pieces you generally do not want to touch. </p>



<p>As well, the community forums <a rel="noreferrer noopener" href="https://www.truenas.com/community/threads/chelsio-t520-cr.97081/#post-690618" data-type="URL" data-id="https://www.truenas.com/community/threads/chelsio-t520-cr.97081/#post-690618" target="_blank">are quite toxic to you doing anything</a> that isn&#8217;t supported out of the box. But, I did manage to successfully get infiniband up and running. However, I was unable to perform any reasonable tests as I didn&#8217;t want to hack up the system anymore.</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2022/04/10/attempting-to-reduce-power-consumption-and-improving-performance/" data-type="URL" data-id="https://xtremeownage.com/2022/04/10/attempting-to-reduce-power-consumption-and-improving-performance/" target="_blank" rel="noreferrer noopener">Further Reducing Power Consumption</a></h4>



<p>Given electricity costs money, and power usage means heat production, I continued down the path of reducing the energy consumption of my home lab.</p>



<p>In this post, I reduced power consumption by ADDING new servers. Overall, I was able to reduce my R720XD&#8217;s power consumption by a pretty good chunk by moving services to the new SFF optiplex machines I had acquired.</p>



<p>Since, the server was no longer handling containers/VMs, I also removed its second CPU which actually helped performance out a good bit.</p>



<p>On the downside, I now only have 96G of ram instead of 128G.</p>



<h4 class="wp-block-heading">Further Reducing Power Usage (Not yet published)</h4>



<p>In the next post regarding reducing my power utilization, I enabled power management features within TrueNAS, to allow for greater savings. This knocked off ~20w of consumption, while not allowing the disks to spin down. As well, I swapped in a low-powered E5-2630L to further reduce power draw. </p>



<p>(Note, processor is still in the mail. Article will be completed AFTER this one has already been published)</p>



<h4 class="wp-block-heading"><a href="https://xtremeownage.com/2022/04/29/moving-from-truenas-scale-to-core/" data-type="URL" data-id="https://xtremeownage.com/2022/04/29/moving-from-truenas-scale-to-core/" target="_blank" rel="noreferrer noopener">Migrating from TrueNAS Scale, to TrueNAS Core</a></h4>



<p>The final step to achieve the performance numbers I have been hunting for- I installed TrueNAS core, and rebuilt my configuration from scratch.</p>



<p>Out of the box, with no tuning whatsoever, it had no issues at all besting every performance metric from Scale.</p>



<p></p>



<h2 class="wp-block-heading">The Benchmarks</h2>



<p>I have split the benchmarks into two seperate sections. Those against my Flash array, and those against my pool of spinning rust.</p>



<p>I did post both 1G and 32G test sizes where possible. </p>



<p>I started running the benchmarks in 32G to hush the trolls who blame the results on cache/ram.</p>



<h3 class="wp-block-heading">Against my 8-disk Z2 Array</h3>



<p>The array, is a 8-disk Z2. LZ4 compression is enabled, without dedup. The drives are 8x USED 8TB Seagate Exos.</p>



<h4 class="wp-block-heading">TrueNAS Scale</h4>



<p>These benchmarks were performed before migrating to core.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-3 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h5 class="wp-block-heading">iSCSI &#8211; 1G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-44.png" alt="" class="wp-image-2301" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-44.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-44-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h5 class="wp-block-heading">SMB &#8211; 1G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-45.png" alt="" class="wp-image-2302" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-45.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-45-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>
</div>



<h4 class="wp-block-heading">TrueNAS Core</h4>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-4 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h5 class="wp-block-heading">iSCSI &#8211; 1G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-65.png" alt="" class="wp-image-2325" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-65.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-65-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>



<h5 class="wp-block-heading">iSCSI &#8211; 32G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-67.png" alt="" class="wp-image-2334" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-67.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-67-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h5 class="wp-block-heading">SMB &#8211; 1G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-66.png" alt="" class="wp-image-2328" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-66.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-66-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>



<h5 class="wp-block-heading">SMB &#8211; 32G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-68.png" alt="" class="wp-image-2335" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-68.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-68-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>
</div>



<p>It is rather interesting to see the differences between 1G and 32G. The sharp decline in write speed/IOPs is due to the cache being saturated. However, large sequential writes are still working just fine.</p>



<h3 class="wp-block-heading">Against My Flash Array</h3>



<p>My flash array is a single mirrored VDEV, consisting of a pair of 1T Samsung 970 EVO NVMe. While, previously, I did add an additional stripe, I didn&#8217;t notice dramatic performance differences and ended up removing the extra vdev(Possible to do with openzfs).</p>



<p>Since, I did not take recent benchmarks of the flash array before migrating to core, I do not have any &#8220;before&#8221; results to compare with.</p>



<p>As well, I did not take any benchmarks over SMB. However, it is safe to assume the results will be faster than the SMB results.</p>



<h4 class="wp-block-heading">TrueNAS Core &#8211; After Results</h4>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-5 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h5 class="wp-block-heading">iSCSI &#8211; 1G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-69.png" alt="" class="wp-image-2337" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-69.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-69-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h5 class="wp-block-heading">iSCSI &#8211; 32G Test Size</h5>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-71.png" alt="" class="wp-image-2339" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-71.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-71-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>
</div>



<p>I will note, there is a tiny amount more room for improvement as my CPU is getting pegged pretty hard during write operations. </p>



<p>But, next week, I will be replacing my E5-2695v2 with a E5-2630L in attempts to further reduce my energy consumption. However, I do feel, I should still be able to obtain very reasonable benchmark results.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="58" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-70-1024x58.png" alt="" class="wp-image-2338" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-70-1024x58.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/image-70-300x17.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-70-768x43.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/image-70-1536x86.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/04/image-70.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Next Steps?</h2>



<p>Well, Other then replacing my CPU with a low-powered model which is going to hurt my performance slightly, I don&#8217;t really have any next steps.</p>



<p>I have been debating wanting to build out a CEPH cluster using a pile of SFF/MFF PCs, however, the budget for such a project is not in the cards for this year.</p>



<p>As well, I have toyed with the idea of deploying a disk array, but, this wouldn&#8217;t net me any performance improvements or reducings in power consumption. The array itself would use 30-60w without any disks. The only meaningful advantage would be to make it much easier to swap to a different piece of hardware. I have decided, that since the number of spinning spools directly correlates to the wattage draw, I don&#8217;t want to deploy a 16+ disk array. When zfs online expansion comes eventually, I will likely grow my existing array to 12 disks total.</p>



<p>For now, It is nearing time to focus my efforts on the 1,000hp turbocharged 4&#215;4 suburban project! Because, everyone needs a 1,000hp surburban! (NOT an exaggeration on the horsepower numbers&#8230;.)</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Moving From TrueNAS Scale to Core</title>
		<link>https://xtremeownage.com/2022/04/29/moving-from-truenas-scale-to-core/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Fri, 29 Apr 2022 19:17:51 +0000</pubDate>
				<category><![CDATA[TrueNAS - Scale]]></category>
		<category><![CDATA[TrueNAS]]></category>
		<category><![CDATA[TrueNAS Core]]></category>
		<category><![CDATA[TrueNAS Scale]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2300</guid>

					<description><![CDATA[Migrating from TrueNAS Scale, to TrueNAS Core.]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Why?</h1>



<p>Well, given my recent push to improve energy efficiency, I have reduced the average power utilization from my R720XD from 400-450w average, down to around 190w average. However, there is still more room to reduce usage.</p>



<p>Based on benchmarks I have seen, core should offer improved performance, which means less impact from the low-powered CPU I plan on putting into my server. As well, this should be a very easy migration from Scale to Core.</p>



<h2 class="wp-block-heading">Benchmarks</h2>



<p>Before doing anything, I ran a few simple, quick benchmarks across iScsi and SMB, to my Z2 array. I used the peak performance profile in CrystalBenchmark.</p>



<p>This isn&#8217;t designed to be a definitive test, but, to give me something quick to compare against. </p>



<h3 class="wp-block-heading">TrueNAS Scale</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-6 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">iSCSI</h4>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-44.png" alt="" class="wp-image-2301" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-44.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-44-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /><figcaption>iSCSI test, to Z2 array.</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">SMB</h4>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-45.png" alt="" class="wp-image-2302" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-45.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-45-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /><figcaption>SMB Test, to Z2 Array.</figcaption></figure>
</div>
</div>



<h3 class="wp-block-heading">TrueNAS Core (After migration)</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">iSCSI</h4>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-65.png" alt="" class="wp-image-2325" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-65.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-65-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">SMB</h4>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-66.png" alt="" class="wp-image-2328" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-66.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-66-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>
</div>
</div>



<p>As seen above, there are numerous performance improvements across the board. Given the sole purpose of my TrueNAS box at this point in time is storage, and storage alone, this makes the decision to move from Scale back to Core all worth it.</p>



<h2 class="wp-block-heading">Steps</h2>



<h3 class="wp-block-heading">Step 1. Backups</h3>



<p>The first and foremost step before doing anything to your storage system, is to ensure you have working backups. Assume, your migration will fail in a catastrophic manner, leaving all of your data unusable. So, make sure you have working backups.</p>



<h3 class="wp-block-heading">Step 2. Configuration Backup</h3>



<p>With a configuration backup, you can easily restore all of your configurations to a fresh install of TrueNAS, allowing you to be back up and online in minutes. Always keep a backup!</p>



<h3 class="wp-block-heading">Step 3. Download the core ISO.</h3>



<p>Download the desired release from <a rel="noreferrer noopener" href="https://www.truenas.com/download-truenas-core/" data-type="URL" data-id="https://www.truenas.com/download-truenas-core/" target="_blank">HERE</a>. I went with Core 13.0-RC1 assuming it would have the newer version of ZFS, minimizing potential pool compatibility issues.</p>



<h3 class="wp-block-heading">Step 4. Mount / Burn the ISO.</h3>



<p>If you do not have enterprise hardware with remote management capabilities, burn the disk to a CD/DVD/or ISO.</p>



<p>If you have iDrac / iLo, attach the image as virtual media.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="618" height="247" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-46.png" alt="" class="wp-image-2303" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-46.png 618w, https://xtremeownage.com/wp-content/uploads/2022/04/image-46-300x120.png 300w" sizes="(max-width: 618px) 100vw, 618px" /></figure>



<p>If you are using idrac/ilo, set the next boot, to boot to your virtually mapped ISO.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="442" height="305" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-47.png" alt="" class="wp-image-2304" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-47.png 442w, https://xtremeownage.com/wp-content/uploads/2022/04/image-47-300x207.png 300w" sizes="(max-width: 442px) 100vw, 442px" /></figure>



<p>Reboot your system.</p>



<h3 class="wp-block-heading">Step 5.1 &#8211; Reboot, and find unexpected memory errors</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1001" height="326" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-48.png" alt="" class="wp-image-2305" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-48.png 1001w, https://xtremeownage.com/wp-content/uploads/2022/04/image-48-300x98.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-48-768x250.png 768w" sizes="(max-width: 1001px) 100vw, 1001px" /></figure>



<p>During the process of rebooting to reinstall, I had one of my Dimms fail testing. As I have recently had a weird issue popping up seemingly related to memory&#8230;. I decided to go ahead and replace the A12 dimm.</p>



<p>After replacing stick A12, the errors/warnings went away.</p>



<h3 class="wp-block-heading">Step 5.2 Install TrueNAS Core</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="875" height="641" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-49.png" alt="" class="wp-image-2306" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-49.png 875w, https://xtremeownage.com/wp-content/uploads/2022/04/image-49-300x220.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-49-768x563.png 768w" sizes="(max-width: 875px) 100vw, 875px" /></figure>



<p>After you get booted to the installer, you will want to select Install/Upgrade</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="756" height="258" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-50.png" alt="" class="wp-image-2307" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-50.png 756w, https://xtremeownage.com/wp-content/uploads/2022/04/image-50-300x102.png 300w" sizes="(max-width: 756px) 100vw, 756px" /></figure>



<p>After I was prompted for which drives to install TrueNAS, I selected my two 10K SAS drives where it was previously installed.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="620" height="420" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-51.png" alt="" class="wp-image-2308" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-51.png 620w, https://xtremeownage.com/wp-content/uploads/2022/04/image-51-300x203.png 300w" sizes="(max-width: 620px) 100vw, 620px" /></figure>



<p>After which, I received a prompt letting me know everything would be erased.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="767" height="274" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-52.png" alt="" class="wp-image-2309" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-52.png 767w, https://xtremeownage.com/wp-content/uploads/2022/04/image-52-300x107.png 300w" sizes="(max-width: 767px) 100vw, 767px" /></figure>



<p>Select your desired boot mode. The r720XD will boot either mode.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="776" height="182" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-53.png" alt="" class="wp-image-2310" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-53.png 776w, https://xtremeownage.com/wp-content/uploads/2022/04/image-53-300x70.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-53-768x180.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></figure>



<p>When asked to create a swap partition, I selected to not create swap (As the system has over 100G of ram&#8230;)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="789" height="171" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-54.png" alt="" class="wp-image-2311" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-54.png 789w, https://xtremeownage.com/wp-content/uploads/2022/04/image-54-300x65.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-54-768x166.png 768w" sizes="(max-width: 789px) 100vw, 789px" /></figure>



<p>After finishing up the GUI-based options, a terminal appeared. </p>



<p>This step took a while to complete, likely due to the virtual media being accessed over the network.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="761" height="790" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-55.png" alt="" class="wp-image-2312" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-55.png 761w, https://xtremeownage.com/wp-content/uploads/2022/04/image-55-289x300.png 289w" sizes="(max-width: 761px) 100vw, 761px" /></figure>



<p>After&#8230;. 10 minutes or so, Core was successfully reinstalled.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="796" height="159" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-56.png" alt="" class="wp-image-2313" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-56.png 796w, https://xtremeownage.com/wp-content/uploads/2022/04/image-56-300x60.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-56-768x153.png 768w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<p>I disconnected the virtual media, and rebooted the system.</p>



<h3 class="wp-block-heading">Step 6. Boot / Import Configuration</h3>



<p>After a while, my system booted into core.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="508" height="872" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-57.png" alt="" class="wp-image-2314" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-57.png 508w, https://xtremeownage.com/wp-content/uploads/2022/04/image-57-175x300.png 175w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<p>At this point, we are done using iDrac / Physical console for configuration.</p>



<p>Assuming your system was able to acquire a usable IP address (I have multiple NICs configured, a few of which gave out a DHCP address), navigate to the configuration page, and log in with the password you configured earlier during the installation.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="445" height="601" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-58.png" alt="" class="wp-image-2315" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-58.png 445w, https://xtremeownage.com/wp-content/uploads/2022/04/image-58-222x300.png 222w" sizes="(max-width: 445px) 100vw, 445px" /></figure>



<p>From this point, I would enjoy telling you to upload your previous configuration backup, however, my scale backup was deemed &#8220;too new&#8221; for core to import. This isn&#8217;t a big problem. Lets rebuild a new configuration.</p>



<p>I will start by importing my pools from scale.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="462" height="427" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-60.png" alt="" class="wp-image-2317" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-60.png 462w, https://xtremeownage.com/wp-content/uploads/2022/04/image-60-300x277.png 300w" sizes="(max-width: 462px) 100vw, 462px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="525" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-61-1024x525.png" alt="" class="wp-image-2318" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-61-1024x525.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/image-61-300x154.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-61-768x394.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/image-61.png 1148w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>After, a long time, the pool from scale was able to successfully import.</p>



<p>I continued importing my other pools.</p>



<p>After this, I went ahead and configured my 10/40GBe interfaces. I had no issues getting the 40GBe ConnectX-3 NIC up and running.</p>



<p>From this point, I went through each configuration section and slowly reconfigured everything&#8230; Emails, Network, DNS, SSH, NTP, etc&#8230;</p>



<p>After configuring everything, I rebooted the host. It rebooted and came back online without any issues or side-effects.</p>



<h3 class="wp-block-heading">Step 7. Reconfiguring iSCSI</h3>



<p>In the previous step, I went ahead and configured most of iSCSI. However, I could not select the existing zvols as extends. </p>



<p>To knock out some initial testing, I went ahead and deleted the old 50G testing zvol from my flash array, and used the wizard to go ahead and setup iSCSI.</p>



<p>After attaching/formatting the disk in windows, I went ahead and ran a test.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/40gbe.png" alt="" class="wp-image-2329" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/40gbe.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/40gbe-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>



<p>Granted, this test is against my Flash array, however, I will note the write performance is MUCH better then it was during the previous tests conducted <a href="https://xtremeownage.com/2022/04/10/attempting-to-reduce-power-consumption-and-improving-performance/" data-type="post" data-id="2165">when I replaced my core switch</a>.</p>



<p>As well, I have performed no tuning, yet.</p>



<h2 class="wp-block-heading">Results?</h2>



<p>Overall, the migration was not too bad.</p>



<p>On a scale of 1-10, 10 being the hardest, I would give this a 6.</p>



<p>It would have saved many hours of reconfiguration If I were able to import my configuration from Scale. Since I was not able to, I had to go and manually reconfigured all users/groups/shares/jobs/etc. This was a pretty time consuming process.</p>



<p>I will note, my existing pools imported without a hitch, and I was able to get all of my iscsi mounts reattached after a few minor issues.</p>



<p>Getting SMB working again, took quite a bit more effort then I was expecting, however.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Attempting to Reduce Power Consumption and Improving Performance</title>
		<link>https://xtremeownage.com/2022/04/10/attempting-to-reduce-power-consumption-and-improving-performance/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Sun, 10 Apr 2022 17:36:44 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2165</guid>

					<description><![CDATA[Adding more hardware to my home lab to attempt to reduce power consumption.]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large is-style-default"><img loading="lazy" decoding="async" width="586" height="1024" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-11-586x1024.png" alt="" class="wp-image-2184" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-11-586x1024.png 586w, https://xtremeownage.com/wp-content/uploads/2022/04/image-11-172x300.png 172w, https://xtremeownage.com/wp-content/uploads/2022/04/image-11.png 617w" sizes="(max-width: 586px) 100vw, 586px" /><figcaption class="wp-element-caption">Finished picture of rack loaded with new SFF servers.</figcaption></figure>



<h1 class="wp-block-heading">Introduction</h1>



<p>My electric bill is expensive. I need to reduce it. I don&#8217;t enjoy every month seeing my home lab is the main cause for my high energy bill.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="705" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-1024x705.png" alt="Image of home assistant's energy dashboard overwhelmingly showing home assistant to be the chief consumer of electric in my house
" class="wp-image-2166" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-1024x705.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/image-300x206.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-768x529.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/image-1536x1057.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/04/image.png 1636w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Energy usage for previous month&#8230; My rack is nearly half of all consumption</figcaption></figure>



<p>So, I wanted to reduce this usage a bit, without affecting performance.</p>



<p>Note- Affiliate advertising links are utilized on this article.</p>





<h2 class="wp-block-heading">Step 1. Adding more servers</h2>



<p>Sounds counter-productive, right?</p>



<p>Well, currently, I have everything hosted on my ancient dell R720XD. Its not the most efficient thing in the world. The plan was to take my primary services and host them on a newer, more modern machine so that I can perhaps schedule my r720XD to shutdown at times.</p>



<h3 class="wp-block-heading">Hardware</h3>



<p>For hardware, I decided to pickup a pair of Dell SFF Machines.</p>



<h4 class="wp-block-heading">7040 SFF &#8211; i5-6500 + 8G of ram &#8211; 100$</h4>



<p><a href="https://ebay.us/QmOPvM" data-type="URL" data-id="https://ebay.us/QmOPvM" target="_blank" rel="noreferrer noopener">EBay Link</a></p>



<p>I plan on using this machine to host my Blue Iris instance. The i5 offers rudimentary hardware encoding, and 8G of ram is plenty.</p>



<p>I added a <a rel="noreferrer noopener" href="https://amzn.to/3xh0JEc" data-type="URL" data-id="https://amzn.to/3xh0JEc" target="_blank">8T WD Red HDD</a> for bulk NVR footage, and a <a rel="noreferrer noopener" href="https://amzn.to/3NWOGBY" data-type="URL" data-id="https://amzn.to/3NWOGBY" target="_blank">500G WD Black</a> for &#8220;new&#8221; footage.</p>



<p>I purposely chose the WD Black, because it is cheap. The NVMe tied to the new storage will be constantly written to, and will eventually burn out.</p>



<p>For the OS drive, I found new <a rel="noreferrer noopener" href="https://amzn.to/3uo6z4W" data-type="URL" data-id="https://amzn.to/3uo6z4W" target="_blank">128G NVMe drives for 15$ each</a>. I used a <a href="https://amzn.to/3joOayx" data-type="URL" data-id="https://amzn.to/3joOayx" target="_blank" rel="noreferrer noopener">12$ adaptor</a> to install it into one of the PCIe slots.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="570" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-3-1024x570.png" alt="" class="wp-image-2171" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-3-1024x570.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/image-3-300x167.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-3-768x427.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/image-3-1536x854.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/04/image-3.png 1744w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">12$ NVMe Adaptor, with 14$ 128G NVMe installed.</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="617" height="783" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-1.png" alt="" class="wp-image-2167" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-1.png 617w, https://xtremeownage.com/wp-content/uploads/2022/04/image-1-236x300.png 236w" sizes="(max-width: 617px) 100vw, 617px" /><figcaption class="wp-element-caption">7040 with 8TB WD Red installed. NVMe not yet installed</figcaption></figure>



<h4 class="wp-block-heading">7060 SFF &#8211; i7-8700 + 16G &#8211; 400$</h4>



<p><a href="https://ebay.us/zAPAoJ" data-type="URL" data-id="https://ebay.us/zAPAoJ" target="_blank" rel="noreferrer noopener">EBay Link</a></p>



<p>For my container host, I chose a more modern device with an i7-8700. This offers 6c and 12t, with a good clock speed. As well, the quick sync is quite effective. This will be very handy for plex transcoding.</p>



<p>The 7060 does offer a lot more features over the 7040, including a few extra ports. </p>



<p>For additional hardware, I installed&#8230;</p>



<ol>
<li>(Amazon) <a rel="noreferrer noopener" href="https://amzn.to/3v6fs2e" data-type="URL" data-id="https://amzn.to/3v6fs2e" target="_blank">Samsung 980 evo &#8211; 99$</a>
<ol>
<li>This will host /var, where all of my containers and their associated data will be stored.</li>
</ol>
</li>



<li>(Amazon) <a rel="noreferrer noopener" href="https://amzn.to/3uo6z4W" data-type="URL" data-id="https://amzn.to/3uo6z4W" target="_blank">KIOXIA 128G NVMe</a> &#8211; 14$
<ol>
<li>This will be the primary OS drive. This is the same NVMe I also used for the NVR box.</li>
</ol>
</li>



<li>(EBay) <a rel="noreferrer noopener" href="https://ebay.us/LCZGAf" data-type="URL" data-id="https://ebay.us/LCZGAf" target="_blank">Mellanox ConnectX-3 Dual Port 40GBe</a> &#8211; 50$
<ol>
<li>Point to point between my TrueNAS server, and my container host. Hardly more expensive then running 10G&#8230;.</li>
</ol>
</li>
</ol>



<p></p>



<h3 class="wp-block-heading">Migrating my container setup.</h3>



<p>I am going to skip over the boring details of migrating my containers, however, everything was stored in docker-compose files, and this essentially was just a matter of moving the compose files over, and copying data where needed, and then updating the DNS record to point my load balancer at the new IP.</p>



<p>I will note, for plex, nextcloud, and other storage-heavy containers, I leveraged NFS from within my docker-compose files to connect back to the primary NAS.</p>



<h4 class="wp-block-heading">Power Savings &#8211; 15 watts</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="514" src="https://xtremeownage.com/wp-content/uploads/2022/04/Power-Consumption-1024x514.png" alt="" class="wp-image-2168" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/Power-Consumption-1024x514.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/Power-Consumption-300x151.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/Power-Consumption-768x386.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/Power-Consumption-670x335.png 670w, https://xtremeownage.com/wp-content/uploads/2022/04/Power-Consumption.png 1354w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Power chart before/after migrating over container configurations.</figcaption></figure>



<p>While, 15 watts does not sound like a dramatic improvement in power consumption, Remember, this is the savings after ADDING another server. I did not shutdown any of my hardware. This is solely savings from migrating the loads from the r720XD over to the new 7060SFF.</p>



<h3 class="wp-block-heading">Migrating my NVR</h3>



<p>To migrate the NVR, I simply installed windows server on the new device, installed Blue Iris, and imported my old configuration. I then configured new footage to be stored on the 500G WD Black, and configured long-term storage on the 8T drive.</p>



<p>And, then, I shutdown the NVR VM which had been running on TrueNAS.</p>



<h4 class="wp-block-heading">Power Savings = -10w</h4>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="520" src="https://xtremeownage.com/wp-content/uploads/2022/04/NVR-Power-Consumption-1024x520.png" alt="" class="wp-image-2169" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/NVR-Power-Consumption-1024x520.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/NVR-Power-Consumption-300x152.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/NVR-Power-Consumption-768x390.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/NVR-Power-Consumption.png 1341w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Well, we didn&#8217;t actually save energy here, but, rather, used 10 more watts. However, remember, the purpose here was to migrate loads away from my TrueNAS server.</p>



<h2 class="wp-block-heading">Step 2. Removing additional hardware from the r720XD</h2>



<p>Since, all of the containers and VMs at this point have been moved away from the r720XD, I wanted to remove one of the CPUs to save on energy.</p>



<p>The server had dual E5-2695v2 processors, and 128G of DDR-3 1333mhz RAM.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="539" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-4-1024x539.png" alt="" class="wp-image-2173" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-4-1024x539.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/image-4-300x158.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-4-768x404.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/image-4-1536x809.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/04/image-4.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">r720 XD with CPU 2 removed.</figcaption></figure>



<p>I removed CPU 2, and removed all of its ram, using it to fill any empty slots from CPU 1.</p>



<p>After doing so, I had only a small pile of hardware left over&#8230;. 32G of ram, and a processor.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="614" height="917" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-5.png" alt="" class="wp-image-2174" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-5.png 614w, https://xtremeownage.com/wp-content/uploads/2022/04/image-5-201x300.png 201w" sizes="(max-width: 614px) 100vw, 614px" /></figure>



<h3 class="wp-block-heading">Power Savings &#8211; 80w.</h3>



<p>Based on initial data after removing the extra CPU, it appeared the power consumption had been reduced by over 80 watts.</p>



<h2 class="wp-block-heading">Overall reduction &#8211; ~100w = 5$ per month.</h2>



<p>Keep in mind, at this point, I can safely shutdown my R720XD, which will reduce the overall consumption DRAMATICALLY. This system was using an average of around 300-400w 24/7 when I started this project.</p>



<p>Now, it is using 200-250w average, which is nearly a reduction of half. Some of the energy savings were lost when I used the i5-6500 for my NVR box, however, it is still a net reduction.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="229" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-6-1024x229.png" alt="" class="wp-image-2175" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-6-1024x229.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/04/image-6-300x67.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-6-768x172.png 768w, https://xtremeownage.com/wp-content/uploads/2022/04/image-6-1536x344.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/04/image-6-2048x459.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">iDrac power usage AFTER changes.</figcaption></figure>



<h2 class="wp-block-heading">Total Monthly Savings = A few bucks, maybe.</h2>



<p>Lets assume I shut the r720XD down at nighttime, and fire it back up at 7am for a total of 10 hours of downtime per day. I can do this, because all of the important containers and workloads were migrated to the new SFF machines.</p>



<p>This machine now uses ~220w average. ((220 * 24 hours * 30 days) / 1,000 watts ) * 0.08 (cents / kwh) = 13$ of energy per month.</p>



<p>It WAS using 30$ per month in energy. However, I think the majority of this load is/was coming from its NVR duties.</p>



<h1 class="wp-block-heading">Unexpected performance gains.</h1>



<p>Right before I deprovisioned the hardware in my r720XD, I had ran benchmarks against my spinning array over iScsi.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="968" height="394" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-7.png" alt="" class="wp-image-2176" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-7.png 968w, https://xtremeownage.com/wp-content/uploads/2022/04/image-7-300x122.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-7-768x313.png 768w" sizes="(max-width: 968px) 100vw, 968px" /><figcaption class="wp-element-caption">Benchmarks before removing the 2nd CPU.</figcaption></figure>



<p>However, I noticed a improvement of benchmark performance after removing the 2nd CPU.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="971" height="356" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-8.png" alt="" class="wp-image-2177" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-8.png 971w, https://xtremeownage.com/wp-content/uploads/2022/04/image-8-300x110.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-8-768x282.png 768w" sizes="(max-width: 971px) 100vw, 971px" /><figcaption class="wp-element-caption">Benchmarks after removing 2nd CPU.</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="482" height="352" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-9.png" alt="" class="wp-image-2178" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-9.png 482w, https://xtremeownage.com/wp-content/uploads/2022/04/image-9-300x219.png 300w" sizes="(max-width: 482px) 100vw, 482px" /><figcaption class="wp-element-caption">Real world performance benchmark.</figcaption></figure>



<p>Performance shot up quite a bit&#8230;. in some scenarios, it was quite dramatic.</p>



<p>Comparing the performance of my NAS, versus a locally installed 970 evo&#8230;.. the performance gap is getting closer.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="968" height="427" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-10.png" alt="" class="wp-image-2179" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-10.png 968w, https://xtremeownage.com/wp-content/uploads/2022/04/image-10-300x132.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-10-768x339.png 768w" sizes="(max-width: 968px) 100vw, 968px" /></figure>



<p>While, the local drive can push out quite a few more IOPs, in terms of bandwidth, the remote storage isn&#8217;t doing bad at all. Regarding writes, the penalty is understandable since it is writing to a mirrored pool.</p>



<p></p>



<h1 class="wp-block-heading">Summary</h1>



<p>While, I actually failed to reduce power consumption by any meaningful amount, I did succeed in a few things.</p>



<p>I can do maintenance on my primary storage server without impacting critical services.</p>



<p>My NVR has dedicated hardware.</p>



<p>My container services are much faster with the i7 processor.</p>



<p>My iSCSI/SMB traffic is actually quite a bit faster.</p>



<p>I no longer have to hack up my TrueNAS to run docker containers.</p>



<h3 class="wp-block-heading">Next Steps?</h3>



<p>Well, I have actually been in the process of designing and installing a solar system for over a year now. It may come to be a thing soon, hopefully&#8230;.</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pioneer Mini Split &#8211; Home Assistant</title>
		<link>https://xtremeownage.com/2022/03/27/pioneer-mini-split-home-assistant/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Sun, 27 Mar 2022 17:34:30 +0000</pubDate>
				<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[home assistant]]></category>
		<category><![CDATA[pioneer]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2089</guid>

					<description><![CDATA[Installing and automating a minisplit]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="917" height="827" src="https://xtremeownage.com/wp-content/uploads/2022/04/image-27.png" alt="" class="wp-image-2254" srcset="https://xtremeownage.com/wp-content/uploads/2022/04/image-27.png 917w, https://xtremeownage.com/wp-content/uploads/2022/04/image-27-300x271.png 300w, https://xtremeownage.com/wp-content/uploads/2022/04/image-27-768x693.png 768w" sizes="(max-width: 917px) 100vw, 917px" /><figcaption class="wp-element-caption">Installed unit on the exterior of my house. Nothing fancy. This was a DIY project.</figcaption></figure>



<h1 class="wp-block-heading">Introduction</h1>



<p>Let me start off by saying, I like icicles on the wall while I sleep. As well, my bedroom also doubles as my home office. </p>



<p>During the summer time, with a few computers running, it gets pretty toasty back here.</p>



<p>In the winter time, being this room is on the far end of the house, it gets pretty chilly back here.</p>



<p>So, I decided to invest into a mini split&#8230; and integrate this into home assistant.</p>





<h1 class="wp-block-heading">How much did it cost / products</h1>



<h2 class="wp-block-heading">Contractor Quotes</h2>



<p>So, first of all, let me tell you how much I was quoted to have a 3/4 ton (9,000btu) mini split installed.</p>



<h4 class="wp-block-heading">Contractor #1-</h4>



<p>I was quoted 2,800$ to install a 3/4 ton gree mini split. This did not include running the electrical work. Electrical was 500$ extra.</p>



<h4 class="wp-block-heading">Contractor #2</h4>



<p>I was quoted 3,000$ to install a 3/4 ton Daikin mini split. This also did not include the electrical work. Electrical was 450$ extra.</p>



<h2 class="wp-block-heading">My Prices</h2>



<p>After having my mouth drop at the 3,500$ total price tags, I decided do it myself. Here are the products I purchased:</p>



<h4 class="wp-block-heading"><a rel="noreferrer noopener" href="https://amzn.to/35cbaNU" data-type="URL" data-id="https://amzn.to/35cbaNU" target="_blank">Pioneer WYS 3/4 Ton &#8211; 23 Seer</a> (Amazon)</h4>



<p>For the cost of only a touch over 900$ shipped, for a 23 seer unit, seemed like a pretty acceptable deal to me. I went the pioneer route after hearing good luck from a co-worker who tied these units into home assistant.</p>



<h4 class="wp-block-heading"><a rel="noreferrer noopener" href="https://amzn.to/3wxy3GM" data-type="URL" data-id="https://amzn.to/3wxy3GM" target="_blank">Charging Port Adaptor &#8211; 5/16&#8243; -&gt; 1/4&#8243;</a> (Amazon)</h4>



<p>This is needed to connect a standard set of vacuum gauges up to the unit.</p>



<h4 class="wp-block-heading">6<a rel="noreferrer noopener" href="https://www.pioneerminisplit.com/products/60a-non-fusible-ac-disconnect-box-230-volt" target="_blank">0 Amp AC Disconnect Box</a> (Pioneer)</h4>



<p>Sorry, no amazon link. But, for 14.99$.. the price was good. I don&#8217;t think I could have beaten this price at my local hardware store.</p>



<h4 class="wp-block-heading"><a rel="noreferrer noopener" href="https://www.pioneerminisplit.com/products/6-ft-plastic-flexible-whip-3-lead-10-awg" target="_blank">6ft Plastic Flexible Whip &#8211; 10AWG</a> (Pioneer)</h4>



<p>I went ahead and ordered the whip from pioneer as well.</p>



<h3 class="wp-block-heading">Total So Far &#8211; 970$</h3>



<p>I ordered all four of the above items directly from pioneer. However, the amazon prices linked above have the same cost at this time.</p>



<p>But- wait, there are a few more items required.</p>



<h4 class="wp-block-heading"><a rel="noreferrer noopener" href="https://amzn.to/3LvbC9B" data-type="URL" data-id="https://amzn.to/3LvbC9B" target="_blank">Pioneer Wi-Fi module for WYS Systems.</a></h4>



<p>This part is CRUCIAL for integration into home assistant. Without it, you will need to rely on integrating the device using IR senders&#8230;&#8230; and personally, I want two way communication, in real time.</p>



<h4 class="wp-block-heading"><a rel="noreferrer noopener" href="https://amzn.to/3wzjwdw" data-type="URL" data-id="https://amzn.to/3wzjwdw" target="_blank">100ft 10/2 Wire</a></h4>



<p>I actually didn&#8217;t end up needing to use this at all. In the future, I will run an outlet to my welder using it. I will explain more below.</p>



<h4 class="wp-block-heading"><a rel="noreferrer noopener" href="https://amzn.to/36I9lsk" data-type="URL" data-id="https://amzn.to/36I9lsk" target="_blank">Pioneer Foldable Condenser Bracket &#8211; 2 piece</a></h4>



<p>If its built by the company making the mini split, I would assume it is more then capable of holding their unit! So far, it is up to the task. Also, I accidentally ordered two of these. Oops.</p>



<h3 class="wp-block-heading">Total Price: ~1,500$</h3>



<p>Do note, I also spent around 200$ extra at the local hardware store, on a small section of 2&#8243; PVC, as well as a full length 3/4&#8243; PVC&#8230; and a few small odds and ends, including a masonry drill bit, and a few concrete anchors.</p>



<h2 class="wp-block-heading">Other Potential Units:</h2>



<ul>
<li><a rel="noreferrer noopener" href="https://amzn.to/3NhE93X" data-type="URL" data-id="https://amzn.to/3NhE93X" target="_blank">Gree 1 Ton 16 Seer</a></li>



<li><a href="https://amzn.to/3DbjXMt" data-type="URL" data-id="https://amzn.to/3DbjXMt" target="_blank" rel="noreferrer noopener">Daikin 3/4 ton 17 Seer</a></li>
</ul>



<h1 class="wp-block-heading">Installation</h1>


[expand title=&#8221;Click if you wish to read the installation process&#8230;. No images, its pretty boring&#8221;]



<p>Sorry- I did not take any pictures during this process&#8230;. But, I will detail the steps required. You can skip down to (INSERT LINK HERE) for how to connect this unit into home assistant.</p>



<ol>
<li>First, we went inside the house and located a nice spot in the center of my bedroom wall.</li>



<li>The unit requires 6-8 inches of clearance on the top. </li>



<li>Next, we mounted the &#8220;plate&#8221; on the wall, in the center of the wall, with the top 10 inches from the ceiling to allow for proper top clearance.</li>



<li>After that, we followed the instructions and used a 2&#8243; hole bit to drill a hole through the interior sheetrock.. Followed by a LONG masonry bit to drill all the way through the outside brick wall.</li>



<li>Next, was the hardest part of this entire process. Drilling a 2&#8243; hole through the brick. After tracing a 2&#8243; circle using the section of 2&#8243; PVC, we started using a small masonry bit to drill holes around the perimeter of the traced outline.</li>



<li>I then utilized my air chisel to carefully knock a hole through the brick.</li>



<li>After this was completed, we had a hole which fit the 2&#8243; PVC Perfectly. </li>



<li>I used a knife and screwdriver to poke and extend a 2&#8243; hole through the insulation.</li>



<li>The 2&#8243; PVC was cut to the length from the interior wall, to the exterior wall. IE, it fits flush on either side.</li>



<li>The lineset was then ran through the 2&#8243; pipe. After this, the pipe containing the line set was inserted into the new 2&#8243; hole going from outside of the house, to the interior.</li>



<li>MAKE SURE TO RUN THE DAMN CONTROL CABLE THROUGH THE PIPE TOO!!!!!!!! Its a lot harder to run AFTER you put everything in the wall, and bolt everything together.. Ask me how I know&#8230; /s</li>



<li>At this point, the interior unit was hinged from the top of the mount, while we connected the line set, and routed the control wires.</li>



<li>After connecting the line set and control wires, the interior unit &#8220;snaps&#8221; to the mounting plate. You are now done inside of the house.</li>



<li>Back outside, I used spray foam to fill any remaining gaps from the 2&#8243; hole we created. I then used masonry clay to fill the gaps directly around the 2&#8243; pipe in the brick.</li>



<li>Next, the outdoor mounting brackets were mounted to the exterior brick, using concrete anchors&#8230; after careful measurement.</li>



<li>We mounted the outdoor unit to the mounting brackets using the included rubber pads.</li>



<li>The line set was carefully bent in a few key locations, to route into the side of the outdoor unit, in a somewhat pretty way.</li>



<li>The line set was then connected to the exterior unit, along with the control wires.</li>



<li>The drain line was inserted into the piece of 3/4&#8243; pvc from earlier, which was mounted vertically to the wall to drain near the ground&#8230; and secured to the brick using clamps and more anchors.</li>



<li>The final piece of work remaining was to run electrical.</li>



<li>After looking through my breaker box, I realized I had an unused 220v circuit going to my oven. As my oven is natural gas, and there was not even an outlet behind it, I decided to steal this cable instead of running the new 10/2 I had acquired. </li>



<li>I drilled a 1&#8243; hole through the gabled end of my house, and placed a 1ft section of 1&#8243; pipe through this new hole. Where the pipe exits the gabled end of my house, it has a 90 degree turn so that it runs down vertical to the disconnect box. The cable runs through this piece of PVC. Caulking was used to seal up around the new PVC. </li>



<li>At the bottom of the 1&#8243; PVC containing the romex, it has a 90 degree joint, screwing directly into the side of the disconnect box.</li>



<li>I did swap the original 60amp breaker out for a much more suitable 20 amp breaker. </li>



<li>After this was completed, and the whip was installed between the disconnect box, and the outdoor unit&#8230;. it was time to vacuum out the air.</li>



<li>This step is absolutely crucial to your unit. Borrow or acquire a vacuum pump, and a set of gauges. You need to vacuum all of the air out of the line set. Once you have a vacuum pulled, you need to wait a bit&#8230;&#8230; and ensure it holds the vacuum.</li>



<li>Once you are sure it is not leaking, you can slowly open up the valves on the outdoor unit, allowing the refrigerant to enter the lines. Use a spray bottle filled with soapy water to ENSURE you don&#8217;t have any leaks. You don&#8217;t want this stuff to leak.</li>



<li>After that step is done, you are all done!</li>
</ol>



<p>Overall, the installation took us a full day to complete.</p>


[/expand]



<h2 class="wp-block-heading">Connecting to Home Assistant</h2>



<p></p>



<p class="has-large-font-size"><strong>WARNING!!!!!!</strong></p>



<p>As of May 2023, I no <strong><span style="text-decoration: underline;">longer recommend the below method.</span></strong></p>



<p>Instead, there is a much <strong>cheaper</strong>, AND more <strong>reliable </strong>option.</p>



<p><a href="https://static.xtremeownage.com/blog/2023/pioneer-mini-split-esphome/">https://static.xtremeownage.com/blog/2023/pioneer-mini-split-esphome/</a></p>



<p>However, for historical reasons- the original method is still outlined below:</p>



<p></p>



<p></p>



<p>This part was actually pretty easy.</p>



<p>First- make sure you installed the wifi unit into the indoor unit. There is a special slot where it goes in.</p>



<p>Next, download the &#8220;Nethome Plus&#8221; app on your phone.</p>



<p>Open the app, and add the unit. You will need to scan the QR code which was included with the wireless module.</p>



<p>After this, you will need to connect the unit to your wifi. If you are like me, I keep all of my IOT stuff on a dedicated subnet, with no internet or outbound access at all. NTP is the only allowed traffic for my IOT devices. However, my home assistant can access everything on the IOT subnet.</p>



<p>If you use a IOT subnet, you will need a temporary firewall rule while connecting the unit via the app. Once the unit is on the wifi, you can disable/delete this rule.</p>



<p>Next, in home assistant, visit HACS, and add the &#8220;Midea Smart Aircon&#8221; integration.</p>



<p>Now, we will need a machine with python to obtain a few piece of details. Please read these <a rel="noreferrer noopener" href="https://github.com/mac-zhou/midea-ac-py#how-to-get-configuration-variables" data-type="URL" data-id="https://github.com/mac-zhou/midea-ac-py#how-to-get-configuration-variables" target="_blank">INSTRUCTIONS</a>. you will need the token and key.</p>



<p>I used this command:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Create a venv
python -m venv ac_stuff

# Enter the venv
source ac_stuff/bin/activate

# Install "MSmart"
pip3 install msmart

# Discover the device. Put your device's IP in here. I allocated a static IP for my unit in my router/firewall.
midea-discover --ip 10.20.10.5

You will then see output... you will need this for later.</pre>



<p>Next, we need to modify Home Assistant&#8217;s configuration.yaml</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">climate:
  - platform: midea_ac
    host: 10.100.3.5
    id: 43980465114375           ## Put your ID here.
    token: PUT_YOUR_TOKEN_HERE!!!!
    k1: PUT YOUR K1 / KEY HERE!!!
    prompt_tone: false           ## Set this to disable beeps every time you change something.
    temp_step: 1                 ## Optional, but, I want 1 degree temp increments instead of the default 0.5</pre>



<p>After this is completed, restart home assistant, and you should have new climate device.</p>



<p>At this point, I took the liberty of renaming the device, and customizing it.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="469" height="530" src="https://xtremeownage.com/wp-content/uploads/2022/03/image-1.png" alt="" class="wp-image-2092" srcset="https://xtremeownage.com/wp-content/uploads/2022/03/image-1.png 469w, https://xtremeownage.com/wp-content/uploads/2022/03/image-1-265x300.png 265w" sizes="(max-width: 469px) 100vw, 469px" /></figure>



<p></p>



<p>At this point, you are basically done. If you add a climate/thermostat card, you should be able to fully interact with the device.</p>



<figure class="wp-block-image size-full"><img decoding="async" src="https://xtremeownage.com/wp-content/uploads/2022/03/image-2.png" alt="" class="wp-image-2093"/></figure>



<p>However, I decided to use the <a rel="noreferrer noopener" href="https://github.com/nielsfaber/scheduler-card" data-type="URL" data-id="https://github.com/nielsfaber/scheduler-card" target="_blank">scheduler-card</a> to add a few schedules.</p>



<p>This was extremely easy to do, and very intuitive. I highly recommend this addon. You can install it via hacs. </p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="203" src="https://xtremeownage.com/wp-content/uploads/2022/03/image-3-1024x203.png" alt="" class="wp-image-2094" srcset="https://xtremeownage.com/wp-content/uploads/2022/03/image-3-1024x203.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/03/image-3-300x59.png 300w, https://xtremeownage.com/wp-content/uploads/2022/03/image-3-768x152.png 768w, https://xtremeownage.com/wp-content/uploads/2022/03/image-3-1536x305.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/03/image-3.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>If you are interested in how to set this up, please read <a href="https://xtremeownage.com/2022/03/25/home-assistant-programmable-thermostat-gui-part-2/" data-type="post" data-id="2097">THE TUTORIAL I CREATED</a></p>



<h1 class="wp-block-heading">Overall opinons</h1>



<p>Overall, I am extremely happy with this unit.</p>



<p>One thing I will note, the original 3,000$ price tags aren&#8217;t quite as bad as I originally expected though.</p>



<p>If you figure, I spent 1,500$ in materials. Lets say, they can get the same materials for 1,200$, which is very possible. Then, lets assume you have two people on site for 10 hours to install this unit&#8230; (The helper I had, is a professional HVAC installer&#8230;) Lets say, the lead is 60$/hr, and the helper makes 20$/hr. 600+200 in labor = 800$. So, 2,000$ total. </p>



<p>In my case, it was extremely helpful having someone help me who has done this before. After doing one of these units, I would feel pretty comfy doing another one by myself though. But, you can also watch youtube videos on how to install these.</p>



<p>Regarding the units performance, its extremely quiet, and it works very well. While working, it keeps the temp very comfy, and at night time, It kept it at 56F last night. Nice!</p>



<p>Regarding power usage, this unit is quite good. Since, putting it in, it has averaged around 16cents of power consumption per day&#8230;. that includes cooling the bedroom to around 60 from 8pm, to 6am, and then  heating to around 70-72 from 6am &#8211; 8pm. You will notice, once it has &#8220;cooled&#8221; the room, the unit uses basically no energy. </p>



<p>Power Consumption:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="525" src="https://xtremeownage.com/wp-content/uploads/2022/03/image-22-1024x525.png" alt="" class="wp-image-2141" srcset="https://xtremeownage.com/wp-content/uploads/2022/03/image-22-1024x525.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/03/image-22-300x154.png 300w, https://xtremeownage.com/wp-content/uploads/2022/03/image-22-768x394.png 768w, https://xtremeownage.com/wp-content/uploads/2022/03/image-22.png 1329w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Bedroom Temp:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="177" src="https://xtremeownage.com/wp-content/uploads/2022/03/image-23-1024x177.png" alt="" class="wp-image-2142" srcset="https://xtremeownage.com/wp-content/uploads/2022/03/image-23-1024x177.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/03/image-23-300x52.png 300w, https://xtremeownage.com/wp-content/uploads/2022/03/image-23-768x133.png 768w, https://xtremeownage.com/wp-content/uploads/2022/03/image-23-1536x266.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/03/image-23-2048x354.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Yesterday&#8217;s power consumption.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="325" src="https://xtremeownage.com/wp-content/uploads/2022/03/image-24-1024x325.png" alt="" class="wp-image-2143" srcset="https://xtremeownage.com/wp-content/uploads/2022/03/image-24-1024x325.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/03/image-24-300x95.png 300w, https://xtremeownage.com/wp-content/uploads/2022/03/image-24-768x244.png 768w, https://xtremeownage.com/wp-content/uploads/2022/03/image-24-1536x487.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/03/image-24.png 1636w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>Regarding the automation side, this unit is COMPLETELY local control, and I have it on my IOT subnet, which has zero access to anything. The automation works in real time, without any delay&#8230; and the schedules are fantastically easy to setup and configure. Would highly recommend.</p>



<h2 class="wp-block-heading">FAQs</h2>



<p>Q: Why didn&#8217;t you get a Mitsubishi or Fujisto? They are the best</p>



<p>A: I don&#8217;t doubt they are made with a much higher quality. However, I cannot buy their units without going through a contractor. I purposely got the pioneer unit, because it was cheap, and extremely DIY friendly&#8230;. and I was able to order it right off the internet and have it shipped to my front door.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>TrueNAS Scale &#8211; Infiniband</title>
		<link>https://xtremeownage.com/2022/03/26/truenas-scale-infiniband/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Sat, 26 Mar 2022 20:31:43 +0000</pubDate>
				<category><![CDATA[TrueNAS - Scale]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=2132</guid>

					<description><![CDATA[Well, I have been wanting to get infiniband working for a while. I decided today was as good of a time as any&#8230;. So, I made it happen. Summary Was...]]></description>
										<content:encoded><![CDATA[
<p>Well, I have been wanting to get infiniband working for a while. I decided today was as good of a time as any&#8230;. So, I made it happen.</p>



<h2 class="wp-block-heading">Summary </h2>



<ol><li>Was able to get infiniband working</li><li>IPoIB performance is utter garbage.</li><li>I didn&#8217;t want to hack up TrueNAS more to support RDMA </li><li>Gave up, went back to my Chelsio 40GBe adaptor.</li></ol>



<h1 class="wp-block-heading">Step 1. Install a few packages.</h1>



<p>By default, TrueNAS Scale has apt &#8220;disabled&#8221;. Please see <a href="https://xtremeownage.com/2022/03/26/truenas-scale-re-enable-apt-get/" data-type="post" data-id="2124">THIS POST</a> on how to re-enable it.</p>



<p>Once you have&#8230; re-enabled the ability to install packages, AND added the debian repos, we need to install a few packages to assist.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""></pre>



<p>At this point, you should be able to run ibstat and get a status. If you don&#8217;t have a status, make sure your card is installed. I am using a ConnectX-3 (Non-pro)</p>



<p>To note, I have one port set as infiniband, and the other port set as ethernet.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas:~# ibstat
CA 'mlx4_0'
        CA type: MT4099
        Number of ports: 2
        Firmware version: 2.42.5000
        Hardware version: 1
        Node GUID: 0x506b4b03007bfc50
        System image GUID: 0x506b4b03007bfc53
        Port 1:
                State: Initializing
                Physical state: LinkUp
                Rate: 40
                Base lid: 0
                LMC: 0
                SM lid: 0
                Capability mask: 0x02514868
                Port GUID: 0x506b4b03007bfc51
                Link layer: InfiniBand
        Port 2:
                State: Down
                Physical state: Disabled
                Rate: 10
                Base lid: 0
                LMC: 0
                SM lid: 0
                Capability mask: 0x00010000
                Port GUID: 0x526b4bfffe7bfc52
                Link layer: Ethernet
</pre>



<h2 class="wp-block-heading">How to change configuration parameters</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># First- get the PCI address of your card.
root@truenas:~# lspci | grep Mell
03:00.0 Network controller: Mellanox Technologies MT27500 Family [ConnectX-3]

# In this case- 03:00.0 is my address.

# Show current configuration
root@truenas:~# mstconfig -d 03:00.0 query

Device #1:
----------

Device type:    ConnectX3
Device:         03:00.0

Configurations:                              Next Boot
         SRIOV_EN                            True(1)
         NUM_OF_VFS                          8
         LINK_TYPE_P1                        IB(1)
         LINK_TYPE_P2                        ETH(2)
         LOG_BAR_SIZE                        3
         BOOT_PKEY_P1                        0
         BOOT_PKEY_P2                        0
         BOOT_OPTION_ROM_EN_P1               False(0)
         BOOT_VLAN_EN_P1                     False(0)
         BOOT_RETRY_CNT_P1                   0
         LEGACY_BOOT_PROTOCOL_P1             PXE(1)
         BOOT_VLAN_P1                        1
         BOOT_OPTION_ROM_EN_P2               False(0)
         BOOT_VLAN_EN_P2                     False(0)
         BOOT_RETRY_CNT_P2                   0
         LEGACY_BOOT_PROTOCOL_P2             PXE(1)
         BOOT_VLAN_P2                        1
         IP_VER_P1                           IPv4(0)
         IP_VER_P2                           IPv4(0)
         CQ_TIMESTAMP                        True(1)


# Set port mode to infiniband
mstconfig -d 03:00.0 set LINK_TYPE_P1=1

# Set port mode to ethernet
mstconfig -d 03:00.0 set LINK_TYPE_P1=2

# You can also set multiple properties in the same command
mstconfig -d 03:00.0 set LINK_TYPE_P1=1 LINK_TYPE_P2=1

# Disable boot rom, if you desire. I don't have plans on using it.
mstconfig -d 03:00.0 set LINK_TYPE_P1=1 BOOT_OPTION_ROM_EN_P1=0 BOOT_OPTION_ROM_EN_P2=0</pre>



<h2 class="wp-block-heading">Step 2. Ping across the network</h2>



<p>This guide ASSUMES you already have a working physical link established between two infiniband cards.</p>



<p>In my case, I have a windows client, and a TrueNAS server.</p>



<p>Next, lets lists connected hosts</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas:~# ibhosts
ibwarn: [2618545] get_abi_version: can't read ABI version from /sys/class/infiniband_mad/abi_version (No such file or directory): is ib_umad module loaded?
ibwarn: [2618545] mad_rpc_open_port: can't open UMAD port ((null):0)
../libibnetdisc/ibnetdisc.c:802; can't open MAD port ((null):0)
/usr/sbin/ibnetdiscover: iberror: failed: discover failed
</pre>



<p>Seems&#8230; a kernel module is missing. Lets add it, and try again.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas:~# modprobe ib_umad
# I also went ahead and loaded the infiniband IP over InfiniBand module.
root@truenas:~# modprobe ib_ipoib
root@truenas:~# ibhosts
Ca      : 0x0002c90300a29060 ports 2 "XTREMEOWNAGE-PC"
Ca      : 0x506b4b03007bfc50 ports 2 "MT25408 ConnectX Mellanox Technologies"
</pre>



<p>Well, look at that. The two PCs can see each other over infiniband.</p>



<p>The next step, was to allocate an ip address for the infiniband adapter.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ibp3s0: flags=4098&lt;BROADCAST,MULTICAST>  mtu 4092
        unspec 80-00-02-28-FE-80-00-00-00-00-00-00-00-00-00-00  txqueuelen 256  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
</pre>



<p>As we can see, it doesn&#8217;t have an address. I provisioned the IP address through the TrueNAS WebGUI.</p>





<p>After saving the changes, applying, etc&#8230;. I was able to ping the local IP, but, not the remote IP.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas:~# ping 10.100.255.1
PING 10.100.255.1 (10.100.255.1) 56(84) bytes of data.
64 bytes from 10.100.255.1: icmp_seq=1 ttl=64 time=0.052 ms
^C
--- 10.100.255.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.052/0.052/0.052/0.000 ms
root@truenas:~# ping 10.100.255.2
PING 10.100.255.2 (10.100.255.2) 56(84) bytes of data.
^C</pre>



<p>Doing a bit of troubleshooting, I ran ibstat on both ends.</p>





<p>and, determined the link was stuck in status &#8220;Initializing&#8221;</p>



<p>After a bit of research, I determined a subnet manager needs to exist, for a point to point link.</p>



<p>So&#8230;</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas:~# apt-get install opensm
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  opensm
...</pre>



<p>At this point, I decided to do a reboot, to ensure all of the modules are being properly loaded at boot.</p>



<p>Or&#8230; to see if&#8230;. all of the above work has been reset.</p>



<p>After rebooting, all of the configuration and packages were still in place, However, the kernel modules were not loaded back in. So&#8230; I reloaded the modules manually, and added a config to load them at boot.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas:~# modprobe ib_ipoib ib_umad ib_uverbs rdma_ucm
root@truenas:~# nano /etc/modules-load.d/infiniband.conf
# File Contents:
ib_umad
ib_ipoib
ib_uverbs
rdma_ucm
</pre>



<p>The next step, was to get opensm up and running.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas[/etc/modules-load.d]# systemctl status opensm
● opensm.service - Starts the OpenSM InfiniBand fabric Subnet Managers
     Loaded: loaded (/lib/systemd/system/opensm.service; enabled; vendor preset: enabled)
     Active: inactive (dead)
  Condition: start condition failed at Sat 2022-03-26 13:26:55 CDT; 8min ago
       Docs: man:opensm(8)

Mar 26 13:26:55 truenas.local.xtremeownage.com systemd[1]: Condition check resulted in Starts the OpenSM InfiniBand fabric Subnet Managers being skipped.


## I assume, it failed to start due to the missing kernel modules. Lets start it.

root@truenas[/etc/modules-load.d]# systemctl start opensm
root@truenas[/etc/modules-load.d]# systemctl status opensm
● opensm.service - Starts the OpenSM InfiniBand fabric Subnet Managers
     Loaded: loaded (/lib/systemd/system/opensm.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2022-03-26 13:35:38 CDT; 1s ago
       Docs: man:opensm(8)
    Process: 296934 ExecCondition=/bin/sh -c if test "$PORTS" = NONE; then echo "opensm is disabled via PORTS=NONE."; exit 1; fi (code=exited, status=0/SUCCESS)
    Process: 296935 ExecStart=/bin/sh -c if test "$PORTS" = ALL; then PORTS=$(/usr/sbin/ibstat -p); if test -z "$PORTS"; then echo "No InfiniBand ports found."; exi>
   Main PID: 296935 (code=exited, status=0/SUCCESS)

Mar 26 13:35:38 truenas.local.xtremeownage.com systemd[1]: Starting Starts the OpenSM InfiniBand fabric Subnet Managers...
Mar 26 13:35:38 truenas.local.xtremeownage.com sh[296935]: Starting opensm on following ports: 0x506b4b03007bfc51
Mar 26 13:35:38 truenas.local.xtremeownage.com sh[296935]: 0x526b4bfffe7bfc52
Mar 26 13:35:38 truenas.local.xtremeownage.com systemd[1]: Finished Starts the OpenSM InfiniBand fabric Subnet Managers.


## Much better.</pre>



<p>At this point, I checked the stats for the infiniband nics.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas[/etc/modules-load.d]# ibstat
CA 'mlx4_0'
        CA type: MT4099
        Number of ports: 2
        Firmware version: 2.42.5000
        Hardware version: 1
        Node GUID: 0x506b4b03007bfc50
        System image GUID: 0x506b4b03007bfc53
        Port 1:
                State: Active
                Physical state: LinkUp
                Rate: 40
                Base lid: 1
                LMC: 0
                SM lid: 1
                Capability mask: 0x0251486a
                Port GUID: 0x506b4b03007bfc51
                Link layer: InfiniBand
        Port 2:
                State: Down
                Physical state: Disabled
                Rate: 10
                Base lid: 0
                LMC: 0
                SM lid: 0
                Capability mask: 0x00010000
                Port GUID: 0x526b4bfffe7bfc52
                Link layer: Ethernet


## Boom, good to go on the truenas side.

BADPROMPT:ibstat
CA 'ibv_device0'
        CA type:
        Number of ports: 2
        Firmware version: 2.42.5000
        Hardware version: 0x0
        Node GUID: 0x0002c90300a29060
        System image GUID: 0x0002c90300a29063
    Port 1:
        State: Down
        Physical state: Disabled
        Rate: 1
        Base lid: 0
        LMC: 0
        SM lid: 0
        Capability mask: 0x80500000
        Port GUID: 0x0202c9fffea29061
        Link layer: Ethernet
        Transport: RoCE v1.25
    Port 2:
        State: Active
        Physical state: LinkUp
        Rate: 40
        Real rate: 32.00 (QDR)
        Base lid: 2
        LMC: 0
        SM lid: 1
        Capability mask: 0x90580000
        Port GUID: 0x0002c90300a29062
        Link layer: IB
        Transport: IB</pre>



<p>Excellent, the link is active on both sides!</p>



<p>Since, the module was not active when the machine was rebooted, the interface was down. I used iconfig to bring it up.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas[/etc/modules-load.d]# ifconfig ibp3s0 up
root@truenas[/etc/modules-load.d]# ifconfig ibp3s0
ibp3s0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST>  mtu 2044
        inet 10.100.255.1  netmask 255.255.255.252  broadcast 10.100.255.3
        inet6 fe80::526b:4b03:7b:fc51  prefixlen 64  scopeid 0x20&lt;link>
        unspec 80-00-02-28-FE-80-00-00-00-00-00-00-00-00-00-00  txqueuelen 256  (UNSPEC)
        RX packets 2  bytes 212 (212.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37  bytes 11759 (11.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@truenas[/etc/modules-load.d]# ping 10.100.255.1
PING 10.100.255.1 (10.100.255.1) 56(84) bytes of data.
64 bytes from 10.100.255.1: icmp_seq=1 ttl=64 time=0.056 ms
64 bytes from 10.100.255.1: icmp_seq=2 ttl=64 time=0.049 ms
^C
--- 10.100.255.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1030ms
rtt min/avg/max/mdev = 0.049/0.052/0.056/0.003 ms
</pre>



<p>We can now ping over IP. Lets do a speed test.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">## Since, TrueNAS doesn't ship with iperf2 (Does include iperf3, however, getting speed results above 10G isn't consistent using iperf3, due to its single-threaded nature....
## So, I prefer iperf2 for testing over 10G.
root@truenas[/etc/modules-load.d]# apt-get install iperf
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  iperf
0 upgraded, 1 newly installed, 0 to remove and 105 not upgraded.
...
root@truenas[/etc/modules-load.d]# iperf -v
iperf version 2.0.14a (2 October 2020) pthreads
root@truenas[/etc/modules-load.d]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------


## on the windows side.
BADPROMPT:iperf.exe -c 10.100.255.1
------------------------------------------------------------
Client connecting to 10.100.255.1, TCP port 5001
TCP window size:  208 KByte (default)
------------------------------------------------------------
[  3] local 10.100.255.2 port 23277 connected with 10.100.255.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  7.69 GBytes  6.60 Gbits/sec

BADPROMPT:iperf.exe -c 10.100.255.1 -P 10
------------------------------------------------------------
Client connecting to 10.100.255.1, TCP port 5001
TCP window size:  208 KByte (default)
------------------------------------------------------------
[ 12] local 10.100.255.2 port 23297 connected with 10.100.255.1 port 5001
[ 10] local 10.100.255.2 port 23295 connected with 10.100.255.1 port 5001
[ 11] local 10.100.255.2 port 23296 connected with 10.100.255.1 port 5001
[  9] local 10.100.255.2 port 23294 connected with 10.100.255.1 port 5001
[  7] local 10.100.255.2 port 23292 connected with 10.100.255.1 port 5001
[  6] local 10.100.255.2 port 23291 connected with 10.100.255.1 port 5001
[  8] local 10.100.255.2 port 23293 connected with 10.100.255.1 port 5001
[  5] local 10.100.255.2 port 23290 connected with 10.100.255.1 port 5001
[  4] local 10.100.255.2 port 23289 connected with 10.100.255.1 port 5001
[  3] local 10.100.255.2 port 23288 connected with 10.100.255.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[ 12]  0.0-10.0 sec  1.07 GBytes   916 Mbits/sec
[ 10]  0.0-10.0 sec   899 MBytes   753 Mbits/sec
[  6]  0.0-10.0 sec  1.01 GBytes   870 Mbits/sec
[  8]  0.0-10.0 sec   220 MBytes   185 Mbits/sec
[  5]  0.0-10.0 sec   561 MBytes   470 Mbits/sec
[  9]  0.0-10.1 sec   695 MBytes   578 Mbits/sec
[ 11]  0.0-10.1 sec   674 MBytes   557 Mbits/sec
[  7]  0.0-10.2 sec   346 MBytes   285 Mbits/sec
[  4]  0.0-10.2 sec   253 MBytes   208 Mbits/sec
[  3]  0.0-10.2 sec   681 MBytes   560 Mbits/sec
[SUM]  0.0-10.2 sec  6.31 GBytes  5.31 Gbits/sec


</pre>



<p>Well, that was extremely disappointing!</p>



<h2 class="wp-block-heading">Troubleshooting poor performance</h2>



<p>The first step- is always to check MTU. I found the server was configured for 8,000, however, my client only supported 4092 max.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""> root@truenas# ifconfig ibp3s0 mtu 4092 up</pre>



<p>Just, to confirm this wasn&#8217;t an iperf issue, I decided to do a quick iscsi performance test.</p>





<p>Only, 5Gbits&#8230;.. far short of the expected 40/56Gbits.</p>



<p>Well&#8230; lets doublecheck MTU.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas[/etc/modules-load.d]# ifconfig ibp3s0 mtu 4092
root@truenas[/etc/modules-load.d]# ifconfig ibp3s0
ibp3s0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST>  mtu 2044
        inet 10.100.255.1  netmask 255.255.255.252  broadcast 10.100.255.3
        inet6 fe80::526b:4b03:7b:fc51  prefixlen 64  scopeid 0x20&lt;link>
        unspec 80-00-02-28-FE-80-00-00-00-00-00-00-00-00-00-00  txqueuelen 256  (UNSPEC)
        RX packets 23373377  bytes 47020734796 (43.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6652816  bytes 6411049427 (5.9 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

## Appears the card on my server only supports 2044 MTU... this might explain the issues.</pre>



<p>So&#8230; I set the MTU on both ends to 2044.</p>



<p>Sadly, this did not help performance.</p>



<h2 class="wp-block-heading">Conclusion.</h2>



<p>I DID successfully manage to get infiniband up and running.</p>



<p>I DID learn, IPoIB (IP over InfiniBand) is actually quite slow. To realize huge performance gains over using the NIC in ETH mode, you would need to leverage RDMA/RCOE.</p>



<p>Since, I have hacked up my TrueNAS install enough for the day, I decided to switch everything back to ethernet mode, and call it a day. I can easily get 40G out of ethernet mode.</p>



<h2 class="wp-block-heading">How to switch back to ethernet mode.</h2>



<p>If you recall earlier, I left one interface in ETH mode&#8230;. I am just going to switch the physical adaptor, and move the ip address over&#8230; so, I don&#8217;t need to reboot my PC.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ifconfig ibp3s0 0.0.0.0 0.0.0.0
ifconfig enp3s0d1 10.100.255.1/30 mtu 9000 up
root@truenas[/etc/modules-load.d]# ifconfig enp3s0d1
enp3s0d1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet 10.100.255.1  netmask 255.255.255.252  broadcast 10.100.255.3
        inet6 fe80::526b:4bff:fe7b:fc52  prefixlen 64  scopeid 0x20&lt;link>

## On the windows side, I also physically swapped the adaptors over.

root@truenas[/etc/modules-load.d]# ping 10.100.255.2
PING 10.100.255.2 (10.100.255.2) 56(84) bytes of data.
64 bytes from 10.100.255.2: icmp_seq=1 ttl=128 time=0.482 ms
64 bytes from 10.100.255.2: icmp_seq=2 ttl=128 time=0.162 ms

## Connection is good to.... Lets test performance.
[SUM] 0.0000-10.0208 sec  10.7 GBytes  9.15 Gbits/sec

## Appears my client is only connected at 10G.... interesting.
</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">root@truenas[/etc/modules-load.d]# ethtool enp3s0d1
Settings for enp3s0d1:
        Supported ports: [ FIBRE ]
        Supported link modes:   10000baseKX4/Full
                                40000baseCR4/Full
                                40000baseSR4/Full
                                56000baseCR4/Full
                                56000baseSR4/Full
                                1000baseX/Full
                                10000baseCR/Full
                                10000baseSR/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10000baseKX4/Full
                                40000baseCR4/Full
                                40000baseSR4/Full
                                1000baseX/Full
                                10000baseCR/Full
                                10000baseSR/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Auto-negotiation: off
        Port: FIBRE
        PHYAD: 0
        Transceiver: internal
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000014 (20)
                               link ifdown
        Link detected: yes

## Wonder what happens if I uh, FORCE it to 40g.

root@truenas[/etc/modules-load.d]# ethtool -s enp3s0d1 speed 40000 duplex full autoneg off

## Turns out, the connection on the windows side dropped.... I am starting to think this particular ConnectX-3 does not support 40G. 
## I know the adaptor on the server side supports 40G, because, its the same exact adaptor i used to benchmark 40G in a previous post!</pre>



<p>I found documentation on my particular NIC here: https://downloads.dell.com/manuals/all-products/esuprt_ser_stor_net/esuprt_pedge_srvr_ethnt_nic/mellanox-adapters_users-guide_en-us.pdf</p>



<p>Based on the specifications, it &#8220;should&#8221; support 40G ethernet mode&#8230;</p>



<p>Edit- Turns out, it supported 40G infiniband, but, only 10GBe ethernet.</p>



<p>Yup. Oh well. Putting the chelsio NIC back in my PC. It had no problems doing 40G.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Is power consumption the best metric for selecting a server?</title>
		<link>https://xtremeownage.com/2022/01/04/power-consumption-versus-price/</link>
		
		<dc:creator><![CDATA[XO]]></dc:creator>
		<pubDate>Tue, 04 Jan 2022 09:53:21 +0000</pubDate>
				<category><![CDATA[PC Builds]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">https://xtremeownage.com/?p=1925</guid>

					<description><![CDATA[A short rant about doing the math to determine which is the most economical decision for you.]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Introduction</h1>



<p>Multiple times per day, I will be browsing reddit, and see&#8230;. MANY posts from users trying to achieve the lowest possible energy consumption regardless of hardware cost.</p>



<p>While, I have made previous posts about this before, I have decided to put all of the math involved front and center to assist users with making their own choices.</p>





<p>Note- Affiliate advertising links are utilized on this article.</p>



<h1 class="wp-block-heading">ROI Calculator</h1>



<form name="cp_calculatedfieldsf_pform_1" id="cp_calculatedfieldsf_pform_1" action="?" method="post" enctype="multipart/form-data" class="cff-form " >
<input type="hidden" name="cp_calculatedfieldsf_pform_psequence" value="_1" />
<input type="hidden" name="cp_calculatedfieldsf_id" value="7" /><pre style="display:none !important;"><script type="text/javascript">form_structure_1=[[{"form_identifier":"","name":"fieldname8","shortlabel":"cost","index":0,"ftype":"fcurrency","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Power Cost (cost per kWh)","predefined":"0.08","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","currencySymbol":"$","currencyText":"","thousandSeparator":",","centSeparator":".","noCents":false,"min":"0.00","max":"1.00","formatDynamically":true,"twoDecimals":true,"fBuild":{},"parent":""},{"form_identifier":"","name":"fieldname17","shortlabel":"","index":1,"ftype":"fdiv","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname5","fieldname10"],"columns":"2","rearrange":0,"title":"div","collapsed":false,"fBuild":{},"parent":""},{"form_identifier":"","name":"fieldname9","shortlabel":"cost","index":2,"ftype":"fcurrency","userhelp":"What is the upfront cost of the hardware?","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Upfront Cost","predefined":"500","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","currencySymbol":"$","currencyText":"","thousandSeparator":",","centSeparator":".","noCents":false,"min":"0.00","max":"500000","formatDynamically":true,"twoDecimals":false,"fBuild":{},"parent":"fieldname5"},{"form_identifier":"","name":"fieldname13","shortlabel":"cost","index":3,"ftype":"fcurrency","userhelp":"What is the upfront cost of the hardware?","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Upfront Cost","predefined":"1500","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","currencySymbol":"$","currencyText":"","thousandSeparator":",","centSeparator":".","noCents":false,"min":"0.00","max":"500000","formatDynamically":true,"twoDecimals":false,"fBuild":{},"parent":"fieldname10"},{"form_identifier":"","name":"fieldname2","shortlabel":"energy","index":4,"ftype":"fnumber","userhelp":"Fill in the power consumption of your device in watts.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Server Energy Consumption (watts)","predefined":"300","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","thousandSeparator":"","decimalSymbol":".","min":"0","max":"50000","formatDynamically":true,"dformat":"number","formats":["digits","number","percent"],"fBuild":{},"parent":"fieldname5"},{"form_identifier":"","name":"fieldname11","shortlabel":"energy","index":5,"ftype":"fnumber","userhelp":"Fill in the power consumption of your device in watts.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Server Energy Consumption (watts)","predefined":"150","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","thousandSeparator":"","decimalSymbol":".","min":"0","max":"50000","formatDynamically":true,"dformat":"number","formats":["digits","number","percent"],"fBuild":{},"parent":"fieldname10"},{"form_identifier":"","name":"separator1","shortlabel":"","index":6,"ftype":"fSectionBreak","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Totals are below","fBuild":{},"parent":"fieldname5"},{"form_identifier":"","name":"fieldname14","shortlabel":"","index":7,"ftype":"fSectionBreak","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Totals are below","fBuild":{},"parent":"fieldname10"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname4","shortlabel":"","index":8,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly kWh","predefined":"","required":false,"exclude":false,"size":"small","eq":"ROUND((fieldname2\/1000)*24*365)","min":"","max":"","suffix":" kWh","prefix":"","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname5"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname15","shortlabel":"","index":9,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly kWh","predefined":"","required":false,"exclude":false,"size":"small","eq":"ROUND((fieldname11\/1000)*24*365)","min":"","max":"","suffix":" kWh","prefix":"","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname10"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname1","shortlabel":"total","index":10,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly Cost","predefined":"","required":false,"exclude":false,"size":"small","eq":"fieldname4*fieldname8","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":"","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname5"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname16","shortlabel":"total","index":11,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly Cost","predefined":"","required":false,"exclude":false,"size":"small","eq":"fieldname15*fieldname8","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":"","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname10"},{"form_identifier":"","name":"fieldname5","shortlabel":"","index":12,"ftype":"ffieldset","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname2","fieldname9","separator1","fieldname4","fieldname1"],"columns":"1","rearrange":0,"title":"Option 1 (Cheaper, less efficient hardware)","collapsible":false,"defaultCollapsed":true,"collapsed":false,"fBuild":{},"parent":"fieldname17"},{"form_identifier":"","name":"fieldname10","shortlabel":"","index":13,"ftype":"ffieldset","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname11","fieldname13","fieldname14","fieldname15","fieldname16"],"columns":"1","rearrange":0,"title":"Option 2 (More expensive, more efficient hardware)","collapsible":false,"defaultCollapsed":true,"collapsed":false,"fBuild":{},"parent":"fieldname17"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname20","shortlabel":"","index":14,"ftype":"fCalculated","userhelp":"How much is saved per year from using Option number 2.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly Energy Savings From Option 2","predefined":"","required":false,"exclude":false,"size":"small","eq":"-(fieldname16-fieldname1)","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":true,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname21"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname22","shortlabel":"","index":15,"ftype":"fCalculated","userhelp":"How much extra $$ did option 2 cost over option 1.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Additional Hardware Cost of Option 2","predefined":"","required":false,"exclude":false,"size":"small","eq":"(fieldname13-fieldname9)","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":true,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname21"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname23","shortlabel":"","index":16,"ftype":"fCalculated","userhelp":"How many years until Option 2 is more cost-effective then option 1. If value is greater then the hardware life cycle of your hardware, then ROI will never be realized.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"ROI (Years)","predefined":"","required":false,"exclude":false,"size":"small","eq":"ROUND(fieldname22\/fieldname20)","min":"","max":"","suffix":" Years","prefix":"","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname21"},{"form_identifier":"","name":"fieldname21","shortlabel":"","index":17,"ftype":"ffieldset","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname20","fieldname22","fieldname23"],"columns":1,"rearrange":0,"title":"Totals","collapsible":false,"defaultCollapsed":true,"collapsed":false,"fBuild":{},"parent":""}],{"0":{"title":"Hardware Energy ROI Calculator","description":"This calculator will calculate years to achieve ROI from spending more money to purchase a more power efficient server or hardware.","formlayout":"top_aligned","formtemplate":"cp_cff_13","evalequations":1,"evalequationsevent":2,"loading_animation":0,"autocomplete":1,"persistence":0,"customstyles":""},"formid":"cp_calculatedfieldsf_pform_1"}];</script></pre>
<div id="fbuilder">
		<div id="fbuilder_1">
		<div id="formheader_1"></div>
		<div id="fieldlist_1"></div>
		<div class="clearer"></div>
	</div>
</div>
<div class="clearer"></div>
</form>
	



<h1 class="wp-block-heading">Examples</h1>



<h2 class="wp-block-heading">Example #1, My R720XD versus a newer server</h2>



<p>Here is a simple calculator, to calculate the amount of energy it will cost you per year to run a given piece of hardware, provided its energy consumption, and then, compare those numbers with a more efficient piece of hardware.</p>



<p></p>



<p>The calculator is pre-filled with my data. On the left, represents my Dell R720XD Server, with its 300w average power consumption. On the right, estimates a rough cost for me to build a new server with the required features and performance of my workloads. (The actual number would likely be far higher, as I typically USE 70-100GB of RAM&#8230; and RAM is not cheap.) </p>



<form name="cp_calculatedfieldsf_pform_2" id="cp_calculatedfieldsf_pform_2" action="?" method="post" enctype="multipart/form-data" class="cff-form " >
<input type="hidden" name="cp_calculatedfieldsf_pform_psequence" value="_2" />
<input type="hidden" name="cp_calculatedfieldsf_id" value="7" /><pre style="display:none !important;"><script type="text/javascript">form_structure_2=[[{"form_identifier":"","name":"fieldname8","shortlabel":"cost","index":0,"ftype":"fcurrency","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Power Cost (cost per kWh)","predefined":"0.08","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","currencySymbol":"$","currencyText":"","thousandSeparator":",","centSeparator":".","noCents":false,"min":"0.00","max":"1.00","formatDynamically":true,"twoDecimals":true,"fBuild":{},"parent":""},{"form_identifier":"","name":"fieldname17","shortlabel":"","index":1,"ftype":"fdiv","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname5","fieldname10"],"columns":"2","rearrange":0,"title":"div","collapsed":false,"fBuild":{},"parent":""},{"form_identifier":"","name":"fieldname9","shortlabel":"cost","index":2,"ftype":"fcurrency","userhelp":"What is the upfront cost of the hardware?","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Upfront Cost","predefined":"500","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","currencySymbol":"$","currencyText":"","thousandSeparator":",","centSeparator":".","noCents":false,"min":"0.00","max":"500000","formatDynamically":true,"twoDecimals":false,"fBuild":{},"parent":"fieldname5"},{"form_identifier":"","name":"fieldname13","shortlabel":"cost","index":3,"ftype":"fcurrency","userhelp":"What is the upfront cost of the hardware?","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Upfront Cost","predefined":"1500","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","currencySymbol":"$","currencyText":"","thousandSeparator":",","centSeparator":".","noCents":false,"min":"0.00","max":"500000","formatDynamically":true,"twoDecimals":false,"fBuild":{},"parent":"fieldname10"},{"form_identifier":"","name":"fieldname2","shortlabel":"energy","index":4,"ftype":"fnumber","userhelp":"Fill in the power consumption of your device in watts.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Server Energy Consumption (watts)","predefined":"300","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","thousandSeparator":"","decimalSymbol":".","min":"0","max":"50000","formatDynamically":true,"dformat":"number","formats":["digits","number","percent"],"fBuild":{},"parent":"fieldname5"},{"form_identifier":"","name":"fieldname11","shortlabel":"energy","index":5,"ftype":"fnumber","userhelp":"Fill in the power consumption of your device in watts.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Server Energy Consumption (watts)","predefined":"150","predefinedClick":false,"required":true,"exclude":false,"readonly":false,"numberpad":false,"size":"small","thousandSeparator":"","decimalSymbol":".","min":"0","max":"50000","formatDynamically":true,"dformat":"number","formats":["digits","number","percent"],"fBuild":{},"parent":"fieldname10"},{"form_identifier":"","name":"separator1","shortlabel":"","index":6,"ftype":"fSectionBreak","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Totals are below","fBuild":{},"parent":"fieldname5"},{"form_identifier":"","name":"fieldname14","shortlabel":"","index":7,"ftype":"fSectionBreak","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Totals are below","fBuild":{},"parent":"fieldname10"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname4","shortlabel":"","index":8,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly kWh","predefined":"","required":false,"exclude":false,"size":"small","eq":"ROUND((fieldname2\/1000)*24*365)","min":"","max":"","suffix":" kWh","prefix":"","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname5"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname15","shortlabel":"","index":9,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly kWh","predefined":"","required":false,"exclude":false,"size":"small","eq":"ROUND((fieldname11\/1000)*24*365)","min":"","max":"","suffix":" kWh","prefix":"","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname10"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname1","shortlabel":"total","index":10,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly Cost","predefined":"","required":false,"exclude":false,"size":"small","eq":"fieldname4*fieldname8","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":"","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname5"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname16","shortlabel":"total","index":11,"ftype":"fCalculated","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly Cost","predefined":"","required":false,"exclude":false,"size":"small","eq":"fieldname15*fieldname8","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":"","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname10"},{"form_identifier":"","name":"fieldname5","shortlabel":"","index":12,"ftype":"ffieldset","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname2","fieldname9","separator1","fieldname4","fieldname1"],"columns":"1","rearrange":0,"title":"Option 1 (Cheaper, less efficient hardware)","collapsible":false,"defaultCollapsed":true,"collapsed":false,"fBuild":{},"parent":"fieldname17"},{"form_identifier":"","name":"fieldname10","shortlabel":"","index":13,"ftype":"ffieldset","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname11","fieldname13","fieldname14","fieldname15","fieldname16"],"columns":"1","rearrange":0,"title":"Option 2 (More expensive, more efficient hardware)","collapsible":false,"defaultCollapsed":true,"collapsed":false,"fBuild":{},"parent":"fieldname17"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname20","shortlabel":"","index":14,"ftype":"fCalculated","userhelp":"How much is saved per year from using Option number 2.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Yearly Energy Savings From Option 2","predefined":"","required":false,"exclude":false,"size":"small","eq":"-(fieldname16-fieldname1)","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":true,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname21"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname22","shortlabel":"","index":15,"ftype":"fCalculated","userhelp":"How much extra $$ did option 2 cost over option 1.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"Additional Hardware Cost of Option 2","predefined":"","required":false,"exclude":false,"size":"small","eq":"(fieldname13-fieldname9)","min":"","max":"","suffix":"","prefix":"$","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":true,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname21"},{"dependencies":[{"rule":"","complex":false,"fields":[""]}],"form_identifier":"","name":"fieldname23","shortlabel":"","index":16,"ftype":"fCalculated","userhelp":"How many years until Option 2 is more cost-effective then option 1. If value is greater then the hardware life cycle of your hardware, then ROI will never be realized.","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","title":"ROI (Years)","predefined":"","required":false,"exclude":false,"size":"small","eq":"ROUND(fieldname22\/fieldname20)","min":"","max":"","suffix":" Years","prefix":"","decimalsymbol":".","groupingsymbol":",","readonly":true,"currency":false,"noEvalIfManual":true,"formatDynamically":false,"hidefield":false,"fBuild":{},"parent":"fieldname21"},{"form_identifier":"","name":"fieldname21","shortlabel":"","index":17,"ftype":"ffieldset","userhelp":"","userhelpTooltip":false,"tooltipIcon":false,"csslayout":"","fields":["fieldname20","fieldname22","fieldname23"],"columns":1,"rearrange":0,"title":"Totals","collapsible":false,"defaultCollapsed":true,"collapsed":false,"fBuild":{},"parent":""}],{"0":{"title":"Hardware Energy ROI Calculator","description":"This calculator will calculate years to achieve ROI from spending more money to purchase a more power efficient server or hardware.","formlayout":"top_aligned","formtemplate":"cp_cff_13","evalequations":1,"evalequationsevent":2,"loading_animation":0,"autocomplete":1,"persistence":0,"customstyles":""},"formid":"cp_calculatedfieldsf_pform_2"}];</script></pre>
<div id="fbuilder">
		<div id="fbuilder_2">
		<div id="formheader_2"></div>
		<div id="fieldlist_2"></div>
		<div class="clearer"></div>
	</div>
</div>
<div class="clearer"></div>
</form>
	



<h3 class="wp-block-heading">Results? Used Enterprise Server Wins, By Far.</h3>



<p>As you can see in the above example- I would not achieve a ROI for at least 10 years. Yes- my electric bill would be 100$ cheaper per year, however, I still wouldn&#8217;t break even for a full decade.</p>



<p>Given hardware usually has a finite lifecycle, I would say anything with a ROI &gt; 7 years is certainly not worth the additional effort or cost.</p>



<h2 class="wp-block-heading">Example #2 &#8211;  My R720XD versus a newer server in Germany</h2>



<p>This is exactly the same as the first example, with one exception. Instead of using MY local price per kWh, I am going to use the national average cost for germany, which at this time, appears to be roughly 32c / kWh.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="639" src="https://xtremeownage.com/wp-content/uploads/2022/01/image-1-1024x639.png" alt="" class="wp-image-1930" srcset="https://xtremeownage.com/wp-content/uploads/2022/01/image-1-1024x639.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/01/image-1-300x187.png 300w, https://xtremeownage.com/wp-content/uploads/2022/01/image-1-768x480.png 768w, https://xtremeownage.com/wp-content/uploads/2022/01/image-1-1536x959.png 1536w, https://xtremeownage.com/wp-content/uploads/2022/01/image-1.png 1560w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Results? Much more expensive, but, efficient option wins by a large margin.</h3>



<p>Despite being identical to the first example, except in terms of cost/kwh- The more efficient option wins by FAR here.</p>



<p></p>



<h2 class="wp-block-heading">Example #3 &#8211; Used Corporate SFF vs Intel NUC</h2>



<p></p>



<p>In this example, I will be comparing a used HP Z240 versus a brand-new intel NUC. I specifically use this example, because I see LOTS of people opting to get a NUC instead of a used piece of enterprise gear.</p>



<h4 class="wp-block-heading">HP z240</h4>



<p><a rel="noreferrer noopener" href="https://ebay.us/60C73F" target="_blank" data-type="URL" data-id="https://ebay.us/60C73F">Ebay: HP Z240 &#8211; 8GB DDR4 Ram &#8211; i5-6500</a></p>



<p>As of writing this article, the average cost of one of these shipped, is around 120-140$ USD. </p>



<h4 class="wp-block-heading">Intel NUC</h4>



<p><a rel="noreferrer noopener" href="https://amzn.to/3mWb2aJ" target="_blank" data-type="URL" data-id="https://amzn.to/3mWb2aJ">Amazon: NUC7PJYHN2 (Quad-Core Pentium Silver J5005, 8GB DDR4 RAM, </a></p>



<p>Cost as of the time of writing this, was 400$.</p>



<h4 class="wp-block-heading">Hardware Comparison</h4>



<p>C<a href="https://www.cpubenchmark.net/compare/Intel-i5-6500-vs-Intel-Pentium-Silver-J5005/2599vs3144" data-type="URL" data-id="https://www.cpubenchmark.net/compare/Intel-i5-6500-vs-Intel-Pentium-Silver-J5005/2599vs3144" target="_blank" rel="noreferrer noopener">PU Benchmark</a></p>



<p>Off the bat, the older z240&#8217;s I5-6500 offers nearly double the performance as the &#8220;low power&#8221; celeron used in the NUC. Both machines offer 8G of DDR4 ram. Lets ignore the hard drive for now, both options can be had with NVMe storage for basically the same price.</p>



<h4 class="wp-block-heading">Power Consumption</h4>



<p>I DO have multiple HP Z240 desktops laying around my house. One is used for my opnsense firewall, another is used for a gaming PC in my livingroom.</p>



<p>I have personally measured my firewall&#8217;s power consumption under normal load, at 25w of consumption. This is a normal HP z240, with a i5-6500, 8G of ram, NVMe, and a 10G NIC. For worst-case scenario, lets assume it uses 40w on average which is WELL above what it actually uses.</p>



<p>I do NOT have a intel NUC laying around. However, its <a rel="noreferrer noopener" href="https://www.intel.com/content/dam/support/us/en/documents/mini-pcs/nuc-kits/NUC7xJY_TechProdSpec.pdf" data-type="URL" data-id="https://www.intel.com/content/dam/support/us/en/documents/mini-pcs/nuc-kits/NUC7xJY_TechProdSpec.pdf" target="_blank">Documentation</a> states &lt; 15 watts under idle/sleep conditions. Lets assume best-case scenario, it uses 5 watts typical. This is likely to be well below its actual usage.</p>



<h3 class="wp-block-heading">Results? SFF Wins.</h3>



<p>Keep in mind, I nearly doubled my ACTUAL usage of my HP z240. I also gave the NUC a unrealistic average power consumption of 5 watts. As well, this was one of the cheapest NUCs you could spec out. Its CPU offers HALF of the performance as the older <a href="https://ark.intel.com/content/www/us/en/ark/products/88184/intel-core-i56500-processor-6m-cache-up-to-3-60-ghz.html" data-type="URL" data-id="https://ark.intel.com/content/www/us/en/ark/products/88184/intel-core-i56500-processor-6m-cache-up-to-3-60-ghz.html">i5-6500 released in Q3 of 2015</a>.</p>



<p>Effectively, this NUC machine will never reach ROI&#8230;. because you are going to throw it in the garbage can in a few months due to its underpowered processor!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="668" src="https://xtremeownage.com/wp-content/uploads/2022/01/image-1024x668.png" alt="" class="wp-image-1928" srcset="https://xtremeownage.com/wp-content/uploads/2022/01/image-1024x668.png 1024w, https://xtremeownage.com/wp-content/uploads/2022/01/image-300x196.png 300w, https://xtremeownage.com/wp-content/uploads/2022/01/image-768x501.png 768w, https://xtremeownage.com/wp-content/uploads/2022/01/image.png 1422w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h1 class="wp-block-heading">Conclusion</h1>



<p>Conclusion of this post- Do the math. </p>



<p>If you don&#8217;t like to do math? Fine. I provided a calculator above to do the math for you.</p>



<p>Just enter the values. If the ROI is &gt;= 7 Years, I would say go with option 1. If the ROI is &lt; 7 years, Go with option number two!</p>



<p><br>Obviously, I have relatively cheap electricity(Ignoring the solar panels going up soon as well). What works for me, will not work for someone living in a high-cost area such as germany where the average cost / kWh is 4 times greater then what I would spend.</p>



<p>So- in conclusion&#8230;. <strong>DO YOUR MATH!!!</strong></p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
