【原创】使用kvm制作eucalyptus云计算环境镜像


使用kvm制作eucalyptus云计算环境镜像

1、下载镜像样本

从官网上下载可用的镜像样本,官网上提供了不同发行版本的Linux操作系统的镜像。如:ubuntu(32,64),debian(32,64),CentOS(32,64),Fedora(32,64)等。
   官网下载地址:
   http://open.eucalyptus.com/wiki/EucalyptusUserImageCreatorGuide_v2.0   
   下载对应镜像后,在linux环境下可以通过md5sum指令计算MD5值与官网提供的MD5值进行比较。

2、扩充镜像样本

官网提供的镜像大小均在1G左右,对于开发人员这个空间是不够的。所以在制作镜像之前,首先要扩充镜像空间。
   可以参考官网日志:
   http://open.eucalyptus.com/participate/wiki/changing-size-images

   值得注意的是:在操作时,最好使用root用户,镜像解压在/root目录下。我开始在/home下操作,出现了莫名奇妙的错误,原因未知。

   在操作过程中,如果loop0,loop1在使用,则可以寻找没在被使用的loop,比如loop5.

3、kvm环境下运行new.img(new.img是刚扩充好的镜像)

   敲入如下指令启动镜像:

/usr/libexec/qemu-kvm -m 256 -hda /root/new.img -kernel /root/euca-ubuntu-9.04-i386/kvm-kernel/vmlinuz-2.6.28-11-server -initrd /root/euca-ubuntu-9.04-i386/kvm-kernel/initrd.img-2.6.28-11-server -boot c -net nic,vlan=0,model=e1000,macaddr=00:16:e3:de:ad:02 -append "root=/dev/sda ro " -k en-us -net tap
   说明:“/root/new.img”为需要启动的镜像,路径需要做一定替换。
           /root/euca-ubuntu-9.04-i386/kvm-kernel/vmlinuz-2.6.28-11-server 下载镜像样本中配套的头文件
           /root/euca-ubuntu-9.04-i386/kvm-kernel/initrd.img-2.6.28-11-server 下载镜像样本中配套的头文件

4、配置root密码

   正常启动后,显示登陆界面。初次登陆,没有root账户密码,需要我们手动配一个密码。关闭系统。

   (1)将new.img挂载在new目录下,前提是new.img所在的当前目录有个new的空目录。  
   mount -o loop new.img new

   (2)进入new系统,更改密码
   chroot new
   passwd
   连续敲入两遍密码即可。

   (3)退出new系统
   exit
  
   (4)卸载设备:
   umount new
  

5、配置网络ip
  
   如果现在启动的话,一般情况下,会发现没有ip,这时我们需要给其配置一个静态的ip。

   保证系统没有在运行。操作方法和上面一样,通过挂在来修改文件。
  

mount -o loop new.img new
   编辑etc/network/interfaces配置static IP:
    cd new
    vim etc/network/interfaces   格式如下:
    auto lo   
    iface lo inet loopback   
    auto eth0 
    iface eth0 inet static   
    address 192.168.0.101   
    netmask 255.255.255.0      
    gateway 192.168.0.2

   :wq保存退出。
  
   卸载设备:
   umount new

6、kvm重新运行new.img

   参见:3、kvm环境下运行new.img(new.img是刚扩充好的镜像)

7、往镜像中安装需要的软件

   制作自己的镜像内容,操作完全与一般linux系统相同。

   装完之后,使用halt -p来关闭系统。

8、镜像后续处理  
   抓好一切需要的东西后,需要将镜像打包成适合云上跑的镜像。做如下处理:
  
   (1)更改网络配置为dhcp方式
 

mount -o loop new.img new
    编辑etc/network/interfaces配置static IP:
    cd new
    vim etc/network/interfaces   格式如下:
    auto lo   
    iface lo inet loopback   
    auto eth0 
    iface eth0 inet dhcp   (2)删除一个网络配置文件,避免网卡冲突
     重新返回new目录下,执行
    rm -rf etc/udev/rules.d/70-persistent-net.rules

   (3)卸载设备:

   退出new目录,cd ..
   umount new

9、镜像制作完毕

   可以试试在云上跑一跑了。