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

[经验分享] OpenStack、compute组件

[复制链接]

尚未签到

发表于 2018-6-1 07:53:23 | 显示全部楼层 |阅读模式
  一、Compute(Nova)简介

  1、Nova简介

        管理VM的整个生命周期,主要职责包括启动、调度VMs;
  Supporting Service:

                            AMQP:Advanced Messaging Queue Protocol
                                 开源解决方案:Apache Qpid(小规模),RabbitMQ(中,1千个物理节点),ZeroMQ(大),
                            Database:
  

  2、Nova的组件
   DSC0000.png
  API:nova-api,nova-api-metadata
  Compute Core:nova-compute,nova-scheduler,nova-conductor
  Network for VMs:(用不到,由Netron提供)nova-network,nova-dhcpagent
  Console Interface:nova-consoleauth,nova-novncproxy,nova-x***cproxy,nova-cert

  Command line and other interfaces:nova,nova-manage
  

  Compute服务的角色:
                            管理角色:
                            hypervisor:负责运行虚拟机
  
  二、安装Nova
  1、安装消息队列服务
[root@Node1 ~]# yum install qpid-cpp-server -y
[root@Node1 ~]# rpm -ql qpid-cpp-server
/etc/qpid/qpidd.acl
/etc/qpidd.conf
/etc/rc.d/init.d/qpidd
/etc/sasl2/qpidd.conf
/usr/lib64/libqpidbroker.so.8
/usr/lib64/libqpidbroker.so.8.0.0
/usr/lib64/qpid/daemon
/usr/lib64/qpid/daemon/acl.so
/usr/lib64/qpid/daemon/replicating_listener.so
/usr/lib64/qpid/daemon/replication_exchange.so
/usr/sbin/qpidd
/usr/share/man/man1/qpidd.1.gz
/var/lib/qpidd
/var/lib/qpidd/qpidd.sasldb
/var/run/qpidd  修改qpidd配置文件将auth设置为no:
[root@Node1 qpid]# vi /etc/qpidd.conf
auth=no  启动qpidd:
[root@Node1 ~]# service qpidd start
Starting Qpid AMQP daemon:                                 [  OK  ]
[root@Node1 ~]# chkconfig qpidd on
[root@Node1 ~]# netstat -nlptu|grep qpidd
tcp        0      0 0.0.0.0:5672                0.0.0.0:*                   LISTEN      6608/qpidd         
tcp        0      0 :::5672                     :::*                        LISTEN      6608/qpidd
[root@Node1 ~]# chkconfig qpidd on  

  2、Install Compute Controller Services

   1)安装相应的软件包
[root@Node1 ~]# yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient  2)创建数据库并授权

mysql> create database nova character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on nova.* to 'nova'@'%' identified by 'nova';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on nova.* to 'nova'@'localhost' identified by 'nova';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)  3)配置/etc/nova/nova.conf

[root@Node1 nova]# vi nova.conf
#rpc_backend=rabbit              #找到并修改
rpc_backend=qpid
#qpid_hostname=localhost         #找到并修改      
qpid_hostname=192.168.10.1
#my_ip=10.0.0.1
my_ip=192.168.10.1
#vncserver_listen=127.0.0.1
vncserver_listen=192.168.10.1
# The address to which proxy clients (like nova-xvpvncproxy)
# should connect (string value)
#vncserver_proxyclient_address=127.0.0.1
vncserver_proxyclient_address=192.168.10.1  同步数据库:
[root@Node1 nova]# su -s /bin/sh -c "nova-manage db sync" nova   #注意db sync没下划线
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> show tables;
+--------------------------------------------+
| Tables_in_nova                             |
+--------------------------------------------+
| agent_builds                               |  4)创建nova用户
[root@Node1 ~]# keystone user-create --name=nova --pass=nova
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |                                  |
| enabled  |               True               |
|    id    | b56531230b124b7ebbe1b9e72502a907 |
|   name   |               nova               |
| username |               nova               |
+----------+----------------------------------+
[root@Node1 ~]# keystone user-role-add --user=nova --role=admin --tenant=service
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)  修改配置文件:
[root@Node1 nova]# vi nova.conf

#auth_strategy=noauth         #找到并修改
  auth_strategy=keystone

[keystone_authtoken]        
#
# Options defined in keystoneclient.middleware.auth_token
#
# Prefix to prepend at the beginning of the path (string
# value)
#auth_admin_prefix=
auth_protocol=http
auth_url=http://controller:5000
auth_host=controller
auth_port=35357
auth_user=nova
admin_tenant_name=service
admin_password=nova   5)在keystone中添加glance的service endpoint:
[root@Node1 nova]# keystone service-create --name=nova --type=compute \
> --description="OpenStack Compute"
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |        OpenStack Compute         |
|   enabled   |               True               |
|      id     | e7acbab65f9647e7a3f691f990e43eb5 |
|     name    |               nova               |
|     type    |             compute              |
+-------------+----------------------------------+
[root@Node1 nova]# keystone endpoint-create \
> --service-id=$(keystone service-list | awk '/ compute / {print $2}') \
> --publicurl=http://controller:8774/v2/%\(tenant_id\)s \
> --internalurl=http://controller:8774/v2/%\(tenant_id\)s \
> --adminurl=http://controller:8774/v2/%\(tenant_id\)s
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
+-------------+-----------------------------------------+
|   Property  |                  Value                  |
+-------------+-----------------------------------------+
|   adminurl  | http://controller:8774/v2/%(tenant_id)s |
|      id     |     990796a3ab404d0f816b6916005c57df    |
| internalurl | http://controller:8774/v2/%(tenant_id)s |
|  publicurl  | http://controller:8774/v2/%(tenant_id)s |
|    region   |                regionOne                |
|  service_id |     e7acbab65f9647e7a3f691f990e43eb5    |
+-------------+-----------------------------------------+  6)启动nova服务
[root@Node1 ~]# service openstack-nova-api start
Starting openstack-nova-api:                               [  OK  ]
[root@Node1 ~]# service openstack-nova-cert start
Starting openstack-nova-cert:                              [  OK  ]
[root@Node1 ~]# service openstack-nova-consoleauth start
Starting openstack-nova-consoleauth:                       [  OK  ]
[root@Node1 ~]# service openstack-nova-scheduler start
Starting openstack-nova-scheduler:                         [  OK  ]
[root@Node1 ~]# service openstack-nova-conductor start
Starting openstack-nova-conductor:                         [  OK  ]
[root@Node1 ~]# service openstack-nova-novncproxy start
Starting openstack-nova-novncproxy:                        [  OK  ]
[root@Node1 ~]# chkconfig openstack-nova-api on
[root@Node1 ~]# chkconfig openstack-nova-cert on
[root@Node1 ~]# chkconfig openstack-nova-consoleauth on
[root@Node1 ~]# chkconfig openstack-nova-scheduler on
[root@Node1 ~]# chkconfig openstack-nova-conductor on
[root@Node1 ~]# chkconfig openstack-nova-novncproxy on  验证是否配置成功:
[root@Node1 ~]# nova image-list
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
+--------------------------------------+------------------+--------+--------+
| ID                                   | Name             | Status | Server |
+--------------------------------------+------------------+--------+--------+
| a3ae2a3d-832f-42bb-907f-f508c12de5d9 | cirros-0.3.4.img | ACTIVE |        |
+--------------------------------------+------------------+--------+--------+  

  3、Configure a compute node           

[root@Node2 ~]# yum install openstack-nova-compute  配置/etc/nova/nova.conf:
  这个跟Controller节点上的nova服务器端的配置文件不完成相同,不能把它复制过来
[root@Node2 ~]# cd /etc/nova
[root@Node2 nova]# ls
api-paste.ini  nova.conf  policy.json  release  rootwrap.conf
[root@Node2 nova]# vi nova.conf
#qpid_hostname=localhost
qpid_hostname=192.168.10.1
#rpc_backend=rabbit
rpc_backend=qpid
#auth_strategy=noauth
auth_strategy=keystone
#connection=mysql://nova:nova@localhost/nova
connection=mysql://nova:nova@192.168.10.1/nova
#glance_host=$my_ip
glance_host=192.168.10.1
#my_ip=10.0.0.1
my_ip=192.168.10.2
#novncproxy_base_url=http://127.0.0.1:6080/vnc_auto.html
novncproxy_base_url=http://192.168.10.1:6080/vnc_auto.html   
#vncserver_listen=127.0.0.1
vncserver_listen=0.0.0.0
#vncserver_proxyclient_address=127.0.0.1
vncserver_proxyclient_address=192.168.10.2  

#vif_plugging_is_fatal=true
vif_plugging_is_fatal=false             #网络配置错误虚拟机就不能启动
#vif_plugging_timeout=300
vif_plugging_timeout=10                 #虚拟机设置网络超时时间

[keystone_authtoken]
#
# Options defined in keystoneclient.middleware.auth_token
#
# Prefix to prepend at the beginning of the path (string
# value)
#auth_admin_prefix=
auth_protocol=http
auth_url=http://controller:5000
auth_host=controller
auth_port=35357
auth_user=nova
admin_tenant_name=service
admin_password=nova  启动服务:
[root@Node2 nova]# service libvirtd start
Starting libvirtd daemon:                                  [  OK  ]
[root@Node2 nova]# service messagebus start
Starting system message bus:
[root@Node2 nova]# service openstack-nova-compute start
Starting openstack-nova-compute:                           [  OK  ]
[root@Node2 nova]# service openstack-nova-compute status
openstack-nova-compute (pid  5247) is running...
[root@Node2 nova]# chkconfig libvirtd on
[root@Node2 nova]# chkconfig messagebus on
[root@Node2 nova]# chkconfig openstack-nova-compute on  验证是否配置成功:
  在Controller节点上验证
[root@Node1 ~]# nova hypervisor-list
+----+---------------------+
| ID | Hypervisor hostname |
+----+---------------------+
| 1  | Node2               |
+----+---------------------+  
  

  附、可能遇到的报错
  1、烦人的警告信息
[root@Node1 ~]# nova image-list
/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
  _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)需要5以上的版本的gmp:
解决方法:下载gmp 5以上的版本,编译安装
# ./configure
# make
# make check
# make install

# yum install python-devel
# yum install python-pip -y
# pip install --ignore-installed PyCrypto
# service openstack-keystone restart
2、在配置Computer service时,启动openstack-nova-novncproxy时无法正常启动。

[root@controller ~]# service openstack-nova-novncproxy start
Starting openstack-nova-novncproxy:                        [  OK  ]
[root@controller ~]# service openstack-nova-novncproxy status
openstack-nova-novncproxy dead but pid file exists  然后改用手动启动服务,依旧不行,报错信息如下:
[root@controller ~]# /usr/bin/python /usr/bin/nova-novncproxy --web /usr/share/novnc/
Traceback (most recent call last):
  File "/usr/bin/nova-novncproxy", line 10, in <module>
    sys.exit(main())
  File "/usr/lib/python2.6/site-packages/nova/cmd/novncproxy.py", line 87, in main
    wrap_cmd=None)
  File "/usr/lib/python2.6/site-packages/nova/console/websocketproxy.py", line 47, in __init__
    ssl_target=None, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/websockify/websocketproxy.py", line 231, in __init__
    websocket.WebSocketServer.__init__(self, RequestHandlerClass, *args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'no_parent'          查阅了相关信息后发现是由于python-websockify的版本导致的,openstack-icehouse需要的python-websockify版本<=0.5.1,但是在安装时默认使用了epel源中的0.6.0版本。配置好icehouse的源后,对该软件包进行降级即可。
[root@controller ~]# yum list | grep websockify
python-websockify.noarch                    0.5.1-1.el6                  @openstack-icehouse
python-websockify.noarch                    0.6.0-3.el6                  epel[root@controller ~]# yum downgrade python-websockify-0.5.1-1.el6.noarch  

  

运维网声明 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-496777-1-1.html 上篇帖子: OpenStack、glance组件 下篇帖子: OpenStack、neutron组件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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