设为首页 收藏本站
查看: 1217|回复: 0

[经验分享] 【转载】VirtualBox中双虚拟机安装部署OpenStack指南

[复制链接]

尚未签到

发表于 2015-4-12 09:15:53 | 显示全部楼层 |阅读模式
  经过近5个小时的努力,以及高手的热心帮助下,终于完成了OpenStack的安装与部署。在安装与部署过程中,遇到几个问题,而且官方文档中,也有几处错误与遗漏之处。为了让以后的朋友们,在遇到类似问题时,少走弯路,特发此文,下面进入正题。
  
环境篇

  本方案是用VirtualBox虚拟两台服务器,在上面进行安装,其中一台做为主控服务器,安装glance,nova等主要功能,同时也充当一个计算节点node提供nova-compute服务,我们称之为Server1,另外一台做为计算服务器,只安装nova-compute服务,称为Server2。网络方面,本机位于局域网192.168.1.0中,通过192.168.1.1网关共享上网。
  先用VirtualBox生成两台服务器,分别命令为"OpenStack_Server1"和"OpenStack_Server2",配置选默认即可,操作系统选"Linux",版本选"Ubuntu (64bit)",内存建议选1G,硬盘建议32G。虚拟机创建后,还需要为每台服务器设置一下网络配置。首先,将网卡1"Adapter 1"的连接方式改为"Bridged Adapter"模式,接着再启动网卡2"Adapter 2",并将连接方式改为"Internal"模式。双网卡是为了更高效的传输数据,同时能够有效的分流内部控制数据,与外部网络数据。网卡1是用来连接外网的(在本例中将192.168.1.0当成外网),网卡2是用来连接内网的(本例中内网为 192.168.3.0)。因为内网只需要在各个虚拟服务器之间传输数据,所以将连接模式选为"Internal"。 DSC0000.jpg
  创建并配置好虚拟机后,直接在两台服务器上分别安装"ubuntu-11.10-server-amd64"版本。安装时统一指定登录用户名"localadmin",密码自定,设置eth0为主网卡,并且确保能够连接到互联网,在可选组件中,所以的组件都可以不选,最多只安装"Open SSH"即可。在安装Server1特别需要注意的是,官方建议不要用默认分区的办法,使用手动分区,并且为nova-volume服务专门创建一块LVM类型分区。
  
Server1

  本服务器,作为OpenStack的主控服务器,需要安装很多的组件,并且官方文档中也存在不少错误之处,我会一一为大家指出。
  在安装完成基本的Ubuntu操作系统后,更新组件到最新版本。运行如下命令:
  sudo apt-get update
  sudo apt-get upgrade
  安装bridge-utils:
  sudo apt-get install -y bridge-utils
  重启服务器,并登录系统。
  
  网络设置
  修改/etc/network/interfaces文件如下:
  auto lo
  iface lo inet loopback
  auto eth0
  iface eth0 inet static
    address 192.168.1.102
    netmask 255.255.255.0
    broadcast 10.10.10.255
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1
  auto eth1
  iface eth1 inet static
    address 192.168.3.1
    netmask 255.255.255.0
    network 192.168.3.0
    broadcast 192.168.3.255
  重启metwork
  sudo /etc/init.d/networking restart
  NTP Server 设置
  NTP主要是为了在openstack系统内部各个服务器之间同步时间的一个服务。主控机跟网络时间服务器同步,其他机器跟主控机同步。安装命令如下:
  sudo apt-get install -y ntp
  安装后,修改配置文件/etc/ntp.conf如下:
  server ntp.ubuntu.com
  server 127.127.1.0
  fudge 127.127.1.0 stratum 10
  修改完成后,重启服务
  sudo /etc/init.d/ntp restart
  数据库设置
  OpenStack支持3种数据库,Mysql,PostgreSql,SQLite,测试环境一般用SQLite,不过本文采用MySql方式。
  首先安装mysql
  sudo apt-get install -y mysql-server
  为mysql的root用户创建一个密码"mygreatsecret",此处与官方文档保持一致
  打开配置文件 /etc/mysql/my.cnf ,修改绑定地址,并添加一个参数如下:
  bind-address = 0.0.0.0
  skip-name-resolve
  skip-name-resolve参数非常重要,如果不添加的话,当使用ip地址连接mysql时,会导致验证时间较长,超过15秒,而这会导致nova-manage的某些操作报"ConnectTimeOut"错误。  官方遗漏
  安装python-mysqldb组件,命令如下
  sudo apt-get install -y python-mysqldb
  python-mysqldb这个组件是必须要安装的,否则启动glance服务会报错。  官方遗漏
  重启服务
  sudo restart mysql
  Glance安装设置
  Glance用来管理运行实例所需要的操作系统镜像。安装命令如下:
  sudo apt-get install -y glance
  Glance默认使用SQLite做为数据库管理系统,如果用的是这种数据库,则不需要设置,因为本例中使用Mysql,所以需要做如下操作:  
  sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE glance;'
  sudo mysql -uroot -pmygreatsecret -e 'CREATE USER glancedbadmin;'
  sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON glance.* TO 'glancedbadmin'@'%' ;"
  sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'glancedbadmin'@'%' =
PASSWORD('glancesecret');"
  上面的操作,主要是创建了一个数据库glance,一个操作员glancedbadmin,对操作员授权及设置密码,操作完成后,还需要修改glance的配置文件 /etc/glance/glance-registry.conf 如下:
  sql_connection = mysql://glancedbadmin:glancesecret@192.168.1.102/glance
  修改完成后,重启服务
  sudo restart glance-registry
  如果服务启动不成功,很大可能是因为数据库连接没有设置正确,或者操作员没有创建或者没有授权,此时可以直接在命令行连接mysql测试一下操作员是否能正常登录。还有一种可能是没有安装python-sqldb组件,参见前面"数据库设置"部分。
  Nova安装配置
  首先,安装所需组件:
  sudo apt-get install -y rabbitmq-server nova-common nova-doc python-nova nova-api nova-network nova-volume nova-objectstore nova-scheduler nova-compute
  安装euca2ools组件包:
  sudo apt-get install -y euca2ools
  安装unzip:
  sudo apt-get install -y unzip
  设置数据库,以便nova使用,需要运行以下命令:
  sudo mysql -uroot -pmygreatsecret -e 'CREATE DATABASE nova;'
  sudo mysql -uroot -pmygreatsecret -e 'CREATE USER novadbadmin;'
  sudo mysql -uroot -pmygreatsecret -e "GRANT ALL PRIVILEGES ON nova.* TO 'novadbadmin'@'%' ;"
  sudo mysql -uroot -pmygreatsecret -e "SET PASSWORD FOR 'novadbadmin'@'%' = PASSWORD('novasecret');"
  上述命令主要是创建了一个数据库nova,一个操作员novadbadmin,对操作员授权及设置密码,操作完成后,还需要修改nova的配置文件 /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=192.168.1.102
  --rabbit_host=192.168.1.102
  --cc_host=192.168.1.102
  --nova_url=http://192.168.1.102:8774/v1.1/
  --fixed_range=192.168.0.0/16
  --network_size=8
  --routing_source_ip=192.168.1.102
  --sql_connection=mysql://novadbadmin:novasecret@192.168.1.102/nova
  --glance_api_servers=192.168.3.1:9292
  --image_service=nova.image.glance.GlanceImageService
  --iscsi_ip_prefix=192.168.
  --vlan_interface=br100
  --public_interface=eth0
    上面的红色代码需要注意,在官方文档中glance_api_servers地址是错误
  修改完成后,再安装iscsitarget,并设置为启用状态,并重启服务,命令如下:
  sudo apt-get -y install iscsitarget iscsitarget-dkms
  sudo sed -i 's/false/true/g' /etc/default/iscsitarget
  sudo service iscsitarget restart
  如果启动服务失败,可以尝试 sudo restart iscsitarget方式。
  创建物理分卷:
  sudo pvcreate /dev/sda5
  此处可能每个人的情况不同,一般都是 /dev/sda5 or /dev/sda6
  创建分卷组:
  sudo vgcreate nova-volumes /dev/sda5
  修改nova配置目录及文件权限和所有者:
  sudo chown -R root:nova /etc/nova
  sudo chmod 644 /etc/nova/nova.conf
  重启所有相关服务:
  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数据库结构:
  sudo nova-manage db sync
  分配私有网络IP池:
  sudo nova-manage network create private 192.168.4.0/24 1 256
DSC0001.jpg
  如果没有在前面mysql配置文件中添加skip-name-resolve参数,这里就会报上图的错,这个错误害我浪费了不少时间,才找到原因。就是因为mysql连接时,不加参数,导致连接时间需要15秒以上,而nova-manage的连接超时时间是10秒,所以导致一直报错。
  分配公网IP池:
  sudo nova-manage floating create --ip_range=192.168.1.224/27
  创建nova管理用户及项目:
  sudo nova-manage user admin novaadmin
  sudo nova-manage project create proj novaadmin
  重启所有相关服务:
  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
  创建证书,并做相应配置:
  mkdir /home/localadmin/creds
  sudo nova-manage project zipfile proj novaadmin /home/localadmin/creds/novacreds.zip
  cd /home/localadmin/creds
  unzip novacreds.zip
  sudo chown localadmin:localadmin /home/localadmin/creds/ -R
  查看相关密钥:
  sudo nova-manage user exports novaadmin
  将输出的密钥与novarc文件中的密钥进行对比,如果不同,则修改novarc文件,并重新生成:
  export EC2_ACCESS_KEY=c043916c-9a0c-4f91-ad6c-4b30908b6c77
  export EC2_SECRET_KEY=d0ac688e-02f3-48f3-b758-96d886461ace
  是否等于 novarc文件中
  export EC2_ACCESS_KEY="c043916c-9a0c-4f91-ad6c-4b30908b6c77:proj"
  不同时,修改novarc并重新生成:
  source /home/localadmin/creds/novarc
  
  至此,Server1安装配置全部完成,你可以使用如下命令,查看是否运行正常:
  euca-describe-availability-zones verbose
DSC0002.jpg
  如果系统运行正常的话,则如上图显示类似,共有4个功能模块(network,compute,scheduler,volume),运行在Server1上。
  Swift部分将在以后进行安装测试,并给大家分享,它并非OpenStack云计算的必要组件,所以本文不涉及。
  
Server2

  Server2只是用来做为计算节点的,所以安装时非常简单。
  在安装完成基本的Ubuntu操作系统后,更新组件到最新版本。运行如下命令:
  sudo apt-get update
  sudo apt-get upgrade
  安装bridge-utils:
  sudo apt-get install -y bridge-utils
  重启服务器,并登录系统。
  网络设置
  修改/etc/network/interfaces文件如下:
  auto lo
  iface lo inet loopback
  auto eth0
  iface eth0 inet static
   address 192.168.1.103
   netmask 255.255.255.0
   broadcast 10.10.10.255
   gateway 192.168.1.1
   dns-nameservers 192.168.1.1
  auto eth1
  iface eth1 inet static
   address 192.168.3.2
   netmask 255.255.255.0
   network 192.168.3.0
   broadcast 192.168.3.255
  重启metwork
  sudo /etc/init.d/networking restart
  NTP Client 设置
  安装命令如下:
  sudo apt-get install -y ntp
  Server2的NTP 是用来跟Server1同步的,设置上稍有不同,修改配置文件/etc/ntp.conf如下:
  server 192.168.1.102
  修改完成后,重启服务
  sudo /etc/init.d/ntp restart
  Nova安装配置
  首先,安装所需组件:
  sudo apt-get install -y nova-common python-nova nova-compute vlan
  安装euca2ools组件包:
  sudo apt-get install -y euca2ools
  安装unzip:
  sudo apt-get install -y unzip
  修改nova的配置文件 /etc/nova/nova.conf 如下(和Server1上的文件基本类似):
  --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=192.168.1.102
  --rabbit_host=192.168.1.102
  --cc_host=192.168.1.102
  --network_size=8
  --routing_source_ip=192.168.1.102
  --sql_connection=mysql://novadbadmin:novasecret@192.168.1.102/nova
  --glance_api_servers=192.168.3.1:9292
  --image_service=nova.image.glance.GlanceImageService
  --iscsi_ip_prefix=192.168.
  --vlan_interface=br100
  重启相关服务:
  sudo service restart nova-compute
  
  至此Server2的配置也已经全部完成。此时我们再在Server1上检查一下openstack运行状态,输入命令
  euca-describe-availability-zones verbose
DSC0003.jpg
  你会发现,Server2已经加入到云里了,因为Server2是计算节点,所以他上面只运行了一个compute服务。
  
  好了,OpenStack的安装与部署至此就初步完成了,本文对官方文档中,几个错误和遗漏的地方,也专门用红字进行了标记,以便大家安装时出现类似的错误。不过安装部署完成,只是OpenStack万里长征第一步。后面我还会继续进行实例的生命周期管理,以及其他的一些功能试验。也会写一些文章,记录过程,也方便大家参考。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56178-1-1.html 上篇帖子: Openstack G版 Baremetal 下篇帖子: [转]使用eclipse+pydev远程调试OpenStack
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表