`
yangzb
  • 浏览: 3502655 次
  • 性别: Icon_minigender_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 , 它包含了如下部分

1、Cloud Controller (clc)

2、Cluster Controller (cc)

3、Walrus (the S3-like storage service)

4、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上执行:

1. sudo euca_conf --no-rsync --discover-nodes

至此,一个私有的云计算平台已经搭建好了,下面就开始说,如何使用了,很简单吧!

三 云计算平台管理之命令行工具(Euca2ools)

1)在 https://YourIP:8443 中注册个人信息然后登录下载 证书 euca2-yourname-x509 .zip

2) 在客户端机器上执行

1.$ mkdir ~/.euca

2. $ cd ~/.euca

3. $ unzip euca2-yourname-x509 .zip

4. $ chmod 0700 ~/.euca

5. $ chmod 0600 ~/.euca/*

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

1. . ~/.euca/eucarc

2. echo "[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc" >> ~/.bashrc

3. sudo apt-get install euca2ools

4. sudo apt-get install ec2-api-tools

5.sudo reboot

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

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

1.euca-bundle-image - 打包好將要上传的档案

2. euca-upload-bundle - 上传到 Eucalyptus

3.euca-register - 注册上传的档案

2. 上传Kernel,如:

1.euca-bundle-image -i /boot/vmlinuz-2.6.31-14-generic-pae --kernel true

2.euca-upload-bundle -b kernel -m /tmp/vmlinuz-2.6.31-14-generic-pae.manifest.xml

3.euca-register kernel/vmlinuz-2.6.31-14-generic-pae.manifest.xml

3.上传 Ramdisk

1.euca-bundle-image -i /boot/initrd.img-2.6.31-14-generic-pae --ramdisk true

2.euca-upload-bundle -b ramdisks -m /tmp/initrd.img-2.6.31-14-generic-pae.manifest.xml

3.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 有三种方法,见附录三)

1.tar zxvf karmic-server-uec-i386.tar.gz

2.euca-bundle-image -i karmic-server-uec-i386.img --kernel eki-977213C6 --ramdisk eri-0CBA157D

3.euca-upload-bundle -b images -m /tmp/karmic-server-uec-i386.img.manifest.xml

4.euca-register images/karmic-server-uec-i386.img.manifest.xml

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

1.ec2-add-keypair mykey >mykey.private

2.chmod 0600 mykey.private

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

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

2.启动一个虚拟机:

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

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

1.euca-describe-instances

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

1.ssh -i mykey.private root@192.168.100.X

5.终止这个虚拟机实例

1.euca-describe-instances(获得instance-id)

2.euca-terminate-instances <instance-id>

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

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 <path/to/my/>vmimage.img --kernel <eki-XXXXXXXX> --ramdisk <eri-XXXXXXXX>

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

ec2-run-instances <emi-XXXXXXXX> --kernel <eki-XXXXXXXX> --ramdisk <eri-XXXXXXXX>

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

附录四: 如何删除Image

1) 先取消注册

ec2-deregister <emi-XXXXXXXX>

2) 移除位于 bucke 的档案

ec2-delete-bundle -a $EC2_ACCESS_KEY -s $EC2_SECRET_KEY --url $S3_URL -b <bucket> -p <file prefix>

3) 移除 image 和 bucke (—clear)

ec2-delete-bundle -a $EC2_ACCESS_KEY -s $EC2_SECRET_KEY --url $S3_URL -b <bucket> -p <file prefix> --clear

附录五: Euca2ools常用命令:

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

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

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

4.euca-upload-bundle 上传档案到 Eucalyptus

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

6.euca-describe-images 查看可用的 images

分享到:
评论

相关推荐

    简易版以太坊私有链搭建

    简易版以太坊私有链搭建,文档流程介绍详细,思路清晰。注意:windows平台的

    搭建一个简易的C语言平台

    搭建一个简易的C语言平台是学习C语言的重要步骤,它能帮助我们清晰地理解程序的编译、链接过程,以及各个文件在其中的作用。在这个环境中,我们通常会使用TC(Turbo C)编译器,这里特别提到了TC 2.0版本。以下是...

    简易FTP搭建小工具

    “简易FTP搭建小工具”是一个便捷的FTP服务器搭建方案,适用于快速建立临时或个人FTP服务。了解FTP的工作原理和配置步骤,结合使用此类工具,可以高效地实现文件共享。不过,为了保障数据安全,建议使用安全的FTP...

    简易搭建ftp服务器

    在开发过程中,快速搭建一个FTP服务器对于测试文件交换非常方便。下面将详细介绍如何使用“简易FTP服务器”进行搭建。 首先,我们需要一个“绿色版”的FTP服务器软件。绿色版通常指的是无需安装、不写入系统注册表...

    简易机器人制作搭建手册(NXT)

    《简易机器人制作搭建手册(NXT)》是乐高机器人爱好者的宝贵资源,它不仅教会我们如何从零开始构建一个功能完备的机器人,更重要的是,它激发了我们对科技创新的热情,让我们在动手实践中学会了思考和创新。...

    基于OpenStack的私有云计算平台的搭建.pdf

    控制节点计算机使用双网卡,一个用于提供OpenStack API访问,另一个用于OpenStack云平台管理网络。控制节点还使用Mysql数据库和RabbitMQ消息队列机制来协调资源的分配和任务的处理。 在搭建私有云计算平台时,需要...

    使用WebSocket+SpringBoot搭建简易的多人聊天室

    使用WebSocket+SpringBoot搭建简易的多人聊天室 由浅入深,配合博客入门教程文章食用,风味独特。 使用WebSocket+SpringBoot搭建简易的多人聊天室 由浅入深,配合博客入门教程文章食用,风味独特。 使用WebSocket+...

    java 简易视频网站搭建

    简易java视频web代码,本程序是一个最简单的视频网站视频。它支持 1.直播 2.点播 This software is the simplest video website. It support: 1. live broadcast 2. VOD

    毕业设计-后端:使用python 基础和django+DRF搭建一个简易的博客系统

    后端:使用python 基础和django+DRF搭建一个简易的博客系统

    Django 搭建简易博客教程

    Django 搭建简易博客教程 Django 版本 1.7.1

    ubuntu环境简易搭建

    ### Ubuntu环境简易搭建详解 #### 一、系统安装方案概览 ...总之,Ubuntu环境的搭建不仅涵盖了系统安装,还涉及软件配置、环境优化等多个方面,为用户提供了一个功能齐全、高效稳定的开发和学习平台。

    简易搭建ssh 框架

    这个框架提供了一个安全、高效且可扩展的平台,你可以在此基础上进一步开发复杂的企业级应用。在实际项目中,还需要考虑日志、安全性、性能优化等更多方面的问题,以确保应用的稳定性和可维护性。通过不断地学习和...

    乐高简易机器人(NXT模型搭建)

    1. **图形化编程环境**:Mindstorms软件提供了一个用户友好的编程界面,即使是没有编程经验的新手也能快速上手。 2. **基本控制结构**:编程时,用户需要掌握循环、条件判断等基本控制结构,以便更灵活地控制机器人...

    如何使用低代码搭建简易的信息查询系统.docx

    1. **创建应用**:登录云开发低码平台,创建一个新的空白应用,如“预约登记”。 2. **定义数据源**:创建预约登记的数据源,包括所有必要的字段,并设置数据类型。 3. **创建页面**:在应用中创建页面,设计表单...

    用flask搭建了一个简易网站

    基于python3.6开发。用flask搭建了一个简易网站,实现登录功能,注册功能,评论功能,发表文章功能,数据库连接功能,压缩包是完整项目代码。解压后可用,但需在自己电脑创建mysql数据库:zlktqa_demo

    ubnutu基于vsftp搭建简易FTP服务器

    本文将详细介绍如何在Ubuntu系统上通过vsftpd服务构建一个简易的FTP服务器,主要面向初学者,帮助大家快速掌握搭建过程。 #### 二、准备工作 在开始之前,请确保已经安装了Ubuntu操作系统。Ubuntu系统自带了一个...

    Vsftp服务器简易搭建指南.pdf

    Vsftp服务器是一种基于Linux平台的FTP服务器软件,它可以提供文件上传、下载和管理等功能。下面是关于Vsftp服务器简易搭建指南的知识点: 一、Vsftp服务器安装 Vsftp服务器可以通过.rpm包来安装,安装命令为:rpm ...

    基于python3.7+django3.0+simpleui搭建的简易个人博客系统源码.zip

    基于python3.7+django3.0+simpleui搭建的简易个人博客系统,适合入门学习~ 基于python3.7+django3.0+simpleui搭建的简易个人博客系统,适合入门学习~ 基于python3.7+django3.0+simpleui搭建的简易个人博客系统,...

Global site tag (gtag.js) - Google Analytics