Chinaunix首页 | 论坛 | 博客
  • 博客访问: 644725
  • 博文数量: 98
  • 博客积分: 3145
  • 博客等级: 中校
  • 技术积分: 1902
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-15 12:52
文章分类
文章存档

2021年(1)

2020年(1)

2016年(8)

2015年(3)

2014年(1)

2013年(5)

2012年(4)

2011年(9)

2010年(12)

2009年(42)

2008年(12)

我的朋友

分类: LINUX

2012-09-24 15:55:52

说明

Openstack 是一款开源的云计算系统,本文档将介绍一种企业开源云的应用方案,此方案是使用openstack 搭建私有云,利用iptables nat转发使用公网访问私有云。

结构如下:


 

图1


2

安装openstack compute

安装前规划

安装openstack前需要对openstack进行规划:

服务器的规划:

服务器

用途

说明

121.194.3.225/232

Compute controller

用于控制compute以及NAT转发控制,另外安装web管理API

121.194.3.215

Compute node /storerage

Compute 节点,云存储共享

网络的规划:

网络

用途

说明

192.168.0.0/24

云项目cernet的私有IP

使用flatdhcp模式

192.168.1.0/24

云项目cernet2的私有IP

使用flatdhcp模式

注意:

  Openstack 支持3种网络模式,flat/flat dhcp/vlan 其中flat模式为默认模式,需要在网络端口配置网桥,使用网桥将私网和外网连接通讯,本文档为了方便使用的是flatdhcp模式,这种模式的私网IP地址是自动分配的。

安装准备

  2台服务器都需要安装ubuntu10 server 版本,并保证网络畅通。需要提前安装数据库mysql

安装软件

       安装可以有很多种方法,官方提供的有脚本安装和手工安装,为了了解整个过程,这里采用手工安装服务器系统。下面将介绍一步一步安装的过程:

2.3.1 安装基本包

Nova PPA配置:

#apt-get install python-software-properties

#add-apt-repository ppa:nova-core/trunk

#apt-get update

2.3.2 配置nova

#addgroup nova

 

2.3.3 安装数据库

安装MYSQL前设置:

bash

MYSQL_PASS=nova

cat <

mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS

mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS

mysql-server-5.1 mysql-server/start_on_boot boolean true

MYSQL_PRESEED

 

#apt-get install mysql-server

设置mysqlroot密码为nova

#sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf

#service mysql restart

#mysql -uroot -pnova -e 'CREATE DATABASE nova;'

#mysql -uroot -pnova -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;"

#mysql -uroot -pnova -e "SET PASSWORD FOR 'root'@'%' = PASSWORD('nova');"

2.3.4 安装云控制端

#apt-get install -y rabbitmq-server

#apt-get install -y python-greenlet python-mysqldb

#apt-get install -y nova-common nova-doc python-nova nova-api

#apt-get install -y nova-network nova-objectstore nova-scheduler nova-compute

#apt-get install -y euca2ools unzip

# modprobe kvm

# modprobe nbd

#chgrp kvm /dev/kvm

#chmod g+rwx /dev/kvm

 

2.3.5 安装compute node

node服务器上,安装所有的control端的包

#apt-get install python-greenlet python-mysqldb python-nova nova-common nova-doc nova-api nova-network nova-objectstore nova-scheduler nova-compute rabbitmq-server euca2ools unzip

重启服务:

#libvirtd restart; restart nova-network; restart nova-compute;

#restart nova-api; restart nova-objectstore; restart nova-scheduler

配置nova.conf

#addgroup nova

添加配置信息:

--daemonize=1

--s3_host=121.194.3.215

--rabbit_host=121.194.3.215

--cc_host=121.194.3.215

--ec2_url=

--fixed_range=192.168.0.0/12

--network_size=8

--FAKE_subdomain=ec2

--routing_source_ip=121.194.3.215

--sql_connection=mysql://root:nova@121.194.3.215/nova

--network_manager=nova.network.manager.FlatDHCPManager

--flat_network_dhcp_start=192.168.1.2

--public_interface=eth0

--flat_interface=eth0

--routing_source_ip=121.194.3.215

--flat_injected=False

 

其中121.194.3.215

#chown -R root:nova /etc/nova

#chmod 644 /etc/nova/nova.conf

配置compute 2.4.1环境配置

#nova-manage db sync

创建管理用户

#nova-manage user admin root

创建project

#nova-manage project create cernet root

创建network

#nova-manage network create 192.168.1.0/24 1 255

2.4.2 认证配置

#mkdir -p /root/creds

#nova-manage project zipfile cernet root /root/creds/novacreds.zip

#unzip /root/creds/novacreds.zip -d /root/creds/

# . /root/creds/novarc

或者将novarc的环境变量加入到系统初始环境变量文件中

#cat /root/creds/novarc >> ~/.bashrc

#source ~/.bashrc

2.4.3 权限配置

基本服务:

#euca-authorize -P icmp -t -1:-1 default

#euca-authorize -P tcp -p 22 default

对外扩展服务(可以根据需要定制):

#euca-authorize -P tcp –p 80 default

#euca-authorize -P tcp –p 21 default

#euca-authorize -P tcp –p 8080 default

#euca-authoriz -P tcp –p 3306 default

配置完毕后重启服务:

#killall dnsmasq

#service nova-network restart

安装images

下载

安装:

# uec-publish-tarball ubuntu-10.04-server-uec-amd64.tar.gz dub-bucket x86_64

查看安装的images

# euca-describe-images

可以看到$emi

操作

创建key:

#euca-add-keypair mykey > mykey.priv

#chmod 600 mykey.priv

启动:

# euca-run-instances $emi -k mykey -t m1.tiny

查看instance

#euca-describe-instances

登录instance

#ssh -i /root/creds/mykey.priv root@instanceip

删除instance

# euca-terminate-instances

安装openstack compute node 管理界面安装配置 下载更新包

#apt-get install bzr

更新包:

#mkdir src

#cd src

# mkdir django-nova

#cd django-nova

#bzr init-repo .

# bzr branch lp:django-nova/trunk

#cd ..

# mkdir openstack-dashboard

# cd openstack-dashboard

# bzr init-repo .

# bzr branch lp:openstack-dashboard trunk

安装virtualenv

# easy_install virtualenv

安装接口

# python tools/install_venv.py

#cd local

# cp local_settings.py.example local_settings.py

#vi local_settings.py

找到选项修改成:(其他的不变)

NOVA_DEFAULT_ENDPOINT = ''

NOVA_DEFAULT_REGION = 'nova'

NOVA_ACCESS_KEY = '3305597a-baec-499a-9ce8-9743037683ff:cernet'

NOVA_SECRET_KEY = '9013b44f-7f74-4c67-a743-49c364e8289e'

NOVA_ADMIN_USER = 'root'

NOVA_PROJECT = 'cernet'

# tools/with_venv.sh dashboard/manage.py syncdb

根据提示进行配置,需要设置界面管理的超级账号和密码,这里设置为root/welldone

安装完成界面如下:



最后一行提示为No fixtures found.

启动接口:

#tools/with_venv.sh dashboard/manage.py runserver 0.0.0.0:80

访问接口:

打开界面如下:

映射
 准备工作

网络准备:

需要在公网端口上绑定多个IP,使用NAT方式访问网络

系统配置:

#sysctl -w net.ipv4.ip_forward=1

重启系统

#init 6

内网访问外网

#iptables -t nat -A SNAT -s 192.168.0.8/32 -j SNAT --to-source 121.194.3.232

说明:

192.168.0.8instance 的私网IP地址

121.194.3.232为绑定到公网端口的IP地址

外网访问内网

#iptables -t nat -A OUTPUT -p tcp -d 121.194.3.232 --dport 80 -j DNAT --to-destination 192.168.0.8:80

#iptables -t nat -A PREROUTING -p tcp -d 121.194.3.232 --dport 80 -j DNAT --to-destination 192.168.0.8:80

如果提示没有SNAT OUTPUTchain,使用下面命令

#nova-manage floating create ubuntu-server225 121.194.3.0/26

注意:ubuntu-server225为服务器的hostname

# euca-allocate-address 121.194.3.232

# euca-associate-address -i i-1 121.194.3.232

#iptables –t nat -A nova-network-OUTPUT -d 121.194.3.232/32 –p tcp –dport 80 -j DNAT --to-destination 192.168.1.2:80
#iptables –t nat -A nova-network-PREROUTING -d 121.194.3.232/32 –p tcp –dport 80 -j DNAT --to-destination 192.168.1.2:80

说明:

80端口映射到外部进行访问,也可以全部映射,一般不建议全部端口映射

全部映射:

-A nova-network-OUTPUT -d 121.194.3.232/32 -j DNAT --to-destination 192.168.1.2
-A nova-network-PREROUTING -d 121.194.3.232/32 -j DNAT --to-destination 192.168.1.2

#iptables -t nat -A OUTPUT -d 121.194.3.232/32 -j DNAT --to-destination 192.168.0.8

#iptables -t nat -A PREROUTING -d 121.194.3.232/32 -j DNAT --to-destination 192.168.0.8

一些常见安装问题 检查CPU是否支持kvm

#kvm-ok

如果不支持:

INFO: Your CPU does not support KVM extensions

KVM acceleration can NOT be used

如果支持:

INFO: Your CPU supports KVM extensions

INFO: /dev/kvm exists

KVM acceleration can be used

如果进行了NAT转发后还是外部无法访问

可以执行下面命令进行尝试

#nova-manage floating create my-hostname 121.194.3.232/32
#euca-allocate-address 121.194.3.232
#euca-associate-address -i i-1 121.194.3.232

 


阅读(5369) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~