OpenStack是由Rackspace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于Amazon EC2和S3的云基础架构服务(Infrastructure as a Service,IaaS)。OpenStack包含两个主要模块:Nova和Swift,前者是NASA开发的虚拟服务器部署和业务计算模块;后者是Rackspack开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack是开源项目,除了有Rackspace和NASA的大力支持外,后面还有包括Dell、Citrix、Cisco、Canonical这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台Eucalyptus的态势。
OpenStack是Python 2.6写的,CentOS 5.6上默认的是Python 2.4的环境并且还有很多依赖关系不容易升级到2.6,所以在Ubuntu上安装会简单一些,而且Ubuntu是OpenStack的官方首选系统,文档都是按Ubuntu写的,所以这里VPSee采用最新的Ubuntu 11.04 Server 64bit版本来安装和配置OpenStack Nova。
配置网络
在安装完基本的Ubuntu 11.04 Server系统后升级和更新整个系统,安装完bridge-utils包后重启系统:
以下是引用片段: $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install bridge-utils $ sudo reboot |
配置网桥:
以下是引用片段: $ sudo vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.16.39.111 netmask 255.255.254.0 gateway 172.16.38.1 auto br100 iface br100 inet static bridge_ports eth1 bridge_stp off bridge_maxwait 0 bridge_fd 0 address 192.168.0.1 netmask 255.255.0.0 broadcast 192.168.255.255 |
关于FlatManager网络配置可参考:OpenStack Nova安装后的FlatManager网络配置。
安装NTP服务
OpenStack Nova需要NTP服务器来保持所有节点服务器(Cloud Compute)的时间同步,所以需要在前端控制服务器(Cloud Controller)上安装NTP服务器,然后在节点服务器上安装NTP客户端保持与前端的同步:
以下是引用片段: $ sudo apt-get install ntp $ sudo vi /etc/ntp.conf server 127.127.1.0 fudge 127.127.1.0 stratum 10 $ 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 … $ sudo /etc/init.d/mysql restart |
创建一个名为nova的数据库,并设置root从任何IP访问的权限和密码:
以下是引用片段: $ sudo mysql -uroot -ppassword -e ‘CREATE DATABASE nova;’ $ sudo mysql -uroot -ppassword -e “GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION;” $ sudo mysql -uroot -ppassword -e “SET PASSWORD FOR ‘root’@’%’ = PASSWORD(‘password’);” |
安装Glance镜像服务
Glance是个镜像服务器,用来给OpenStack Nova提供操作系统镜像(image)服务,提供可选择的操作系统模版(镜像)。
以下是引用片段: $ sudo apt-get install glance |
安装OpenStack Nova
OpenStack Nova已经进入Ubuntu 11.04源,所以直接安装就可以了,不必源码安装:
以下是引用片段: $ sudo apt-get install rabbitmq-server nova-common nova-doc python-nova nova-api nova-network nova-volume 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.39.111 –rabbit_host=192.168.0.1 –cc_host=192.168.0.1 –ec2_url=http://172.16.39.111:8773/services/Cloud –fixed_range=192.168.0.0/16 –network_size=8 –FAKE_subdomain=ec2 –routing_source_ip=192.168.0.1 –sql_connection=mysql://root:password@172.16.39.111/nova –glance_host=192.168.0.1 –image_service=nova.image.glance.GlanceImageService |
重启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 192.168.0.0/24 1 255 $ sudo nova-manage floating create 10.10.10.2 10.10.10.224/27 $ sudo nova-manage user admin vpsee $ sudo nova-manage project create mycloud vpsee |
因为多个管理员可以创建多个不同的云,所以某个云的管理员需要特定的权限才能访问和管理自己的Nova云,创建权限信息,并解压到自己的目录里,需要注意的是每次使用nova管理云的时候都需要读取novarc里面的配置信息:
以下是引用片段: $ mkdir /home/vpsee/creds $ sudo nova-manage project zipfile mycloud vpsee /home/vpsee/creds/novacreds.zip $ cd /home/vpsee/creds $ unzip novacreds.zip $ sudo chown -R vpsee:vpsee /home/vpsee/creds/ $ source /home/vpsee/creds/novarc |
每次用nova的时候都要用到novarc里面的环境变量,每次source novarc很麻烦,所以最好加到.bashrc里面:
以下是引用片段: $ cat /home/vpsee/creds/novarc >> /home/vpsee/.bashrc $ source /home/vpsee/.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 |
如果出现这个问题,检查novarc这个文件看看EC2_URL、S3_URL、NOVA_URL这三行是不是有两个连续的 http://?
以下是引用片段: $ euca-describe-availability-zones verbose invalid literal for int() with base 10: ” $ vi /home/vpsee/creds/novarc … export EC2_URL=”http://172.16.39.100:8773/services/Cloud” export S3_URL=”http://172.16.39.100:3333″ … export NOVA_URL=”http://172.16.39.100:8774/v1.1/” … |
删除一个http://就可以了:
以下是引用片段: $ vi /home/vpsee/creds/novarc … export EC2_URL=”http://172.16.39.100:8773/services/Cloud” export S3_URL=”http://172.16.39.100:3333″ … export NOVA_URL=”http://172.16.39.100:8774/v1.1/” … |
启动第一个实例
启动实例之前需要先上传一个系统模版,我们称之为镜像(image),自己制作操作系统镜像有点麻烦,这里直接使用一个已经做好的 Ubuntu 10.10 版本镜像,下载已经做好的镜像文件并上传到镜像服务器(这里镜像服务器和前端服务器在同一台物理服务器上):
以下是引用片段: $ wget http://c0179148.cdn1.cloudfiles.rackspacecloud.com/ubuntu1010-UEC-localuser-image.tar.gz $ uec-publish-tarball ubuntu1010-UEC-localuser-image.tar.gz ubuntu1010-bucket x86_64 |
列出云里现有的可以加载的镜像,并以某个镜像(比如编号为 ami-00000003)为模版启动一个实例(操作系统):
以下是引用片段: $ euca-describe-images IMAGE aki-00000001 ubuntu1010-bucket/vmlinuz-2.6.32-28-server.manifest.xml available public x86_64 kernel IMAGE ari-00000002 ubuntu1010-bucket/initrd.img-2.6.32-28-server.manifest.xmavailable public x86_64 ramdisk IMAGE ami-00000003 ubuntu1010-bucket/maverick-server-uec-amd64.img.manifest.xml available public x86_64 machine aki-00000001 ari-00000002 $ euca-add-keypair mykey > mykey.priv $ euca-run-instances -k mykey -t m1.tiny ami-00000003 |
检查一下实例是否成功启动和运行:
以下是引用片段: $ virsh list Id Name State ———————————- 1 instance-00000001 running |
访问实例
启动实例后怎么访问呢?和访问VPS一样,需要IP地址然后ssh访问,还记得上面的网络配置么,新创建的系统将按照192.168.0.x的形式分配IP,所以192.168.0.3就是刚刚euca-run-instances创建的实例的IP地址:
以下是引用片段: $ ssh ubuntu@192.168.0.3 |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
OpenStack走过沉淀期:中国市场迎来新格局
开源OpenStack技术发展至今,市场的讨论声音已经越来越少;在这种情况下,不少人开始提出质疑:“OpenStack是否已经不行了?”。然而,过去11月份的OpenStack悉尼峰会却用事实给出了否定的答案。
-
OpenStack不行了吗?悉尼峰会回答你
金融行业并不是OpenStack未来发展的全部,在我看来,这次悉尼峰会的主要任务,应该是要回答“OpenStack不行了吗?”。
-
OpenStack的Pike和Queens版本:你有什么期待?
虽然SDN具有为混合云优化企业网络的潜力,但是它的技术及其周围的生态系统仍处于不成熟的阶段。
-
OpenStack本地存储选项的现在与未来
SSD、HDD和NVMe都能为OpenStack部署提供了存储服务。但他们各自的优势和哪里,并且这些技术将如何演进?