• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
如何简易搭建一个私有云平台
发布日期:2016-7-21 10:7:1

  众说周知,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 , 它包含了下面的部分

 

  (2) 至少一台机器作为Node, 命名为: ubuntu-node1,它包含了下面的部分

  Node Controller (nc)

  (3) 在作为Cluster的机器上 ,安装基本系统: Ubuntu9.10 服务器版

  a.安装引导时,要选择 "Install Ubuntu Enterprise Cloud"

  b. 安装过程中,如果提示"Cluster" 还是"Node",一定要选择Cluster

  c.安装过程中,提示"Configure postfix" 时 选择 internet Site

  d. 安装过程中,提示"Name your cluster" 时 ,请取一个合适的名字,比如我取之为: cluster1

  e. 安装过程中,提示"a list of available IP addresses on your network", 一定要选择一个可用的公共IP段.

  (4) 在作为Node的机器上 ,也安装基本系统: Ubuntu9.10 服务器版

  a.安装引导时,要选择 "Install Ubuntu Enterprise Cloud"

  b. 安装过程中,如果提示"Cluster" 还是"Node",一定要选择Node, (如果Cluster正在运行,这一步可能不会出现,自动会选择Node

  c.安装完一个节点后,,后续的节点可以采用克隆方法,参见后面的 附录二

  (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) 在客户端机器上执行

 

  (3) 在客户端机器上执行, 安裝 Euca2ools 与 EC2-API-Tools

 

  (4)在客户端机器,使用 Euca2ools 上传 Kernel / Ramdisk / FS Image (使用者可以注册 Image,但只有管理者才可注册 kernel/ramdisks)

  a. 目前 Eucalyptus 系統上没有 Kernel、Ramdisk 和 FS Image,因此我們使用官方提供的 Image (上传需要用到三个指令)

 

  b. 上传Kernel,如:

 

  c.上传 Ramdisk

  

  d. 查看已上传到档案:

  方法一: https://YourIP:8443/#images

  方法二: euca-describe-images

  e. 根据查看的结果,上传FS Images:(分配 Kernel 和 Ramdisks 給 VMs 有三种方法,见附录三)

  

 

  (5) 申请key pair,以便 ssh 登入 instance

  

  (6) 在客户端机器,开启虚拟机.

  a.查看 euca-describe-images ,获得希望启动Image emi

  b.启动一个虚拟机:

  euca-run-instances -k mykey -n 1 emi-8022139D

  c.查看这个虚拟机的基本信息,比如IP地址,与此实例id

  euca-describe-instances

  d.登录这个新启动的虚拟机

  ssh -i mykey.private root@192.168.100.X

  e.终止这个虚拟机实例


  附录一: 虚拟测试环境的搭建:

  1.虚拟机软件: Sun VirtualBox

  2.管理 -> 全局设定 -> 网络 中 选择 "Host-Only" 点编辑,然后选择 "DHCP服务器", 禁用"启用服务器"

  3建立两台虚拟机, Linux/Ubuntu ,网络选择Host-Only方式

  4在宿主机器上,将可联互联网的 网卡设置为 针对 Host-Only 网卡的共享

  说明,这里之所以采用 , Host-Only + 通过宿主机器共享上网 ,而不采用Bridged的联网方式,是前者可在离开网络支持的情况下, 虚拟机之间的关系保持不变.

  附录二: VirtualBox 系统克隆及其可能后续操作:

  1) VirtualBox 的虚拟硬盘的克隆命令: VBoxManage clonevdi old.vdi new.vdi

  2) Ubuntu 修改主机名:

  1. 启用root用户: sudo passwd root

  2. .以root用户身份登录

  3. pico /etc/hosts : 修改对应的旧的主机名

  4. pico /etc/hostname : 删除该文件的所有内容,添加新的主机名

  5. 执行命令: hostname <新的主机名>

  6. logout

  7. 禁用root用户: sudo passwd -l root

  3)如果找不到网卡,不妨,查看一下: ifconfig –a ,然后配置 /etc/network/interfaces ,然后重启网卡

  附录三: 分配 Kernel 和 Ramdisks 給 VMs 有三种方法

  1) 在 'ec2-bundle-image' 步骤指定

  ec2-bundle-image -i vmimage.img --kernel --ramdisk

  2)在 'ec2-run-instances' 步骤指定

  ec2-run-instances --kernel --ramdisk

  3) 在 https://your.cloud.server:8443 选择 'Configuration' 标签,新增 作为预设的 kernel 和 ramdisk

  附录四: 如何删除Image

  1) 先取消注册

  ec2-deregister

  2) 移除位于 bucke 的档案

  ec2-delete-bundle -a $EC2_ACCESS_KEY -s $EC2_SECRET_KEY --url $S3_URL -b -p

  3) 移除 image 和 bucke (—clear)

  ec2-delete-bundle -a $EC2_ACCESS_KEY -s $EC2_SECRET_KEY --url $S3_URL -b -p --clear

  附录五: Euca2ools常用命令:

  euca-describe-availability-zones verbose 察看可用的资源

  euca-describe-instances 察看目前正在執行的 虚拟机(VM)

  euca-bundle-image 打包好将要上传到档案

  euca-upload-bundle 上传档案到 Eucalyptus

  euca-register 组成已经上传到档案

  euca-describe-images 查看可用的 images