这章将为大家介绍OpenStack最重要的核心组件,虚拟机管理组件Nova的安装部署。虽然是最重要的组件,但是因为包装的非常完整,所以如果前面的网络配置和KeyStone部署都正确完成的话,Nova组件的安装是非常简单的。
首先安装Nova组件
sudo apt-get install nova-api nova-cert nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler nova-volume rabbitmq-server novnc nova-consoleauth
修改节点的/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
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=192.168.3.1
--ec2_host=192.168.3.1
--rabbit_host=192.168.3.1
--cc_host=192.168.3.1
--nova_url=http://192.168.3.1:8774/v1.1/
--routing_source_ip=192.168.3.1
--glance_api_servers=192.168.3.1:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=192.168.4
--sql_connection=mysql://novadbadmin:novasecret@192.168.3.1/nova
--ec2_url=http://192.168.3.1:8773/services/Cloud
--keystone_ec2_url=http://192.168.3.1:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=kvm
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
# VNC specific configuration
--novnc_enabled=true
--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.3
--vncserver_listen=10.2.15.3
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=192.168.4.1/27
--floating_range=10.2.15.254/25
--network_size=32
--flat_network_dhcp_start=192.168.4.33
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose
配置文件中需要注意的是各服务访问的IP地址,OpenStack多节点部署(三)——网络配置中介绍过,我的控制节点有两个IP,一个是OpenStack系统内网IP 192.168.3.1,另一个是公司内部可访问Internet的IP 10.2.15.3。这里推荐将服务IP写成内网IP 192.168.3.1,这样如果控制节点搬迁,或者公司10网段IP变更,那么我们的配置文件可以不动。
但是要注意的是
--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.3
这两个VNC参数的IP要为公司内部网络10网段的IP,因为这个必须是从服务器系统外围能访问的IP。
配置文件参数详解可参见bk-compute-adminguide-essex.pdf
具体下载目录在 /2013年资料/2月/18日/OpenStack多节点部署
之后为Nova-volume服务创建独立的逻辑卷
sudo pvcreate /dev/sda6
这里将/dev/sda6为你之前格式化为LVM的分区
创建名为nova-volumes的卷组
sudo vgcreate nova-volumes /dev/sda6
修改配置文件权限
sudo chown -R nova:nova /etc/nova
sudo chmod 644 /etc/nova/nova.conf
修改/etc/nova/api-paste.ini,填写nova服务在keystone注册的用户名密码
sed -i '/admin_tenant_name/ s/%SERVICE_TENANT_NAME%/service/' /etc/nova/api-paste.ini
sed -i '/admin_user/ s/%SERVICE_USER%/nova/' /etc/nova/api-paste.ini
sed -i '/admin_password/ s/%SERVICE_PASSWORD%/nova/' /etc/nova/api-paste.ini
同步数据库
sudo nova-manage db sync
创建虚拟机所在的Fixed_ip的ip地址段
sudo nova-manage network create private --fixed_range_v4=192.168.4.32/27 --num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=32
192.168.4.32/27表示IP段从32开始,并且子网掩码为前27位为1
写入环境变量
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL="http://192.168.3.1:5000/v2.0/"
最后重启各服务
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 nova-consoleauth;
再增加计算节点只需要安装nova-compute
sudo apt-get install nova-compute
再增加计算节点只需要安装nova-compute
sudo apt-get install nova-compute
修改计算节点的配置文件
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/run/lock/nova
--allow_admin_api=true
--use_deprecated_auth=false
--auth_strategy=keystone
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--s3_host=192.168.3.1
--ec2_host=192.168.3.1
--rabbit_host=192.168.3.1
--cc_host=192.168.3.1
--nova_url=http://192.168.3.1:8774/v1.1/
--routing_source_ip=192.168.3.1
--glance_api_servers=192.168.3.1:9292
--image_service=nova.image.glance.GlanceImageService
--iscsi_ip_prefix=192.168.4
--sql_connection=mysql://novadbadmin:novasecret@192.168.3.1/nova
--ec2_url=http://192.168.3.1:8773/services/Cloud
--keystone_ec2_url=http://192.168.3.1:5000/v2.0/ec2tokens
--api_paste_config=/etc/nova/api-paste.ini
--libvirt_type=kvm
--libvirt_use_virtio_for_bridges=true
--start_guests_on_host_boot=true
--resume_guests_state_on_host_boot=true
# vnc specific configuration
--novnc_enabled=true
--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.4
--vncserver_listen=10.2.15.4
# network specific settings
--network_manager=nova.network.manager.FlatDHCPManager
--public_interface=eth0
--flat_interface=eth1
--flat_network_bridge=br100
--fixed_range=192.168.4.1/27
--floating_range=10.2.15.4/27
--network_size=32
--flat_network_dhcp_start=192.168.4.33
--flat_injected=False
--force_dhcp_release
--iscsi_helper=tgtadm
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--verbose
各计算节点间配置文件的不同点只有
--novncproxy_base_url=http://10.2.15.3:6080/vnc_auto.html
--vncserver_proxyclient_address=10.2.15.4
其IP为计算节点的IP
最后,查看是否各服务安装成功,各计算节点是否正常
sudo nova-manage service list