<?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>Running Systems&#187; troubleshooting</title>
	<atom:link href="http://run.tournament.org.il/tag/troubleshooting/feed/" rel="self" type="application/rss+xml" />
	<link>http://run.tournament.org.il</link>
	<description>(and me chasing them)</description>
	<lastBuildDate>Wed, 02 Jun 2010 13:50:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>XenServer &#8220;Internal error: Failure&#8230; no loader found&#8221;</title>
		<link>http://run.tournament.org.il/xenserver-internal-error-failure-no-loader-found/</link>
		<comments>http://run.tournament.org.il/xenserver-internal-error-failure-no-loader-found/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 11:42:13 +0000</pubDate>
		<dc:creator>ez-aton</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[Xen]]></category>
		<category><![CDATA[XenServer]]></category>

		<guid isPermaLink="false">http://run.tournament.org.il/?p=489</guid>
		<description><![CDATA[It has been long since I had the time to write here. I have recently been involved more and more with XenServer virtualization, as you might see in the blogs, and following a solution to a rather common problem, I have decided to post it here.
The problem: When attempting to boot a Linux VM on [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>It has been long since I had the time to write here. I have recently been involved more and more with XenServer virtualization, as you might see in the blogs, and following a solution to a rather common problem, I have decided to post it here.</p>
<p>The problem: When attempting to boot a Linux VM on XenServer (5.0 and 5.5), you get the following error message:</p>
<blockquote><p>Error: Starting VM &#8216;Cacti&#8217; &#8211; Internal error: Failure(&#8220;Error from xenguesthelper: caught exception: Failure(\\\&#8221;Subprocess failure: Failure(\\\\\\\&#8221;xc_dom_linux_build: [2] xc_dom_find_loader: no loader found\\\\\\\\n\\\\\\\&#8221;)\\\&#8221;)&#8221;)</p></blockquote>
<p>This is very common with Linux VMs which were converted from physical (or other, non-PV virtualization) to XenServer.</p>
<p>This will probably either happen during the P2V process, or after a successful update to the Linux VM.</p>
<p>The cause is that the original kernel, non PV-aware one, has not been removed, and GRUB likes to load from it. XenServer will use the GRUB menu, but will not display it to us to select our desired kernel.</p>
<p>With no chance to intervene, XenServer will attempt to load a PV-enabled machine using non-PV kernel, and will fail.</p>
<p>Preventing the problem is quite simple &#8211; remove your non-PV kernel (non-xen) so that future updates will not attempt to update it as well and set it to be the default kernel. Very simple.</p>
<p>Solving the problem in less than two minutes is a bit more tricky. Let&#8217;s see how to solve it.</p>
<p>All operations are performed from within the control domain. This guide does not apply to StorageLink or NetApp/Equalogic devices, as they behave differently. This applies only to LVM-over-something, whatever it may be.</p>
<p>First, we will need to find the name of the VDI we are to work on. Use xe in the following manner, using the VM&#8217;s name:</p>
<blockquote><p>xe vbd-list vm-name-label=Cacti</p>
<p>uuid ( RO)             : 128f29dc-4a14-1a2d-75d1-8674d3d2403b<br />
vm-uuid ( RO): eae053de-4a20-28a5-f335-f5a18dd79993<br />
vm-name-label ( RO): Cacti<br />
vdi-uuid ( RO): <strong>90524af4-5b20-4412-9bfe-f1fe27f220b1</strong><br />
empty ( RO): false<br />
device ( RO): xvda</p>
<p>uuid ( RO)             : de177727-b28a-8b79-e73e-d08366d56277<br />
vm-uuid ( RO): eae053de-4a20-28a5-f335-f5a18dd79993<br />
vm-name-label ( RO): Cacti<br />
vdi-uuid ( RO): &lt;not in database&gt;<br />
empty ( RO): true<br />
device ( RO): xvdd</p></blockquote>
<p>It is very common that xvdd is used for CDROM, so we can safely ignore the second section. The first section is the more interesting one. There is a correlation between the name of the VDI and the name of the LVM on the disk. We can find this specific LV using the following command. Notice that the name of the VDI is used here as the argument for the &#8216;grep&#8217; command:</p>
<blockquote><p>lvs | grep <strong>90524af4-5b20-4412-9bfe-f1fe27f220b1 </strong></p>
<p>LV-90524af4-5b20-4412-9bfe-f1fe27f220b1 VG_XenStorage-4aa20fc2-fd92-20c2-c549-bed2597c622b -wi-a-  10.00G</p></blockquote>
<p>We now have our LV path! As you can see, its status is offline. We need to set it to online state. Using both the LV and the VG name, we can do it like that:</p>
<blockquote><p>lvchange -ay /dev/VG_XenStorage-4aa20fc2-fd92-20c2-c549-bed2597c622b/LV-90524af4-5b20-4412-9bfe-f1fe27f220b1</p></blockquote>
<p>Now we can access the volume. We can actually check that the problem is the one we look for, using pygrub:</p>
<blockquote><p>pygrub /dev/VG_XenStorage-4aa20fc2-fd92-20c2-c549-bed2597c622b/LV-90524af4-5b20-4412-9bfe-f1fe27f220b1</p></blockquote>
<p>We should now see the GRUB menu of the VM at question. If you don&#8217;t see any menu, either you have missed a step or used the wrong disk.</p>
<p>The menu should show you all the list of kernels. The default one is the one highlighted, and if it doesn&#8217;t include the word &#8220;xen&#8221; with it, most likely that we have found the problem.</p>
<p>We now need to change to a PV-capable kernel. We will need to access the &#8220;/boot&#8221; partition of the Linux VM, and change GRUB&#8217;s options there.</p>
<p>First we map the disk to a loop device, so we can access its partitions:</p>
<blockquote><p>losetup /dev/loop1 /dev/VG_XenStorage-4aa20fc2-fd92-20c2-c549-bed2597c622b/LV-90524af4-5b20-4412-9bfe-f1fe27f220b1</p></blockquote>
<p>Notice that you need to use the entire path to the LV, that the LV is online, and that loop1 is not in use. If it is, you will have a message saying something like &#8220;LOOP_SET_FD: Device or resource busy&#8221;</p>
<p>Now we need to access its partitions. We will map them using &#8216;kpartx&#8217; to /dev/mapper/ devices. Notice we&#8217;re using the same loop device name:</p>
<blockquote><p>kaprtx -a /dev/loop1</p></blockquote>
<p>Now, new files present themselves in /dev/mapper:</p>
<blockquote><p>ls -la /dev/mapper/<br />
total 0<br />
drwxr-xr-x  2 root root     220 Oct 24 12:39 .<br />
drwxr-xr-x 14 root root   16560 Oct 24 12:31 ..<br />
crw&#8212;&#8212;-  1 root root  10, 62 Sep 29 10:15 control<br />
brw-rw&#8212;-  1 root disk 252,  5 Oct 24 12:39 <strong>loop1p1</strong><br />
brw-rw&#8212;-  1 root disk 252,  6 Oct 24 12:39 <strong>loop1p2</strong><br />
brw-rw&#8212;-  1 root disk 252,  7 Oct 24 12:39 <strong>loop1p3</strong></p></blockquote>
<p>Usually, the first partition represents /boot, so we can now mount it and work on it:</p>
<blockquote><p>mount /dev/mapper/loop1p1 /mnt</p></blockquote>
<p>All we need to do is edit /mnt/grub/menu.lst to match our requirements, and then wrap everything back up:</p>
<blockquote><p>umount /mnt</p>
<p>kpartx -u /dev/loop1</p>
<p>losetup -d /dev/loop1</p></blockquote>
<p>We don&#8217;t have to change the LV to offline, because the XenServer will activate it if it&#8217;s not, however, we could do it, to be on the safe side:</p>
<blockquote><p>lvchange -an /dev/VG_XenStorage-4aa20fc2-fd92-20c2-c549-bed2597c622b/LV-90524af4-5b20-4412-9bfe-f1fe27f220b1</p></blockquote>
<p>Now we can activate the VM, and see it boot successfully.</p>
<p>This whole process takes several minutes the first time, and even less later.</p>
<p>I hope this helps.</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://run.tournament.org.il/xenserver-internal-error-failure-no-loader-found/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Correct rack wiring tips &amp; tricks with pictures</title>
		<link>http://run.tournament.org.il/correct-rack-wiring-tips-tricks-with-pictures/</link>
		<comments>http://run.tournament.org.il/correct-rack-wiring-tips-tricks-with-pictures/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 02:45:19 +0000</pubDate>
		<dc:creator>ez-aton</dc:creator>
				<category><![CDATA[General Hardware]]></category>
		<category><![CDATA[cables]]></category>
		<category><![CDATA[rack closet]]></category>
		<category><![CDATA[server farm]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[wiring]]></category>

		<guid isPermaLink="false">http://www.tournament.org.il/run-new/?p=130</guid>
		<description><![CDATA[This post will offer several tips and tricks for wiring cables into new rack closets. It uses pictures as a demonstration of what to do and what not to do. It is based on a job I have taken part in with several other companies, moving the server farm to a new location. This job [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>This post will offer several tips and tricks for wiring cables into new rack closets. It uses pictures as a demonstration of what to do and what not to do. It is based on a job I have taken part in with several other companies, moving the server farm to a new location. This job included rewiring new rack closets, and these pictures are based on work I and another team have done.</p>
<p>Since this post includes many pictures, I have decided to split it into this description, and the real contents.</p>
<p><!-- s9ymdb:70 --><img style="border: 0px none;float: left;padding-left: 5px;padding-right: 5px" src="/files/Pictures/donts1.serendipityThumb.jpg" alt="" width="73" height="110" /><img style="border: 0px none;float: left;padding-left: 5px;padding-right: 5px" src="/files/Pictures/donts3.serendipityThumb.jpg" alt="" width="73" height="110" /></p>
<p><!-- s9ymdb:72 --><!-- s9ymdb:67 --><img style="border: 0px none;float: left;padding-left: 5px;padding-right: 5px" src="/files/Pictures/dos1.serendipityThumb.jpg" alt="" width="73" height="110" /><!-- s9ymdb:69 --><img style="border: 0px none;float: left;padding-left: 5px;padding-right: 5px" src="/files/Pictures/dos3.serendipityThumb.jpg" alt="" width="73" height="110" /></p>
<p><!-- s9ymdb:74 --><img style="border: 0px none;padding-left: 5px;padding-right: 5px" src="/files/Pictures/cable-management-arm.serendipityThumb.jpg" alt="" width="110" height="73" /></p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://run.tournament.org.il/correct-rack-wiring-tips-tricks-with-pictures/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
