云计算实践入门:简易搭建一个私有云平台
中国IDC圈6月10日报道:众说周知Amazon EC2是一个公共云的计算平台,属于IaaS(基础设施即服务)这类.
现在有一款开源的项目Eucalyptus(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems),同样实现了Amazon EC2的功能,由于其开源性,注定了搭建一个私有的云计算平台成为可能. 更方便的是Ubuntu9.10服务器版已经集成了Eucalyptus这个开源软件,使的搭建企业私有的云计算平台变得方便而简单.
下面我们将一步步来搭建这个私有的云计算平台.
一 准备工作
1) 至少准备两台机器, 当然我这里是用虚拟机软件(Sun VirtualBox)来虚拟出两台实际的机器
(如果你也采用Sun VirtualBox,有些注意事项,可以参见后面的附录一)
2) 底层操作系统: Ubuntu9.10 服务器版 (http://www.ubuntu.com/cloud)
3) 云服务环境 : Eucalyptus , ( Ubuntu9.10 服务器版 内置) http://eucalyptus.com/
4) Eucalyptus 命令行客户端
5) Eucalyptus客户端: Elastic Fox ,这是一个firefox插件 : http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609
--------------------------------------------------------------------------
二 云计算服务的搭建(使用Ubuntu自带的向导,十分简单的哦)
1) 一台机器, 作为Cluster(Front End) , 命名为: ubuntu-cluster , 它包含了如下部分
- Cloud Controller (clc)
- Cluster Controller (cc)
- Walrus (the S3-like storage service)
- Storage Controller (sc)
2) 至少一台机器作为Node, 命名为: ubuntu-node1,它包含了如下部分
Node Controller (nc)
3) 在作为Cluster的机器上 ,安装基本系统: Ubuntu9.10 服务器版
1.安装引导时,要选择 "Install Ubuntu Enterprise Cloud"
2. 安装过程中,如果提示"Cluster" 还是"Node",一定要选择Cluster
3.安装过程中,提示"Configure postfix" 时 选择 internet Site
4. 安装过程中,提示"Name your cluster" 时 ,请取一个合适的名字,比如我取之为: cluster1
5. 安装过程中,提示"a list of available IP addresses on your network", 一定要选择一个可用的公共IP段.
4) 在作为Node的机器上 ,也安装基本系统: Ubuntu9.10 服务器版
1.安装引导时,要选择 "Install Ubuntu Enterprise Cloud"
2. 安装过程中,如果提示"Cluster" 还是"Node",一定要选择Node, (如果Cluster正在运行,这一步可能不会出现,自动会选择Node
3.安装完一个节点后,,后续的节点可以采用克隆方法,参见后面的 附录二
5) 在Cloud Controller(位于ubuntu-cluster)上注册所有的Node机器: 在ubuntu-cluster上执行:
- sudo euca_conf --no-rsync --discover-nodes
至此,一个私有的云计算平台已经搭建好了,下面就开始说,如何使用了,很简单吧!
三 云计算平台管理之命令行工具(Euca2ools)
1)在 https://YourIP:8443 中注册个人信息然后登录下载 证书 euca2-yourname-x509 .zip
2) 在客户端机器上执行
- $ mkdir ~/.euca
- $ cd ~/.euca
- $ unzip euca2-yourname-x509 .zip
- $ chmod 0700 ~/.euca
- $ chmod 0600 ~/.euca/*
3) 在客户端机器上执行, 安裝 Euca2ools 和 EC2-API-Tools
- . ~/.euca/eucarc
- echo "[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc" >> ~/.bashrc
- sudo apt-get install euca2ools
- sudo apt-get install ec2-api-tools
- sudo reboot
4)在客户端机器,使用 Euca2ools 上传 Kernel / Ramdisk / FS Image (使用者可注册 Image,但只有管理者才可注册 kernel/ramdisks)
1. 目前 Eucalyptus 系統上没有 Kernel、Ramdisk 和 FS Image,所以我們使用官方提供的 Image (上传需要用到三个指令)
- euca-bundle-image - 打包好將要上传的档案
- euca-upload-bundle - 上传到 Eucalyptus
- euca-register - 注册上传的档案
2. 上传Kernel,如:
- euca-bundle-image -i /boot/vmlinuz-2.6.31-14-generic-pae --kernel true
- euca-upload-bundle -b kernel -m /tmp/vmlinuz-2.6.31-14-generic-pae.manifest.xml
- euca-register kernel/vmlinuz-2.6.31-14-generic-pae.manifest.xml
3.上传 Ramdisk
- euca-bundle-image -i /boot/initrd.img-2.6.31-14-generic-pae --ramdisk true
- euca-upload-bundle -b ramdisks -m /tmp/initrd.img-2.6.31-14-generic-pae.manifest.xml
- euca-register ramdisks/initrd.img-2.6.31-14-generic-pae.manifest.xml
4. 查看已上传到档案:
方法一: https://YourIP:8443/#images
方法二: euca-describe-images
5. 根据查看的结果,上传FS Images:(分配 Kernel 和 Ramdisks 給 VMs 有三种方法,见附录三)
- tar zxvf karmic-server-uec-i386.tar.gz
- euca-bundle-image -i karmic-server-uec-i386.img --kernel eki-977213C6 --ramdisk eri-0CBA157D
- euca-upload-bundle -b images -m /tmp/karmic-server-uec-i386.img.manifest.xml
- euca-register images/karmic-server-uec-i386.img.manifest.xml
5) 申請 key pair,以便 ssh 登入 instance
- ec2-add-keypair mykey >mykey.private
- chmod 0600 mykey.private
6) 在客户端机器,开启虚拟机.
1.查看 euca-describe-images ,获得希望启动Image emi
2.启动一个虚拟机:
- euca-run-instances -k mykey -n 1 emi-8022139D
3.查看这个虚拟机的基本信息,比如IP地址,和 此实例id