<?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>Curious &#187; General</title>
	<atom:link href="http://blogs.plexibus.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.plexibus.com</link>
	<description>It&#039;s easy if you know how</description>
	<lastBuildDate>Tue, 22 Jun 2010 14:45:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Eucalyptus: Creating and Registering our first Image</title>
		<link>http://blogs.plexibus.com/2010/06/22/eucalyptus-creating-and-registering-our-first-image/</link>
		<comments>http://blogs.plexibus.com/2010/06/22/eucalyptus-creating-and-registering-our-first-image/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 14:24:24 +0000</pubDate>
		<dc:creator>roshanallan</dc:creator>
				<category><![CDATA[Appistry]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloudiq]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[EKI]]></category>
		<category><![CDATA[EMI]]></category>
		<category><![CDATA[ERI]]></category>
		<category><![CDATA[euca]]></category>
		<category><![CDATA[eucalyptus]]></category>
		<category><![CDATA[eucalyptus configuration]]></category>
		<category><![CDATA[eucalyptus kernel image]]></category>
		<category><![CDATA[eucalyptus machine image]]></category>
		<category><![CDATA[eucalyptus ramdisk image]]></category>
		<category><![CDATA[plexibus]]></category>
		<category><![CDATA[private]]></category>
		<category><![CDATA[roshan]]></category>
		<category><![CDATA[sequeira]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blogs.plexibus.com/2010/06/22/eucalyptus-creating-and-registering-our-first-image/</guid>
		<description><![CDATA[In our previous posts on &#8220;Building an on-premise private cloud&#8221;, we took our first steps by Installing Eucalyptus, a IaaS offering and then dove into Configuring Eucalyptus to look like an Amazon EC2 cloud.
In this post, we will take the next step and that is uploading (to Walrus) and registering a machine image (EMI) with [...]]]></description>
			<content:encoded><![CDATA[<p>In our previous posts on &#8220;Building an on-premise private cloud&#8221;, we took our first steps by <a href="http://blogs.plexibus.com/2010/05/19/eucalyptus-setting-up-a-private-infrastructure-cloud/" target="_blank">Installing Eucalyptus</a>, a IaaS offering and then dove into <a href="http://blogs.plexibus.com/2010/05/26/eucalyptus-configuring-your-private-cloud-to-resemble-amazon-ec2/" target="_blank">Configuring Eucalyptus</a> to look like an Amazon EC2 cloud.</p>
<p>In this post, we will take the next step and that is uploading (to Walrus) and registering a machine image (EMI) with Eucalyptus. Once we have registered the image, we can then run instances of this image using either Amazon EC2 API or Euca2ools.</p>
<p>
<br/><br />
<strong><a name="emi">Eucalyptus Machine Image</a></strong>
</p>
<p>
A machine image, or more specifically, a Eucalyptus Machine Image (EMI) is a template, stored in Walrus, that can be used to create and run instances. A EMI is a combination of:</p>
<ul>
<li>a kernel image,</li>
<li>a ramdisk image, and</li>
<li>one or more virtual hard disk image</li>
</ul>
<p>The kernel image is more specifically referred to as Eucalyptus Kernel Image (EKI) and the ramdisk image is referred to as Eucalyptus Ramdisk Image (ERI).</p>
<p>Each of the images &#8211; EKI, ERI, and EMI &#8211; have associated xml files containing meta-data about the corresponding images respectively. </p>
<p>The EKIs, ERIs, and EMIs are stored in Walrus and can be referenced by a identifier, <i>Image ID</i>.</p>
<p>Now that we have some background information on EMI&#8217;s, let&#8217;s get started.
</p>
<p><br/></p>
<p>
<br/><br />
<strong><a name="download">Download Eucalyptus Certified Image</a></strong>
</p>
<p>
Start by opening a browser and connecting to <a href="https://%3Cfront-end-ip-address%3E:8443" target="_blank">https://&lt;front-end-ip-address&gt;:8443</a>. In my case, the front-end is 192.168.0.114 (see <a href="http://blogs.plexibus.com/2010/05/19/eucalyptus-setting-up-a-private-infrastructure-cloud/" target="_blank">this</a> post). </p>
<p>Log in with your <font face="Courier New">admin</font> user and password.</p>
<p>Next, click on the <i>Extras</i> tab. And download one of the &#8220;Eucalyptus-certified Images&#8221;. I picked the CentOS 5.3 i386 image (<font face="Courier New">euca-centos-5.3-i386.tar.gz</font>). I downloaded it on my front-end machine for now. </p>
<p>For the rest of this document, I&#8217;ll be referring to the <i>CentOS 5.3 i386</i> image. Feel free to replace this with the image you downloaded as you proceed through this post.</p>
<p>Once you un-tar the file, you should see a directory structure similar to the following:</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
-rw-r&#8211;r&#8211; 1 root root 1001M Apr 23  2009 centos.5-3.x86.img<br />
drwxr-xr-x 2 root root  4.0K Oct 18  2009 kvm-kernel<br />
drwxr-xr-x 2 root root  4.0K Oct 19  2009 xen-kernel<br />
drwxr-xr-x 3 root root  4.0K May  5 14:16 ..<br />
drwxr-xr-x 6 root root  4.0K May  5 14:18 .
</div>
<p>where in my case,<br />
<i>centos.5-3.x86.img</i> &#8211; is the root disk image<br />
<i>kvm-kernel</i> &#8211; directory containing kvm-based kernel and ramdisk (<font face="Courier New">vmlinuz-2.6.28-11-server</font> and <font face="Courier New">initrd.img-2.6.28-11-server</font>)<br />
<i>xen-kernel</i> &#8211; directory containing xen-based kernel and ramdisk (<font face="Courier New">vmlinuz-2.6.24-19-xen</font> and <font face="Courier New">initrd.img-2.6.24-19-xen</font>)</p>
<p>Now we can bundle the kernel, ramdisk, and hard disk image, upload it to walrus and register each of them respectively. But before we do this, I&#8217;m going to take a small detour.
</p>
<p><br/></p>
<p>
<br/><br />
<strong><a name="resize">Detour: Resizing the disk image</a></strong>
</p>
<p>
Notice in the directory listing of <font face="Courier New">euca-centos-5.3-i386</font>, the size of the <font face="Courier New">centos.5-3.x86.img</font> is only 1 GB. If you bundle, upload and register an EMI out of this image, your instance will have only a 1 GB root partition. Which is fairly small if you plan on installing software on a running instance. For instance, if you try to install Sun Java on it, the installation will fail due to lack of space.</p>
<p>Hence this is a good time to increase the size from 1GB to say, 4GB. </p>
<p>Note: <i>Feel free to skip this step and proceed with the <a href="#bur">bundling, uploading, and registering</a> of the images.</i></p>
<p>To re-size the image, let&#8217;s start by creating a clean image file, <font face="Courier New">new_centos.5-3.x86.img</font> of size 4GB. We can do this using the <font face="Courier New">dd</font> command.</p>
<pre class="java-codeface">
dd if=/dev/zero of=new_centos.5-3.x86.img bs=1M count-4096
</pre>
<p>where,<br />
<i>if</i> &#8211; source. In this case, we are reading a stream of zeroes from (<font face="Courier New">/dev/zero</font>) device.<br />
<i>of</i> &#8211; target. Our new image file (<font face="Courier New">new_centos.5-3.x86.img</font>). The stream of zeroes are copied to this file.<br />
<i>bs</i> &#8211; read and write in blocks of 1M<br />
<i>count</i> &#8211; copy 4GB of blocks</p>
<p>The above command may take a few minutes to complete. You see output similar to this when done:</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
4096+0 records in<br />
4096+0 records out<br />
4294967296 bytes (4.3 GB) copied, 191.632 seconds, 22.4 MB/s
</div>
<p>Next, associate loop devices with each of the original (<font face="Courier New">centos.5-3.x86.img</font>) and new (<font face="Courier New">new_centos.5-3.x86.img</font>) image files. Make sure that the loop devices that you are going to use are free. You can check the next available loop device using the <font face="Courier New">losetup -f</font> command. In my case, I have <font face="Courier New">/dev/loop1</font> and <font face="Courier New">/dev/loop2</font> available.</p>
<pre class="java-codeface">
losetup /dev/loop1 centos.5-3.x86.img
losetup /dev/loop2 new_centos.5-3.x86.img
</pre>
<p>Confirm the status of the loop devices</p>
<pre class="java-codeface">
losetup /dev/loop1
losetup /dev/loop2
</pre>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
/dev/loop1: [0803]:8585221 (centos.5-3.x86.img)<br />
/dev/loop2: [0803]:8585223 (new_centos.5-3.x86.img)
</div>
<p>Next, create a ext3 file system on the new image (in our case, associated with loop device <font face="Courier New">/dev/loop2</font>) as follows:</p>
<pre class="java-codeface">
mke2fs -j /dev/loop2
</pre>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
mke2fs 1.39 (29-May-2006)<br />
Filesystem label=<br />
OS type: Linux<br />
Block size=4096 (log=2)<br />
Fragment size=4096 (log=2)<br />
524288 inodes, 1048576 blocks<br />
52428 blocks (5.00%) reserved for the super user<br />
First data block=0<br />
Maximum filesystem blocks=1073741824<br />
32 block groups<br />
32768 blocks per group, 32768 fragments per group<br />
16384 inodes per group<br />
Superblock backups stored on blocks:<br />
	32768, 98304, 163840, 229376, 294912, 819200, 884736</p>
<p>Writing inode tables: done<br />
Creating journal (32768 blocks): done<br />
Writing superblocks and filesystem accounting information: done</p>
<p>This filesystem will be automatically checked every 21 mounts or<br />
180 days, whichever comes first.  Use tune2fs -c or -i to override.
</p></div>
<p>Let&#8217;s create a couple of directories that will serve as temporary mount points for our image files. And then mount the images onto those temporary directories</p>
<pre class="java-codeface">
mkdir orig
mkdir new

mount /dev/loop1 orig
mount /dev/loop2 new
</pre>
<p>Check the list of mounts by running the mount command without any arguments. You should see the above mount points in the listing. Something similar to the following:</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
/dev/loop1 on /root/.euca/vmImages/euca-centos-5.3-i386/orig type ext3 (rw)<br />
/dev/loop2 on /root/.euca/vmImages/euca-centos-5.3-i386/new type ext3 (rw)
</div>
<p>Also, you can list the contents of the <font face="Courier New">orig</font> (original image) directory. You should see an entire linux file system.</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
total 96K<br />
drwxr-xr-x  2 root root 4.0K Mar  9  2009 sys<br />
drwxr-xr-x  2 root root 4.0K Mar  9  2009 srv<br />
drwxr-xr-x  2 root root 4.0K Mar  9  2009 selinux<br />
drwxr-xr-x  2 root root 4.0K Mar  9  2009 opt<br />
drwxr-xr-x  2 root root 4.0K Mar  9  2009 mnt<br />
drwxr-xr-x  2 root root 4.0K Mar  9  2009 media<br />
drwxr-xr-x  2 root root 4.0K Mar  9  2009 home<br />
drwx&#8212;&#8212;  2 root root  16K Apr 23  2009 lost+found<br />
drwxr-xr-x  2 root root 4.0K Apr 23  2009 proc<br />
drwxr-xr-x 17 root root 4.0K Apr 23  2009 var<br />
drwxr-xr-x 13 root root 4.0K Apr 23  2009 usr<br />
drwxr-xr-x  2 root root 4.0K Apr 23  2009 bin<br />
drwxr-xr-x  2 root root 4.0K Apr 23  2009 sbin<br />
drwxr-xr-x  8 root root 4.0K Apr 23  2009 lib<br />
drwxr-xr-x  3 root root 4.0K Apr 23  2009 boot<br />
drwxr-xr-x  2 root root 4.0K Apr 23  2009 dev<br />
-rw-r&#8211;r&#8211;  1 root root    0 Apr 23  2009 halt<br />
drwxr-xr-x 21 root root 4.0K Apr 23  2009 .<br />
drwxr-x&#8212;  2 root root 4.0K Apr 23  2009 root<br />
drwxrwxrwt  3 root root 4.0K Apr 23  2009 tmp<br />
drwxr-xr-x 38 root root 4.0K Oct 18  2009 etc<br />
drwxr-xr-x  6 root root 4.0K Jun  9 09:34 ..
</div>
<p>We can now copy the contents of the original (<font face="Courier New">centos.5-3.x86.img</font>) image to the new image <font face="Courier New">new_centos.5-3.x86.img</font>) as follows:</p>
<pre class="java-codeface">
(cd old; tar zcf - .) | (cd new; tar zxf -)
</pre>
<p>The above command will take a few minutes to complete. Once it is done you can list the contents of the <font face="Courier New">new</font> (new image) directory to confirm the copy worked ok.</p>
<p>Great we now have a new, bigger image <font face="Courier New">new_centos.5-3.x86.img</font> that we can now bundle, upload and register with Eucalyptus.</p>
<p>Before you proceed, make sure you clean up by un-mounting the images and detaching them from the loop devices</p>
<pre class="java-codeface">
umount /dev/loop1
umount /dev/loop2

losetup -d /dev/loop1
losetup -d /dev/loop2
</pre>
</p>
<p><br/></p>
<p>
<br/><br />
<strong><a name="bur">Bundle, Upload, Register</a></strong>
</p>
<p>
Now would be a good time to <a href="http://blogs.plexibus.com/2010/06/17/eucalyptus-euca2ools/" target="_blank">install Euca2ools</a> if you haven&#8217;t done so already.</p>
<p>There are 3 steps to making an EMI available:</p>
<ol>
<li>Bundling</li>
<li>Uploading</li>
<li>Registering</li>
</ol>
<p>And since an EMI is made up for a kernel image, a ramdisk image and a hard disk image, we need to perform the above 3 steps on each of the kernel, ramdisk and hard disk image.</p>
<p><strong>Eucalyptus Kernel Image</strong></p>
<p>First, we bundle the kernel image using Euca2ools <font face="Courier New">euca-bundle-image</font> command as follows:</p>
<pre class="java-codeface">
euca-bundle-image -i xen-kernel/vmlinuz-2.6.24-19-xen --kernel true --arch i386
</pre>
<p>where,<br />
<i>xen-kernel/vmlinuz-2.6.24-19-xen</i> &#8211; is the path to the kernel image<br />
<i>i386</i> &#8211; is the architecture. In our case, 32-bit architecture<br />
The other argument <font face="Courier New">&#8211;kernel true</font> tells the <font face="Courier New">euca-bundle-image</font> that this is a kernel image.</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
i386<br />
Checking image<br />
Tarring image<br />
Encrypting image<br />
Splitting image&#8230;<br />
Part: vmlinuz-2.6.24-19-xen.part.0<br />
Generating manifest /tmp/vmlinuz-2.6.24-19-xen.manifest.xml
</div>
<p>The above command packages the kernel image and generates a manifest.xml file under <font face="Courier New">/tmp</font> directory. </p>
<p>We will pass the full path to the manifest file as an argument to <font face="Courier New">euca-upload-image</font> to upload the image to Walrus: </p>
<pre class="java-codeface">
euca-upload-bundle -b kernel-bucket -m /tmp/vmlinuz-2.6.24-19-xen.manifest.xml
</pre>
<p>where,<br />
<i>kernel-bucket</i> &#8211; is the name of the bucket that the image (kernel image) will be stored under.<br />
<i>/tmp/vmlinuz-2.6.24-19-xen.manifest.xml</i> &#8211; is the manifest.xml that was generated by the <font face="Courier New">euca-bundle-image</font> command</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
Checking bucket: kernel-bucket<br />
Uploading manifest file<br />
Uploading part: vmlinuz-2.6.24-19-xen.part.0<br />
Uploaded image as kernel-bucket/vmlinuz-2.6.24-19-xen.manifest.xml
</div>
<p>As you can see from the output, the kernel image was uploaded to <font face="Courier New">kernel-bucket</font> in Walrus. Note that you could replace <font face="Courier New">kernel-bucket</font> with a name of your choice.</p>
<p>Once we have uploaded the image, we need to register it so that it is available for use. We can do this using the <font face="Courier New">euca-register</font> command:</p>
<pre class="java-codeface">
euca-register kernel-bucket/vmlinuz-2.6.24-19-xen.manifest.xml
</pre>
<p>where,<br />
<i>kernel-bucket/vmlinuz-2.6.24-19-xen.manifest.xml</i> &#8211; is the path to the kernel image in walrus</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
IMAGE	eki-90461381
</div>
<p>The output of the <font face="Courier New">euca-register</font> command is an image id. We can use this image id when we bundle up the hard disk image or when we create an instance from a Eucalyptus machine image. The prefix of &#8220;<i>eki</i>&#8221; implies that the image is a kernel image, more specifically a Eucalyptus Kernel Image (EKI).</p>
<p>Verify that the EKI image is available by running euca2ools <font face="Courier New">euca-describe-images</font> command:</p>
<pre class="java-codeface">
euca-describe-images
</pre>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
IMAGE	eki-90461381	kernel-bucket/vmlinuz-2.6.24-19-xen.manifest.xml	admin	available	public		i386	kernel
</div>
<p><strong>Eucalyptus Ramdisk Image</strong></p>
<p>Bundle the ramdisk image as follows:</p>
<pre class="java-codeface">
euca-bundle-image -i xen-kernel/initrd.img-2.6.24-19-xen --ramdisk true --arch i386
</pre>
<p>where,<br />
<i>xen-kernel/initrd.img-2.6.24-19-xen</i> &#8211; is the path to the ramdisk image<br />
<i>i386</i> &#8211; is the architecture. In our case, 32-bit architecture<br />
The other argument <font face="Courier New">&#8211;ramdisk true</font> specifies that this is a ramdisk image.</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
i386<br />
Checking image<br />
Tarring image<br />
Encrypting image<br />
Splitting image&#8230;<br />
Part: initrd.img-2.6.24-19-xen.part.0<br />
Generating manifest /tmp/initrd.img-2.6.24-19-xen.manifest.xml
</div>
<p>The above command packages the ramdisk image and generates a manifest.xml file in the <font face="Courier New">/tmp</font> directory. </p>
<p>Next, we pass the path to the manifest.xml file as an argument to the <font face="Courier New">euca-upload-bundle</font> command to upload the image to Walrus.</p>
<pre class="java-codeface">
euca-upload-bundle -b ramdisk-bucket -m /tmp/initrd.img-2.6.24-19-xen.manifest.xml
</pre>
<p>where,<br />
<i>ramdisk-bucket</i> &#8211; is the name of the bucket that the ramdisk image will be stored under.<br />
<i>/tmp/initrd.img-2.6.24-19-xen.manifest.xml</i> &#8211; is the manifest.xml that was generated in the previous step</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
Checking bucket: ramdisk-bucket<br />
Uploading manifest file<br />
Uploading part: initrd.img-2.6.24-19-xen.part.0<br />
Uploaded image as ramdisk-bucket/initrd.img-2.6.24-19-xen.manifest.xml
</div>
<p>Next we register the image as follows:</p>
<pre class="java-codeface">
euca-register ramdisk-bucket/initrd.img-2.6.24-19-xen.manifest.xml
</pre>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
IMAGE	eri-E85914C7
</div>
<p>The output of the above <font face="Courier New">euca_register</font> command is an image id. Again, we can use this image id when we bundle up the hard disk image or when we create an instance from a Eucalyptus machine image. The prefix &#8220;<i>eri</i>&#8221; implies that the image is a ramdisk image, more specifically a Eucalyptus Ramdisk Image (ERI).</p>
<p>Run the describe images command to verify that the ramdisk image is available:</p>
<pre class="java-codeface">
euca-describe-images
</pre>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
IMAGE	eki-90461381	kernel-bucket/vmlinuz-2.6.24-19-xen.manifest.xml	admin	available	public		i386	kernel<br />
IMAGE	eri-E85914C7	ramdisk-bucket/initrd.img-2.6.24-19-xen.manifest.xml	admin	available	public		i386	ramdisk
</div>
<p>Finally we are ready to create the Eucalyptus Machine Image.</p>
<p><strong>Eucalyptus Machine Image</strong></p>
<p>We will use the hard disk image &#8211; <font face="Courier New">new_centos.5-3.x86.img</font> &#8211; we created in the section &#8220;<a href="#resize">Resizing the disk image</a>&#8220;. If you skipped the &#8220;resize&#8221; section, you could use the base image &#8211; centos.5-3.x86.img &#8211; provided in the <a href="#download">download</a>.</p>
<p>Let&#8217;s get started with first bundling the hard disk image as follows:</p>
<pre class="java-codeface">
euca-bundle-image -i new_centos.5-3.x86.img --kernel eki-90461381 --ramdisk eri-E85914C7
</pre>
<p>where,<br />
<i>new_centos.5-3.x86.img</i> &#8211; is the path to the hard disk image</p>
<p>The other two arguments to the above command are the Eucalyptus Kernel Image (EKI) id and the Eucalyptus Ramdisk Image (ERI) id. In this case, <font face="Courier New">eki-90461381</font> and <font face="Courier New">eri-E85914C7</font> which we obtained when registering the kernel and ramdisk image respectively.</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
Checking image<br />
Tarring image<br />
Encrypting image<br />
Splitting image&#8230;<br />
Part: new_centos.5-3.x86.img.part.0<br />
Part: new_centos.5-3.x86.img.part.1<br />
Part: new_centos.5-3.x86.img.part.2<br />
Part: new_centos.5-3.x86.img.part.3<br />
Part: new_centos.5-3.x86.img.part.4<br />
Part: new_centos.5-3.x86.img.part.5<br />
Part: new_centos.5-3.x86.img.part.6<br />
Part: new_centos.5-3.x86.img.part.7<br />
Part: new_centos.5-3.x86.img.part.8<br />
Part: new_centos.5-3.x86.img.part.9<br />
Part: new_centos.5-3.x86.img.part.10<br />
Part: new_centos.5-3.x86.img.part.11<br />
Part: new_centos.5-3.x86.img.part.12<br />
Part: new_centos.5-3.x86.img.part.13<br />
Part: new_centos.5-3.x86.img.part.14<br />
Part: new_centos.5-3.x86.img.part.15<br />
Part: new_centos.5-3.x86.img.part.16<br />
Part: new_centos.5-3.x86.img.part.17<br />
Part: new_centos.5-3.x86.img.part.18<br />
Part: new_centos.5-3.x86.img.part.19<br />
Part: new_centos.5-3.x86.img.part.20<br />
Part: new_centos.5-3.x86.img.part.21<br />
Part: new_centos.5-3.x86.img.part.22<br />
Part: new_centos.5-3.x86.img.part.23<br />
Part: new_centos.5-3.x86.img.part.24<br />
Part: new_centos.5-3.x86.img.part.25<br />
Part: new_centos.5-3.x86.img.part.26<br />
Part: new_centos.5-3.x86.img.part.27<br />
Part: new_centos.5-3.x86.img.part.28<br />
Part: new_centos.5-3.x86.img.part.29<br />
Part: new_centos.5-3.x86.img.part.30<br />
Part: new_centos.5-3.x86.img.part.31<br />
Part: new_centos.5-3.x86.img.part.32<br />
Part: new_centos.5-3.x86.img.part.33<br />
Part: new_centos.5-3.x86.img.part.34<br />
Part: new_centos.5-3.x86.img.part.35<br />
Part: new_centos.5-3.x86.img.part.36<br />
Part: new_centos.5-3.x86.img.part.37<br />
Part: new_centos.5-3.x86.img.part.38<br />
Generating manifest /tmp/new_centos.5-3.x86.img.manifest.xml
</div>
<p>As expected, the above command packages the disk image and generates a manifest.xml file in the <font face="Courier New">/tmp</font> directory. </p>
<p>Next, we upload the disk image to Walrus passing in the manifest.xml file path obtained from the previous command as follows:</p>
<pre class="java-codeface">
euca-upload-bundle -b image-bucket -m /tmp/new_centos.5-3.x86.img.manifest.xml
</pre>
<p>where,<br />
<i>image-bucket</i> &#8211; is the name of the bucket that the disk image will be stored under.<br />
<i>/tmp/new_centos.5-3.x86.img.manifest.xml </i> &#8211; is the manifest.xml that was generated in the previous <font face="Courier New">euca-bundle-image</font> step</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
Checking bucket: image-bucket<br />
Uploading manifest file<br />
Uploading part: new_centos.5-3.x86.img.part.0<br />
Uploading part: new_centos.5-3.x86.img.part.1<br />
Uploading part: new_centos.5-3.x86.img.part.2<br />
Uploading part: new_centos.5-3.x86.img.part.3<br />
Uploading part: new_centos.5-3.x86.img.part.4<br />
Uploading part: new_centos.5-3.x86.img.part.5<br />
Uploading part: new_centos.5-3.x86.img.part.6<br />
Uploading part: new_centos.5-3.x86.img.part.7<br />
Uploading part: new_centos.5-3.x86.img.part.8<br />
Uploading part: new_centos.5-3.x86.img.part.9<br />
Uploading part: new_centos.5-3.x86.img.part.10<br />
Uploading part: new_centos.5-3.x86.img.part.11<br />
Uploading part: new_centos.5-3.x86.img.part.12<br />
Uploading part: new_centos.5-3.x86.img.part.13<br />
Uploading part: new_centos.5-3.x86.img.part.14<br />
Uploading part: new_centos.5-3.x86.img.part.15<br />
Uploading part: new_centos.5-3.x86.img.part.16<br />
Uploading part: new_centos.5-3.x86.img.part.17<br />
Uploading part: new_centos.5-3.x86.img.part.18<br />
Uploading part: new_centos.5-3.x86.img.part.19<br />
Uploading part: new_centos.5-3.x86.img.part.20<br />
Uploading part: new_centos.5-3.x86.img.part.21<br />
Uploading part: new_centos.5-3.x86.img.part.22<br />
Uploading part: new_centos.5-3.x86.img.part.23<br />
Uploading part: new_centos.5-3.x86.img.part.24<br />
Uploading part: new_centos.5-3.x86.img.part.25<br />
Uploading part: new_centos.5-3.x86.img.part.26<br />
Uploading part: new_centos.5-3.x86.img.part.27<br />
Uploading part: new_centos.5-3.x86.img.part.28<br />
Uploading part: new_centos.5-3.x86.img.part.29<br />
Uploading part: new_centos.5-3.x86.img.part.30<br />
Uploading part: new_centos.5-3.x86.img.part.31<br />
Uploading part: new_centos.5-3.x86.img.part.32<br />
Uploading part: new_centos.5-3.x86.img.part.33<br />
Uploading part: new_centos.5-3.x86.img.part.34<br />
Uploading part: new_centos.5-3.x86.img.part.35<br />
Uploading part: new_centos.5-3.x86.img.part.36<br />
Uploading part: new_centos.5-3.x86.img.part.37<br />
Uploading part: new_centos.5-3.x86.img.part.38<br />
Uploaded image as image-bucket/new_centos.5-3.x86.img.manifest.xml
</div>
<p>Finally, we register the image as follows:</p>
<pre class="java-codeface">
euca-register image-bucket/new_centos.5-3.x86.img.manifest.xml
</pre>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
IMAGE	emi-9FE813FD
</div>
<p>A quick <font face="Courier New">euca-describe-images</font> reveals the EMI that is available for use:</p>
<div style="width: 90%; border: 1px solid black; background-color: rgb(0, 0, 0); font-size: 11px; color: rgb(255, 255, 255);">
IMAGE	eki-90461381	kernel-bucket/vmlinuz-2.6.24-19-xen.manifest.xml	admin	available	public		i386	kernel<br />
IMAGE	emi-9FE813FD	image-bucket/new_centos.5-3.x86.img.manifest.xml	admin	available	public		x86_64	machine	eri-E85914C7	eki-90461381<br />
IMAGE	eri-E85914C7	ramdisk-bucket/initrd.img-2.6.24-19-xen.manifest.xml	admin	available	public		i386	ramdisk
</div>
</p>
<p><br/></p>
<p>
<br/><br />
In the next post, we will look into creating instances of the EMI that we just registered.
</p>
<p><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.plexibus.com/2010/06/22/eucalyptus-creating-and-registering-our-first-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Management</title>
		<link>http://blogs.plexibus.com/2008/05/28/time-management/</link>
		<comments>http://blogs.plexibus.com/2008/05/28/time-management/#comments</comments>
		<pubDate>Thu, 29 May 2008 04:21:06 +0000</pubDate>
		<dc:creator>roshanallan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[plexibus]]></category>
		<category><![CDATA[roshan]]></category>
		<category><![CDATA[sequeira]]></category>
		<category><![CDATA[time management randy pausch todo lists]]></category>

		<guid isPermaLink="false">http://blogs.plexibus.com/2008/05/28/time-management/</guid>
		<description><![CDATA[A great time management lecture by Randy Pausch.
]]></description>
			<content:encoded><![CDATA[<p>A great <a title="Time management - http://video.google.com/videoplay?docid=-5784740380335567758" href="http://video.google.com/videoplay?docid=-5784740380335567758" target="_blank">time management lecture</a> by <a title="Randy Paush's website - http://download.srv.cs.cmu.edu/~pausch/" href="http://download.srv.cs.cmu.edu/~pausch/" target="_blank">Randy Pausch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.plexibus.com/2008/05/28/time-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thought for the day</title>
		<link>http://blogs.plexibus.com/2008/03/11/thought-for-the-day/</link>
		<comments>http://blogs.plexibus.com/2008/03/11/thought-for-the-day/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 13:36:21 +0000</pubDate>
		<dc:creator>roshanallan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[manage]]></category>
		<category><![CDATA[measure]]></category>
		<category><![CDATA[plexibus]]></category>
		<category><![CDATA[roshan]]></category>
		<category><![CDATA[sequeira]]></category>
		<category><![CDATA[thought for the day]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://blogs.plexibus.com/2008/03/11/thought-for-the-day/</guid>
		<description><![CDATA[&#8220;If you cannot measure it, you cannot manage it&#8220; 
This applies to all aspects of your personal and professional life.
]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;<em>If you cannot measure it, you cannot manage it</em>&#8220; </p></blockquote>
<p>This applies to all aspects of your personal and professional life.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.plexibus.com/2008/03/11/thought-for-the-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Initial thoughts&#8230;</title>
		<link>http://blogs.plexibus.com/2007/11/09/initial-thoughts/</link>
		<comments>http://blogs.plexibus.com/2007/11/09/initial-thoughts/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 04:13:48 +0000</pubDate>
		<dc:creator>roshanallan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[disclaimer]]></category>
		<category><![CDATA[initial thoughts]]></category>
		<category><![CDATA[plexibus]]></category>
		<category><![CDATA[roshan]]></category>
		<category><![CDATA[sequeira]]></category>

		<guid isPermaLink="false">http://blogs.plexibus.com/?p=3</guid>
		<description><![CDATA[The views expressed on this blog are personal and mine alone. In no event will I be liable for any direct or indirect damages arising out of use of opinions expressed on this blog.
]]></description>
			<content:encoded><![CDATA[<p>The views expressed on this blog are personal and mine alone. In no event will I be liable for any direct or indirect damages arising out of use of opinions expressed on this blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.plexibus.com/2007/11/09/initial-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.211 seconds -->
