<?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>Technology &#8211; Giovanni F. Mazzeo De Santolo</title>
	<atom:link href="https://desantolo.com/category/information-technology/feed/" rel="self" type="application/rss+xml" />
	<link>https://desantolo.com</link>
	<description>That italian IT guy</description>
	<lastBuildDate>Thu, 25 Sep 2025 16:28:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
<site xmlns="com-wordpress:feed-additions:1">123042357</site>	<item>
		<title>How to tell if your iPhone 17 has a Samsung screen</title>
		<link>https://desantolo.com/2025/09/how-to-tell-if-your-iphone-17-has-a-samsung-screen/</link>
					<comments>https://desantolo.com/2025/09/how-to-tell-if-your-iphone-17-has-a-samsung-screen/#respond</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Thu, 25 Sep 2025 16:12:41 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[diagnostics]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iOS]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=716</guid>

					<description><![CDATA[TL;DR: Some iPhone 17 Pros have a slight blue hue tint depending on who made the screen. Samsung panels are the best ones to get (serial numbers starting with G9P, G9N, or G9Q). Apple killed the old sysdiagnose method in &#8230; <a href="https://desantolo.com/2025/09/how-to-tell-if-your-iphone-17-has-a-samsung-screen/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p><strong>TL;DR:</strong> Some iPhone 17 Pros have a slight blue hue tint depending on who made the screen. Samsung panels are the best ones to get (serial numbers starting with <strong>G9P, G9N, or G9Q</strong>). Apple killed the old sysdiagnose method in iOS 26, but you can now use the free tool <a href="https://www.3u.com/"><strong>3uTools</strong></a> on Windows or Mac — no jailbreak needed.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>With the iPhone 17 Pro, Apple is sourcing OLED panels from different manufacturers. It’s a bit of a lottery — some phones end up with Samsung panels (considered the best), while others come with LG or BOE panels. The catch? A few non-Samsung screens show a noticeable blue tint.</p>



<p>The easiest way to check? Use <strong><a href="https://www.3u.com/"><strong>3uTools</strong></a></strong>.</p>



<ul class="wp-block-list">
<li>Runs on both <strong>Windows and Mac</strong></li>



<li>Works perfectly on <strong>iOS 26</strong> (as of Sept 25, 2025)</li>



<li>Doesn’t need a <strong>jailbreak</strong></li>



<li>Spits out your hardware info in seconds, including the display’s serial prefix</li>
</ul>



<p>Look for <strong>G9P, G9N, or G9Q</strong> in the serial number — that means you’ve got a Samsung panel.</p>



<p>Apple used to let us pull this info by digging into sysdiagnose logs, but they shut that down in iOS 26. Thankfully, <a href="https://www.3u.com/"><strong>3uTools</strong></a> makes it super easy. I haven’t had the time to play with all its extra features yet, but for this one purpose alone it’s worth grabbing.</p>



<p>Big shoutout to the developers for keeping it free!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2025/09/how-to-tell-if-your-iphone-17-has-a-samsung-screen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">716</post-id>	</item>
		<item>
		<title>How to setup dual-stack IPv4 IPv6 Azure VM without a load-balancer</title>
		<link>https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/</link>
					<comments>https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/#respond</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sun, 11 Apr 2021 20:32:31 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[dual stack]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[virtual server]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[vm]]></category>
		<category><![CDATA[vmnet]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=616</guid>

					<description><![CDATA[I wanted to document my Microsoft Azure saga in getting a public IPv6 address to work in a virtual machine without a load balancer in front of it. My needs were pretty simple and straightforward I wanted a virtual server &#8230; <a href="https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>I wanted to document my Microsoft Azure saga in getting a public IPv6 address to work in a virtual machine without a load balancer in front of it. My needs were pretty simple and straightforward <strong>I wanted a virtual server that had a static IPv4 and IPv6 public addresses</strong> so that I can monitor my home network and other websites. </p>



<p>You would think this would be pretty easy, a few clicks and done? That wasn&#8217;t my experience on Azure and setting this up isn&#8217;t easy nor straightforward. Below is how to get it done, if this helps you &#8211; you can <a rel="noreferrer noopener" href="https://www.buymeacoffee.com/thelinuxguy" target="_blank">buy me a coffee or beer</a>.</p>



<span id="more-616"></span>



<div class="wp-block-jetpack-markdown"><h3>What Microsoft documentation said</h3>
<p>You can use public IPv6 address on a load balancer which needs to be a separate paid server/product in front of your servers. This isn&#8217;t what I was looking &#8211; I complained about it on github with screenshots <a href="https://github.com/MicrosoftDocs/azure-docs/issues/69167">issue #69167</a>.</p>
<p><strong>Disclaimer:</strong> I have no expertise on Microsoft Azure prior to this (I currently work at Google and GCP is what we do). I chose to use Azure for my hobby/playground primarily because I get $50 a month free credit with my MSDN subscription.</p>
<h3>My hacky (undocumented) way of getting it set up</h3>
<ol>
<li>Create a new Virtual Machine</li>
</ol>
<p>Use <a href="http://portal.azure.com/">portal.azure.com</a> &#8211; I am not going to go in depth here but I will call out the items you need to make sure to enable or change at setup.</p>
<p><strong>Do pay attention to these when creating VM</strong>:</p>
<ul>
<li>Use &quot;create a resource&quot; select &quot;Ubuntu Server 18.04 LTS&quot; and should default to virtual server.</li>
<li>Make sure to select &#8216;create new resource group&#8217; to bundle everything of this server together.</li>
<li>Disable default &#8216;scheduled shutdown&#8217;</li>
</ul>
<p>Deploy it. Go back to the newly created resource group.</p>
<ol start="2">
<li>Edit Virtual Network to add IPv6 (address space)</li>
</ol>
<p>You should see only IPv4 listed here. Like 10.0.0.0/24 &#8211; add IPv6.</p>
<p>Input: <strong>ace:cab:deca::/48</strong></p>
<p>Hit save.</p>
<ol start="3">
<li>Edit Virtual Network to add IPv6 (subnets)</li>
</ol>
<p>You should see <strong>default</strong> click it. On the right dialog that opens click <strong>Add IPv6 address space</strong></p>
<p>Input: <strong>ace:cab:deca::/64</strong></p>
<p>Make sure to select a network Security Group. (whatever the name you gave it). Save.</p>
<ol start="4">
<li>Create a dual-stack IPv4 and IPv6 public address</li>
</ol>
<p>Search Azure for <strong>Public IP addresses</strong> create one.</p>
<p><strong>Pay attention at creation</strong>:</p>
<ul>
<li>Select IP version <strong>both</strong></li>
<li>Select SKU <strong>standard</strong></li>
<li><strong>Ensure you associate it to your VM resource group and zone otherwise it won&#8217;t work</strong></li>
</ul>
<ol start="5">
<li>Stop virtual machine.</li>
</ol>
<p>Self explanatory, or during step 1 make sure to ensure it won&#8217;t be auto started.</p>
<ol start="6">
<li>Associate the new NIC and delete the old NIC from the VM</li>
</ol>
<p>With the VM shutdown, networking settings &gt; &quot;Attach network interface&quot; menu. Select create and attach network interface.</p>
<p>At <strong>NIC create</strong>:</p>
<ul>
<li>NIC security group select NONE.</li>
<li>Select Private IPv6 address. Give it a name &quot;v6&quot; for me.</li>
</ul>
<p>Detach the old NIC and delete from resource group (self-explanatory).</p>
<ol start="8">
<li>Associate the public IPv6 and IPv6 to the network interface</li>
</ol>
<p>Go to the new NIC we created and associated, &quot;IP configuration&quot; menu.</p>
<p>You should see &#8216;ipconfig1&#8217; is IPv4 and &quot;v6&quot; is secondary with our local IPv6 we gave on step 2.</p>
<p><strong>Associate IPv4 public address by clicking ipconfig1</strong> a new menu with a drop-down box and the new IPv4 (dual-stack) shows up. Select and save.</p>
<p><strong>Associate IPv6 public address</strong> same as above. You should end up with something like this</p>
</div>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?ssl=1"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="500" height="382" data-attachment-id="618" data-permalink="https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/2021-04-11_16-24-18/" data-orig-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?fit=1179%2C901&amp;ssl=1" data-orig-size="1179,901" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2021-04-11_16-24-18" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?fit=300%2C229&amp;ssl=1" data-large-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?fit=500%2C382&amp;ssl=1" src="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=500%2C382&#038;ssl=1" alt="" class="wp-image-618" srcset="https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=1024%2C783&amp;ssl=1 1024w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=300%2C229&amp;ssl=1 300w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=768%2C587&amp;ssl=1 768w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?resize=800%2C611&amp;ssl=1 800w, https://i0.wp.com/desantolo.com/wp-content/uploads/2021/04/2021-04-11_16-24-18.png?w=1179&amp;ssl=1 1179w" sizes="(max-width: 500px) 100vw, 500px" /></a></figure>



<div class="wp-block-jetpack-markdown"><ol start="9">
<li>Incoming firewall rules</li>
</ol>
<p>Make sure to add necessary firewall rules, if you created the default settings on the security group you probably already have SSH (port 22) and that&#8217;s it.</p>
<p>You probably want to add a rule for ICMP traffic (ping).</p>
<p>If you like to have no security at all (or implement your own firewall on the virtual server) you can add a blanked incoming rule for all ports 0-65535 and this should open everything.</p>
<p><strong>Note microsoft IPv6 implementation sucks and <a href="https://docs.microsoft.com/en-us/answers/questions/279687/ipv6-icmp-tofrom-the-internet-with-public-ip.html">ICMP ping on IPv6 incoming/outgoing WILL NOT WORK</a>! This is what tripped me out and I spent several hours trying to troubleshoot something that Microsoft could have easily documented&#8230; but here we are&#8230; I spent hours frustrated but hopefully with this guide I wrote for you it saved you all this time. If you appreciated it &#8211; remember you can <a href="https://www.buymeacoffee.com/thelinuxguy">buy me a coffee</a></strong> <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Go ahead start your virtual server and you should be able to use nmap on its IPv6 address or SSH remotely and see it work. See above in:re ping on IPv6.</p>
</div>



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



<p><strong>June 2021</strong>: Reader &#8220;Ben R&#8221; contacted me about this article and shared some noteworthy information for folks using older VM images or installations. <strong>DHCPv6 may be disabled and must be manually enabled</strong>. See this article for <a href="https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-ipv6-for-linux" data-type="URL" data-id="https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-ipv6-for-linux">enabling DHCPv6 on Azure</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2021/04/how-to-setup-dual-stack-ipv4-ipv6-azure-vm-without-a-load-balancer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">616</post-id>	</item>
		<item>
		<title>Fix zfs-mount.service failing after reboot on Proxmox</title>
		<link>https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/</link>
					<comments>https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/#comments</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sat, 01 Jul 2017 01:33:33 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[zfs]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=545</guid>

					<description><![CDATA[In my new homelab migration to Proxmox I came across a bug that will prevent you from being able to mount all your ZFS mount points and be a pain in the ass even more if you host containers in &#8230; <a href="https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>In my new homelab migration to Proxmox I came across a bug that will prevent you from being able to mount all your ZFS mount points and be a pain in the ass even more if you host containers in that folder.<br />
<span id="more-545"></span><br />
<strong>Cause of the problem:</strong> When you use a different zpool than the default rpool, and setup a directory mount for PVE to use for ISO datastore, VZ dump, etc on reboot if the zfs mount points have not completed mounting at boot time. Proxmox will attempt to create the directory path structure.</p>
<p>The problem with creating a directory for something before is mounted is that when zfs-mount.service runs and attempts to mount the zfs mount points you will get these kind of errors:</p>
<p><code>root@pve:~# <strong>systemctl status zfs-mount.service</strong></code><br />
<code>● zfs-mount.service - Mount ZFS filesystems</code><br />
<code> Loaded: loaded (/lib/systemd/system/zfs-mount.service; enabled; vendor preset: enabled)</code><br />
<code> Active: failed (Result: exit-code) since Fri 2017-06-30 18:10:21 PDT; 21s ago</code><br />
<code> Process: 6590 ExecStart=/sbin/zfs mount -a (code=exited, status=1/FAILURE)</code><br />
<code> Main PID: 6590 (code=exited, status=1/FAILURE)</code></p>
<p><code>Jun 30 18:10:19 pve systemd[1]: Starting Mount ZFS filesystems...</code><br />
<code>Jun 30 18:10:20 pve zfs[6590]: cannot mount '/gdata/pve/subvol-102-disk-1': directory is not empty</code><br />
<code>Jun 30 18:10:20 pve zfs[6590]: cannot mount '/gdata/pve/subvol-106-disk-1': directory is not empty</code><br />
<code>Jun 30 18:10:20 pve zfs[6590]: cannot mount '/gdata/pve/subvol-109-disk-1': directory is not empty</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: zfs-mount.service: Main process exited, code=exited, status=1/FAILURE</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: Failed to start Mount ZFS filesystems.</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: zfs-mount.service: Unit entered failed state.</code><br />
<code>Jun 30 18:10:21 pve systemd[1]: zfs-mount.service: Failed with result 'exit-code'.</code></p>
<p><strong>Fixing the root of the problem:</strong> change how proxmox deals with mounts by editing /etc/pve/storage.cfg &#8211; you need to add &#8220;mkdir 0&#8221; and &#8220;is_mountpoint&#8221; to the directory mount. Example:</p>
<p><code>dir: gdata-dump</code><br />
<code> path /gdata/vz</code><br />
<code> content iso,vztmpl,backup</code><br />
<code> maxfiles 0</code><br />
<code> shared 0</code><br />
<code> mkdir 0</code><br />
<code> is_mountpoint 1</code></p>
<p>Now we need to do some system cleanup before we reboot and confirm the problem is fixed.</p>
<p>Let&#8217;s check which mount points have failed:<br />
<code>root@pve:~# <strong>zfs list -r -o name,mountpoint,mounted</strong></code></p>
<p>Now let&#8217;s umount all zfs mount points (except rpool of course &#8211; assuming the rootfs is zfs)</p>
<p><code># zfs umount -a</code></p>
<p>After making sure ZFS mount points are unmounted, now we can delete the empty folders. Recall the failed mount points that the zfs list command gave you and one by one delete them like so:</p>
<p><code># rm -rf /gdata/pve/subvol-102-disk-1</code></p>
<p>Do this for each folder that showed issues mounting. You have a choice to remount everything with zfs mount -O -a &#8212; or better&#8230; reboot the system and check its fixed. I like the later better. So reboot.</p>
<p>After it boots back up check that service was able to mount zfs without issues:</p>
<p><code># systemctl status zfs-mount.service</code><br />
<code># zfs list -r -o name,mountpoint,mounted</code></p>
<p>That&#8217;s all folks&#8230; if you made the edit to storage.cfg and added the two variables this should not occur again. This was an annoying bug to deal with but good to have found a better solution than a startup script doing some dirty tricks!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2017/07/fix-zfs-mount-service-failing-after-reboot-on-proxmox/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">545</post-id>	</item>
		<item>
		<title>Install proxmox on a partition instead of a full-disk</title>
		<link>https://desantolo.com/2017/06/zfs-proxmox-on-a-partition-instead-of-a-full-disk/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sun, 11 Jun 2017 11:24:31 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[freenas]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[ssd]]></category>
		<category><![CDATA[zfs]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=532</guid>

					<description><![CDATA[By default, installing Proxmox with ZFS during the installation process will force you to use the entire disk for the root zpool. For most installs this is good enough. However, I like to do things differently sometimes. I have a &#8230; <a href="https://desantolo.com/2017/06/zfs-proxmox-on-a-partition-instead-of-a-full-disk/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>By default, installing Proxmox with ZFS during the installation process will force you to use the entire disk for the root zpool. For most installs this is good enough. However, I like to do things differently sometimes.</p>
<p>I have a pair of Samsung 840 Pro 256GB SSDs that I wanted to use for my new homelab that I am currently building (moving from vmware to proxmox). You may be wondering why I want to install the operating system on a partition instead of an entire disk. Several reasons:<br />
<span id="more-532"></span><br />
1. Proxmox (ZFS-on-Linux) does not yet support SSD TRIM, FreeBSD does support it so migrating from FreeNAS into Proxmox I should be aware of it.<br />
2. Data redundancy for the root filesystem does not need to be large. Even if I do RAID1 with my two SSDs I won&#8217;t be storing my critical data or VMs in the rpool &#8211; I want a smaller sized root pool that has fault-tolerance (RAID1). A partition of 60GB mirrored in two SSDs should fit the bill here.<br />
3. ZIL Intent Log experimentation, I also want to experiment by using the same two SSDs to speed up my ZFS writes. I want a small partition in a stripe (RAID0) for performance, 45GB total (22.5gb per ssd) is plenty for this.<br />
4. The left over unused space will be left untouched so that the SSD will have more available blocks during the controller&#8217;s built-in garbage collection (not the same as TRIM)</p>
<p>I don&#8217;t have enough time to go into a lot of details (it&#8217;s past 4am), so I will get to how to do it. If you are trying to follow my same steps, you will need at least 3 hard drives.</p>
<p>1. On a hard drive or device you don&#8217;t care to use in the final outcome, install Proxmox as you would normally. Wipe the entire partition table and let it install RAID0 on the whole disk.<br />
2. Boot into your new installation, have the two new disks you want to keep attached to the system and ensure linux sees them fdisk should help with this.<br />
3. You will now need to create the partitions on the new disks (not rpool):</p>
<p>You will need to know how to calculate hard disk sectors and multiply by your block size. I don&#8217;t have time to go over it but I will do a quick TL;DR example to give you an idea:</p>
<p>We want 25GB slice so that is around 25000000000 bytes / 512 (block size) = 48828125 total sectors to allocate this storage amount.</p>
<p>Take a look at the partition table to make sure you create something similar, fdisk -l /dev/sd$ (your rpool disk). We will leave 8MB disk at the end of the partition, Proxmox by default creates 3 partitions: GRUB_BOOT, ZFS data, Solaris 8MB.</p>
<p>This command creates the partitions for my new array, I&#8217;ve described them for you by the -c command. It should be self-explanatory.</p>
<p># sgdisk -z /dev/sdb<br />
# sgdisk -a1 -n1:34:2047 -t1:EF02 -c1:&#8221;BIOS boot&#8221; -n2:2048:156252048 -t2:BF01 -c2:&#8221;mirror&#8221; -n3:156252049:205080174 -t3:BF01 -c3:&#8221;stripe&#8221; -n4:205080175:205096559 -t4:BF0 /dev/sda</p>
<p># sgdisk -a1 -n1:34:2047 -t1:EF02 -c1:&#8221;BIOS boot&#8221; -n2:2048:156252048 -t2:BF01 -c2:&#8221;mirror&#8221; -n3:156252049:205080174 -t3:BF01 -c3:&#8221;stripe&#8221; -n4:205080175:205096559 -t4:BF0 /dev/sdc<br />
# zpool create -f stripe -o ashift=13 /dev/sda3 /dev/sdc3<br />
# zpool create -f newroot -o ashift=13 mirror /dev/sda2 /dev/sdc2<br />
# grub-install /dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSADB46090M<br />
# grub-install /dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S12RNEACC59063B</p>
<p>Backup &amp; moving stuff.<br />
# zfs snapshot -r rpool@fullbackup<br />
# zfs list -t snapshot<br />
# zfs send -R rpool@fullbackup | zfs recv -vFd newroot<br />
root@pve:/# zpool get bootfs<br />
NAME PROPERTY VALUE SOURCE<br />
newroot bootfs &#8211; default<br />
rpool bootfs rpool/ROOT/pve-1 local<br />
stripe bootfs &#8211; default<br />
root@pve:/# zpool set bootfs=newroot/ROOT/pve-1 newroot<br />
zpool export newroot<br />
zpool import -o altroot=/mnt newroot<br />
&#8212; rebooted with freenas live cd, enter shell, import newroot with new name rpool. rebooted<br />
&#8212; boot into proxmox recovery &#8212; once it boots, do recovery<br />
grub-install /dev/sdb<br />
grub-install /dev/sda<br />
update-grub2<br />
update-initramfs -u</p>
<p>#zpool set bootfs=newroot rpool could also work without renaming via FreeNAS but didn&#8217;t try.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">532</post-id>	</item>
		<item>
		<title>Homelab 2017 refresh</title>
		<link>https://desantolo.com/2017/06/homelab-2017-refresh/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sat, 10 Jun 2017 04:14:43 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[homelab]]></category>
		<category><![CDATA[hyperconverged]]></category>
		<category><![CDATA[openvswitch]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[supermicro]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=527</guid>

					<description><![CDATA[My faithful Lenovo TS440 home server has reached its peak potential as I have maxed out the 32gb memory limit of the Intel E3 v3 architecture. My needs for more CPU power and memory is driven by the idea of &#8230; <a href="https://desantolo.com/2017/06/homelab-2017-refresh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>My faithful Lenovo TS440 home server has reached its peak potential as I have maxed out the 32gb memory limit of the Intel E3 v3 architecture.</p>
<p>My needs for more CPU power and memory is driven by the idea of hyperconvergence. Which means I use a single machine to be my router/firewall, VPN gateway, network storage as well as virtual machine host.</p>
<p>Those themes have been part of my home network design since 2010 or so, today&#8217;s hot technologies are focusing on containers (LXC), Docker, etc. So I need a more powerful server in order to be able to expand my playground into those technologies. The 32gb maximum on my old server is simply not enough when you have 5 different VMs that consume almost all your memory resources (windows 10 VM, OSX one and my FreeNAS one being the top users of 75%+).<span id="more-527"></span></p>
<p><a href="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?ssl=1"><img data-recalc-dims="1" decoding="async" data-attachment-id="526" data-permalink="https://desantolo.com/2017/06/homelab-2017-refresh/img_8487-jpg/" data-orig-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?fit=3024%2C4032&amp;ssl=1" data-orig-size="3024,4032" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;iPhone 6s&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1497041974&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.15&quot;,&quot;iso&quot;:&quot;40&quot;,&quot;shutter_speed&quot;:&quot;0.0625&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="img_8487.jpg" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?fit=225%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?fit=500%2C667&amp;ssl=1" class="alignnone size-full wp-image-526" src="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?resize=500%2C667&#038;ssl=1" alt="" width="500" height="667" srcset="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?w=3024&amp;ssl=1 3024w, https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?resize=225%2C300&amp;ssl=1 225w, https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?resize=768%2C1024&amp;ssl=1 768w, https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?resize=600%2C800&amp;ssl=1 600w, https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?w=1000&amp;ssl=1 1000w, https://i0.wp.com/desantolo.com/wp-content/uploads/2017/06/img_8487.jpg?w=1500&amp;ssl=1 1500w" sizes="(max-width: 500px) 100vw, 500px" /></a></p>
<p>On my new machine I have decided to move towards the Xeon E5 v4 CPU series and DDR4 which has lower memory consumption than my current LPDDR3 (1.2v vs 1.35v per ram stick).</p>
<p>The components of choice is a <strong>Supermicro X10SRL-F</strong> with remote management (IPKVM), and <strong>64gb DDR4</strong> to start.</p>
<p>For server chassis I&#8217;ll be reusing my Lenovo TS440, but first I&#8217;ll assemble and test my new server on a different chassis as to not impact my home router/network design.</p>
<p>Since I will most likely be moving away from VMware ESXi into Proxmox or another open source alternative this means that there will be a steep learning curve as I try to do the initial configuration of the network to run on a single node (hyperconverged). I will have to learn OpenVswitch with is a virtual switch that runs on unix.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">527</post-id>	</item>
		<item>
		<title>Why certain programs launch fine on Start &gt; Run on Windows but not from the command line</title>
		<link>https://desantolo.com/2017/02/why-certain-programs-launch-fine-on-start-run-on-windows-but-not-from-the-command-line/</link>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Tue, 07 Feb 2017 02:17:45 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[windows registry]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=500</guid>

					<description><![CDATA[On windows, if you run a program such as Chrome.exe (Google Chrome Web Browser) via control + R (run) it will launch without a hitch as long as the browser is installed. However, if you open the command line and &#8230; <a href="https://desantolo.com/2017/02/why-certain-programs-launch-fine-on-start-run-on-windows-but-not-from-the-command-line/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>On windows, if you run a program such as Chrome.exe (Google Chrome Web Browser) via control + R (run) it will launch without a hitch as long as the browser is installed.</p>
<p>However, if you open the command line and you attempt to run &#8220;chrome.exe&#8221; it will complain that the executable is not found in the %PATH%</p>
<p>This is because Control+R also looks up the registry values within HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\</p>
<p>Which include all apps ever installed such as Chrome.exe, Firefox.exe, Excel.exe, Illustrator.exe, etc.</p>
<p>So if you are ever writing a program in your programming language of choice, using a Windows Registry check of the location (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths) for whatever.exe will be the perfect solution when that program is not in the System Environment variable %PATH%</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">500</post-id>	</item>
		<item>
		<title>Flashing new firmware on HP hard drives without proliant hardware</title>
		<link>https://desantolo.com/2017/01/flashing-new-firmware-on-hp-hard-drives-without-proliant-hardware/</link>
					<comments>https://desantolo.com/2017/01/flashing-new-firmware-on-hp-hard-drives-without-proliant-hardware/#comments</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Wed, 11 Jan 2017 08:27:24 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[flashing]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[proliant]]></category>
		<category><![CDATA[seagate]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=489</guid>

					<description><![CDATA[I purchased a few hard drives off ebay for Docker homelab that I am building and found a good deal on a 2TB HP Enterprise branded hard drive (basically a rebranded Seagate disk with HP stickers on them). The disk actually &#8230; <a href="https://desantolo.com/2017/01/flashing-new-firmware-on-hp-hard-drives-without-proliant-hardware/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>I purchased a few hard drives off ebay for Docker homelab that I am building and found a good deal on a 2TB HP Enterprise branded hard drive (basically a rebranded Seagate disk with HP stickers on them).</p>
<p>The disk actually is a Seagate ST32000644NS that HP calls it its own model MB2000EAMZF. Once the disks arrived and I was ready to test them I noticed a fatal flaw. Their firmware was very out of date and HP made a critical update that is mandatory for these drives to avoid them from failing due to 24/7 usage.<br />
<img data-recalc-dims="1" decoding="async" data-attachment-id="490" data-permalink="https://desantolo.com/2017/01/flashing-new-firmware-on-hp-hard-drives-without-proliant-hardware/firmware/" data-orig-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/01/firmware.jpg?fit=500%2C355&amp;ssl=1" data-orig-size="500,355" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="firmware" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/01/firmware.jpg?fit=300%2C213&amp;ssl=1" data-large-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/01/firmware.jpg?fit=500%2C355&amp;ssl=1" class="aligncenter  wp-image-490" src="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/01/firmware.jpg?resize=417%2C296&#038;ssl=1" alt="" width="417" height="296" srcset="https://i0.wp.com/desantolo.com/wp-content/uploads/2017/01/firmware.jpg?resize=300%2C213&amp;ssl=1 300w, https://i0.wp.com/desantolo.com/wp-content/uploads/2017/01/firmware.jpg?w=500&amp;ssl=1 500w" sizes="(max-width: 417px) 100vw, 417px" /><br />
To my surprise although these drives are Seagate and the internals are exactly the same they run different firmwares, and Seagate&#8217;s tools or utilities will not flash or work on HP branded drives thus forcing you to grab the firmware updates from HP.</p>
<p>Seagate makes these firmware updates available for free and HP does as well but with one gotcha &#8211; <strong>you must run the firmware update tool in Hewlett Packard hardware or the firmware will not flash and there seems to be no workaround. Thumbs down to HP for locking down a critical firmware update to only run on HP Proliant server hardware</strong> (I have Dell but a SATA hard drive is recognized as a normal hdd on any brand computer thanks to computing standards).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2017/01/flashing-new-firmware-on-hp-hard-drives-without-proliant-hardware/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">489</post-id>	</item>
		<item>
		<title>Configure Webstorm to use Github Desktop for Windows git-bash</title>
		<link>https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/</link>
					<comments>https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/#respond</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Fri, 30 Dec 2016 08:12:48 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[webstorm]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=471</guid>

					<description><![CDATA[If you have installed Github Desktop on Windows, you may have noticed that the application itself comes with a &#8220;Git Shell&#8221; which is basically a linux terminal emulator running on windows and its very useful for developers or linux users &#8230; <a href="https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>If you have installed Github Desktop on Windows, you may have noticed that the application itself comes with a &#8220;Git Shell&#8221; which is basically a linux terminal emulator running on windows and its very useful for developers or linux users that are familiar with bash.</p>
<p>The problem I recently encountered was trying to find the executable PATH of the git-bash.exe so that I can configure my Webstorm IDE to use it. All the documentation on the internet seems to point to C:/Program Files/Git folder but Github may have changed this as in the latest release I downloaded (v 3.3.3.0) the files reside elsewhere and I will share where to find them.<br />
<span id="more-471"></span><br />
To find your git-bash.exe path try the following:</p>
<ol>
<li>Open File Explorer and put <strong>%AppData%</strong> in the address bar, hit enter.</li>
<li>It should redirect to something like:  <strong>C:\Users\Giovanni\AppData\Roaming</strong></li>
<li>Now change folders from Roaming to Local</li>
<li>You should now be at: C:\Users\Giovanni\<strong>AppData\Local </strong></li>
<li>Find the <strong>Github</strong> folder, enter it.</li>
<li>You should see a list of files and folders, we care about &#8220;PortableGit&#8221; it has a longer name that just PortableGit, so enter it.</li>
<li>You will see git-bash.exe in there.</li>
<li>Go back into Webstorm &gt; Settings &gt; Terminal</li>
<li>Set your terminal to this new path, in my case: <strong>&#8220;C:\Users\Giovanni\AppData\Local\GitHub\PortableGit_d7effa1a4a322478cd29c826b52a0c118ad3db11\git-bash.exe&#8221;</strong></li>
</ol>
<p>You&#8217;re all set! Webstorm should now be able to launch Github Desktop&#8217;s git-bash.exe as the terminal, no additional software required.</p>
<p>There is a gotcha: the terminal window will open separate from Webstorm window, if you want a tab under your code then I suggest to download and install git for windows in addition to Github Desktop.<a href="https://git-for-windows.github.io/">https://git-for-windows.github.io/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2016/12/configure-webstorm-github-desktop-windows-git-bash/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">471</post-id>	</item>
		<item>
		<title>Overriding Google Compute Engine hostname from getting reset</title>
		<link>https://desantolo.com/2016/12/overriding-google-compute-engine-hostname-from-getting-reset/</link>
					<comments>https://desantolo.com/2016/12/overriding-google-compute-engine-hostname-from-getting-reset/#comments</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sun, 25 Dec 2016 12:16:26 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[GCE]]></category>
		<category><![CDATA[Google Compute Engine]]></category>
		<guid isPermaLink="false">https://desantolo.com/?p=434</guid>

					<description><![CDATA[On my last post, I explained how I am experimenting with Google Compute Engine (GCE) to host my backup DNS service and my post about configuring mailjet as an exim mail relay. I have run into a few issues on Google &#8230; <a href="https://desantolo.com/2016/12/overriding-google-compute-engine-hostname-from-getting-reset/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>On my last post, I explained how I am experimenting with Google Compute Engine (GCE) to host my backup DNS service and <a href="https://desantolo.com/2016/12/how-to-setup-mailjet-on-exim-for-cpanel-dnsonly-on-google-cloud/">my post about configuring mailjet as an exim mail relay</a>.</p>
<p>I have run into a few issues on Google Compute Engine, it looks like every time the instance gets a DHCP offer the hostname of the machine will get reset to the internal hostname, overriding whatever setting you may have set&#8230; this is bad news for a server that needs to respond to DNS settings.</p>
<p>After a few hours of digging and testing out different approaches, including trying to setup a DHCP hook to run the &#8220;hostname&#8221; linux command I came across documentation from Google talking about &#8220;custom metadata&#8221;.</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="438" data-permalink="https://desantolo.com/2016/12/overriding-google-compute-engine-hostname-from-getting-reset/gce-custom-metadata/" data-orig-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2016/12/gce-custom-metadata.png?fit=566%2C1020&amp;ssl=1" data-orig-size="566,1020" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="gce-custom-metadata" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2016/12/gce-custom-metadata.png?fit=166%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/desantolo.com/wp-content/uploads/2016/12/gce-custom-metadata.png?fit=500%2C901&amp;ssl=1" class="aligncenter size-medium wp-image-438" src="https://i0.wp.com/desantolo.com/wp-content/uploads/2016/12/gce-custom-metadata.png?resize=166%2C300&#038;ssl=1" alt="" width="166" height="300" srcset="https://i0.wp.com/desantolo.com/wp-content/uploads/2016/12/gce-custom-metadata.png?resize=166%2C300&amp;ssl=1 166w, https://i0.wp.com/desantolo.com/wp-content/uploads/2016/12/gce-custom-metadata.png?resize=444%2C800&amp;ssl=1 444w, https://i0.wp.com/desantolo.com/wp-content/uploads/2016/12/gce-custom-metadata.png?w=566&amp;ssl=1 566w" sizes="auto, (max-width: 166px) 100vw, 166px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2016/12/overriding-google-compute-engine-hostname-from-getting-reset/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">434</post-id>	</item>
		<item>
		<title>How to setup Mailjet on exim for cPanel dnsonly on Google Cloud</title>
		<link>https://desantolo.com/2016/12/how-to-setup-mailjet-on-exim-for-cpanel-dnsonly-on-google-cloud/</link>
					<comments>https://desantolo.com/2016/12/how-to-setup-mailjet-on-exim-for-cpanel-dnsonly-on-google-cloud/#comments</comments>
		
		<dc:creator><![CDATA[Giovanni]]></dc:creator>
		<pubDate>Sat, 24 Dec 2016 09:16:44 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Compute Engine]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[dnsonly]]></category>
		<category><![CDATA[exim]]></category>
		<category><![CDATA[Google Cloud]]></category>
		<category><![CDATA[mailjet]]></category>
		<category><![CDATA[mailserver]]></category>
		<guid isPermaLink="false">http://desantolo.com/?p=323</guid>

					<description><![CDATA[I have been experimenting with Google Compute Engine (GCE) for the past few days. I wanted to migrate a slave DNS server to Google as an experiment and this blog post will talk about the shortcomings, my workarounds, configuration and tips &#8230; <a href="https://desantolo.com/2016/12/how-to-setup-mailjet-on-exim-for-cpanel-dnsonly-on-google-cloud/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>I have been experimenting with Google Compute Engine (<strong>GCE</strong>) for the past few days. I wanted to migrate a slave DNS server to Google as an experiment and this blog post will talk about the shortcomings, my workarounds, configuration and tips to achieve the goal of having cPanel DNSonly installed and setup using Google&#8217;s infrastructure.</p>
<h2>What is Google Compute Engine?</h2>
<p>Google Compute Engine (or &#8220;GCE&#8221;) is Google&#8217;s answer to Amazon&#8217;s AWS, it basically offers you the ability to deploy Virtual Machines (VMs) at Google&#8217;s datacenters. In the most simplistics of setups you would use a single VM or &#8220;compute instance&#8221; and if you wanted to have a more complex setup you could deploy multiple instances in different geographic locations spread across different datacenters in the United States to achieve a more redundant setup or to provide you with better capacity for large traffic workflows.</p>
<p>It all depends on what your goals are, myself I am just starting out with a simple requirement. I would like to use a single compute instance running CentOS linux that runs cPanel DNSonly (proprietary control panel/dns clustering solution for cPanel servers).</p>
<p>The goal is not to host websites or any critical services on this instance, but rather only keep a copy of my DNS zones. If my experiment fails or my instance goes down or gets destroyed there won&#8217;t be any losses or damages for this experiment as my primary server is still running on <a href="http://desantolo.com/category/virtualization/proxmox/">Proxmox PVE</a>.</p>
<h1>The limitations of GCE&#8230; What I learned so far</h1>
<p>GCE instances run behind Google&#8217;s firewalls and depending on the datacenter you decide to host your instance your VM will have an internal IP within that datacenters network scope/range (for example: <span style="text-decoration: underline;">us-central1 datacenter zone</span> has a <strong>10.128.0.0/20</strong> range for all VMs).</p>
<p>This means that assigning a IPv4 public static IP, which is needed to allow anyone to query the DNS server we&#8217;ll be hosting inside this instance will actually have to forward packets to the instances internal network. Not really a big deal unless your application can&#8217;t be behind a NAT firewall like it is the case here.</p>
<p>For our intensive use and purposes it is fine. One important issue that I found is that doing any kind of e-mail server related activities on GCE is prohibited (<a href="https://cloud.google.com/compute/docs/tutorials/sending-mail/">source</a>). You won&#8217;t be able to use SMTP (Simple Mail Transfer Protocol) port 25, 465 or 587 to send or receive email.</p>
<p>Now for a DNS server that will not be a mailserver this is not a blocker, but it is really a pain in the ass. Why? because monitoring scripts running on the server need to email the administrator to notify me of issues or errors so they can be investigated.</p>
<p>Continued on the next page.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://desantolo.com/2016/12/how-to-setup-mailjet-on-exim-for-cpanel-dnsonly-on-google-cloud/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">323</post-id>	</item>
	</channel>
</rss>
