<?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>invurted.com &#187; Tutorials</title>
	<atom:link href="http://invurted.com/category/tutes/feed/" rel="self" type="application/rss+xml" />
	<link>http://invurted.com</link>
	<description>With great virtualisation comes great responsibility!</description>
	<lastBuildDate>Thu, 03 Jun 2010 10:14:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>[TUTORIAL] Failure to Enter Maintenance Mode</title>
		<link>http://invurted.com/tutorial-failure-to-enter-maintenance-mode/</link>
		<comments>http://invurted.com/tutorial-failure-to-enter-maintenance-mode/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 02:34:37 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[maintenance mode]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=255</guid>
		<description><![CDATA[Greetings, faithful reader, This one is as much a reminder for me as it is one to you! When you&#8217;re entering Maintenance Mode, the Vmware ESX server will always try to Vmotion all of it&#8217;s hosted virtual machines away. Problems can occur when hosts fail to migrate when entering Maintenace Mode. The server will stop [...]]]></description>
			<content:encoded><![CDATA[<p>Greetings, faithful reader,</p>
<p>This one is as much a reminder for me as it is one to you! <span id="more-255"></span></p>
<p>When you&#8217;re entering Maintenance Mode, the Vmware ESX server will always try to Vmotion all of it&#8217;s hosted virtual machines away. Problems can occur when hosts fail to migrate when entering Maintenace Mode. The server will stop at two percent and then time out. Regrettably, there is no notification that an individual Virtual Machine&#8217;s Vmotion event fails.</p>
<p>However, there is another cause as well: if your cluster is both HA (High Availability) and DRS (Distributed Resource Scheduling) enabled, when you put an ESX server into Maintenance mode, DRS will generate a five star recommendation. Manual mode, however, requires user interaction and you have to tell the ESX cluster to initiate the Vmotion events. Once I accept the recommendations, Vmotion will start and the target ESX server will be placed in Maintenance Mode.</p>
<p>There is one other case where it will fail. This one falls into the category of &#8220;undocumented system feature&#8221;.  The summary is:</p>
<p>From: http://kb.vmware.com/selfservice/viewContent.do?externalId=1007156&#038;sliceId=1</p>
<blockquote>
<ul>
<li>An ESX host fails to enter maintenance mode in a VMware High Availability (HA) or DRS cluster </li>
<li>Hosts fail to migrate when attempting to enter maintenance mode </li>
<li>The progress indicator remains at 2% indefinitely</li>
<li>Trying to remediate a host and getting a time out error when trying to enter the maintenance mode</li>
</ul>
<p>Cause:<br />
This is normal behavior for a VMware HA/DRS cluster that is using strict admission control.</p>
<p>Disabling strict admission control (allowing virtual machines to power on even if they violate constraints) should allow a host to enter maintenance mode in this situation but a bug was discovered whereby it did not.<br />
Resolution:</p>
<p>For a permanent solution, upgrade to VirtualCenter 2.5 Update 3.</p>
<p>To workaround the issue, temporarily disable VMware HA in the cluster settings. You will then be able to put the ESX Server host into Maintence mode and do the work required. You can then re-enable HA on your cluster.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/tutorial-failure-to-enter-maintenance-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[TUTORIAL] Boot ESX 3i from USB key</title>
		<link>http://invurted.com/boot-esx-3i-from-usb-key/</link>
		<comments>http://invurted.com/boot-esx-3i-from-usb-key/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 05:33:02 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[esx 3i]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=243</guid>
		<description><![CDATA[This one is getting filed under &#8220;Try it really soon!&#8221; However, randomly answering an email, I came across this document on http://www.vminfo.nl detailing the process for making a bootable USB key with ESX 3i installed. Certainly, the document goes into a lot more detailed instructions, but here&#8217;s a bit of a summary: Using an archiving [...]]]></description>
			<content:encoded><![CDATA[<p>This one is getting filed under &#8220;Try it really soon!&#8221; However, randomly answering an email, I came across this document on http://www.vminfo.nl detailing the process for making a bootable USB key with ESX 3i installed.<span id="more-243"></span></p>
<p>Certainly, the document goes into a lot more detailed instructions, but here&#8217;s a bit of a summary:</p>
<ol>
<li>Using an archiving program eg. IZArc, extract the contents of the Vmware ESX 3i ISO image. Given it&#8217;s an ISO, you could also mount it using DaemonTools or it&#8217;s like.</li>
<li>Once the files are extracted, find the INSTALL.TGZ file and open it.</li>
<li>Navigate to the <code>\usr\lib\vmware\installer</code> directory.</li>
<li>Open the <code>Vmware-VMvisor-big-3.5.0_Update_2-11072.i386.dd.bz2</code> file. This may take a while, so patience, young padawan! Then extract the un-compressed .dd file</li>
<li>Restore the boot image to the USB thumb drive. Effectively, you&#8217;re restoring a &#8220;virtual hard drive&#8221; (in this case the .dd file extracted above.</li>
<li>Now that&#8217;s done, it&#8217;s time to test! Boot the sucker and play with ESX 3i!</li>
</ol>
<p>The only real &#8220;gotcha&#8221; in this one is pretty obvious: make sure you have a motherboard that can boot from USB. Thankfully, these days most new motherboards have this ability. If in doubt check your motherboard manual or the manufacturer&#8217;s website.</p>
<p>Regrettably, I don&#8217;t have a font big enough OR bold enough to stress that this is UNSUPPORTED IN A PRODUCTION ENVIRONMENT!! Try it at your own risk!</p>
<p><a href="http://invurted.com/wp-content/uploads/esx3iusb.pdf">ESX 3i on USB</a></p>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/boot-esx-3i-from-usb-key/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[TUTORIAL] Force Virtual Machine to shutdown</title>
		<link>http://invurted.com/tutorial-force-virtual-machine-to-shutdown/</link>
		<comments>http://invurted.com/tutorial-force-virtual-machine-to-shutdown/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 03:38:52 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[virtual machine]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=182</guid>
		<description><![CDATA[Occassionally, when you try to shut down a virtual machine the progress bar will stop meaning that the process will never complete in the background. The following steps will allow you to force the shutdown of a running virtual machine. Logon to the ESX host where the virtual machine is running and become root. vmware-cmd [...]]]></description>
			<content:encoded><![CDATA[<p>Occassionally, when you try to shut down a virtual machine the progress bar will stop meaning that the process will never complete in the background. The following steps will allow you to force the shutdown of a running virtual machine.<span id="more-182"></span></p>
<ol>
<li>Logon to the ESX host where the virtual machine is running and become root.</li>
<li><code>vmware-cmd -l</code> to list all the registered virtual machines.</li>
<li><code>vmware-cmd /path/copied/from/vmware-cmd getstate</code> to get state of the target virtual machine.<br />
If the state requires an answer:</p>
<ul>
<li><code>vmware-cmd /path/copied/from/vmware-cmd answer</code></li>
</ul>
<p>If no answer is needed:</p>
<ul>
<li><code>vmware-cmd /path/copied/from/vmware-cmd stop trysoft</code></li>
</ul>
<p>If trysoft does not work use <code>vmware-cmd /path/copied/from/vmware-cmd stop hard</code></li>
<li>If the vmware-cmd does not work, the next step is to kill the master user world id.</li>
<li><code>cat /proc/vmware/vm/*/names |grep <strong>vmname</strong></code> replace <strong>vmname</strong> with the name of the virtual machine that has hung. From this list, get the VMID</li>
<li><code>less /proc/vmware/vm/<strong>vmid</strong> value/cpu/status</code> where <strong>vmid</strong> value is the number from above.</li>
<li>Scroll over to the right until you find the group field that shows vm.####. The #### numbers are the master user world id.</li>
<li><code>/usr/lib/vmware/bin/vmkload_app -k 9 <strong>####</strong></code> where <strong>####</strong> is the master user world id. If the command is successful you will get a WARNING message that a signal 9 is being sent.</li>
<li>If <code>vmkload_app </code>does not help the next thing to try is to crash the virtual machine with the <code>vm-support -X</code> command.</li>
<li><code>vm-support -x </code>to get the vmid.</li>
<li>From a directory that has ample space <code>vm-support -X <strong>####</strong></code> where <strong>####</strong> is the vmid.</li>
<li>Answer all the questions with the default answers. The entire process takes about 10 minutes and creates an archive log that can be submitted to support. It will also crash the vm</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/tutorial-force-virtual-machine-to-shutdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iSCSI security</title>
		<link>http://invurted.com/tutorial-iscsi-security/</link>
		<comments>http://invurted.com/tutorial-iscsi-security/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 00:48:45 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[iscsi]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=177</guid>
		<description><![CDATA[iSCSI, as a storage option, has less performance than fibre channel ie. it is limited to the speed of the HBAs or the network card being used, however it is far cheaper and I can leaverage my existing infrastructure to put in an iSCSI SAN. The problem becomes, in a TCP/IP network, how do I [...]]]></description>
			<content:encoded><![CDATA[<p>iSCSI, as a storage option, has less performance than fibre channel ie. it is limited to the speed of the HBAs or the network card being used, however it is far cheaper and I can leaverage my existing infrastructure to put in an iSCSI SAN. The problem becomes, in a TCP/IP network, how do I protect the data moving between the SAN and the hosts?<span id="more-177"></span><br />
To start with, what is iSCSI? Functionally, there is no difference between Fibre Channel, iSCSI and a local SCSI controller. All three send SCSI commands to hard disks. Both Fibre Channel and iSCSI transmit over fiber and TCP/IP networks, respectively; making the network storage appear as &#8220;local&#8221; storage for the iSCSI client (or initiator).<br />
As I mentioned, iSCSI uses TCP/IP networks to transport the SCSI commands from the initiator to the target (the iSCSI SAN). iSCSI uses the default TCP port 3260 and provides no native security on communication between the initiator and the target.<br />
Here&#8217;s where the challenges begin.<br />
To start with, if my iSCSI traffic is shared on a production network there are two problems. The most dangerous is network sniffers for obvious reasons.<br />
The other immediate problem is network contention. If my iSCSI SAN shares the same network as all my production network there is a big problem with performance as my normal traffic will be competing for access with iSCSI.<br />
The solution to both problems is network isolation. This isn&#8217;t so much best practice as it is mandatory. Wether the iSCSI network is physically isolated to it&#8217;s own infrastructure or using IEEE 802.1Q (VLAN tagging), the iSCSI network should now be invisible and/or inaccessible to the production network. The only notable exception becomes the requirement for servers to access the iSCSI implementation. Easily fixed by the addition of network adapters to the servers. Even if I need to populate each server with additional NICs, this should still be cheaper than the most simple Fibre Channel implementation.<br />
Okay, now we have isolation to provide security but what about securing the communication itself.<br />
The obvious solution is IPSec. The not so obvious problem is the overhead to IPSec. For a storage network, it doesn&#8217;t seem optimal to have to encrypt and decrypt each packet as it is transmitted and received. Certainly, as of the writing of this article, there is no support for IPSec in ESX3.5 specifically.<br />
So the only real option left (in ESX particular) is authentication to verify my identity. ESX supports CHAP authentication only for iSCSI initiators and targets.<br />
CHAP (Challenge Handshake Authentication Protocol) is used to verify the identity of clients in a Point-to-point network. Your identity is verifed by using a three way handshake. After the initial link CHAP authentication is done at random intervals during the entire conversation. The one weakness is the reliance on a shared secret ie. the client&#8217;s password. ESX <strong>does not</strong> support per target credentials either. So one CHAP username and password sent to all iSCSI targets.<br />
The CHAP process goes something like the following:</p>
<ol>
<li>After the completion of the link establishment phase, the authenticator sends a &#8220;challenge&#8221; message to the peer.</li>
<li>The peer responds with a value calculated using a one-way hash function, such as an MD5 checksum hash.</li>
<li>The authenticator checks the response against its own calculation of the expected hash value. If the values match, the authenticator acknowledges the authentication; otherwise it should terminate the connection.</li>
<li>At random intervals the authenticator sends a new challenge to the peer and repeats steps 1 through 3.</li>
</ol>
<p>An example of CHAP authentication can be seen between two Cisco 3640 routers. The network is a fairly simple on and looks like this:<br />
<a href="http://invurted.com/wp-content/uploads/setup1.jpg"><img class="aligncenter size-medium wp-image-179" title="setup1" src="http://invurted.com/wp-content/uploads/setup1-300x153.jpg" alt="" width="300" height="153" /></a><br />
After enabling the serial interfaces between the two routers, I enable and configure PPP encapsulation. On the second router (R2) , I enable CHAP authentication and view debugging information on the first router (R1)</p>
<p><code><br />
*Mar 1 00:25:39.971: Se1/0 PPP: Using default call direction<br />
*Mar 1 00:25:39.975: Se1/0 PPP: Treating connection as a dedicated line<br />
*Mar 1 00:25:39.975: Se1/0 PPP: Session handle[26000001] Session id[0]<br />
*Mar 1 00:25:39.975: Se1/0 PPP: Authorization required<br />
*Mar 1 00:25:40.255: Se1/0 PPP: No authorization without authentication<br />
*Mar 1 00:25:40.259: Se1/0 CHAP: I CHALLENGE id 1 len 23 from "r2"<br />
*Mar 1 00:25:40.299: Se1/0 CHAP: Unable to authenticate for peer</code><br />
R2 is waiting for authentication from R1 and is unable to get authentication information. Now I configure CHAP authentication on r1 and observe the following:<br />
<code><br />
*Mar 1 00:26:26.867: Se1/0 LCP: Received AAA AUTHOR Response PASS<br />
*Mar 1 00:26:26.867: Se1/0 IPCP: Received AAA AUTHOR Response PASS<br />
*Mar 1 00:26:26.871: Se1/0 CHAP: O SUCCESS id 12 len 4<br />
*Mar 1 00:26:27.055: Se1/0 CHAP: I SUCCESS id 15 len 4<br />
*Mar 1 00:26:27.059: Se1/0 PPP: Sent CDPCP AUTHOR Request<br />
*Mar 1 00:26:27.063: Se1/0 PPP: Sent IPCP AUTHOR Request<br />
*Mar 1 00:26:27.071: Se1/0 CDPCP: Received AAA AUTHOR Response PASS<br />
*Mar 1 00:26:28.055: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up</code><br />
The shared secret is exchanged between the two and the Serial interface is changed to an up state.</p>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/tutorial-iscsi-security/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[PRACTICE] Fixed length subnet masking #2</title>
		<link>http://invurted.com/practice-fixed-length-subnet-masking-2/</link>
		<comments>http://invurted.com/practice-fixed-length-subnet-masking-2/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 04:53:04 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[fixed length subnet mask]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[practice]]></category>

		<guid isPermaLink="false">http://invurted.com/2008/12/practice-fixed-length-subnet-masking-2/</guid>
		<description><![CDATA[Following on in the series, here is the second subnet masking example. You have been given the network range 192.168.128.0/24. Your task is to break it down into six networks. The questions you have to answer are, how many hosts on each network, and what are the network IDs and broadcast IDs for each of [...]]]></description>
			<content:encoded><![CDATA[<p>Following on in the series, here is the second subnet masking example.</p>
<p>You have been given the network range 192.168.128.0/24. Your task is to break it down into six networks. The questions you have to answer are, how many hosts on each network, and what are the network IDs and broadcast IDs for each of the networks.</p>
<p>I will post the answer on Friday 12th December, 2008 at 3:30pm EDST.</p>
<p><span id="more-170"></span></p>
<p>Sorry for the lateness of the solution. I have been as sick as a dog for the last few days, hence no update.</p>
<p><a href="http://invurted.com/practice-fixed-length-subnet-masking-1/">Last time</a> we talked breaking networks up based on host requirements. This time we&#8217;re working with the network portion of the IP address.</p>
<p>When we were working with hosts, we worked from the thirty-second bit. Or, from right to left. This time we&#8217;re working from left to right to break up an IP range.</p>
<p>Let&#8217;s look at the IP address in binary first. Because it&#8217;s a twenty-four bit subnet mask, this tells us that it&#8217;s a Class C network and that the first three octets are locked and can&#8217;t be changed. Therefore, we will be breaking up the fourth octet.<br />
<code>192.168.128.00000000<br />
255.255.255.00000000</code></p>
<p>Similarly to subnetting for hosts, subnetting for networks is achieved by modifying the subnet mask. So rather than working from the last bit leftwards, let&#8217;s start with the first bit I am allowed to modify and work to the right. In our example, the twenty-fifth bit (the first bit of the fourth octet).</p>
<p>For each bit I change, I get 2^bits networks. Unlike hosts, I don&#8217;t lose the first IP address to the network ID or the last IP address to the broadcast. Therefore, if I use one bit I get two usable networks. If we extend this to cover our example, two bits gives me four networks (still not enough!). Can I get exactly six networks? Because I&#8217;m working with binary values (powers of two), it&#8217;s not possible to get exactly six networks. If I use three bits, I get eight networks. More than the required six.</p>
<p>First thing&#8217;s first: the subnet mask. The original Class C has been subnetted. Now I am using the first three bits of the fourth octet as the network portion. It did look like this: <code>255.255.255.00000000</code>. Now, after subnetting, it looks like this: <code>255.255.255.11100000</code> or, (after converting back to decimal) <code>255.255.255.224</code>.</p>
<p>My networks look something like this (the spaces represent the division between my new network ID and new host ID):<br />
<code>192.168.128.000 00000<br />
192.168.128.001 00000<br />
192.168.128.010 00000<br />
192.168.128.011 00000<br />
192.168.128.100 00000<br />
192.168.128.101 00000<br />
192.168.128.110 00000<br />
192.168.128.111 00000</code></p>
<p>How many hosts on each network? Seeing that we are using three bits for the network, the remaining five bits are the host portion ie. (2^5)-2 hosts or 32-2 hosts. A total of 30 hosts per network. Going back to the last tutorial, the host portion can&#8217;t be all zeroes, nor can it be all ones.</p>
<p>Therefore, my network ranges look like this:<br />
<code>192.168.128.000 00000     192.168.128.000 11111<br />
192.168.128.001 00000     192.168.128.001 11111<br />
192.168.128.010 00000     192.168.128.010 11111<br />
192.168.128.011 00000     192.168.128.011 11111<br />
192.168.128.100 00000     192.168.128.100 11111<br />
192.168.128.101 00000     192.168.128.101 11111<br />
192.168.128.110 00000     192.168.128.110 11111<br />
192.168.128.111 00000     192.168.128.111 11111</code></p>
<p>Any questions or problems, please email me contactme@invurted.com or my work email address.</p>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/practice-fixed-length-subnet-masking-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PRACTICE] Fixed length subnet masking #1</title>
		<link>http://invurted.com/practice-fixed-length-subnet-masking-1/</link>
		<comments>http://invurted.com/practice-fixed-length-subnet-masking-1/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 01:37:00 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[fixed length subnet mask]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[practice]]></category>

		<guid isPermaLink="false">http://invurted.com/2008/12/practice-fixed-length-subnet-masking-1/</guid>
		<description><![CDATA[After the other week&#8217;s CCENT course, I made a promise to start emailing subnetting examples out. Rather than writing and re-writing the same thing time and time again, I figured I&#8217;d put them up here instead. So, fixed length subnet masking example #1 is this: You have been given the network range 192.168.128.0/22. Your first [...]]]></description>
			<content:encoded><![CDATA[<p>After the other week&#8217;s CCENT course, I made a promise to start emailing subnetting examples out. Rather than writing and re-writing the same thing time and time again, I figured I&#8217;d put them up here instead.</p>
<p>So, fixed length subnet masking example #1 is this:</p>
<p>You have been given the network range 192.168.128.0/22. Your first task is to break this network up into blocks of one hundred IP addresses. How many blocks of IP addresses will you get (how many networks will you have)? What are the network IDs and what are the broadcast IP addresses for each of the network ranges?</p>
<p>I will post the answer on Tuesday 9th December, 2008 at 10:30am EDST.</p>
<p><span id="more-166"></span>
<p>Okay. The question specifically asks for hosts. Therefore, we are working from the thirty second bit back to the start to get hosts. </p>
<p>The original subnet mask is a /22 (255.255.252.0). This tells me that the first twenty two bits are &#8220;locked away&#8221; leaving me the last ten bits to play with. Straight away we can discern at least one piece of information about my network: there are 2^10 total hosts in the network ie. 2^#bits that aren&#8217;t locked away, or one thousand and twenty four total hosts.</p>
<p>On to the good stuff. If we look at the IP address in it&#8217;s binary format we have to do a decimal to binary conversion on the third and fourth octets. By looking at the subnet mask this tells me it&#8217;s not a full block of eight bits in the third octet and the fourth is all zeroes.</p>
<p>Which looks something like this:<br /><code>192.168.10000000.00000000<br />255.255.11111100.00000000</code><br />Notice twenty two contiguous ones and ten contiguous zeroes.</p>
<p>As previously mentioned, I want hosts. So, I am working from the last bit leftwards. Each zero represents two hosts (1 and 0). Every time I go up a column, I am adding a power of two to the total number of hosts. If I use one column (the thirty-second bit), I have 2^1 hosts, two columns gives me 2^2 hosts etc. Can I get exactly 100 hosts for the network? The answer is no. If I use the last six bits I have sixty-four hosts (2^6), well below the required one hundred hosts! Let&#8217;s use the last seven bits. This gives me 2^7 hosts. One hundred and twenty eight is well above the one hundred required, but is the nearest value over one hundred I get given I have to count in powers of two.</p>
<p>My new subnet mask now looks something like this:<br /><code>192.168.100000 00.0 0000000<br />255.255.111111 11.1 0000000</code><br />The spaces show the modifications that I have made to the network range given the requirements of the scenario.</p>
<p>The three bits between the spaces are telling me what networks I am now defining. Three bits, straight away, tells me I have 2^3 or eight networks in total. The network part of the IP address has to be unique. The eight unique combinations of the network ID are: <code><br />192.168.100000 00.0 0000000 (192.168.128.0)<br />192.168.100000 00.1 0000000 (192.168.128.128)<br />192.168.100000 01.0 0000000 (192.168.129.0)<br />192.168.100000 01.1 0000000 (192.168.129.128)<br />192.168.100000 10.0 0000000 (192.168.130.0)<br />192.168.100000 10.1 0000000 (192.168.130.128)<br />192.168.100000 11.0 0000000 (192.168.131.0)<br />192.168.100000 11.1 0000000 (192.168.131.128)<br /></code></p>
<p>The rules of TCP/IP state that the host ID can&#8217;t be all zeroes and it can&#8217;t be all ones. The all zeroes address is the network ID and the all ones address is the broadcast IP address for that network.</p>
<p>In our example, the last six bits are the host ID. Therefore, the network IDs are up above and the broadcast IP addresses are:<code><br />192.168.100000 00.0 1111111 (192.168.128.127)<br />192.168.100000 00.1 1111111 (192.168.128.255)<br />192.168.100000 01.0 1111111 (192.168.129.127)<br />192.168.100000 01.1 1111111 (192.168.129.255)<br />192.168.100000 10.0 1111111 (192.168.130.127)<br />192.168.100000 10.1 1111111 (192.168.130.255)<br />192.168.100000 11.0 1111111 (192.168.131.127)<br />192.168.100000 11.1 1111111 (192.168.131.255)<br /></code></p>
<p>Any questions or problems, please email me <a href="&quot;mailto:contactme@invurted.com">contactme@invurted.com</a> or my work email address.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Stay tuned because I&#8217;ll post another example later this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/practice-fixed-length-subnet-masking-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[TUTORIAL] Releasing Virtual Machine Files</title>
		<link>http://invurted.com/tutorial-releasing-files/</link>
		<comments>http://invurted.com/tutorial-releasing-files/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 03:42:55 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[files]]></category>
		<category><![CDATA[machine]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[virtual]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=149</guid>
		<description><![CDATA[Sometimes a file or set of files in a VMFS become locked and any attempts to edit them or delete will give a device or resource busy error, even though the virtual machine associated with the files is not running. If the virtual machine is running then you would need to stop the virtual machine [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes a file or set of files in a VMFS become locked and any attempts to edit them or delete will give a device or resource busy error, even though the virtual machine associated with the files is not running.  If the virtual machine is running then you would need to stop the virtual machine to manipulate the files.  If you know that the virtual machine is stopped then you need to find the ESX server that has the files locked and then stop the process that is locking the file(s). <span id="more-149"></span></p>
<ol>
<li> Logon to the ESX host where the virtual machine was last known to be running.</li>
<li>vmkfstools -D /vmfs/volumes/path/to/file to dump information on the file into /var/log/vmkernel</li>
<li>less /var/log/vmkernel and scroll to the bottom, you will see output like below:<br />
<code><br />
Nov 29 15:49:17 vm22 vmkernel: 2:00:15:18.435 cpu6:1038)FS3: 130: &lt; START vmware-16.log &gt;<br />
Nov 29 15:49:17 vm22 vmkernel: 2:00:15:18.435 cpu6:1038)Lock [type 10c00001 offset 30439424 v 21, hb offset 4154368Nov 29 15:49:17 vm22 vmkernel: gen 66493, mode 1, owner 46c60a7c-94813bcf-4273-0017a44c7727 mtime 8781867]<br />
Nov 29 15:49:17 vm22 vmkernel: 2:00:15:18.435 cpu6:1038)Addr &lt;4, 588, 7&gt;, gen 20, links 1, type reg, flags 0x0, uid 0, gid 0, mode 644<br />
Nov 29 15:49:17 vm22 vmkernel: 2:00:15:18.435 cpu6:1038)len 23973, nb 1 tbz 0, zla 2, bs 65536<br />
Nov 29 15:49:17 vm22 vmkernel: 2:00:15:18.435 cpu6:1038)FS3: 132: &lt; END vmware-16.log &gt;<br />
</code></li>
<li>The owner of the lock is on the third line, the last part is all you need, in this case 0017a44c7727</li>
<li>esxcfg-info | grep -i &#8216;system uuid&#8217; | awk -F &#8216;-&#8217; &#8216;{print $NF}&#8217; will display the system uuid of the esx server.  You need to run the esxcfg-info command on each esx server in the cluster to discover the owner.</li>
<li>When you find the ESX server that matches the uuid owner, logon to that ESX server and run the command: ps -elf|grep vmname where vmname is the problem virtual machine.  Example output below:<br />
<code>4 S root      7570     1  0  65 -10    -   435 schedu Nov27 ?        00:00:02 /usr/lib/vmware/bin/vmkload_app /usr/lib/vmware/bin/vmware-vmx -ssched.group=host/user/pool2 -@ pipe=/tmp/vmhsdaemon-0/vmxf7fb85ef5d8b3522;vm=f7fb85ef5d8b3522 /vmfs/volumes/470e25b6-37016b37-a2b3-001b78bedd4c/iu-lsps-vstest/iu-lsps-vstest.vmx0</code></li>
<li> Since there is a process running, pid 7570 in the example, you need to kill it by following steps 5-12 on Stopping a Virtual Machine.</li>
<li>Once the kill is complete the files should be released.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/tutorial-releasing-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[TUTORIAL] Stopping a Virtual Machine</title>
		<link>http://invurted.com/tutorial-stopping-a-vm/</link>
		<comments>http://invurted.com/tutorial-stopping-a-vm/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 03:23:11 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[machine]]></category>
		<category><![CDATA[virtual]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=145</guid>
		<description><![CDATA[VMware has added a new command in VI3 to help when a user has a VM that has become unresponsive. Below are the progressives steps to go through to get the VM cleanly powered off. Whatever you do, DO NOT kill the pid for the VM from the Service Console, unless you have tried absolutely [...]]]></description>
			<content:encoded><![CDATA[<p>VMware has added a new command in VI3 to help when a user has a VM that has become unresponsive.  Below are the progressives steps to go through to get the VM cleanly powered off.  Whatever you do, DO NOT kill the pid for the VM from the Service Console, unless you have tried absolutely everything.  Killing the pid from the Service Console may prevent the VM from restarting.<br />
<span id="more-145"></span><br />
The following steps assume that the usual graceful shutdowns do not work from within the VM operating system or the Virtual Infrastructure Client.  Commands are bold underscore type, with descriptions of path names and some example output is included.</p>
<ol>
<li>Logon to the ESX host where the VM is running and become root.</li>
<li>vmware-cmd -l to list all the registered VMs.</li>
<li>vmware-cmd /path/copied/from/vmware-cmd getstate to get state of vm.<br />
If the state requires an answer: vmware-cmd /path/copied/from/vmware-cmd answer<br />
If no answer is needed: vmware-cmd /path/copied/from/vmware-cmd stop trysoft<br />
If  “trysoft” does not work: vmware-cmd /path/copied/from/vmware-cmd stop hard</li>
<li>If the vmware-cmd does not help next up is to kill the master user world id</li>
<li>cat /proc/vmware/vm/*/names |grep vmname where vmname is the vm that is hung and find the value for vmid</li>
<li>less /proc/vmware/vm/vmid value/cpu/status where vmid value is the number from above</li>
<li>Scroll over to the right until you find the group field that shows vm.#### where the #### numbers after vm. will be the master user world id</li>
<li>/usr/lib/vmware/bin/vmkload_app -k 9 #### where #### is the master user world id. If successful you will get a WARNING message that a signal 9 is being sent</li>
<li>If vmkload_app does not help next up is to crash the vm with the vm-support -X command</li>
<li>vm-support -x to get the vmid</li>
<li>From a directory that has ample space vm-support -X #### where #### is the vmid</li>
<li>Answer all the questions with the default answers.  The entire process takes about 10 minutes and creates an archive log that can be submitted to support.  It will also crash the vm.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/tutorial-stopping-a-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[TUTORIAL] Show hidden devices after P2V</title>
		<link>http://invurted.com/show-hidden-devices-after-p2v/</link>
		<comments>http://invurted.com/show-hidden-devices-after-p2v/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 22:41:04 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[hidden devices]]></category>
		<category><![CDATA[p2v]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=111</guid>
		<description><![CDATA[After performing a P2V always remove the hidden physical hardware from the OS. This is particularly important for network cards that have the original IP address(es) that you want to assisgn to the new VM. 1. Click Start &#124; Run &#124; cmd 2. At a command prompt, type the following command , and then press [...]]]></description>
			<content:encoded><![CDATA[<p>After performing a P2V always remove the hidden physical hardware from the OS. This is particularly important for network cards that have the original IP address(es) that you want to assisgn to the new VM.<span id="more-111"></span></p>
<p>1. Click Start | Run | cmd</p>
<p>2. At a command prompt, type the following command , and then press ENTER:</p>
<p><span style="font-family: courier new;">set devmgr_show_nonpresent_devices=1</span></p>
<p>3. Type the following command in the same command prompt window, and then press ENTER:</p>
<p><span style="font-family: courier new;">start devmgmt.msc</span></p>
<p>4. Click Show hidden devices on the View menu in Device Managers before you can see devices that are not connected to the computer.</p>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/show-hidden-devices-after-p2v/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[TUTORIAL] Migrating Virtual Machines without Vmotion</title>
		<link>http://invurted.com/migrating-virtual-machines-without-vmotion/</link>
		<comments>http://invurted.com/migrating-virtual-machines-without-vmotion/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 06:50:03 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[vmotion]]></category>

		<guid isPermaLink="false">http://invurted.com/?p=103</guid>
		<description><![CDATA[Guys are hard at work with the labs at the moment here in sunny Hobart, and so I begin trawling the blogs (as is my want). I discovered this brilliant little gem from Mike DiPetrill&#8217;s blog. This post demonstates the awesome power of the Vmware API and the ease of use we get from the [...]]]></description>
			<content:encoded><![CDATA[<p>Guys are hard at work with the labs at the moment here in sunny Hobart, and so I begin trawling the blogs (as is my want). I discovered this brilliant little gem from Mike DiPetrill&#8217;s blog.</p>
<p><span id="more-103"></span></p>
<p>This post demonstates the awesome power of the Vmware API and the ease of use we get from the VI Toolkit for Windows! The script will <a href="http://mikedatl.typepad.com/mikedvirtualization/2008/10/quick-migration.html">move a VM from one ESX host to another</a>, without making use of VMware VMotion. The drawback is that the VM becomes unresponsive for a period of time (usually a few seconds). This is roughly functionally equivalent to Microsoft&#8217;s Quick Migration feature, except that this was done in 130 lines of script.</p>
]]></content:encoded>
			<wfw:commentRss>http://invurted.com/migrating-virtual-machines-without-vmotion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
