Tags:
,
view all tags
---+!! Installazione e configurazione del servizio Compute (NOVA) %TOC% ---++ Configurare l'Hypervisor (KVM) * Install virtualizzation !RPMs <verbatim> # yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client bridge-utils # yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools" # yum install openstack-utils memcached qpid-cpp-server openstack-nova dnsmasq-utils python-keystone-auth-token </verbatim> * Pre-configured the network (di default viene su cosė). <verbatim> # ifconfig virbr0 virbr0 Link encap:Ethernet HWaddr 52:54:00:54:65:A1 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:45 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:7585 (7.4 KiB) </verbatim> * Requisiti di configurazione per RHEL * Assicurarsi che nel file =/etc/qpidd.conf= sia settato =auth=no= . * use the openstack-config package to turn off force DHCP releases: =sudo openstack-config --set /etc/nova/nova.conf DEFAULT force_dhcp_release False= (Non viene mostrato nessun output ma modificato il file di configurazione.) * If you intend to use guest images that don't have a single partition, then allow libguestfs to inspect the image so that files can be injected, by setting: =sudo openstack-config --set /etc/nova/nova.conf DEFAULT libvirt_inject_partition -1= (Non viene mostrato nessun output ma modificato il file di configurazione.) ---++ Configuring OpenStack Compute Da modificare due file in =/etc/nova=: %TWISTY{ mode="div" showlink=" *nova.conf* " hidelink=" *nova.conf* " remember="off" firststart="show" showimgright="%ICONURLPATH{toggleopen}%" hideimgright="%ICONURLPATH{toggleclose}%" }% <verbatim> [DEFAULT] # LOG/STATE logdir = /var/log/nova verbose = True state_path = /var/lib/nova lock_path = /var/lib/nova/tmp # AUTHENTICATION auth_strategy = keystone # SCHEDULER #compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler # VOLUMES volume_group = <VOLUME_NAME> #volume_name_template = volume-%08x iscsi_helper = tgtadm # DATABASE del Cloud Controller sql_connection=mysql://nova:XXXXXX@hostname1.domain/nova # COMPUTE libvirt_type = kvm connection_type = libvirt #instance_name_template = instance-%08x #api_paste_config=/etc/nova/api-paste.ini #allow_resize_to_same_host=True # APIS #osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions #ec2_dmz_host=192.168.206.130 #s3_host=192.168.206.130 # GLANCE #image_service=nova.image.glance.GlanceImageService #glance_api_servers=192.168.206.130:9292 # NETWORK network_manager = nova.network.manager.FlatDHCPManager force_dhcp_release = True dhcpbridge_flagfile = /etc/nova/nova.conf firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver # Change my_ip to match each host my_ip = <THIS_SERVER_IP> public_interface = eth0 #vlan_interface = eth0 flat_network_bridge = virbr0 flat_interface = eth0 fixed_range = 192.168.122.0/24 # NOVNC CONSOLE #novncproxy_base_url=http://192.168.206.130:6080/vnc_auto.html # Change vncserver_proxyclient_address and vncserver_listen to match each compute host vncserver_listen = <THIS_SERVER_IP> vncserver_proxyclient_address = <THIS_SERVER_IP> # Qpid qpid_hostname = <CLOUD_CONTROLLER_HOSTNAME> rpc_backend = nova.rpc.impl_qpid # OTHER dhcpbridge = /usr/bin/nova-dhcpbridge injected_network_template = /usr/share/nova/interfaces.template libvirt_xml_template = /usr/share/nova/libvirt.xml.template libvirt_nonblocking = True libvirt_inject_partition = -1 vpn_client_template = /usr/share/nova/client.ovpn.template credentials_template = /usr/share/nova/novarc.template root_helper = sudo nova-rootwrap remove_unused_base_images = True </verbatim> %ENDTWISTY% * verificare che in fondo a =/etc/nova/api-paste.ini= ci siano le seguenti configurazioni (la parte prima non si tocca, 131.154.101.242 č l'ip di keystone ). %TWISTY{ mode="div" showlink=" *api-paste.ini* " hidelink=" *api-paste.ini* " remember="off" firststart="show" showimgright="%ICONURLPATH{toggleopen}%" hideimgright="%ICONURLPATH{toggleclose}%" }% <verbatim> [...] [filter:authtoken] paste.filter_factory = keystone.middleware.auth_token:filter_factory service_protocol = http service_host = <KEYSTONE_SERVICE_IP> service_port = 5000 auth_host = <KEYSTONE_SERVICE_IP> auth_port = 35357 auth_protocol = http auth_uri = http://<KEYSTONE_SERVICE_IP>:5000/ admin_tenant_name = service admin_user = nova admin_password = <NOVA_PASSWORD> </verbatim> %ENDTWISTY% * lanciare i seguenti comandi: <verbatim> # for svc in api objectstore compute network volume scheduler cert; do echo openstack-nova-$svc; service openstack-nova-$svc stop ; chkconfig openstack-nova-$svc on; done # nova-manage db sync # for svc in api objectstore compute network volume scheduler cert; do echo openstack-nova-$svc; /etc/init.d/openstack-nova-$svc start ; done </verbatim> * Sul Cloud controller, verificare lo stato dei NOVA compute (non vengono riportati di seguito alcuni WARNING): <verbatim> # nova-manage service list Binary Host Zone Status State Updated_At nova-scheduler stack-03.cnaf.infn.it nova enabled :-) 2012-08-31 09:46:24 nova-compute stack-03.cnaf.infn.it nova enabled :-) 2012-08-31 09:46:26 nova-network stack-03.cnaf.infn.it nova enabled :-) 2012-08-31 09:46:25 nova-cert stack-03.cnaf.infn.it nova enabled :-) 2012-08-31 09:46:24 nova-volume stack-03.cnaf.infn.it nova enabled :-) 2012-08-31 09:46:24 </verbatim> * You must run the command that creates the network and the bridge using the =virbr0= specified in the =nova.conf= file to create the network that the virtual machines use. This example shows the network range using 192.168.122.0/24 as the fixed range for our guest !VMs, but you can substitute the range for the network you have available. We're labeling it with _private_ in this case. <verbatim> # nova-manage network create private --multi_host=T --fixed_range_v4=192.168.122.0/24 --bridge_interface=virbr0 --num_networks=1 --network_size=256 # nova-manage network list id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid 1 192.168.122.0/24 None 192.168.122.2 8.8.4.4 None None None 052f9b4b-e6d7-4ad9-a3f1-929e80008372 </verbatim> ---++ Configuring Public (Floating) IP Addresses ---+++ Private and Public IP Addresses Every virtual instance is automatically assigned a private IP address. You may optionally assign public IP addresses to instances. !OpenStack uses the term *floating IP* to refer to an IP address (typically public) that can be dynamically added to a running virtual instance. !OpenStack Compute uses Network Address Translation (NAT) to assign floating !IPs to virtual instances. If you plan to use this feature, you must add the following to your =nova.conf= file to specify which interface the =nova-network= service will bind public IP addresses to: <verbatim> public_interface=eth0 </verbatim> Restart the =nova-network= service if you change =nova.conf= while the service is running. ---+++ Enabling IP forwarding By default, the IP forwarding is disabled on most of Linux distributions. The *floating IP* feature requires the IP forwarding enabled in order to work, you can check if the forwarding is enabled by running the following command: <verbatim> # sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0 </verbatim> In this example, the IP forwarding is disabled. You can enable it on the fly by running the following command: <verbatim> $ sysctl -w net.ipv4.ip_forward=1 </verbatim> In order to make the changes permanent, edit the =/etc/sysctl.conf= and update the IP forwarding setting : /verbatim> net.ipv4.ip_forward = 1 </verbatim> ---+++ Creating a List of Available Floating IP Addresses Nova maintains a list of floating IP addresses that are available for assigning to instances. Use the =nova-manage floating create= command to add entries to this list, as root. For example: =nova-manage floating create 131.154.101.220= The following =nova-manage= commands apply to floating IPs. * *nova-manage floating list*: List the floating IP addresses in the pool. * *nova-manage floating create [cidr]*: Create specific floating !IPs for either a single address or a subnet. * *nova-manage floating delete [cidr]*: Remove floating IP addresses using the same parameters as the create command. ---+++ Adding a Floating IP to an Instance Adding a floating IP to an instance is a two step process: 1. =nova floating-ip-create=: Allocate a floating IP address from the list of available addresses. 1. =nova add-floating-ip=: Add an allocated floating IP address to a running instance. Here's an example of how to add a floating IP to a running instance with an ID of 63c5b9ba-3308-43ce-af61-d7b5dbc08c15 <verbatim> # nova floating-ip-create +-----------------+-------------+----------+------+ | Ip | Instance Id | Fixed Ip | Pool | +-----------------+-------------+----------+------+ | 131.154.101.220 | None | None | nova | +-----------------+-------------+----------+------+ # nova add-floating-ip 63c5b9ba-3308-43ce-af61-d7b5dbc08c15 131.154.101.220 # nova-manage floating list c10d9c9f296b47f8a1212dd7a98357e0 131.154.101.220 63c5b9ba-3308-43ce-af61-d7b5dbc08c15 nova eth0 </verbatim> If the instance no longer needs a public address, remove the floating IP address from the instance and de-allocate the address: <verbatim> # nova remove-floating-ip 63c5b9ba-3308-43ce-af61-d7b5dbc08c15 131.154.101.220 # nova floating-ip-delete 131.154.101.220 </verbatim> ---+++ Automatically adding floating !IPs The =nova-network= service can be configured to automatically allocate and assign a floating IP address to virtual instances when they are launched. Add the following line to =nova.conf= and restart the =nova-network= service <verbatim> auto_assign_floating_ip=True </verbatim> Note that if this option is enabled and all of the floating IP addresses have already been allocated, the *nova boot command will fail with an error*. -- Main.PaoloVeronesi - 2012-08-30
Edit
|
Attach
|
PDF
|
H
istory
:
r27
|
r16
<
r15
<
r14
<
r13
|
B
acklinks
|
V
iew topic
|
More topic actions...
Topic revision: r14 - 2012-10-11
-
EnricoFattibene
Home
Site map
CEMon web
CREAM web
Cloud web
Cyclops web
DGAS web
EgeeJra1It web
Gows web
GridOversight web
IGIPortal web
IGIRelease web
MPI web
Main web
MarcheCloud web
MarcheCloudPilotaCNAF web
Middleware web
Operations web
Sandbox web
Security web
SiteAdminCorner web
TWiki web
Training web
UserSupport web
VOMS web
WMS web
WMSMonitor web
WeNMR web
MarcheCloud Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Edit
Attach
Copyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback