本帖最后由 pig2 于 2015-2-4 15:16 编辑
问题导读
1.nova部署在几个节点上?
2.如何部署配置多个计算节点?
3.openstack安装包,是否每个节点都需要安装?
接上篇openstack【juno】入门 【nova 篇】十三:nova简单介绍
控制节点安装
安装准备
在安装之前,先创建数据库,认证,api endpoints
创建数据库
a.登录mysql
复制代码
b.创建数据库
复制代码
c.授权
- GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
- IDENTIFIED BY 'NOVA_DBPASS';
- GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
- IDENTIFIED BY 'NOVA_DBPASS';
复制代码
认证
复制代码
创建nova用户
a.创建nova user
- keystone user-create --name nova --pass NOVA_PASS
复制代码
b.给nova user添加admin 角色
- keystone user-role-add --user nova --tenant service --role admin
复制代码
没有任何输出
c.创建服务实例
- keystone service-create --name nova --type compute \
- --description "OpenStack Compute"
复制代码
创建nova API endpoints
- 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 \
- --region regionOne
复制代码
安装配置nova组件
1.安装
- apt-get install nova-api nova-cert nova-conductor nova-consoleauth \
- nova-novncproxy nova-scheduler python-novaclient
复制代码
2.修改配置文件
- sudo nano /etc/nova/nova.conf
复制代码
a.修改配置文件
- [database]
- ...
- connection = mysql://nova:NOVA_DBPASS@controller/nova
复制代码
发现没有[database],直接添加上面内容
b.配置RabbitMQ
- [DEFAULT]
- ...
- rpc_backend = rabbit
- rabbit_host = controller
- rabbit_password = RABBIT_PASS
复制代码
注意:与前面安装rabbit_password密码保持一致
c.在 [DEFAULT] and [keystone_authtoken] 部分添加如下部分
- [DEFAULT]
- ...
- auth_strategy = keystone
-
- [keystone_authtoken]
- ...
- auth_uri = http://controller:5000/v2.0
- identity_uri = http://controller:35357
- admin_tenant_name = service
- admin_user = nova
- admin_password = NOVA_PASS
复制代码
发现没有[keystone_authtoken],直接添加。
d.配置controller节点ip
- [DEFAULT]
- ...
- my_ip = 10.0.0.11
复制代码
e.在控制节点管理网络ip地址, [DEFAULT] 部分,配置 VNC proxy
- vncserver_listen = 10.0.0.11
- vncserver_proxyclient_address = 10.0.0.11
复制代码
f.配置 [glance] 部分
- [glance]
- ...
- host = controller
复制代码
发现没有,直接添加了
g.可选, 帮助排除问题
- [DEFAULT]
- ...
- verbose = True
复制代码
同步nova数据库:
- su -s /bin/sh -c "nova-manage db sync" nova
复制代码
记得使用root用户。
重启 Compute services:
- service nova-api restart
- service nova-cert restart
- service nova-consoleauth restart
- service nova-scheduler restart
- service nova-conductor restart
- service nova-novncproxy restart
复制代码
Ubuntu 包 默认创建 SQLite database.可以移除
- rm -f /var/lib/nova/nova.sqlite
复制代码
贴出整个配置:- [DEFAULT]
- 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
- force_dhcp_release=True
- libvirt_use_virtio_for_bridges=True
- verbose=True
- ec2_private_dns_show_ip=True
- api_paste_config=/etc/nova/api-paste.ini
- enabled_apis=ec2,osapi_compute,metadata
- rpc_backend = rabbit
- rabbit_host = controller
- rabbit_password = RABBIT_PASS
- auth_strategy = keystone
- my_ip = 10.0.0.11
- vncserver_listen = 10.0.0.11
- vncserver_proxyclient_address = 10.0.0.11
- verbose = True
-
- [database]
- connection = mysql://nova:NOVA_DBPASS@controller/nova
-
- [keystone_authtoken]
-
- auth_uri = http://controller:5000/v2.0
- identity_uri = http://controller:35357
- admin_tenant_name = service
- admin_user = nova
- admin_password = NOVA_PASS
复制代码
计算节点安装
本节介绍如何在计算节点上安装、配置计算服务(nova),这个服务支持多种hypervisors部署实例或则VMs。为了简单起见,使用 QEMU KVM hypervisor 。
说明:这一部分按照说明一步步配置第一个计算节点,如果你想配置额外的计算节点,与第一个计算节点一样,无论是网络,还是ntp,及openstack包
(特别是openstack包
- apt-get install ubuntu-cloud-keyring
复制代码
- echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \
- "trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list
复制代码
- apt-get update && apt-get dist-upgrade
复制代码
)
如果使用nova network,其它节点也是使用这种网络模式,另外其它节点,需要唯一的独立ip。
安装配置 Compute hypervisor 组件
下载 并安装
- apt-get install nova-compute sysfsutils
复制代码
修改配置文件
- sudo nano /etc/nova/nova.conf
复制代码
a.在 [DEFAULT]部分,修改RabbitMQ 消息访问权限
- [DEFAULT]
- ...
- rpc_backend = rabbit
- rabbit_host = controller
- rabbit_password = RABBIT_PASS
复制代码
记得密码为控制节点安装时的密码,这里采用的默认密码
b.在 [DEFAULT] 和 [keystone_authtoken] 部分, 配置身份认证:
- [DEFAULT]
- ...
- auth_strategy = keystone
-
- [keystone_authtoken]
- ...
- auth_uri = http://controller:5000/v2.0
- identity_uri = http://controller:35357
- admin_tenant_name = service
- admin_user = nova
- admin_password = NOVA_PASS
复制代码
c.在默认部分配置ip
- [DEFAULT]
- ...
- my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
复制代码
此为在计算节点的网络管理ip地址,这里ip填写,替换如下- [DEFAULT]
- ...
- my_ip = 10.0.0.31
复制代码
d.在[DEFAULT]部分,启用并配置远程控制台访问:
- [DEFAULT]
- ...
- vnc_enabled = True
- vncserver_listen = 0.0.0.0
- vncserver_proxyclient_address = MANAGEMENT_INTERFACE_IP_ADDRESS
- novncproxy_base_url = http://controller:6080/vnc_auto.html
复制代码
上面进行替换为管理网络ip地址
- [DEFAULT]
- ...
- vnc_enabled = True
- vncserver_listen = 0.0.0.0
- vncserver_proxyclient_address = 10.0.0.31
- novncproxy_base_url = http://controller:6080/vnc_auto.html
复制代码
服务组件监听所有ip地址,代理组件仅监听计算节点的管理网络ip地址,url表示本地可以通过浏览器访问远程计算节点上的实例
MANAGEMENT_INTERFACE_IP_ADDRESS是计算节点上的管理网络ip地址,这里为 10.0.0.31
注意:
通过浏览器远程访问,如果不能解析controller,你必须替换控制节点(controller)管理网络ip地址
e.在glance部分,配置Image Service所在节点
- [glance]
- ...
- host = controller
复制代码
f.可选,主要帮助排除问题
- [DEFAULT]
- ...
- verbose = True
复制代码
配置,配置文件如下- [DEFAULT]
- 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
- force_dhcp_release=True
- libvirt_use_virtio_for_bridges=True
- verbose=True
- ec2_private_dns_show_ip=True
- api_paste_config=/etc/nova/api-paste.ini
- enabled_apis=ec2,osapi_compute,metadata
- rpc_backend = rabbit
- rabbit_host = controller
- rabbit_password = RABBIT_PASS
- auth_strategy = keystone
- my_ip = 10.0.0.31
- vnc_enabled = True
- vncserver_listen = 0.0.0.0
- vncserver_proxyclient_address = 10.0.0.31
- novncproxy_base_url = http://controller:6080/vnc_auto.html
- verbose = True
-
- [keystone_authtoken]
- auth_uri = http://controller:5000/v2.0
- identity_uri = http://controller:35357
- admin_tenant_name = service
- admin_user = nova
- admin_password = NOVA_PASS
-
- [glance]
- host = controller
复制代码
完成安装
1.确定你得计算节点,是否支持虚拟机硬件加速
- egrep -c '(vmx|svm)' /proc/cpuinfo
复制代码
如果该命令返回一个值的一个或更多,你的计算节点支持硬件加速,通常不需要额外的配置。
如果该命令返回一个值为零,你的计算节点不支持硬件加速,您必须配置libvirt使用QEMU代替KVM。
a.在 /etc/nova/nova-compute.conf 文件编辑 [libvirt] 部分
- [libvirt]
- ...
- virt_type = qemu
复制代码
2.重启计算服务
- service nova-compute restart
复制代码
3.移除 SQLite 数据库
- rm -f /var/lib/nova/nova.sqlite
复制代码
验证操作
注意:
这些命令在控制节点上执行
1.环境变量生效
复制代码 2.查看服务进程是否启动成功
复制代码
- +----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
- | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
- +----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
- | 1 | nova-cert | controller | internal | enabled | up | 2015-02-04T07:03:03.000000 | - |
- | 2 | nova-consoleauth | controller | internal | enabled | up | 2015-02-04T07:03:03.000000 | - |
- | 3 | nova-scheduler | controller | internal | enabled | up | 2015-02-04T07:03:00.000000 | - |
- | 4 | nova-conductor | controller | internal | enabled | up | 2015-02-04T07:03:03.000000 | - |
- | 5 | nova-compute | compute | nova | enabled | up | 2015-02-04T07:03:03.000000 | - |
- +----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
复制代码
注意:
四个进程指向控制节点,一个在计算节点
3.查看img服务列表
复制代码
|