您的当前位置:首页正文

Ubuntu13.04安装多机Grizzly版本的OpenStack

来源:爱go旅游网
Ubuntu13.04安装Grizzly版OpenStack

1. 计划

Control Node NetworkNode eth0 (10.0.0.2), eth1 (192.168.1.232) eth0 (10.0.0.3), eth1 (192.168.1.233) Compute Node eth0 (10.0.0.4), eth1 (192.168.1.234)

1.Control Node

1.1前期准备

1.1.1 Ubuntu系统准备

切换用户

sudosu 增加Grizzly源

apt-get install -y ubuntu-cloud-keyring echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list 升级系统:

apt-get update apt-get upgrade apt-getdist-upgrade 1.1.2网络设置

编辑/etc/network/interfaces

#For Exposing OpenStack API over the internet auto eth0 iface eth0inet static address192.168.1.232 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 #Not internet connected(used for OpenStack management) auto eth1 iface eth1inet static address10.0.0.2 netmask 255.255.255.0 设置好后重启网络:service networking restart

Ubuntu13.04桌面版不要用上面的命令重启网络,不然会卡死!

可以用ifdown和ifup来启动和停止网卡

1.1.3安装MySQL &RabbitMQ

安装MySQL:

apt-get install -y mysql-server python-mysqldb 配置并重启MySQL:

sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf servicemysql restart 创建表:

mysql -u root -p #Keystone CREATE DATABASE keystone; GRANT ALL ON keystone.* TO 'keystoneUser'@'%' IDENTIFIED BY 'keystonePass'; #Glance CREATE DATABASE glance; GRANT ALL ON glance.* TO 'glanceUser'@'%' IDENTIFIED BY 'glancePass'; #Quantum CREATE DATABASE quantum; GRANT ALL ON quantum.* TO 'quantumUser'@'%' IDENTIFIED BY 'quantumPass'; #Nova CREATE DATABASE nova; GRANT ALL ON nova.* TO 'novaUser'@'%' IDENTIFIED BY 'novaPass'; #Cinder CREATE DATABASE cinder; GRANT ALL ON cinder.* TO 'cinderUser'@'%' IDENTIFIED BY 'cinderPass'; quit; 安装RabbitMQ:

apt-get install -y rabbitmq-server 安装NTP:

apt-get install -y ntp 配置NTP:

#Comment the ubuntu NTP servers sed -i 's/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g' /etc/ntp.conf #Set the network node to follow up your conroller node sed -i 's/server ntp.ubuntu.com/server 10.0.0.2/g' /etc/ntp.conf servicentp restart 1.1.4其他

apt-get install -y vlan bridge-utils 配置/etc/sysctl.conf

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf 1.2 Keystone

安装并检查状态:

apt-get install -y keystone service keystone status 修改/etc/keystone/keystone.conf中的数据库连接

connection = mysql://keystoneUser:keystonePass@10.0.0.2/keystone 重启并同步数据库:

service keystone restart keystone-manage db_sync 用下面两个脚本去填充keystone数据库,也就是增加user,tenant,role和service以及service的endpoint

#Modify the HOST_IP and HOST_IP_EXT variables before executing the scripts wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_SingleNode/KeystoneScripts/keystone_basic.sh wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_SingleNode/KeystoneScripts/keystone_endpoints_basic.sh chmod +x keystone_basic.sh chmod +x keystone_endpoints_basic.sh ./keystone_basic.sh ./keystone_endpoints_basic.sh 修改keystone_basic.sh中的HOST_IP为自己的Eth0的IP,ADMIN_PASSWORD和SERVICE_PASSWORD可改可不改:

修改keystone_endpoints_basic.sh中的HOST_IP和EXT_HOST_IP,同时将连接keystone数据库的的用户名和密码进行修改:

编辑文件creds

#Paste the following: export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=admin_pass export OS_AUTH_URL=\"http://192.168.1.232:5000/v2.0/\" 引入环境变量中: sourcecreds

或者可以直接加入root(cat creds>> /root/.bashrc)的环境变量,这样重启后就无需再次引入了

查看创建的user

keystone user-list 同样有命令 keystone tenant-list 和 keystone role-list

1.3 Glance

安装并查看状态:

apt-get install -y glance service glance-api status service glance-registry status 修改/etc/glance/glance-api-paste.ini

和/etc/glance/glance-registry-paste.ini文件

注:红色为必须要修改(核对)的地方,建议把提到的这几项都核对一下:

[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory delay_auth_decision = true auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = glance admin_password = service_pass 编辑/etc/glance/glance-api.conf和/etc/glance/glance-registry.conf,修改数据库连接:

sql_connection = mysql://glanceUser:glancePass@10.0.0.2/glance 并且在[paste_deploy]下加上flavor = keystone

[paste_deploy] flavor = keystone 重启服务

service glance-api restart; service glance-registry restart 同步数据库:

glance-manage db_sync 再次重启服务

service glance-registry restart; service glance-api restart 上传镜像测试glance的安装情况:

glance image-create --name myFirstImage --is-public true --container-format bare --disk-format qcow2 --location https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img 查看镜像:

glance image-list 1.4 Quantum

安装quantum-server:

apt-get install -y quantum-server 编辑OVS插件配置文件

/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini

#Under the database section [DATABASE] sql_connection = mysql://quantumUser:quantumPass@10.0.0.2/quantum #Under the OVS section [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True 编辑 /etc/quantum/api-paste.ini

[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = quantum admin_password = service_pass 编辑 /etc/quantum/quantum.conf

[keystone_authtoken] auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = quantum admin_password = service_pass signing_dir = /var/lib/quantum/keystone-signing 重启 quantum服务

service quantum-server restart 1.5 Nova

安装nova组件:

nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy nova-doc nova-conductor 编辑/etc/nova/api-paste.ini

[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = nova admin_password = service_pass signing_dirname = /tmp/keystone-signing-nova # Workaround for https://bugs.launchpad.net/nova/+bug/1154809 auth_version = v2.0 编辑 /etc/nova/nova.conf

[DEFAULT] logdir=/var/log/nova state_path=/var/lib/nova lock_path=/run/lock/nova verbose=True api_paste_config=/etc/nova/api-paste.ini compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler rabbit_host=10.0.0.2 nova_url=http://10.0.0.2:8774/v1.1/ sql_connection=mysql://novaUser:novaPass@10.0.0.2/nova root_helper=sudo nova-rootwrap/etc/nova/rootwrap.conf # Auth use_deprecated_auth=false auth_strategy=keystone # Imaging service glance_api_servers=10.0.0.2:9292 image_service=nova.image.glance.GlanceImageService # Vnc configuration novnc_enabled=true novncproxy_base_url=http://192.168.1.232:6080/vnc_auto.html novncproxy_port=6080 vncserver_proxyclient_address=10.0.0.2 vncserver_listen=0.0.0.0 # Network settings network_api_class=nova.network.quantumv2.api.API quantum_url=http://10.0.0.2:9696 quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=service_pass quantum_admin_auth_url=http://10.0.0.2:35357/v2.0 libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver #If you want Quantum + Nova Security groups firewall_driver=nova.virt.firewall.NoopFirewallDriver security_group_api=quantum #If you want Nova Security groups only, comment the two lines above and uncomment line -1-. #-1-firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver #Metadata service_quantum_metadata_proxy = True quantum_metadata_proxy_shared_secret = helloOpenStack # Compute # compute_driver=libvirt.LibvirtDriver # Cinder # volume_api_class=nova.volume.cinder.API osapi_volume_listen_port=5900 同步数据库:

nova-manage db sync 重启nova-* 服务:

cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done 查看 nova-*服务列表:

nova-manage service list 1.6 Cinder

安装Cinder以及必须的软件包

apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsiiscsitarget-dkms 配置iscsi服务:

sed -i 's/false/true/g' /etc/default/iscsitarget 重启所有服务:

serviceiscsitarget start service open-iscsi start 修改/etc/cinder/api-paste.ini:

[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory service_protocol = http service_host = 192.168.1.232 service_port = 5000 auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = cinder admin_password = service_pass 编辑 /etc/cinder/cinder.conf:

[DEFAULT] rootwrap_config=/etc/cinder/rootwrap.conf sql_connection = mysql://cinderUser:cinderPass@10.0.0.2/cinder api_paste_config = /etc/cinder/api-paste.ini iscsi_helper=ietadm volume_name_template = volume-%s volume_group = cinder-volumes verbose = True auth_strategy = keystone #osapi_volume_listen_port=5900 同步数据库:

cinder-manage db sync 创建cinder-volumes:

dd if=/dev/zero of=cinder-volumes bs=1 count=0 seek=2G losetup /dev/loop2 cinder-volumes fdisk /dev/loop2 #Type in the followings: n p 1 ENTER ENTER t 8e w pvcreate /dev/loop2 vgcreate cinder-volumes /dev/loop2 为了重启后逻辑组cinder-volumes还在,可以在/etc/rc.local的exit 0之前加入

losetup /dev/loop2 cinder-volumes 重启cinder服务:

cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i restart; done 查看是否正常:

cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i status; done 1.7 Horizon

安装horizon

apt-get install openstack-dashboard memcached 如果不喜欢OpenStackubuntu的主题页面,可以去除改包:

dpkg --purge openstack-dashboard-ubuntu-theme 重启apache2 和memcached服务

service apache2 restart; service memcached restart 然后就可以从网页上访问192.168.1.232/horizon 如果没有改,则默认的账号和密码是: admin:admin_pass.

2. NetWork Node

2.1前期准备

2.1.1 Ubuntu系统准备

切换用户

sudosu 增加Grizzly源

apt-get install -y ubuntu-cloud-keyring echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list 升级系统:

apt-get update apt-get upgrade apt-getdist-upgrade 2.1.2网络设置

编辑/etc/network/interfaces

#For Exposing OpenStack API over the internet auto eth0 iface eth0inet static address192.168.1.233 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 #Not internet connected(used for OpenStack management) auto eth1 iface eth1inet static address10.0.0.3 netmask 255.255.255.0 2.1.3其他

安装NTP:

apt-get install -y ntp 配置NTP:

#Comment the ubuntu NTP servers sed -i 's/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g' /etc/ntp.conf #Set the network node to follow up your conroller node sed -i 's/server ntp.ubuntu.com/server 10.0.0.2/g' /etc/ntp.conf servicentp restart 安装vlan bridge-utils:

apt-get install -y vlan bridge-utils 配置/etc/sysctl.conf

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf 2.2OpenVSwitch (Part1)

安装openVSwitch:

apt-get install -y openvswitch-switch openvswitch-datapath-dkms 建立网桥:

#br-int will be used for VM integration ovs-vsctl add-brbr-int #br-ex is used to make to VM accessible from the internet ovs-vsctl add-brbr-ex 2.3 Quantum

安装 Quantum 代理组件:

apt-get -y install quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent quantum-metadata-agent 编辑 /etc/quantum/api-paste.ini:

[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = quantum admin_password = service_pass 编辑/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini:

#Under the database section [DATABASE] sql_connection = mysql://quantumUser:quantumPass@10.0.0.2/quantum #Under the OVS section [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 integration_bridge = br-int tunnel_bridge = br-tun local_ip = 10.0.0.3 enable_tunneling = True #Firewall driver for realizing quantum security group function [SECURITYGROUP] firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver 编辑/etc/quantum/metadata_agent.ini:

# The Quantum user information for accessing the Quantum API. auth_url = http://10.0.0.2:35357/v2.0 auth_region = RegionOne admin_tenant_name = service admin_user = quantum admin_password = service_pass # IP address used by Nova metadata server nova_metadata_ip = 10.0.0.2 # TCP Port used by Nova metadata server nova_metadata_port = 8775 metadata_proxy_shared_secret = helloOpenStack 编辑/etc/quantum/quantum.conf:

rabbit_host = 10.0.0.2 #And update the keystone_authtoken section [keystone_authtoken] auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = quantum admin_password = service_pass signing_dir = /var/lib/quantum/keystone-signing 编辑 /etc/sudoers:

nano /etc/sudoers/sudoers.d/quantum_sudoers #Modify the quantum user quantum ALL=NOPASSWD: ALL 重启所有服务:

cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i restart; done 2.4OpenVSwitch (Part2)

将内部外部网卡加入br-ex并清除外部网卡的IP

ovs-vsctl add-port br-ex eth0 ifconfig eth0 0 ifconfigbr-ex 192.168.1.233netmask 255.255.255.0 route add default gw 192.168.1.1 上面的设置在重启电脑后配置就会无效,要想重启有效,就写入配置文件/etc/network/interfaces(这样修改后,启动后br-ex和eth1是满足要求了,但是启动的虚拟机又无法ping通,解决办法是:将上述命令写入脚本文件,然后再链接到rc2.d(ln–s XXX.sh /etc/rc2.d/S99XX)中,开机后执行脚本,这样就可以解决了)

autobr-ex ifacebr-ex inet static address192.168.1.233 netmask 255.255.255.0 gateway 192.168.1.1 bridge_portseth0 dns-nameservers 192.168.1.1 3. Compute Node

3.1前期准备

3.1.1 Ubuntu系统准备

切换用户

sudosu 增加Grizzly源

apt-get install -y ubuntu-cloud-keyring echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list 升级系统:

apt-get update apt-get upgrade apt-getdist-upgrade 3.1.2网络设置

编辑/etc/network/interfaces

#For Exposing OpenStack API over the internet auto eth0 iface eth0inet static address192.168.1.234 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 #Not internet connected(used for OpenStack management) auto eth1 iface eth1inet static address10.0.0.4 netmask 255.255.255.0 3.1.3其他

安装NTP:

apt-get install -y ntp 配置NTP:

#Comment the ubuntu NTP servers sed -i 's/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g' /etc/ntp.conf sed -i 's/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g' /etc/ntp.conf #Set the network node to follow up your conroller node sed -i 's/server ntp.ubuntu.com/server 10.0.0.2/g' /etc/ntp.conf servicentp restart 安装vlan bridge-utils:

apt-get install -y vlan bridge-utils 配置/etc/sysctl.conf

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf 3.2KVM

确保硬件支持虚拟化:

apt-get install cpu-checker kvm-ok 安装kvm

apt-get install -y kvmlibvirt-bin pm-utils 编辑/etc/libvirt/qemu.conf文件,使得cgroup_device_acl与下面相同:

cgroup_device_acl = [ \"/dev/null\\"/dev/random\\"/dev/ptmx\\"/dev/rtc\] 删除默认的网桥(也可以不删除,不会有影响)

virsh net-destroy default virsh net-undefine default 编辑 /etc/libvirt/libvirtd.conf文件以便支持动态迁移:

listen_tls = 0 listen_tcp = 1 auth_tcp = \"none\" 修改/etc/init/libvirt-bin.conf中的libvirtd_opts变量

envlibvirtd_opts=\"-d -l\" 修改/etc/default/libvirt-bin中的libvirtd_opts变量

libvirtd_opts=\"-d -l\" 重启libvirt服务使得修改生效

servicelibvirt-bin restart 3.3 OpenVSwitch

安装openVSwitch:

apt-get install -y openvswitch-switch openvswitch-datapath-dkms 创建网桥:

#br-int will be used for VM integration ovs-vsctl add-brbr-int 3.4Quantum

安装Quantum openvswitch代理:

apt-get -y install quantum-plugin-openvswitch-agent 编辑/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini:

#Under the database section [DATABASE] sql_connection = mysql://quantumUser:quantumPass@10.0.0.2/quantum #Under the OVS section [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 integration_bridge = br-int tunnel_bridge = br-tun local_ip = 10.0.0.4 enable_tunneling = True #Firewall driver for realizing quantum security group function [SECURITYGROUP] firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver 编辑/etc/quantum/quantum.conf:

rabbit_host = 10.0.0.2 #And update the keystone_authtoken section [keystone_authtoken] auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = quantum admin_password = service_pass signing_dir = /var/lib/quantum/keystone-signing 重启所有服务:

service quantum-plugin-openvswitch-agent restart 3.5 Nova

安装Nova-compute组件:

apt-get install -y nova-compute-kvm 编辑/etc/nova/api-paste.ini:

[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 10.0.0.2 auth_port = 35357 auth_protocol = http admin_tenant_name = service admin_user = nova admin_password = service_pass signing_dirname = /tmp/keystone-signing-nova # Workaround for https://bugs.launchpad.net/nova/+bug/1154809 auth_version = v2.0 编辑/etc/nova/nova-compute.conf:

[DEFAULT] libvirt_type=kvm libvirt_ovs_bridge=br-int libvirt_vif_type=ethernet libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver libvirt_use_virtio_for_bridges=True 编辑 /etc/nova/nova.conf

[DEFAULT] logdir=/var/log/nova state_path=/var/lib/nova lock_path=/run/lock/nova verbose=True api_paste_config=/etc/nova/api-paste.ini compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler rabbit_host=10.0.0.2 nova_url=http://10.0.0.2:8774/v1.1/ sql_connection=mysql://novaUser:novaPass@10.0.0.2/nova root_helper=sudo nova-rootwrap/etc/nova/rootwrap.conf # Auth use_deprecated_auth=false auth_strategy=keystone # Imaging service glance_api_servers=10.0.0.2:9292 image_service=nova.image.glance.GlanceImageService # Vnc configuration novnc_enabled=true novncproxy_base_url=http://192.168.1.232:6080/vnc_auto.html novncproxy_port=6080 vncserver_proxyclient_address=10.0.0.2 vncserver_listen=0.0.0.0 # Network settings network_api_class=nova.network.quantumv2.api.API quantum_url=http://10.0.0.2:9696 quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=service_pass quantum_admin_auth_url=http://10.0.0.2:35357/v2.0 libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver #If you want Quantum + Nova Security groups firewall_driver=nova.virt.firewall.NoopFirewallDriver security_group_api=quantum #If you want Nova Security groups only, comment the two lines above and uncomment line -1-. #-1-firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver #Metadata service_quantum_metadata_proxy = True quantum_metadata_proxy_shared_secret = helloOpenStack # Compute # compute_driver=libvirt.LibvirtDriver # Cinder # volume_api_class=nova.volume.cinder.API osapi_volume_listen_port=5900 检查nova-*各项服务是否工作正常(笑脸为正常)

nova-manage service list 4. 启动虚拟机

为该租户admin创建一个内部网络(查看租户Id,命令为keystone tenant-list):

quantum net-create --tenant-id $put_id_of_adminadmin_int 创建子网:

quantum subnet-create --tenant-id $put_id_of_adminadmin_int10.0.0.0/24 创建路由:

quantum router-create --tenant-id $put_id_of_adminrouter_admin 把路由加入子网

quantum router-interface-add $put_router_admin_id_here $put_subnet_id_here 创建外部网络:

quantum net-create --tenant-id $put_id_of_service_tenant ext_net --router:external=True *Note: $id_of_service_tenant 来自租户“service”,可用keystone tenant-list 查看获取; 创建外网用子网192.168.1.x:

quantum subnet-create --tenant-id $put_id_of_service_tenant --allocation-pool start=192.168.1.10X,end=192.168.1.1XX --gateway 192.168.1.1 ext_net 192.168.1.0/24 --enable_dhcp=False 关联外网和admin的路由:

quantum router-gateway-set $put_router_tenantA_id_here $put_id_of_ext_net_here 5. Windows镜像制作方法

apt-get install virt-manager(下载虚拟机管理器)

在桌面上的Applications-System Tools -Virtual Machine Manager 打开虚拟机管理器 902b,94de

下载驱动

OpenStack只支持Virtio总线的磁盘,但是windows本身没有Virtio的相关驱动程序,所以首先需要先下载相关驱动程序,下载地址

http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/。

启动管理程序

见上一篇CentOS6.3下为OpenStack制作CentOS镜像。

创建虚拟机

点击创建虚拟机按钮打开创建虚拟机对话框,先通过iso文件生成一个虚拟机,在点击Finish

弹出虚拟机对话框后按下图所示操作: 1.选择Force off关闭虚拟机;

2.打开配置页,修改磁盘的类型为Virtio;

3.点击左下角的添加硬件按钮添加一个光驱,并关联到下载的驱动程序镜像文件; 4.重新打开虚拟机电源。

安装驱动

当安装程序进行到选择磁盘的时候发现没有可用的磁盘,此时选择加载驱动程序》浏览》选择驱动程序所在文件夹,会列出相关的驱动程序,安装好磁盘驱动就可以看到磁盘了。重复上述步骤安装气球程序,在程序列表时去掉下面的隐藏不兼容驱动选项,还可安装其它如网卡等驱动,如下图所示:

后期处理

安装完系统并重启后,安装所需要的软件,开启远程桌面,设置防火墙允许ping(可以直接关闭)。

需要注意的是,在G版的OpenStack启动后,虚拟机的网卡类型为Virtio,不再是default(…) 那个类型,所以还必须把虚拟机的网卡类型改为Virtio型,然后再安装Virtio的网卡驱动,最后再上传!(安装Virtio网卡驱动,可以给虚拟机增加一个存储盘,选择Floppy软盘,然后把virtio-win-1.1.16.vfd驱动挂载上去,启动虚拟机,然后更新网卡驱动就可以了)

上传镜像

到这里镜像就做好了,关闭虚拟机,通过glance命令上传就是了

glance add name=\"win7\" is_public=true container_format=ovfdisk_format=qcow2 < /var/lib/libvirt/images/win7.img

6. 相关问题及解决办法

6.1 Cinder错误:

https://review.openstack.org/#/c/27938/2/cinder/volume/iscsi.py 修改 /usr/share/pyshared/cinder/volume/iscsi.py

6.2 service iscsitarget restart 出现如下错误:

FATAL: Module iscsi_trgt not found 尝试下面的解决办法:

#mkdir /lib/modules/`uname -r`/kernel/iscsi #find / -name “iscsi_trgt.ko”

#cpiscsi_trgt.ko /lib/modules/`uname -r`/kernel/iscsi #depmod–aq

6.3 Attach Volume的问题:

1. nova.openstack.common.rpc.amqpStderr: 'iscsiadm: No session found.\\n'

/etc/iscsi/iscsid.conf里面的startup setting选项中的Node.startup 设置成为automatic应该就可以了。

2. WARNING nova.virt.libvirt.utils [XXXX] systool is not installed apt-get install sysfsutils

https://answers.launchpad.net/nova/+question/226471

3. WARNING nova.virt.libvirt.volume [XXX] ISCSI volume not yet found at: vdc. Will rescan & retry. Try number: 0

6.4 OVS插件启动不了的问题

关于quantum-plugin-openvswitch-agent :这是quantum利用ovs的一个插件。这个是我在安装G版的时候最容易出错的地方。在这里给大家详细描述一下。

在网络节点装完quantum以后重启所有服务,请仔细观察 service quantum-plugin-openvswitch-agent status,是否是start running,如果不是,恭喜你,遇到问题了。

同样在计算节点装完这个服务之后重启服务,没有问题,ok ,重启电脑,再看service quantum-plugin-openvswitch-agent status,是否是 stop/waiting呢?如果是,那么遇到问题了。

这个时候,在网络节点把quantum和ovs完全卸载。卸载的指令:

apt-getautoremove -y --purge quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent quantum-metadata-agent apt-getautoremove -y --purge openvswitch-switch openvswitch-datapath-dkms 等待卸载完,重启电脑,再重新安装,ovs和quantum各个组件。我和我项目组的分析出现这问题的原因可能是包的依赖问题,反正是目前没有好的解决办法。

计算节点同样做这两个动作,只是计算节点quantum没安装这么多的东西。

ok,在Control节点或者NetWork节点执行 quantum agent-list,看alive下是否都是笑脸呢?如果是,恭喜你,这个问题解决了 http://blog.csdn.net/u010818955/article/details/8981303

因篇幅问题不能全部显示,请点此查看更多更全内容