`

unbuntu 中搭建私有的IAAS开源云平台

阅读更多
经过3个星期的尝试怎么成功搭建了属于自己的私有云平台。在这里首先谢谢vpsee这个网站,我主要参考的是这个上面的内容。
现在介绍一下我的搭建环境,我用的操作系统是ubuntu-11.04-desktop-amd64.iso 。64位的操作系统,注意你的机器如果不支持64位的,那么请安装32位的,因为在后面发布镜像的时候要和你的操作系统的位数匹配。
笔者的网络是172.16.200.128/25 ,笔者的ip是172.16.200.187,子网掩码是172.16.200.192,网关是172.16.200.190,后面在配置nova的网络的时候要用到


安装完基本的 Ubuntu 11.04 Server 系统后升级和更新整个系统,安装完 bridge-utils 包后重启系统:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install bridge-utils
sudo reboot

安装 NTP 服务

OpenStack Nova 需要 NTP 服务器来保持所有节点服务器(Cloud Compute)的时间同步,所以需要在前端控制服务器(Cloud Controller)上安装 NTP 服务器,然后在节点服务器上安装 NTP 客户端保持与前端的同步:
sudo apt-get install ntp
sudo vi /etc/ntp.conf
打开后在文件里面添加下面2行
server 127.127.1.0
fudge 127.127.1.0 stratum 10
重新启动ntp服务
$ sudo /etc/init.d/ntp restart

安装和配置 MySQL 数据库

OpenStack Nova 需要数据库的支持,这里选用 MySQL(当然也可以用其他的数据库,比如 PostgreSQL 等):
sudo apt-get install mysql-server
修改 MySQL 绑定地址,以便其他的节点服务器也能访问这个数据库:

sudo vi /etc/mysql/my.cnf
...
#bind-address           = 127.0.0.1
bind-address            = 0.0.0.0
...
重新启动mysql服务
sudo /etc/init.d/mysql restart

创建一个名为 nova 的数据库,并设置 root 从任何 IP 访问的权限和密码:

sudo mysql -uroot -padmin -e 'CREATE DATABASE nova;'
sudo mysql -uroot -padmin -e "GRANT ALL PRIVILEGES ON *.* TO \
'root'@'%' WITH GRANT OPTION;"
sudo mysql -uroot -padmin -e "SET PASSWORD FOR \
'root'@'%' = PASSWORD('admin');"

这里的admin是你安装mysql时候设置的密码

安装 Glance 镜像服务
Glance 是个镜像服务器,用来给 OpenStack Nova 提供操作系统镜像(image)服务,提供可选择的操作系统模版(镜像)。
sudo apt-get install glance
安装 OpenStack Novaapt
sudo apt-get install rabbitmq-server nova-common
sudo apt-get install nova-doc python-nova nova-api nova-network nova-volume
sudo apt-get install nova-objectstore nova-scheduler nova-compute
sudo apt-get install -y euca2ools
sudo apt-get install -y unzip

配置nova
sudo vi /etc/nova/nova.conf
修改文件内容
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/var/lock/nova
--verbose

--s3_host=172.16.200.187
--rabbit_host=172.16.200.187
--cc_host=172.16.200.187
--ec2_url=http://172.16.200.187:8773/services/Cloud
--my_ip=172.16.200.187
--network_manager=nova.network.manager.FlatManager
--fixed_range=172.16.200.128/24
--num_networks=1
--network_size=12
--flat_injected=true
--FAKE_subdomain=ec2
--routing_source_ip=172.16.200.187
--sql_connection=mysql://root:root@172.16.200.187/nova
--glance_host=172.16.200.187
--image_service=nova.image.glance.GlanceImageService

笔者这里compute node ,controll node在同一个节点,这里的网络管理可以是FlatManager,也可以是FlatDHCPManager的方式,根据你自己的情况而定

配置网桥:

$ sudo vi /etc/network/interfaces
文件内容如下:
auto lo
iface lo inet loopback

auto br100
iface br100 inet static
address 172.16.200.187
netmask 255.255.255.192
gateway 172.16.200.190
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
修改网络配置文件后要重新启动网络服务
sudo /etc/init.d/networking restart


重启 nova 相关服务以便设置生效:

sudo restart libvirt-bin;
sudo restart nova-network;
sudo restart nova-compute;
sudo restart nova-api;
sudo restart nova-objectstore;
sudo restart nova-scheduler;
sudo restart nova-volume;
sudo restart glance-api;
sudo restart glance-registry

使用 Nova
开始使用 Nova 前需要创建 nova 数据库表、创建网络、创建管理员帐号、创建云并联到刚才创建的管理员上:
sudo nova-manage db sync
sudo nova-manage network create 172.16.200.128/25 1 128
为了使实例开始的ip地址为我们局域网可用的ip地址范围内,可用修改fixed_ips这个数据表
将字段reserved先全部保留,以后分配我们的ip地址
mysql -uroot -padmin;
mysql> use nova;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update fixed_ips set reserved=1;
Query OK, 126 rows affected (0.00 sec)
Rows matched: 128  Changed: 126  Warnings: 0

mysql> update fixed_ips set reserved=0 where address in('172.16.200.180','172.16.200.181','172.16.200.182','172.16.200.183','172.16.200.184','172.16.200.185','172.16.200.186','172.16.200.188');
Query OK, 8 rows affected (0.00 sec)
Rows matched: 8  Changed: 8  Warnings: 0

mysql>exit;
注意上面的的ip地址为172.16.200.180-188要改成你自己网络的ip地址
sudo nova-manage user admin chen
export EC2_ACCESS_KEY=dbdfb8f2-d6b4-4ad9-a755-9a88b9418523
export EC2_SECRET_KEY=aaa066fe-64da-42a9-ab83-577d4ba2a817

sudo nova-manage project create mycloud chen

因为多个管理员可以创建多个不同的云,所以某个云的管理员需要特定的权限才能访问和管理自己的 Nova 云,创建权限信息,并解压到自己的目录里,需要注意的是每次使用 nova 管理云的时候都需要读取 novarc 里面的配置信息:
sudo adduser chen
sudo chown -R root:chen /etc/nova
sudo chmod 644 /etc/nova/nova.conf
$ mkdir /home/chen/creds
$ sudo nova-manage project zipfile mycloud chen /home/chen/creds/novacreds.zip

$ cd /home/chen/creds
$ unzip novacreds.zip
$ sudo chown -R chen:chen /home/chen/creds/

$ source /home/chen/creds/novarc

每次用 nova 的时候都要用到 novarc 里面的环境变量,每次 source novarc 很麻烦,所以最好加到 .bashrc 里面:

$ cat  /home/chen/creds/novarc >> /home/chen/.bashrc
$ source /home/chen/.bashrc

再次重启 nova 相关的所有服务:

sudo restart libvirt-bin;
sudo restart nova-network;
sudo restart nova-compute;
sudo restart nova-api;
sudo restart nova-objectstore;
sudo restart nova-scheduler;
sudo restart nova-volume;
sudo restart glance-api;
sudo restart glance-registry

如果一切正常的话,应该可以打印出如下的类似信息:

euca-describe-availability-zones verbose
AVAILABILITYZONE nova available
AVAILABILITYZONE |- node00
AVAILABILITYZONE | |- nova-scheduler enabled :-) 2011-05-22 10:32:31
AVAILABILITYZONE | |- nova-network enabled :-) 2011-05-22 10:32:32
AVAILABILITYZONE | |- nova-compute enabled :-) 2011-05-22 10:32:24

启动第一个实例

启动实例之前需要先上传一个系统模版,我们称之为镜像(image)

wget http://uec-images.ubuntu.com/releases/10.04/release/ubuntu-10.10-server-cloudimg-amd64.tar.gz

注意如果上面的链接说找不到的时候,你可以直接在浏览器里面输入http://uec-images.ubuntu.com/releases/10.04/release/ 。打开后里面有很多的版本的镜像模板,根据自己的需求去选择。
接下来是发布镜像模板
uec-publish-tarball ubuntu-10.10-server-cloudimg-amd64.tar.gz ubunt-server-10.10-64
2011年 10月 10日 星期一 19:57:39 CST: ====== extracting image ======
Warning: no ramdisk found, assuming '--ramdisk none'
kernel : maverick-server-cloudimg-amd64-vmlinuz-virtual
ramdisk: none
image  : maverick-server-cloudimg-amd64.img
2011年 10月 10日 星期一 19:58:02 CST: ====== bundle/upload kernel ======
2011年 10月 10日 星期一 19:58:04 CST: ====== bundle/upload image ======
2011年 10月 10日 星期一 19:59:41 CST: ====== done ======
emi="ami-00000002"; eri="none"; eki="aki-00000001";

列出云里现有的可以加载的镜像,并以某个镜像(比如编号为 ami-00000002)为模版启动一个实例(操作系统):

$ euca-describe-images
chen@ubuntu:~/creds$ euca-describe-images
IMAGE aki-00000001 ubunt-server-10.10-64/maverick-server-cloudimg-amd64-vmlinuz-virtual.manifest.xml available public x86_64 kernel
IMAGE ami-00000002 ubunt-server-10.10-64/maverick-server-cloudimg-amd64.img.manifest.xml available public x86_64 machine aki-00000001

为ssh创建安全认证
euca-add-keypair mykey > mykey.priv
sudo chmod 600 mykey.priv
euca-run-instances -k mykey -t m1.tiny ami-00000002
chen@ubuntu:~/creds$ euca-run-instances -k mykey -t m1.tiny ami-00000002
RESERVATION r-oqeuo76p mycloud default
INSTANCE i-00000001 ami-00000002 scheduling mykey (mycloud, None) 0 m1.tiny 2011-10-10T12:17:27Z unknown zone

检查一下实例是否成功启动和运行:

$ virsh list
Id Name                 State
----------------------------------
  1 instance-00000002    running

查看实例的详细信息可以用euca-describe-intances 命令

访问实例

.授权ping和ssh命令给VMS
euca-authorize -P icmp -t -1:-1 default
euca-authorize -P tcp -p 22 default
---(不能ping或ssh时候,使用以下命令)----
killall dnsmasq 
service nova-network restart

ssh -i mykey.priv ubuntu@172.16.200.182

最后可以终止实例的运行
euca-terminate-instances i-00000002










分享到:
评论

相关推荐

    基于Ubuntu的私有云平台搭建手册

    ### 基于Ubuntu的私有云平台搭建:Eucalyptus Beginner's Guide #### 知识点一:Eucalyptus与Ubuntu私有云构建 **Eucalyptus**(Elastic Utility Computing Architecture for Linking Your Programs To Useful ...

    开源云opennebula中文安装手册

    开源云OpenNebula中文安装手册 OpenNebula 是一个完全开源的工具包,用于搭建私有 IaaS、公共云和混合云。OpenNebula 可以帮助用户快速搭建私有云,然后逐步扩展为混合云或公共云。下面是 OpenNebula 的一些关键...

    开源私有云搭建方案_策划方案.docx

    总的来说,搭建开源私有云涉及的主要知识点包括:云计算的概念与服务类型、虚拟化技术的分类及其在云计算中的作用、Eucalyptus私有云平台的架构和工作原理。通过理解这些内容,可以有效地规划和实施一个基于开源软件...

    企业私有云的建立—基于Ubuntu_Enterprise_Cloud

    本教程将详细介绍如何在Ubuntu 10.04系统上搭建Eucalyptus云平台。 首先,我们需要安装CloudServer,这是UEC的核心组成部分。通过将ubuntu-10.04-server-i386 ISO镜像放入服务器的光驱,重启服务器并从光盘启动。在...

    opennebula安装文档.docx

    OpenNebula 是一个完全开源的工具包,用于搭建私有 IaaS、公共云和混合云。下面是 OpenNebula 安装文档指南的知识点总结: OpenNebula 介绍 OpenNebula 是一个开源工具包,用于搭建私有 IaaS、公共云和混合云。它...

    开源的项目Eucalyptus

    众说周知Amazon EC2是一个公共云的计算平台,属于IaaS(基础设施即服务)这类。现在有一款开源的项目... 更方便的是Ubuntu9.10服务器版已经集成了Eucalyptus这个开源软件,使的搭建企业私有的云计算平台变得方便而简单。

    opennebula安装文档.pdf

    OpenNebula 是一个完全开源的工具包,用于搭建私有 IaaS、公共云和混合云。该工具包提供了虚拟基础设施接口,向用户和管理员提供虚拟化、网络、镜像和物理资源的设置、管理、监控和计费功能。 OpenNebula 可以帮助...

    openstack云平台教学实战

    在这个"OpenStack云平台教学实战"中,我们将深入探讨如何利用OpenStack搭建一个完整的云环境,特别关注nova和neutron这两个关键组件。 首先,让我们了解OpenStack的基本架构。OpenStack由多个相互协作的服务组成,...

    ubuntu的技术资料

    Ubuntu Enterprise Cloud (UEC) 通过 Eucalyptus 构建了一个完整的私有云平台,支持企业级用户构建自己的云计算环境。同时,Ubuntu 还推出了多种工具和服务,帮助企业更好地管理和利用云计算资源。

    openstack:《OpenStack开源云王者归来》

    总的来说,《OpenStack开源云王者归来》这本书会详细讲解如何利用Ubuntu 14.04搭建、配置和管理OpenStack云环境,涵盖了从基础理论到实践操作的各个环节,对于想要深入理解和使用OpenStack的读者来说是一份宝贵的...

    eucalyptus

    ### 通过Eucalyptus简易搭建私有云平台 #### 一、Eucalyptus简介 ...随着云计算技术的不断发展和完善,Eucalyptus等开源云平台也将不断演进,为企业和个人提供更多灵活、高效、安全的云解决方案。

    OpenStack Beginner’s Guide for Ubuntu Natty.pdf

    通过以上知识点的详细解读,我们可以了解到OpenStack的初学者指南是为了帮助用户在Ubuntu Natty上搭建私有云环境,同时涵盖了云计算和Python编程的基本知识,并指明了读者应该如何利用开源社区和资源来提升学习效果...

    openstack在Ubuntu上的安装

    **OpenStack** 是一个开源软件平台,用于构建和管理云端计算服务。它由一系列相互协作的服务组成,能够提供基础设施即服务(IaaS)的能力。本文将详细介绍如何在Ubuntu上安装并配置OpenStack,特别关注于其基本组件...

    openstack-install

    OpenStack是一个开源云计算平台项目,它由多个核心项目组件构成,每个组件可以独立安装,但彼此之间可以协同...而通过官方的安装指南,用户可以一步步地搭建起适合自己的OpenStack云平台,并最终利用它来提供IaaS服务。

    openstack简介

    #### OpenStack:开源云平台的先驱 OpenStack,一个由NASA(美国国家航空航天局)与Rackspace联合研发的开源项目,自诞生以来便成为了IaaS(基础设施即服务)领域的领军者。它不仅为公共与私有云的构建与管理提供了...

    新浪云计算实践.pptx

    OpenStack是一个由Rackspace和NASA联合发起的项目,旨在为公共和私有云提供商提供一个通用的开源云平台。它采用了Apache 2.0许可证,强调开放设计、开放开发和开放社区,并设有OpenStack基金会来推动其发展。...

    OpenStack 开发环境搭建

    OpenStack 是一个开源的云计算平台,它允许用户创建和管理基础设施即服务(IaaS)环境。这个项目由全球各地的贡献者共同维护,提供了一整套组件,用于构建私有云和公有云。要开始在 OpenStack 上进行开发工作,首先...

    Eucalyptus 安装 配置

    **Ubuntu Enterprise Cloud (UEC)** 是由Ubuntu组织和Eucalyptus合作推出的企业级云计算解决方案,包含了Ubuntu Server Edition、Eucalyptus以及一系列由Canonical提供的开源软件,旨在简化云计算平台的部署和配置...

    openstack-install-guide-apt-havana.zip_openstack

    OpenStack是一个开源的云计算平台,用于构建私有云和公有云服务。它由一系列相互协作的服务组成,这些服务提供基础设施即服务(IaaS)功能,包括计算、存储和网络资源的管理。在本安装指南中,我们将专注于使用APT包...

Global site tag (gtag.js) - Google Analytics