mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 11:52:28 +01:00
4626 lines
235 KiB
XML
4626 lines
235 KiB
XML
<?xml version='1.0' encoding='utf-8' ?>
|
||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||
%BOOK_ENTITIES;
|
||
]>
|
||
<!-- Licensed to the Apache Software Foundation (ASF) under one
|
||
or more contributor license agreements. See the NOTICE file
|
||
distributed with this work for additional information
|
||
regarding copyright ownership. The ASF licenses this file
|
||
to you under the Apache License, Version 2.0 (the
|
||
"License"); you may not use this file except in compliance
|
||
with the License. You may obtain a copy of the License at
|
||
http://www.apache.org/licenses/LICENSE-2.0
|
||
Unless required by applicable law or agreed to in writing,
|
||
software distributed under the License is distributed on an
|
||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
KIND, either express or implied. See the License for the
|
||
specific language governing permissions and limitations
|
||
under the License.
|
||
-->
|
||
<book>
|
||
<xi:include href="Book_Info_Release_Notes_4.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||
<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||
<chapter id="welcome-4.2">
|
||
<title>Welcome to &PRODUCT; 4.2</title>
|
||
<para>Welcome to the 4.2.0 release of &PRODUCT;, the second major release from the Apache
|
||
CloudStack project since its graduation from the Apache Incubator. &PRODUCT; 4.2 includes more
|
||
than 70 new features and enhancements. The focus of the release is on three major
|
||
areas:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Improved support for both legacy-style and cloud-style workloads</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>New third-party plug-in architecture</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Networking enhancements</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para>In addition to these major new areas of functionality, &PRODUCT; 4.2 provides many
|
||
additional enhancements in a variety of product areas. All of the new features are summarized
|
||
later in this Release Note.</para>
|
||
<para>This document contains information specific to this release of &PRODUCT;, including
|
||
upgrade instructions from prior releases, new features added to &PRODUCT;, API changes, and
|
||
issues fixed in the release. For installation instructions, please see the <ulink
|
||
url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/index.html"
|
||
>Installation Guide</ulink>. For usage and administration instructions, please see the
|
||
<ulink
|
||
url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Admin_Guide/index.html"
|
||
>&PRODUCT; Administrator's Guide</ulink>. Developers and users who wish to work with the API
|
||
will find instruction in the <ulink
|
||
url="http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.0.1-incubating/html/API_Developers_Guide/index.html"
|
||
>&PRODUCT; API Developer's Guide</ulink></para>
|
||
<para>If you find any errors or problems in this guide, please see <xref linkend="feedback"/>.
|
||
We hope you enjoy working with &PRODUCT;!</para>
|
||
</chapter>
|
||
<chapter id="version-4.2">
|
||
<title>What's New in 4.2.0</title>
|
||
<para>&PRODUCT; 4.2 includes the following new features.</para>
|
||
<section id="workloads">
|
||
<title>Features to Support Heterogeneous Workloads</title>
|
||
<para>The following new features help &PRODUCT; 4.2 better support both legacy and cloud-era
|
||
style zones.</para>
|
||
<section id="regions">
|
||
<title>Regions</title>
|
||
<para>To increase reliability of the cloud, you can optionally group resources into
|
||
geographic regions. A region is the largest available organizational unit within a cloud
|
||
deployment. A region is made up of several availability zones, where each zone is
|
||
equivalent to a datacenter. Each region is controlled by its own cluster of Management
|
||
Servers, running in one of the zones. The zones in a region are typically located in close
|
||
geographical proximity. Regions are a useful technique for providing fault tolerance and
|
||
disaster recovery.</para>
|
||
<para>By grouping zones into regions, the cloud can achieve higher availability and
|
||
scalability. User accounts can span regions, so that users can deploy VMs in multiple,
|
||
widely-dispersed regions. Even if one of the regions becomes unavailable, the services are
|
||
still available to the end-user through VMs deployed in another region. And by grouping
|
||
communities of zones under their own nearby Management Servers, the latency of
|
||
communications within the cloud is reduced compared to managing widely-dispersed zones
|
||
from a single central Management Server.</para>
|
||
<para>Usage records can also be consolidated and tracked at the region level, creating
|
||
reports or invoices for each geographic region.</para>
|
||
</section>
|
||
<section id="object-store">
|
||
<title>Object Storage Plugin Architecture</title>
|
||
<para>Artifacts such as templates, ISOs and snapshots are kept in storage which &PRODUCT;
|
||
refers to as secondary storage. To improve scalability and performance, as when a number
|
||
of hosts access secondary storage concurrently, object storage can be used for secondary
|
||
storage. Object storage can also provide built-in high availability capability. When using
|
||
object storage, access to secondary storage data can be made available across multiple
|
||
zones in a region. This is a huge benefit, as it is no longer necessary to copy templates,
|
||
snapshots etc. across zones as would be needed in an NFS-only environment.</para>
|
||
<para>Object storage is provided through third-party software such as Amazon Simple Storage
|
||
Service (S3) or any other object storage that supports the S3 interface. These third party
|
||
object storages can be integrated with &PRODUCT; by writing plugin software that uses the
|
||
object storage plugin capability introduced in &PRODUCT; 4.2. Several new pluggable
|
||
service interfaces are available so that different storage providers can develop
|
||
vendor-specific plugins based on the well-defined contracts that can be seamlessly managed
|
||
by &PRODUCT;.</para>
|
||
</section>
|
||
<section id="zone-wide-primary-storage">
|
||
<title>Zone-Wide Primary Storage</title>
|
||
<para>(Supported on KVM and VMware)</para>
|
||
<para>In &PRODUCT; 4.2, you can provision primary storage on a per-zone basis. Data volumes
|
||
in the primary storage can be attached to any VM on any host in the zone.</para>
|
||
<para>In previous &PRODUCT; versions, each cluster had its own primary storage. Data in the
|
||
primary storage was directly available only to VMs within that cluster. If a VM in a
|
||
different cluster needed some of the data, it must be copied from one cluster to another,
|
||
using the zone's secondary storage as an intermediate step. This operation was
|
||
unnecessarily time-consuming.</para>
|
||
</section>
|
||
<section id="vmware-datacenter">
|
||
<title>VMware Datacenter Now Visible As a &PRODUCT; Zone</title>
|
||
<para>In order to support zone-wide functions for VMware, changes have been made so that
|
||
&PRODUCT; is now aware of VMware Datacenters and can map each Datacenter to a &PRODUCT;
|
||
zone. Previously, &PRODUCT; was only aware of VMware Clusters, a smaller organizational
|
||
unit than Datacenters. This implies that a single &PRODUCT; zone could possibly contain
|
||
clusters from different VMware Datacenters. In order for zone-wide functions, such as
|
||
zone-wide primary storage, to work for VMware hosts, &PRODUCT; has to make sure that a
|
||
zone contains only a single VMware Datacenter. Therefore, when you are creating a new
|
||
&PRODUCT; zone, you will now be able to select a VMware Datacenter for the zone. If you
|
||
are provisioning multiple VMware Datacenters, each one will be set up as a single zone in
|
||
&PRODUCT;. </para>
|
||
<note>
|
||
<para>If you are upgrading from a previous &PRODUCT; version, and your existing deployment
|
||
contains a zone with clusters from multiple VMware Datacenters, that zone will not be
|
||
forcibly migrated to the new model. It will continue to function as before. However, any
|
||
new zone-wide operations, such as zone-wide primary storage, will not be available in
|
||
that zone.</para>
|
||
</note>
|
||
<para/>
|
||
</section>
|
||
</section>
|
||
<section id="third-party-plugin">
|
||
<title>Third-Party UI Plugin Framework</title>
|
||
<para>Using the new third-party plugin framework, you can write and install extensions to
|
||
&PRODUCT;. The installed and enabled plugins will appear in the UI.</para>
|
||
<para>The basic procedure for adding a UI plugin is explained in the Developer Guide. In
|
||
summary, the plugin developer creates the plugin code itself (in Javascript), a thumbnail
|
||
image, the plugin listing, and a CSS file. The &PRODUCT; administrator adds the folder
|
||
containing the plugin code under the &PRODUCT; PLUGINS folder and adds the plugin name to a
|
||
configuration file (plugins.js).</para>
|
||
<para>The next time the user refreshes the UI in the browser, the plugin will appear under the
|
||
Plugins button in the left navigation bar.</para>
|
||
</section>
|
||
<section id="networking">
|
||
<title>Networking Enhancements</title>
|
||
<para>The following new features provide additional networking functionality in &PRODUCT;
|
||
4.2.</para>
|
||
<section id="ipv6">
|
||
<title>IPv6 </title>
|
||
<para>&PRODUCT; 4.2 introduces initial support for IPv6. This feature is provided as a
|
||
technical preview only. Full support is planned for a future release.</para>
|
||
</section>
|
||
<section id="portable-ip">
|
||
<title>Portable IPs</title>
|
||
<para>Portable IPs in &PRODUCT; are elastic IPs that can be transferred across
|
||
geographically separated zones. As an administrator, you can provision a pool of portable
|
||
IPs at region level and are available for user consumption. The users can acquire portable
|
||
IPs if admin has provisioned portable public IPs at the region level they are part of.
|
||
These IPs can be used for any service within an advanced zone. You can also use portable
|
||
IPs for EIP service in Basic zones. Additionally, a portable IP can be transferred from
|
||
one network to another network.</para>
|
||
</section>
|
||
<section id="ntier-apps">
|
||
<title>N-Tier Applications</title>
|
||
<para>In &PRODUCT; 3.0.6, a functionality was added to allow users to create a multi-tier
|
||
application connected to a single instance of a Virtual Router that supports inter-VLAN
|
||
routing. Such a multi-tier application is called a virtual private cloud (VPC). Users were
|
||
also able to connect their multi-tier applications to a private Gateway or a Site-to-Site
|
||
VPN tunnel and route certain traffic to those gateways. For &PRODUCT; 4.2, additional
|
||
features are implemented to enhance VPC applications.</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><xref linkend="kvm-vpc"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="add-loadbalancer-rule-vpc"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="current-lb-vpc"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="across-tiers-lb"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="ns-support"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="configure-acl"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="acl-private-gateway"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="allow-acl"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="acl-deny"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="add-vm-tier-sharednw"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="add-gateway-vpc"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="sourcenat-private-gateway"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="eightvpn"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="static-route"/></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><xref linkend="blacklist-route"/></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<section id="kvm-vpc">
|
||
<title>Support for KVM</title>
|
||
<para>VPC is now supported on KVM hypervisors.</para>
|
||
</section>
|
||
<section id="add-loadbalancer-rule-vpc">
|
||
<title>Load Balancing Support for VPC</title>
|
||
<para>In a VPC, you can configure two types of load balancing—external LB and
|
||
internal LB. External LB is nothing but a LB rule created to redirect the traffic
|
||
received at a public IP of the VPC virtual router. The traffic is load balanced within a
|
||
tier based on your configuration. Citrix NetScaler and VPC virtual router are supported
|
||
for external LB. When you use internal LB service, traffic received at a tier is load
|
||
balanced across different VMs within that tier. For example, traffic reached at Web tier
|
||
is redirected to another VM in that tier. External load balancing devices are not
|
||
supported for internal LB. The service is provided by a internal LB VM configured on the
|
||
target tier.</para>
|
||
<section id="current-lb-vpc">
|
||
<title>Load Balancing Within a Tier (External LB)</title>
|
||
<para>A &PRODUCT; user or administrator may create load balancing rules that balance
|
||
traffic received at a public IP to one or more VMs that belong to a network tier that
|
||
provides load balancing service in a VPC. A user creates a rule, specifies an
|
||
algorithm, and assigns the rule to a set of VMs within a tier.</para>
|
||
</section>
|
||
<section id="across-tiers-lb">
|
||
<title>Load Balancing Across Tiers</title>
|
||
<para>&PRODUCT; supports sharing workload across different tiers within your VPC. Assume
|
||
that multiple tiers are set up in your environment, such as Web tier and Application
|
||
tier. Traffic to each tier is balanced on the VPC virtual router on the public side.
|
||
If you want the traffic coming from the Web tier to the Application tier to be
|
||
balanced, use the internal load balancing feature offered by &PRODUCT;.</para>
|
||
</section>
|
||
<section id="ns-support">
|
||
<title>Netscaler Support for VPC</title>
|
||
<para>Citrix NetScaler is supported for external LB. Certified version for this feature
|
||
is NetScaler 10.0 Build 74.4006.e.</para>
|
||
</section>
|
||
</section>
|
||
<section id="configure-acl">
|
||
<title>Enhanced Access Control List</title>
|
||
<para>Network Access Control List (ACL) on the VPC virtual router is enhanced. The network
|
||
ACLs can be created for the tiers only if the NetworkACL service is supported. In
|
||
&PRODUCT; terminology, Network ACL is a group of Network ACL items. Network ACL items
|
||
are nothing but numbered rules that are evaluated in order, starting with the lowest
|
||
numbered rule. These rules determine whether traffic is allowed in or out of any tier
|
||
associated with the network ACL. You need to add the Network ACL items to the Network
|
||
ACL, then associate the Network ACL with a tier. Network ACL is associated with a VPC
|
||
and can be assigned to multiple VPC tiers within a VPC. A Tier is associated with a
|
||
Network ACL at all the times. Each tier can be associated with only one ACL.</para>
|
||
<para>The default Network ACL is used when no ACL is associated. Default behavior is all
|
||
incoming traffic to guest networks is blocked and all outgoing traffic from guest
|
||
networks is allowed. Default network ACL cannot be removed or modified.</para>
|
||
<section id="acl-private-gateway">
|
||
<title>ACL on Private Gateway</title>
|
||
<para>The traffic on the VPC private gateway is controlled by creating both ingress and
|
||
egress network ACL rules. The ACLs contains both allow and deny rules. As per the
|
||
rule, all the ingress traffic to the private gateway interface and all the egress
|
||
traffic out from the private gateway interface are blocked. You can change this
|
||
default behaviour while creating a private gateway.</para>
|
||
</section>
|
||
<section id="allow-acl">
|
||
<title>Allow ACL on All Level 4 Protocols</title>
|
||
<para>In addition to the existing protocol support for ICMP, TCP, UDP, support for All
|
||
Level 4 protocols is added. The protocol numbers from 0 to 255 are supported.</para>
|
||
</section>
|
||
<section id="acl-deny">
|
||
<title>Support for ACL Deny Rules</title>
|
||
<para>In addition to the existing support for ACL Allow rules, support for ACL Deny
|
||
rules has been added in &PRODUCT; 4.2. As part of this, two operations are supported:
|
||
Number and Action. You can configure a rule, allow or deny, by using action. Use
|
||
Number to add a rule number.</para>
|
||
</section>
|
||
</section>
|
||
<section id="add-vm-tier-sharednw">
|
||
<title>Deploying VMs to a VPC Tier and Shared Networks</title>
|
||
<para>&PRODUCT; allows you to deploy VMs on a VPC tier and one or more shared networks.
|
||
With this feature, the VMs deployed in a multi-tier application can receive services
|
||
offered by a service provider over the shared network. One example of such a service is
|
||
monitoring service.</para>
|
||
</section>
|
||
<section id="add-gateway-vpc">
|
||
<title>Adding a Private Gateway to a VPC</title>
|
||
<para>A private gateway can be added by the root admin only. The VPC private network has
|
||
1:1 relationship with the NIC of the physical network. You can configure multiple
|
||
private gateways to a single VPC. No gateways with duplicated VLAN and IP are allowed in
|
||
the same data center.</para>
|
||
<section id="sourcenat-private-gateway">
|
||
<title>Source NAT on Private Gateway</title>
|
||
<para>You might want to deploy multiple VPCs with the same super CIDR and guest tier
|
||
CIDR. Therefore, multiple guest VMs from different VPCs can have the same IPs to reach
|
||
a enterprise data center through the private gateway. In such cases, a NAT service
|
||
need to be configured on the private gateway. If Source NAT is enabled, the guest VMs
|
||
in VPC reaches the enterprise network via private gateway IP address by using the NAT
|
||
service. </para>
|
||
<para>The Source NAT service on a private gateway can be enabled while adding the
|
||
private gateway. On deletion of a private gateway, source NAT rules specific to the
|
||
private gateway are deleted.</para>
|
||
</section>
|
||
<section id="eightvpn">
|
||
<title>VPN Gateways</title>
|
||
<para>Support up to 8 VPN Gateways is added.</para>
|
||
</section>
|
||
<section id="static-route">
|
||
<title>Creating a Static Route</title>
|
||
<para>&PRODUCT; enables you to specify routing for the VPN connection you create. You
|
||
can enter one or CIDR addresses to indicate which traffic is to be routed back to the
|
||
gateway.</para>
|
||
</section>
|
||
<section id="blacklist-route">
|
||
<title>Blacklisting Routes</title>
|
||
<para>&PRODUCT; enables you to block a list of routes so that they are not assigned to
|
||
any of the VPC private gateways. Specify the list of routes that you want to blacklist
|
||
in the <code>blacklisted.routes</code> global parameter. Note that the parameter
|
||
update affects only new static route creations. If you block an existing static route,
|
||
it remains intact and continue functioning. You cannot add a static route if the route
|
||
is blacklisted for the zone. </para>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
<section id="vlan-assign-isolated-nw">
|
||
<title>Assigning VLANs to Isolated Networks</title>
|
||
<para>&PRODUCT; provides you the ability to control VLAN assignment to Isolated networks.
|
||
You can assign a VLAN ID when a network is created, just the way it's done for Shared
|
||
networks.</para>
|
||
<para>The former behaviour also is supported — VLAN is randomly allocated to a network
|
||
from the VNET range of the physical network when the network turns to Implemented state.
|
||
The VLAN is released back to the VNET pool when the network shuts down as a part of the
|
||
Network Garbage Collection. The VLAN can be re-used either by the same network when it is
|
||
implemented again, or by any other network. On each subsequent implementation of a
|
||
network, a new VLAN can be assigned.</para>
|
||
<note>
|
||
<para>You cannot change a VLAN once it's assigned to the network. The VLAN remains with
|
||
the network for its entire life cycle.</para>
|
||
</note>
|
||
</section>
|
||
<section id="persistent-network">
|
||
<title>Persistent Networks</title>
|
||
<para>&PRODUCT; 4.2 supports Persistent Networks. The network that you can provision without
|
||
having to deploy any VMs on it is called a Persistent Network. A Persistent Network can be
|
||
part of a VPC or a non-VPC environment. With the addition of this feature, you will have
|
||
the ability to create a network in &PRODUCT; in which physical devices can be deployed
|
||
without having to run any VMs. Additionally, you can deploy physical devices on that
|
||
network. Another advantages is that you can create a VPC with a tier that consists only
|
||
physical devices. For example, you might create a VPC for a three-tier application, deploy
|
||
VMs for Web and Application tier, and use physical machines for the Database tier. Another
|
||
use case is that if you are providing services by using physical hardware, you can define
|
||
the network as persistent and therefore even if all its VMs are destroyed the services
|
||
will not be discontinued.</para>
|
||
</section>
|
||
<section id="vnmc-cisco">
|
||
<title>Cisco VNMC Support</title>
|
||
<para>Cisco Virtual Network Management Center (VNMC) provides centralized multi-device and
|
||
policy management for Cisco Network Virtual Services. When Cisco VNMC is integrated with
|
||
ASA 1000v Cloud Firewall and Cisco Nexus 1000v dvSwitch in &PRODUCT; you will be able to: </para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Configure Cisco ASA 1000v Firewalls</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Create and apply security profiles that contain ACL policy sets for both ingress
|
||
and egress traffic, and NAT policy sets</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para>&PRODUCT; supports Cisco VNMC on Cisco Nexus 1000v dvSwich-enabled VMware
|
||
hypervisors.</para>
|
||
</section>
|
||
<section id="vmware-vswitch">
|
||
<title>VMware vNetwork Distributed vSwitch</title>
|
||
<para>&PRODUCT; supports VMware vSphere Distributed Switch (VDS) for virtual network
|
||
configuration in a VMware vSphere environment. Each vCenter server instance can support up
|
||
to 128 VDSs and each VDS can manage up to 500 VMware hosts. &PRODUCT; supports configuring
|
||
virtual networks in a deployment with a mix of Virtual Distributed Switch, Standard
|
||
Virtual Switch and Nexus 1000v Virtual Switch. </para>
|
||
</section>
|
||
<section id="reserved-ip-addresses-non-csvms">
|
||
<title>IP Reservation in Isolated Guest Networks</title>
|
||
<para>In Isolated guest networks in &PRODUCT; 4.2, a part of the guest IP address space can
|
||
be reserved for non-&PRODUCT; VMs or physical servers. To do so, you configure a range of
|
||
Reserved IP addresses by specifying the CIDR when a guest network is in Implemented state.
|
||
The advantage of having this feature is that if your customers wish to have non-&PRODUCT;
|
||
controlled VMs or physical servers on the same network, they can use a part of the IP
|
||
address space that is primarily provided to the guest network. When IP reservation is
|
||
configured, the administrator can add additional VMs or physical servers that are not part
|
||
of &PRODUCT; to the same network and assign them the Reserved IP addresses. &PRODUCT;
|
||
guest VMs cannot acquire IPs from the Reserved IP Range.</para>
|
||
</section>
|
||
<section id="ip-vlan-tenant">
|
||
<title>Dedicated Resources: Public IP Addresses and VLANs Per Account</title>
|
||
<para>&PRODUCT; provides you the ability to reserve a set of public IP addresses and VLANs
|
||
exclusively for an account. During zone creation, you can continue to define a set of
|
||
VLANs and multiple public IP ranges. This feature extends the functionality to enable you
|
||
to dedicate a fixed set of VLANs and guest IP addresses for a tenant.</para>
|
||
<para>This feature provides you the following capabilities:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Reserve a VLAN range and public IP address range from an Advanced zone and assign
|
||
it to an account</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Disassociate a VLAN and public IP address range from an account</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<note>
|
||
<para>Ensure that you check whether the required range is available and conforms to
|
||
account limits. The maximum IPs per account limit cannot be superseded.</para>
|
||
</note>
|
||
</section>
|
||
<section id="egress-firewall">
|
||
<title>Enhanced Juniper SRX Support for Egress Firewall Rules</title>
|
||
<para>Egress firewall rules were previously supported on virtual routers, and now they are
|
||
also supported on Juniper SRX external networking devices.</para>
|
||
<para>Egress traffic originates from a private network to a public network, such as the
|
||
Internet. By default, the egress traffic is blocked, so no outgoing traffic is allowed
|
||
from a guest network to the Internet. However, you can control the egress traffic in an
|
||
Advanced zone by creating egress firewall rules. When an egress firewall rule is applied,
|
||
the traffic specific to the rule is allowed and the remaining traffic is blocked. When all
|
||
the firewall rules are removed the default policy, Block, is applied.</para>
|
||
<note>
|
||
<para>Egress firewall rules are not supported on Shared networks. They are supported only
|
||
on Isolated guest networks.</para>
|
||
</note>
|
||
</section>
|
||
<section id="default-egress-policy">
|
||
<title>Configuring the Default Egress Policy</title>
|
||
<para>The default egress policy for Isolated guest network can be configured by using
|
||
Network offering. Use the create network offering option to determine whether the default
|
||
policy should be block or allow all the traffic to the public network from a guest
|
||
network. Use this network offering to create the network. If no policy is specified, by
|
||
default all the traffic is allowed from the guest network that you create by using this
|
||
network offering.</para>
|
||
<para>You have two options: Allow and Deny.</para>
|
||
<para>If you select Allow for a network offering, by default egress traffic is allowed.
|
||
However, when an egress rule is configured for a guest network, rules are applied to block
|
||
the specified traffic and rest are allowed. If no egress rules are configured for the
|
||
network, egress traffic is accepted. If you select Deny for a network offering, by default
|
||
egress traffic for the guest network is blocked. However, when an egress rules is
|
||
configured for a guest network, rules are applied to allow the specified traffic. While
|
||
implementing a guest network, &PRODUCT; adds the firewall egress rule specific to the
|
||
default egress policy for the guest network.</para>
|
||
<para>This feature is supported only on virtual router and Juniper SRX.</para>
|
||
</section>
|
||
<section id="non-contiguous-vlan">
|
||
<title>Non-Contiguous VLAN Ranges</title>
|
||
<para>&PRODUCT; provides you with the flexibility to add non contiguous VLAN ranges to your
|
||
network. The administrator can either update an existing VLAN range or add multiple non
|
||
contiguous VLAN ranges while creating a zone. You can also use the UpdatephysicalNetwork
|
||
API to extend the VLAN range.</para>
|
||
</section>
|
||
<section id="pvlan">
|
||
<title>Isolation in Advanced Zone Using Private VLAN</title>
|
||
<para>Isolation of guest traffic in shared networks can be achieved by using Private VLANs
|
||
(PVLAN). PVLANs provide Layer 2 isolation between ports within the same VLAN. In a
|
||
PVLAN-enabled shared network, a user VM cannot reach other user VM though they can reach
|
||
the DHCP server and gateway, this would in turn allow users to control traffic within a
|
||
network and help them deploy multiple applications without communication between
|
||
application as well as prevent communication with other users’ VMs.</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Isolate VMs in a shared networks by using Private VLANs.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Supported on KVM, XenServer, and VMware hypervisors.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>PVLAN-enabled shared network can be a part of multiple networks of a guest VM.
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para>For further reading:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><ulink
|
||
url="http://www.cisco.com/en/US/docs/switches/lan/catalyst3750/software/release/12.2_25_see/configuration/guide/swpvlan.html#wp1038379"
|
||
>Understanding Private VLANs</ulink></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><ulink url="http://tools.ietf.org/html/rfc5517">Cisco Systems' Private VLANs:
|
||
Scalable Security in a Multi-Client Environment</ulink></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><ulink url="http://kb.vmware.com">Private VLAN (PVLAN) on vNetwork Distributed
|
||
Switch - Concept Overview (1010691)</ulink></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section id="multiple-ip-nic">
|
||
<title>Configuring Multiple IP Addresses on a Single NIC</title>
|
||
<para>(Supported on XenServer, KVM, and VMware hypervisors)</para>
|
||
<para>&PRODUCT; now provides you the ability to associate multiple private IP addresses per
|
||
guest VM NIC. This feature is supported on all the network configurations—Basic,
|
||
Advanced, and VPC. Security Groups, Static NAT and Port forwarding services are supported
|
||
on these additional IPs. In addition to the primary IP, you can assign additional IPs to
|
||
the guest VM NIC. Up to 256 IP addresses are allowed per NIC.</para>
|
||
<para>As always, you can specify an IP from the guest subnet; if not specified, an IP is
|
||
automatically picked up from the guest VM subnet. You can view the IPs associated with for
|
||
each guest VM NICs on the UI. You can apply NAT on these additional guest IPs by using
|
||
firewall configuration in the &PRODUCT; UI. You must specify the NIC to which the IP
|
||
should be associated.</para>
|
||
</section>
|
||
<section id="multiple-ip-range">
|
||
<title>Adding Multiple IP Ranges</title>
|
||
<para>(Supported on KVM, xenServer, and VMware hypervisors)</para>
|
||
<para>&PRODUCT; 4.2 provides you with the flexibility to add guest IP ranges from different
|
||
subnets in Basic zones and security groups-enabled Advanced zones. For security
|
||
groups-enabled Advanced zones, it implies multiple subnets can be added to the same VLAN.
|
||
With the addition of this feature, you will be able to add IP address ranges from the same
|
||
subnet or from a different one when IP address are exhausted. This would in turn allows
|
||
you to employ higher number of subnets and thus reduce the address management
|
||
overhead.</para>
|
||
<para>Ensure that you manually configure the gateway of the new subnet before adding the IP
|
||
range. Note that &PRODUCT; supports only one gateway for a subnet; overlapping subnets are
|
||
not currently supported.</para>
|
||
<para>You can also delete IP ranges. This operation fails if an IP from the remove range is
|
||
in use. If the remove range contains the IP address on which the DHCP server is running,
|
||
&PRODUCT; acquires a new IP from the same subnet. If no IP is available in the subnet, the
|
||
remove operation fails.</para>
|
||
<note>
|
||
<para>The feature can only be implemented on IPv4 addresses.</para>
|
||
</note>
|
||
</section>
|
||
<section id="add-remove-network-vm">
|
||
<title>Support for Multiple Networks in VMs</title>
|
||
<para>(Supported on XenServer, VMware and KVM hypervisors)</para>
|
||
<para>&PRODUCT; 4.2 provides you the ability to add and remove multiple networks to a VM.
|
||
You can remove a network from a VM and add a new network. You can also change the default
|
||
network of a VM. With this functionality, hybrid or traditional server loads can be
|
||
accommodated with ease. </para>
|
||
<para>For adding or removing a NIC to work on VMware, ensure that vm-tools are running on
|
||
guest VMs.</para>
|
||
</section>
|
||
<section id="gslb">
|
||
<title>Global Server Load Balancing</title>
|
||
<para>&PRODUCT; 4.2 supports Global Server Load Balancing (GSLB) functionalities to provide
|
||
business continuity by load balancing traffic to an instance on active zones only in case
|
||
of zone failures . &PRODUCT; achieve this by extending its functionality of integrating
|
||
with NetScaler Application Delivery Controller (ADC), which also provides various GSLB
|
||
capabilities, such as disaster recovery and load balancing. The DNS redirection technique
|
||
is used to achieve GSLB in &PRODUCT;. In order to support this functionality, region level
|
||
services and service provider are introduced. A new service 'GSLB' is introduced as a
|
||
region level service. The GSLB service provider is introduced that will provider the GSLB
|
||
service. Currently, NetScaler is the supported GSLB provider in &PRODUCT;. GSLB
|
||
functionality works in an Active-Active data center environment. </para>
|
||
</section>
|
||
<section id="lb-on-shared-vlan">
|
||
<title>Enhanced Load Balancing Services Using External Provider on Shared VLANs</title>
|
||
<para>Network services like Firewall, Load Balancing, and NAT are now supported in shared
|
||
networks created in an advanced zone. In effect, the following network services shall be
|
||
made available to a VM in a shared network: Source NAT, Static NAT, Port Forwarding,
|
||
Firewall and Load balancing. Subset of these service can be chosen while creating a
|
||
network offering for shared networks. Services available in a shared network is defined by
|
||
the network offering and the service chosen in the network offering. For example, if
|
||
network offering for a shared network has source NAT service enabled, a public IP shall be
|
||
provisioned and source NAT is configured on the firewall device to provide public access
|
||
to the VMs on the shared network. Static NAT, Port Forwarding, Load Balancing, and
|
||
Firewall services shall be available only on the acquired public IPs associated with a
|
||
shared network.</para>
|
||
<para>Additionally, Netscaler and Juniper SRX firewall device can be configured inline or
|
||
side-by-side mode.</para>
|
||
</section>
|
||
<section id="health-check">
|
||
<title>Health Checks for Load Balanced Instances</title>
|
||
<note>
|
||
<para>This feature is supported only on NetScaler version 10.0 and beyond.</para>
|
||
</note>
|
||
<para>(NetScaler load balancer only) A load balancer rule distributes requests among a pool
|
||
of services (a service in this context means an application running on a virtual machine).
|
||
When creating a load balancer rule, you can specify a health check which will ensure that
|
||
the rule forwards requests only to services that are healthy (running and available). When
|
||
a health check is in effect, the load balancer will stop forwarding requests to any
|
||
resources that it has found to be unhealthy. If the resource later becomes available
|
||
again, the periodic health check (periodicity is configurable) will discover it and the
|
||
resource will once again be made available to the load balancer.</para>
|
||
<para>To configure how often the health check is performed by default, use the global
|
||
configuration setting healthcheck.update.interval. This default applies to all the health
|
||
check policies in the cloud. You can override this value for an individual health check
|
||
policy.</para>
|
||
</section>
|
||
</section>
|
||
<section id="host-and-vm-enhancements">
|
||
<title>Host and Virtual Machine Enhancements</title>
|
||
<para>The following new features expand the ways you can use hosts and virtual
|
||
machines.</para>
|
||
<section id="vmware-drs">
|
||
<title>VMware DRS Support</title>
|
||
<para>The VMware vSphere Distributed Resources Scheduler (DRS) is supported.</para>
|
||
</section>
|
||
<section id="windows-8">
|
||
<title>Windows 8 and Windows Server 2012 as VM Guest OS</title>
|
||
<para>(Supported on XenServer, VMware, and KVM)</para>
|
||
<para>Windows 8 and Windows Server 2012 can now be used as OS types on guest virtual
|
||
machines. The OS would be made available the same as any other, by uploading an ISO or a
|
||
template. The instructions for uploading ISOs and templates are given in the
|
||
Administrator's Guide. </para>
|
||
<note>
|
||
<para><emphasis role="bold">Limitation:</emphasis> When used with VMware hosts, this
|
||
feature works only for the following versions: vSphere ESXi 5.1 and ESXi 5.0 Patch
|
||
4.</para>
|
||
</note>
|
||
<para/>
|
||
</section>
|
||
<section id="change-account">
|
||
<title>Change Account Ownership of Virtual Machines</title>
|
||
<para>A root administrator can now change the ownership of any virtual machine from one
|
||
account to any other account. A domain or sub-domain administrator can do the same for VMs
|
||
within the domain from one account to any other account in the domain.</para>
|
||
</section>
|
||
<section id="dedicated-resources">
|
||
<title>Private Pod, Cluster, or Host</title>
|
||
<para>Dedicating pod, cluster or host to a specific domain/account means that the
|
||
domain/account will have sole access to the dedicated pod, cluster or hosts such that
|
||
scalability, security and manageability within a domain/account can be improved. The
|
||
resources which belong to that tenant will be placed into that dedicated pod, cluster or
|
||
host.</para>
|
||
</section>
|
||
<section id="resize-volume">
|
||
<title>Resizing Volumes</title>
|
||
<para>&PRODUCT; provides the ability to resize data disks; &PRODUCT; controls volume size by
|
||
using disk offerings. This provides &PRODUCT; administrators with the flexibility to
|
||
choose how much space they want to make available to the end users. Volumes within the
|
||
disk offerings with the same storage tag can be resized. For example, if you only want to
|
||
offer 10, 50, and 100 GB offerings, the allowed resize should stay within those limits.
|
||
That implies if you define a 10 GB, a 50 GB and a 100 GB disk offerings, a user can
|
||
upgrade from 10 GB to 50 GB, or 50 GB to 100 GB. If you create a custom-sized disk
|
||
offering, then you have the option to resize the volume by specifying a new, larger size.
|
||
Additionally, using the resizeVolume API, a data volume can be moved from a static disk
|
||
offering to a custom disk offering with the size specified. This functionality allows
|
||
those who might be billing by certain volume sizes or disk offerings to stick to that
|
||
model, while providing the flexibility to migrate to whatever custom size necessary. This
|
||
feature is supported on KVM, XenServer, and VMware hosts. However, shrinking volumes is
|
||
not supported on VMware hosts</para>
|
||
</section>
|
||
<section id="volume-snapshot-enhancement">
|
||
<title>VMware Volume Snapshot Improved Performance</title>
|
||
<para>When you take a snapshot of a data volume on VMware, &PRODUCT; will now use a more
|
||
efficient storage technique to improve performance.</para>
|
||
<para>Previously, every snapshot was immediately exported from vCenter to a mounted NFS
|
||
share and packaged into an OVA file format. This operation consumed time and resources.
|
||
Starting from 4.2, the original file formats (e.g., VMDK) provided by vCenter will be
|
||
retained. An OVA file will only be created as needed, on demand.</para>
|
||
<para>The new process applies only to newly created snapshots after upgrade to &PRODUCT;
|
||
4.2. Snapshots that have already been taken and stored in OVA format will continue to
|
||
exist in that format, and will continue to work as expected.</para>
|
||
</section>
|
||
<section id="storage-migration">
|
||
<title>Storage Migration: XenMotion and vMotion</title>
|
||
<para>(Supported on XenServer and VMware)</para>
|
||
<para>Storage migration allows VMs to be moved from one host to another, where the VMs are
|
||
not located on storage shared between the two hosts. It provides the option to live
|
||
migrate a VM’s disks along with the VM itself. It is now possible to migrate a VM from one
|
||
XenServer resource pool / VMware cluster to another, or to migrate a VM whose disks are on
|
||
local storage, or even to migrate a VM’s disks from one storage repository to another, all
|
||
while the VM is running.</para>
|
||
</section>
|
||
<section id="vmware-configure-linked-clones">
|
||
<title>Configuring Usage of Linked Clones on VMware</title>
|
||
<para>(For ESX hypervisor in conjunction with vCenter)</para>
|
||
<para>In &PRODUCT; 4.2, the creation of VMs as full clones is allowed. In previous versions,
|
||
only linked clones were possible.</para>
|
||
<para>For a full description of clone types, refer to VMware documentation. In summary: A
|
||
full clone is a copy of an existing virtual machine which, once created, does not depend
|
||
in any way on the original virtual machine. A linked clone is also a copy of an existing
|
||
virtual machine, but it has ongoing dependency on the original. A linked clone shares the
|
||
virtual disk of the original VM, and retains access to all files that were present at the
|
||
time the clone was created.</para>
|
||
<para>A new global configuration setting has been added, vmware.create.full.clone. When the
|
||
administrator sets this to true, end users can create guest VMs only as full clones. The
|
||
default value is true for new installations. For customers upgrading from a previous
|
||
version of &PRODUCT;, the default value of vmware.create.full.clone is false.</para>
|
||
</section>
|
||
<section id="host-deployment-rules">
|
||
<title>VM Deployment Rules</title>
|
||
<para>Rules can be set up to ensure that particular VMs are not placed on the same physical
|
||
host. These "anti-affinity rules" can increase the reliability of applications by ensuring
|
||
that the failure of a single host can not take down the entire group of VMs supporting a
|
||
given application. See Affinity Groups in the &PRODUCT; 4.2 Administration Guide.</para>
|
||
</section>
|
||
<section id="cpu-ram-dynamic-scaling">
|
||
<title>CPU and Memory Scaling for Running VMs</title>
|
||
<para>(Supported on VMware and XenServer)</para>
|
||
<para>You can now change the CPU and RAM values for a running virtual machine. In previous
|
||
versions of &PRODUCT;, this could only be done on a stopped VM.</para>
|
||
<para>It is not always possible to accurately predict the CPU and RAM requirements when you
|
||
first deploy a VM. You might need to increase or decrease these resources at any time
|
||
during the life of a VM. With the new ability to dynamically modify CPU and RAM levels,
|
||
you can change these resources for a running VM without incurring any downtime.</para>
|
||
<para>Dynamic CPU and RAM scaling can be used in the following cases:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>New VMs that are created after the installation of &PRODUCT; 4.2. If you are
|
||
upgrading from a previous version of &PRODUCT;, your existing VMs created with
|
||
previous versions will not have the dynamic scaling capability.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>User VMs on hosts running VMware and XenServer.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>System VMs on VMware.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>VM Tools or XenServer Tools must be installed on the virtual machine.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The new requested CPU and RAM values must be within the constraints allowed by the
|
||
hypervisor and the VM operating system.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para>To configure this feature, use the following new global configuration
|
||
variables:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>enable.dynamic.scale.vm: Set to True to enable the feature. By default, the
|
||
feature is turned off.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>scale.retry: How many times to attempt the scaling operation. Default = 2.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section id="cpu-ram-overcommit">
|
||
<title>CPU and Memory Over-Provisioning</title>
|
||
<para>(Supported for XenServer, KVM, and VMware)</para>
|
||
<para>In &PRODUCT; 4.2, CPU and memory (RAM) over-provisioning factors can be set for each
|
||
cluster to change the number of VMs that can run on each host in the cluster. This helps
|
||
optimize the use of resources. By increasing the over-provisioning ratio, more resource
|
||
capacity will be used. If the ratio is set to 1, no over-provisioning is done.</para>
|
||
<para>In previous releases, &PRODUCT; did not perform memory over-provisioning. It performed
|
||
CPU over-provisioning based on a ratio configured by the administrator in the global
|
||
configuration setting cpu.overprovisioning.factor. Starting in 4.2, the administrator can
|
||
specify a memory over-provisioning ratio, and can specify both CPU and memory
|
||
over-provisioning ratios on a per-cluster basis, rather than only on a global
|
||
basis.</para>
|
||
<para>In any given cloud, the optimum number of VMs for each host is affected by such things
|
||
as the hypervisor, storage, and hardware configuration. These may be different for each
|
||
cluster in the same cloud. A single global over-provisioning setting could not provide the
|
||
best utilization for all the different clusters in the cloud. It had to be set for the
|
||
lowest common denominator. The new per-cluster setting provides a finer granularity for
|
||
better utilization of resources, no matter where the &PRODUCT; placement algorithm decides
|
||
to place a VM.</para>
|
||
</section>
|
||
<section id="baremetal">
|
||
<title>Kickstart Installation for Bare Metal Provisioning</title>
|
||
<para>&PRODUCT; 4.2 supports the kick start installation method for RPM-based Linux
|
||
operating systems on baremetal hosts in basic zones. Users can provision a baremetal host
|
||
managed by &PRODUCT; as long as they have the kick start file and corresponding OS
|
||
installation ISO ready.</para>
|
||
<para>Tested on CentOS 5.5, CentOS 6.2, CentOS 6.3, Ubuntu 12.04.</para>
|
||
<para>For more information, see the Baremetal Installation Guide.</para>
|
||
</section>
|
||
<section id="baremetal-ucs">
|
||
<title>Enhanced Bare Metal Support on Cisco UCS</title>
|
||
<para>You can now more easily provision new Cisco UCS server blades into &PRODUCT; for use
|
||
as bare metal hosts. The goal is to enable easy expansion of the cloud by leveraging the
|
||
programmability of the UCS converged infrastructure and &PRODUCT;’s knowledge of the cloud
|
||
architecture and ability to orchestrate. With this new feature, &PRODUCT; can
|
||
automatically understand the UCS environment, server profiles, etc. to make it easy to
|
||
deploy a bare metal OS on a Cisco UCS.</para>
|
||
</section>
|
||
<section id="update-vm-image">
|
||
<title>Changing a VM's Base Image</title>
|
||
<para>Every VM is created from a base image, which is a template or ISO which has been
|
||
created and stored in &PRODUCT;. Both cloud administrators and end users can create and
|
||
modify templates, ISOs, and VMs.</para>
|
||
<para>In &PRODUCT; 4.2, there is a new way to modify an existing VM. You can change an
|
||
existing VM from one base image to another. For example, suppose there is a template based
|
||
on a particular operating system, and the OS vendor releases a software patch. The
|
||
administrator or user naturally wants to apply the patch and then make sure existing VMs
|
||
start using it. Whether a software update is involved or not, it's also possible to simply
|
||
switch a VM from its current template to any other desired template.</para>
|
||
</section>
|
||
<section id="reset-vm-reboot">
|
||
<title>Reset VM on Reboot</title>
|
||
<para>In &PRODUCT; 4.2, you can specify that you want to discard the root disk and create a
|
||
new one whenever a given VM is rebooted. This is useful for secure environments that need
|
||
a fresh start on every boot and for desktops that should not retain state. The IP address
|
||
of the VM will not change due to this operation.</para>
|
||
</section>
|
||
<section id="vm-snapshots">
|
||
<title>Virtual Machine Snapshots for VMware</title>
|
||
<para>(VMware hosts only) In addition to the existing &PRODUCT; ability to snapshot
|
||
individual VM volumes, you can now take a VM snapshot to preserve all the VM's data
|
||
volumes as well as (optionally) its CPU/memory state. This is useful for quick restore of
|
||
a VM. For example, you can snapshot a VM, then make changes such as software upgrades. If
|
||
anything goes wrong, simply restore the VM to its previous state using the previously
|
||
saved VM snapshot. </para>
|
||
<para>The snapshot is created using the VMware native snapshot facility. The VM snapshot
|
||
includes not only the data volumes, but optionally also whether the VM is running or
|
||
turned off (CPU state) and the memory contents. The snapshot is stored in &PRODUCT;'s
|
||
primary storage.</para>
|
||
<para>VM snapshots can have a parent/child relationship. Each successive snapshot of the
|
||
same VM is the child of the snapshot that came before it. Each time you take an additional
|
||
snapshot of the same VM, it saves only the differences between the current state of the VM
|
||
and the state stored in the most recent previous snapshot. The previous snapshot becomes a
|
||
parent, and the new snapshot is its child. It is possible to create a long chain of these
|
||
parent/child snapshots, which amount to a "redo" record leading from the current state of
|
||
the VM back to the original.</para>
|
||
</section>
|
||
<section id="vm-userdata">
|
||
<title>Increased Userdata Size When Deploying a VM</title>
|
||
<para>You can now specify up to 32KB of userdata when deploying a virtual machine through
|
||
the &PRODUCT; UI or the deployVirtualMachine API call. </para>
|
||
</section>
|
||
<section id="vmware-cluster-limit">
|
||
<title>Set VMware Cluster Size Limit Depending on VMware Version</title>
|
||
<para>The maximum number of hosts in a vSphere cluster is determined by the VMware
|
||
hypervisor software. For VMware versions 4.2, 4.1, 5.0, and 5.1, the limit is 32
|
||
hosts.</para>
|
||
<para>For &PRODUCT; 4.2, the global configuration setting vmware.percluster.host.max has
|
||
been removed. The maximum number of hosts in a VMware cluster is now determined by the
|
||
underlying hypervisor software.</para>
|
||
<note>
|
||
<para>Best Practice: It is advisable for VMware clusters in &PRODUCT; to be smaller than
|
||
the VMware hypervisor's maximum size. A cluster size of up to 8 hosts has been found
|
||
optimal for most real-world situations.</para>
|
||
</note>
|
||
</section>
|
||
<section id="limit-accounts-domains-rn">
|
||
<title>Limiting Resource Usage</title>
|
||
<para>Previously in &PRODUCT;, resource usage limit was imposed based on the resource count,
|
||
that is, restrict a user or domain on the basis of the number of VMs, volumes, or
|
||
snapshots used. In &PRODUCT; 4.2, a new set of resource types has been added to the
|
||
existing pool of resources (VMs, Volumes, and Snapshots) to support the customization
|
||
model—need-basis usage, such as large VM or small VM. The new resource types are now
|
||
broadly classified as CPU, RAM, Primary storage, and Secondary storage. &PRODUCT; 4.2
|
||
allows the root administrator to impose resource usage limit by the following resource
|
||
types for Domain, Project and Accounts. </para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>CPUs</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Memory (RAM)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Primary Storage (Volumes)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Secondary Storage (Snapshots, Templates, ISOs)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
</section>
|
||
<section id="ops">
|
||
<title>Monitoring, Maintenance, and Operations Enhancements</title>
|
||
<section id="delete-alerts">
|
||
<title>Deleting and Archiving Events and Alerts</title>
|
||
<para>In addition to viewing a list of events and alerts in the UI, the administrator can
|
||
now delete and archive them. In order to support deleting and archiving alerts, the
|
||
following global parameters have been added:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><emphasis role="bold">alert.purge.delay</emphasis>: The alerts older than
|
||
specified number of days are purged. Set the value to 0 to never purge alerts
|
||
automatically.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><emphasis role="bold">alert.purge.interval</emphasis>: The interval in seconds to
|
||
wait before running the alert purge thread. The default is 86400 seconds (one
|
||
day).</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<note>
|
||
<para>Archived alerts or events cannot be viewed in the UI, or by using the API. They are
|
||
maintained in the database for auditing or compliance purposes.</para>
|
||
</note>
|
||
</section>
|
||
<section id="global-parameters">
|
||
<title>Increased Granularity for Configuration Parameters</title>
|
||
<para>Some configuration parameters which were previously available only at the global level
|
||
of the cloud can now be set for smaller components of the cloud, such as at the zone
|
||
level. To set these parameters, look for the new Settings tab in the UI. You will find it
|
||
on the detail page for an account, cluster, zone, or primary storage.</para>
|
||
<para>The account level parameters are: <code>remote.access.vpn.client.iprange</code>,
|
||
<code>allow.public.user.templates</code>, <code>use.system.public.ips</code>, and
|
||
<code>use.system.guest.vlans</code></para>
|
||
<para>The cluster level parameters are
|
||
<code>cluster.storage.allocated.capacity.notificationthreshold</code>,
|
||
<code>cluster.storage.capacity.notificationthreshold</code>,
|
||
<code>cluster.cpu.allocated.capacity.notificationthreshold</code>,
|
||
<code>cluster.memory.allocated.capacity.notificationthreshold</code>, <code>
|
||
cluster.cpu.allocated.capacity.disablethreshold</code>,
|
||
<code>cluster.memory.allocated.capacity.disablethreshold</code>,
|
||
<code>cpu.overprovisioning.factor</code>, <code>mem.overprovisioning.factor</code>,
|
||
<code>vmware.reserve.cpu</code>, and <code>vmware.reserve.mem</code>.</para>
|
||
<para>The zone level parameters are
|
||
<code>pool.storage.allocated.capacity.disablethreshold</code>,
|
||
<code>pool.storage.capacity.disablethreshold</code>,
|
||
<code>storage.overprovisioning.factor</code>, <code>network.throttling.rate</code>,
|
||
<code>guest.domain.suffix</code>, <code>router.template.xen</code>,
|
||
<code>router.template.kvm</code>, <code>router.template.vmware</code>,
|
||
<code>router.template.hyperv</code>, <code>router.template.lx</code>c,
|
||
<code>enable.dynamic.scale.vm</code>, <code>use.external.dns</code>, and
|
||
<code>blacklisted.routes</code>.</para>
|
||
</section>
|
||
<section id="api-request-throttling">
|
||
<title>API Request Throttling</title>
|
||
<para>In &PRODUCT; 4.2, you can limit the rate at which API requests can be placed for each
|
||
account. This is useful to avoid malicious attacks on the Management Server, prevent
|
||
performance degradation, and provide fairness to all accounts.</para>
|
||
<para>If the number of API calls exceeds the threshold, an error message is returned for any
|
||
additional API calls. The caller will have to retry these API calls at another
|
||
time.</para>
|
||
<para>To control the API request throttling, use the following new global configuration
|
||
settings:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>api.throttling.enabled - Enable/Disable API throttling. By default, this setting
|
||
is false, so API throttling is not enabled.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>api.throttling.interval (in seconds) - Time interval during which the number of
|
||
API requests is to be counted. When the interval has passed, the API count is reset to
|
||
0.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>api.throttling.max - Maximum number of APIs that can be placed within the
|
||
api.throttling.interval period.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>api.throttling.cachesize - Cache size for storing API counters. Use a value higher
|
||
than the total number of accounts managed by the cloud. One cache entry is needed for
|
||
each account, to store the running API total for that account within the current time
|
||
window.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section id="external-alert-managers">
|
||
<title>Sending Alerts to External SNMP and Syslog Managers</title>
|
||
<para>In addition to showing administrator alerts on the Dashboard in the &PRODUCT; UI and
|
||
sending them in email, &PRODUCT; now can also send the same alerts to external SNMP or
|
||
Syslog management software. This is useful if you prefer to use an SNMP or Syslog manager
|
||
to monitor your cloud.</para>
|
||
<para>The supported protocol is SNMP version 2.</para>
|
||
</section>
|
||
<section id="default-pwd-engine">
|
||
<title>Changing the Default Password Encryption</title>
|
||
<para>Passwords are encoded when creating or updating users. The new default preferred
|
||
encoder, replacing MD5, is SHA256. It is more secure than MD5 hashing. If you take no
|
||
action to customize password encryption and authentication, SHA256 Salt will be
|
||
used.</para>
|
||
<para>If you prefer a different authentication mechanism, &PRODUCT; 4.2 provides a way for
|
||
you to determine the default encoding and authentication mechanism for admin and user
|
||
logins. Two new configurable lists have been introduced: userPasswordEncoders and
|
||
userAuthenticators. userPasswordEncoders allow you to configure the order of preference
|
||
for encoding passwords, and userAuthenticator allows you to configure the order in which
|
||
authentication schemes are invoked to validate user passwords.</para>
|
||
<para>The plain text user authenticator has been modified not to convert supplied passwords
|
||
to their md5 sums before checking them with the database entries. It performs a simple
|
||
string comparison between retrieved and supplied login passwords instead of comparing the
|
||
retrieved md5 hash of the stored password against the supplied md5 hash of the password,
|
||
because clients no longer hash the password.</para>
|
||
</section>
|
||
<section id="cloud-bugtool">
|
||
<title>Log Collection Utility cloud-bugtool</title>
|
||
<para>&PRODUCT; provides a command-line utility called cloud-bugtool to make it easier to
|
||
collect the logs and other diagnostic data required for troubleshooting. This is
|
||
especially useful when interacting with Citrix Technical Support.</para>
|
||
<para>You can use cloud-bugtool to collect the following:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Basic system and environment information and network configuration including IP
|
||
addresses, routing, and name resolver settings </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Information about running processes</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Management Server logs</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>System logs in /var/log/</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Dump of the cloud database</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<warning>
|
||
<para>cloud-bugtool collects information which might be considered sensitive and
|
||
confidential. Using the <code>--nodb</code> option to avoid the cloud database can
|
||
reduce this concern, though it is not guaranteed to exclude all sensitive data.</para>
|
||
</warning>
|
||
<para/>
|
||
</section>
|
||
<section id="rbd-primary-storage">
|
||
<title>Snaphotting, Backups, Cloning and System VMs for RBD Primary Storage</title>
|
||
<note>
|
||
<para>These new RBD features require at least librbd 0.61.7 (Cuttlefish) and libvirt
|
||
0.9.14 on the KVM hypervisors.</para>
|
||
</note>
|
||
<para>This release of &PRODUCT; will leverage the features of RBD format 2. This allows
|
||
snapshotting and backing up those snapshots.</para>
|
||
<para>Backups of snapshots to Secondary Storage are full copies of the RBD snapshot, they
|
||
are not RBD diffs. This because when restoring a backup of a snapshot it is not mandatory
|
||
that this backup is deployed on RBD again, it could also be a NFS Primary Storage.</para>
|
||
<para>Another key feature of RBD format 2 is cloning. With this release templates will be
|
||
copied to Primary Storage once and by using the cloning mechanism new disks will be cloned
|
||
from this parent template. This saves space and decreases deployment time for instances
|
||
dramatically.</para>
|
||
<para>Before this release, a NFS Primary Storage was still required for running the System
|
||
VMs from. The reason was a so called 'patch disk' that was generated by the hypervisor
|
||
which contained metadata for the System VM. The scripts generating this disk didn't
|
||
support RBD and thus System VMs had to be deployed from NFS. With 4.2 instead of the patch
|
||
disk a VirtIO serial console is used to pass meta information to System VMs. This enabled
|
||
the deployment of System VMs on RBD Primary Storage.</para>
|
||
</section>
|
||
</section>
|
||
<section id="issues-fixed-4.2">
|
||
<title>Issues Fixed in 4.2.0</title>
|
||
<para>Apache CloudStack uses <ulink url="https://issues.apache.org/jira/browse/CLOUDSTACK"
|
||
>Jira</ulink> to track its issues. All new features and bugs for 4.2.0 have been tracked
|
||
in Jira, and have a standard naming convention of "CLOUDSTACK-NNNN" where "NNNN" is the
|
||
issue number.</para>
|
||
<para>For list of issues fixed, see <ulink
|
||
url="https://issues.apache.org/jira/issues/?filter=12324870">Issues Fixed in
|
||
4.2</ulink>.</para>
|
||
</section>
|
||
<section id="known-issues-4.2">
|
||
<title>Known Issues in 4.2.0</title>
|
||
<para>This section includes a summary of known issues that were fixed in 4.2.0. For list of
|
||
known issues, see <ulink url="https://issues.apache.org/jira/issues/?filter=12324873">Known
|
||
Issues</ulink>.</para>
|
||
</section>
|
||
</chapter>
|
||
<chapter id="upgrade-instructions">
|
||
<title>Upgrade Instructions for 4.2</title>
|
||
<para>This section contains upgrade instructions from prior versions of CloudStack to Apache
|
||
CloudStack 4.2.0. We include instructions on upgrading to Apache CloudStack from pre-Apache
|
||
versions of Citrix &PRODUCT; (last version prior to Apache is 3.0.2) and from the releases
|
||
made while CloudStack was in the Apache Incubator.</para>
|
||
<para>If you run into any issues during upgrades, please feel free to ask questions on
|
||
users@cloudstack.apache.org or dev@cloudstack.apache.org.</para>
|
||
<section id="upgrade-from-4.0-to-4.1">
|
||
<title>Upgrade from 4.x.x to 4.2.0</title>
|
||
<para>This section will guide you from &PRODUCT; 4.0.x versions to &PRODUCT; 4.2.0.</para>
|
||
<para>Any steps that are hypervisor-specific will be called out with a note.</para>
|
||
<warning>
|
||
<title>Package Structure Changes</title>
|
||
<para>The package structure for &PRODUCT; has changed significantly since the 4.0.x
|
||
releases. If you've compiled your own packages, you'll notice that the package names and
|
||
the number of packages has changed. This is <emphasis>not</emphasis> a bug.</para>
|
||
<para>However, this does mean that the procedure is not as simple as an <command>apt-get
|
||
upgrade</command> or <command>yum update</command>, so please follow this section
|
||
carefully.</para>
|
||
</warning>
|
||
<para>We recommend reading through this section once or twice before beginning your upgrade
|
||
procedure, and working through it on a test system before working on a production
|
||
system.</para>
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Most users of &PRODUCT; manage the installation and upgrades of &PRODUCT; with one
|
||
of Linux's predominant package systems, RPM or APT. This guide assumes you'll be using
|
||
RPM and Yum (for Red Hat Enterprise Linux or CentOS), or APT and Debian packages (for
|
||
Ubuntu).</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Create RPM or Debian packages (as appropriate) and a repository from the 4.2.0
|
||
source, or check the Apache CloudStack downloads page at <ulink
|
||
url="http://cloudstack.apache.org/downloads.html"
|
||
>http://cloudstack.apache.org/downloads.html</ulink> for package repositories supplied
|
||
by community members. You will need them for step <xref linkend="upgrade-deb-packages"/>
|
||
or step <xref linkend="upgrade-rpm-packages"/>.</para>
|
||
<para>Instructions for creating packages from the &PRODUCT; source are in the <ulink
|
||
url="http://cloudstack.apache.org/docs/en-US/index.html">Installation
|
||
Guide</ulink>.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Stop your management server or servers. Run this on all management server
|
||
hosts:</para>
|
||
<programlisting><prompt>#</prompt> service cloudstack-management stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If you are running a usage server or usage servers, stop those as well:</para>
|
||
<programlisting><prompt>#</prompt> service cloudstack-usage stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Make a backup of your MySQL database. If you run into any issues or need to roll
|
||
back the upgrade, this will assist in debugging or restoring your existing environment.
|
||
You'll be prompted for your password.</para>
|
||
<programlisting><prompt>#</prompt> mysqldump -u root -p cloud > cloudstack-backup.sql</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If you have made changes to
|
||
<filename>/etc/cloud/management/components.xml</filename>, you'll need to carry these
|
||
over manually to the new file,
|
||
<filename>/etc/cloudstack/management/componentContext.xml</filename>. This is not done
|
||
automatically. (If you're unsure, we recommend making a backup of the original
|
||
<filename>components.xml</filename> to be on the safe side.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>After upgrading to 4.2, API clients are expected to send plain text passwords for
|
||
login and user creation, instead of MD5 hash. If API client changes are not acceptable,
|
||
following changes are to be made for backward compatibility:</para>
|
||
<para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
|
||
authenticator (1st entry in the userAuthenticators adapter list is default)</para>
|
||
<programlisting language="XML">
|
||
<!-- Security adapters -->
|
||
<bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
|
||
<property name="Adapters">
|
||
<list>
|
||
<ref bean="PlainTextUserAuthenticator"/>
|
||
<ref bean="MD5UserAuthenticator"/>
|
||
<ref bean="LDAPUserAuthenticator"/>
|
||
</list>
|
||
</property>
|
||
</bean>
|
||
</programlisting>
|
||
<para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
|
||
4.2.</para>
|
||
</listitem>
|
||
<listitem id="upgrade-deb-packages">
|
||
<para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
|
||
skip to step <xref linkend="upgrade-rpm-packages"/>.</para>
|
||
<note>
|
||
<title>Community Packages</title>
|
||
<para>This section assumes you're using the community supplied packages for &PRODUCT;.
|
||
If you've created your own packages and APT repository, substitute your own URL for
|
||
the ones used in these examples.</para>
|
||
</note>
|
||
<orderedlist id="debsteps" numeration="loweralpha">
|
||
<listitem>
|
||
<para>The first order of business will be to change the sources list for each system
|
||
with &PRODUCT; packages. This means all management servers, and any hosts that have
|
||
the KVM agent. (No changes should be necessary for hosts that are running VMware or
|
||
Xen.)</para>
|
||
<para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
|
||
any systems that have &PRODUCT; packages installed.</para>
|
||
<para>This file should have one line, which contains:</para>
|
||
<programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
|
||
<para>We'll change it to point to the new package repository:</para>
|
||
<programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
|
||
<para>If you're using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Now update your apt package list:</para>
|
||
<programlisting language="Bash">$ sudo apt-get update</programlisting>
|
||
</listitem>
|
||
<listitem id="deb-master">
|
||
<para>Now that you have the repository configured, it's time to install the
|
||
<filename>cloudstack-management</filename> package. This will pull in any other
|
||
dependencies you need.</para>
|
||
<programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
|
||
</listitem>
|
||
<listitem id="kvm-agent-deb">
|
||
<para>You will need to manually install the <filename>cloudstack-agent</filename>
|
||
package:</para>
|
||
<programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
|
||
<para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
|
||
your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
|
||
and <filename>environment.properties</filename> from
|
||
<filename>/etc/cloud/agent</filename> to
|
||
<filename>/etc/cloudstack/agent</filename>.</para>
|
||
<para>When prompted whether you wish to keep your configuration, say Yes.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Verify that the file
|
||
<filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
|
||
reads:</para>
|
||
<programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
|
||
<para>If not, add the line.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart the agent:</para>
|
||
<programlisting language="Bash">
|
||
service cloudstack-agent stop
|
||
killall jsvc
|
||
service cloudstack-agent start
|
||
</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(VMware only) Additional steps are required for each VMware cluster. These steps
|
||
will not affect running guests in the cloud. These steps are required only for clouds
|
||
using VMware clusters:</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Stop the Management Server:</para>
|
||
<programlisting>service cloudstack-management stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Generate the encrypted equivalent of your vCenter password:</para>
|
||
<programlisting>java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.0.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh input="_your_vCenter_password_" password="`cat /etc/cloudstack/management/key`" verbose=false</programlisting>
|
||
<para>Store the output from this step, we need to add this in cluster_details table
|
||
and vmware_data_center tables in place of the plain text password</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Find the ID of the row of cluster_details table that you have to update:</para>
|
||
<programlisting>mysql -u <username> -p<password></programlisting>
|
||
<programlisting>select * from cloud.cluster_details;</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Update the plain text password with the encrypted one</para>
|
||
<programlisting>update cloud.cluster_details set value = '_ciphertext_from_step_1_' where id = _id_from_step_2_;</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Confirm that the table is updated:</para>
|
||
<programlisting>select * from cloud.cluster_details; </programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Find the ID of the correct row of vmware_data_center that you want to
|
||
update</para>
|
||
<programlisting>select * from cloud.vmware_data_center; </programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>update the plain text password with the encrypted one:</para>
|
||
<programlisting>update cloud.vmware_data_center set password = '_ciphertext_from_step_1_' where id = _id_from_step_5_; </programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Confirm that the table is updated:</para>
|
||
<programlisting>select * from cloud.vmware_data_center; </programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start the &PRODUCT; Management server </para>
|
||
<programlisting>service cloudstack-management start</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(KVM only) Additional steps are required for each KVM host. These steps will not
|
||
affect running guests in the cloud. These steps are required only for clouds using KVM
|
||
as hosts and only on the KVM hosts.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Manually clean up <filename>/var/cache/cloudstack</filename>.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Copy the 4.2 tar file to the host, untar it, and change directory to the
|
||
resulting directory.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Stop the running agent.</para>
|
||
<programlisting># service cloud-agent stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Update the agent software.</para>
|
||
<programlisting># ./install.sh</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Choose "U" to update the packages.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start the agent.</para>
|
||
<programlisting># service cloudstack-agent start</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem id="upgrade-rpm-packages">
|
||
<para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
|
||
not, skip to step <xref linkend="restart-system-vms"/>.</para>
|
||
<note>
|
||
<title>Community Packages</title>
|
||
<para>This section assumes you're using the community supplied packages for &PRODUCT;.
|
||
If you've created your own packages and yum repository, substitute your own URL for
|
||
the ones used in these examples.</para>
|
||
</note>
|
||
<orderedlist id="rpmsteps" numeration="loweralpha">
|
||
<listitem>
|
||
<para>The first order of business will be to change the yum repository for each system
|
||
with &PRODUCT; packages. This means all management servers, and any hosts that have
|
||
the KVM agent. </para>
|
||
<para>(No changes should be necessary for hosts that are running VMware or
|
||
Xen.)</para>
|
||
<para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
|
||
systems that have &PRODUCT; packages installed.</para>
|
||
<para>This file should have content similar to the following:</para>
|
||
<programlisting language="Bash">
|
||
[apache-cloudstack]
|
||
name=Apache CloudStack
|
||
baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
|
||
enabled=1
|
||
gpgcheck=0
|
||
</programlisting>
|
||
<para>If you are using the community provided package repository, change the base url
|
||
to http://cloudstack.apt-get.eu/rhel/4.2/</para>
|
||
<para>If you're using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem id="rpm-master">
|
||
<para>Now that you have the repository configured, it's time to install the
|
||
<filename>cloudstack-management</filename> package by upgrading the older
|
||
<filename>cloudstack-management</filename> package.</para>
|
||
<programlisting language="Bash">$ sudo yum upgrade cloudstack-management</programlisting>
|
||
</listitem>
|
||
<listitem id="kvm-agent-rpm">
|
||
<para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
|
||
package, similarly installing the new version as
|
||
<filename>cloudstack-agent</filename>.</para>
|
||
<programlisting language="Bash">$ sudo yum upgrade cloudstack-agent</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>For CentOS 5.5, perform the following:</para>
|
||
<orderedlist numeration="lowerroman">
|
||
<listitem>
|
||
<para>Run the following command:</para>
|
||
<programlisting>rpm -Uvh http://download.cloud.com/support/jsvc/jakarta-commons-daemon-jsvc-1.0.1-8.9.el6.x86_64.rpm</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Upgrade the Usage server.</para>
|
||
<programlisting>sudo yum upgrade cloudstack-usage</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Verify that the file
|
||
<filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
|
||
reads:</para>
|
||
<programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
|
||
<para>If not, add the line.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart the agent:</para>
|
||
<programlisting language="Bash">
|
||
service cloudstack-agent stop
|
||
killall jsvc
|
||
service cloudstack-agent start
|
||
</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem id="restart-system-vms">
|
||
<para>Once you've upgraded the packages on your management servers, you'll need to restart
|
||
the system VMs. Make sure port 8096 is open in your local host firewall to do
|
||
this.</para>
|
||
<para>There is a script that will do this for you, all you need to do is run the script
|
||
and supply the IP address for your MySQL instance and your MySQL credentials:</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> nohup cloudstack-sysvmadm -d <replaceable>IP address</replaceable> -u cloud -p -a > sysvm.log 2>&1 &</programlisting>
|
||
<para>You can monitor the log for progress. The process of restarting the system VMs can
|
||
take an hour or more.</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> tail -f sysvm.log</programlisting>
|
||
<para>The output to <filename>sysvm.log</filename> will look something like this:</para>
|
||
<programlisting language="Bash">
|
||
Stopping and starting 1 secondary storage vm(s)...
|
||
Done stopping and starting secondary storage vm(s)
|
||
Stopping and starting 1 console proxy vm(s)...
|
||
Done stopping and starting console proxy vm(s).
|
||
Stopping and starting 4 running routing vm(s)...
|
||
Done restarting router(s).
|
||
</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<note>
|
||
<title>For Xen Hosts: Copy vhd-utils</title>
|
||
<para>This step is only for CloudStack installs that are using Xen hosts.</para>
|
||
</note>
|
||
<para>Copy the file <filename>vhd-utils</filename> to
|
||
<filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver</filename>.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</section>
|
||
<section id="upgrade-from-3.0.2-to-4.0">
|
||
<title>Upgrade from 3.0.2 to 4.2.0</title>
|
||
<para>This section will guide you from Citrix CloudStack 3.0.2 to Apache CloudStack 4.2.0.
|
||
Sections that are hypervisor-specific will be called out with a note.</para>
|
||
<orderedlist>
|
||
<listitem>
|
||
<note>
|
||
<para>The following upgrade instructions apply only if you're using VMware hosts. If
|
||
you're not using VMware hosts, skip this step and move on to <xref
|
||
linkend="stopping-usage-servers"/>.</para>
|
||
</note>
|
||
<para>In each zone that includes VMware hosts, you need to add a new system VM template. </para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>While running the existing 3.0.2 system, log in to the UI as root
|
||
administrator.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>In the left navigation bar, click Templates.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>In Select view, click Templates.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Click Register template.</para>
|
||
<para>The Register template dialog box is displayed.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>In the Register template dialog box, specify the following values (do not change
|
||
these):</para>
|
||
<informaltable>
|
||
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
||
<colspec colwidth="1*" colname="1" colnum="1"/>
|
||
<colspec colwidth="2*" colname="2" colnum="2"/>
|
||
<thead>
|
||
<row>
|
||
<entry><para>Hypervisor</para></entry>
|
||
<entry><para>Description</para></entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><para>XenServer</para></entry>
|
||
<entry><para>Name: systemvm-xenserver-4.2.0</para>
|
||
<para>Description: systemvm-xenserver-4.2.0</para>
|
||
<para>URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2 </para>
|
||
<para>Zone: Choose the zone where this hypervisor is used</para>
|
||
<para>Hypervisor: XenServer</para>
|
||
<para>Format: VHD</para>
|
||
<para>OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release
|
||
number available in the dropdown)</para>
|
||
<para>Extractable: no</para>
|
||
<para>Password Enabled: no</para>
|
||
<para>Public: no</para>
|
||
<para>Featured: no</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><para>KVM</para></entry>
|
||
<entry><para>Name: systemvm-kvm-4.2.0</para>
|
||
<para>Description: systemvm-kvm-4.2.0</para>
|
||
<para>URL:
|
||
http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2</para>
|
||
<para>Zone: Choose the zone where this hypervisor is used</para>
|
||
<para>Hypervisor: KVM</para>
|
||
<para>Format: QCOW2</para>
|
||
<para>OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release
|
||
number available in the dropdown)</para>
|
||
<para>Extractable: no</para>
|
||
<para>Password Enabled: no</para>
|
||
<para>Public: no</para>
|
||
<para>Featured: no</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><para>VMware</para></entry>
|
||
<entry><para>Name: systemvm-vmware-4.2.0</para>
|
||
<para>Description: systemvm-vmware-4.2.0</para>
|
||
<para>URL:
|
||
http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova</para>
|
||
<para>Zone: Choose the zone where this hypervisor is used</para>
|
||
<para>Hypervisor: VMware</para>
|
||
<para>Format: OVA</para>
|
||
<para>OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release
|
||
number available in the dropdown)</para>
|
||
<para>Extractable: no</para>
|
||
<para>Password Enabled: no</para>
|
||
<para>Public: no</para>
|
||
<para>Featured: no</para>
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Watch the screen to be sure that the template downloads successfully and enters
|
||
the READY state. Do not proceed until this is successful.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(KVM on RHEL 6.0/6.1 only) If your existing &PRODUCT; deployment includes one or
|
||
more clusters of KVM hosts running RHEL 6.0 or RHEL 6.1, perform the following:</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Ensure that you upgrade the operating system version on those hosts before
|
||
upgrading &PRODUCT;</para>
|
||
<para>To do that, change the yum repository for each system with &PRODUCT; packages,
|
||
that implies that all the Management Servers and any hosts that have the KVM agent.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Open <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any systems that
|
||
have &PRODUCT; packages installed.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Edit as follows:</para>
|
||
<programlisting>
|
||
[upgrade]
|
||
name=rhel63
|
||
baseurl=url-of-your-rhel6.3-repo
|
||
enabled=1
|
||
gpgcheck=0
|
||
[apache CloudStack]
|
||
name= Apache CloudStack
|
||
baseurl= http://cloudstack.apt-get.eu/rhel/4.0/
|
||
enabled=1
|
||
gpgcheck=0</programlisting>
|
||
<para>If you are using the community provided package repository, change the baseurl
|
||
to http:// cloudstack.apt-get.eu/rhel/4.2/</para>
|
||
<para>If you are using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Now that you have the repository configured, upgrade the host operating system
|
||
from RHEL 6.0 to 6.3:</para>
|
||
<programlisting># yum upgrade</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem id="stopping-usage-servers">
|
||
<para>Stop all Usage Servers if running. Run this on all Usage Server hosts.</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> service cloud-usage stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Stop the Management Servers. Run this on all Management Server hosts.</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> service cloud-management stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>On the MySQL master, take a backup of the MySQL databases. We recommend performing
|
||
this step even in test upgrades. If there is an issue, this will assist with
|
||
debugging.</para>
|
||
<para>In the following commands, it is assumed that you have set the root password on the
|
||
database, which is a CloudStack recommended best practice. Substitute your own MySQL
|
||
root password.</para>
|
||
<programlisting><prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud > <filename>cloud-backup.dmp</filename>
|
||
<prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud_usage > <filename>cloud-usage-backup.dmp</filename></programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Either build RPM/DEB packages as detailed in the Installation Guide, or use one of
|
||
the community provided yum/apt repositories to gain access to the &PRODUCT;
|
||
binaries.</para>
|
||
</listitem>
|
||
<listitem id="upgrade-deb-packages-302">
|
||
<para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
|
||
skip to step <xref linkend="upgrade-rpm-packages-302"/>.</para>
|
||
<note>
|
||
<title>Community Packages</title>
|
||
<para>This section assumes you're using the community supplied packages for &PRODUCT;.
|
||
If you've created your own packages and APT repository, substitute your own URL for
|
||
the ones used in these examples.</para>
|
||
</note>
|
||
<orderedlist numeration="loweralpha" id="debsteps-302">
|
||
<listitem>
|
||
<para>The first order of business will be to change the sources list for each system
|
||
with &PRODUCT; packages. This means all management servers, and any hosts that have
|
||
the KVM agent. (No changes should be necessary for hosts that are running VMware or
|
||
Xen.)</para>
|
||
<para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
|
||
any systems that have &PRODUCT; packages installed.</para>
|
||
<para>This file should have one line, which contains:</para>
|
||
<programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
|
||
<para>We'll change it to point to the new package repository:</para>
|
||
<programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
|
||
<para>If you're using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Now update your apt package list:</para>
|
||
<programlisting language="Bash">$ sudo apt-get update</programlisting>
|
||
</listitem>
|
||
<listitem id="deb-master-302">
|
||
<para>Now that you have the repository configured, it's time to install the
|
||
<filename>cloudstack-management</filename> package. This will pull in any other
|
||
dependencies you need.</para>
|
||
<programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
|
||
</listitem>
|
||
<listitem id="kvm-agent-deb-302">
|
||
<para>You will need to manually install the <filename>cloudstack-agent</filename>
|
||
package:</para>
|
||
<programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
|
||
<para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
|
||
your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
|
||
and <filename>environment.properties</filename> from
|
||
<filename>/etc/cloud/agent</filename> to
|
||
<filename>/etc/cloudstack/agent</filename>.</para>
|
||
<para>When prompted whether you wish to keep your configuration, say Yes.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Verify that the file
|
||
<filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
|
||
reads:</para>
|
||
<programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
|
||
<para>If not, add the line.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart the agent:</para>
|
||
<programlisting language="Bash">
|
||
service cloud-agent stop
|
||
killall jsvc
|
||
service cloudstack-agent start
|
||
</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
|
||
so the logs will continue to be added to
|
||
<filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
|
||
<emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
|
||
change this by copying over the sample configuration file:</para>
|
||
<programlisting language="Bash">
|
||
cd /etc/cloudstack/agent
|
||
mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
|
||
service cloudstack-agent restart
|
||
</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Once the agent is running, you can uninstall the old cloud-* packages from your
|
||
system:</para>
|
||
<programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem id="upgrade-rpm-packages-302">
|
||
<para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
|
||
not, skip to step <xref linkend="correct-components-xml-302"/>.</para>
|
||
<note>
|
||
<title>Community Packages</title>
|
||
<para>This section assumes you're using the community supplied packages for &PRODUCT;.
|
||
If you've created your own packages and yum repository, substitute your own URL for
|
||
the ones used in these examples.</para>
|
||
</note>
|
||
<orderedlist numeration="loweralpha" id="rpmsteps-302">
|
||
<listitem>
|
||
<para>The first order of business will be to change the yum repository for each system
|
||
with &PRODUCT; packages. This means all management servers, and any hosts that have
|
||
the KVM agent. (No changes should be necessary for hosts that are running VMware or
|
||
Xen.)</para>
|
||
<para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
|
||
systems that have &PRODUCT; packages installed.</para>
|
||
<para>This file should have content similar to the following:</para>
|
||
<programlisting language="Bash">
|
||
[apache-cloudstack]
|
||
name=Apache CloudStack
|
||
baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
|
||
enabled=1
|
||
gpgcheck=0
|
||
</programlisting>
|
||
<para>If you are using the community provided package repository, change the baseurl
|
||
to http://cloudstack.apt-get.eu/rhel/4.2/</para>
|
||
<para>If you're using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem id="rpm-master-302">
|
||
<para>Now that you have the repository configured, it's time to install the
|
||
<filename>cloudstack-management</filename> package by upgrading the older
|
||
<filename>cloud-client</filename> package.</para>
|
||
<programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
|
||
</listitem>
|
||
<listitem id="kvm-agent-rpm-302">
|
||
<para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
|
||
package, similarly installing the new version as
|
||
<filename>cloudstack-agent</filename>.</para>
|
||
<programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
|
||
<para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
|
||
copy your <filename>agent.properties</filename>,
|
||
<filename>log4j-cloud.xml</filename>, and
|
||
<filename>environment.properties</filename> from
|
||
<filename>/etc/cloud/agent</filename> to
|
||
<filename>/etc/cloudstack/agent</filename>.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Verify that the file
|
||
<filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
|
||
reads:</para>
|
||
<programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
|
||
<para>If not, add the line.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart the agent:</para>
|
||
<programlisting language="Bash">
|
||
service cloud-agent stop
|
||
killall jsvc
|
||
service cloudstack-agent start
|
||
</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem id="correct-components-xml-302">
|
||
<para>If you have made changes to your copy of
|
||
<filename>/etc/cloud/management/components.xml</filename> the changes will be
|
||
preserved in the upgrade. However, you need to do the following steps to place these
|
||
changes in a new version of the file which is compatible with version 4.2.0.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Make a backup copy of <filename>/etc/cloud/management/components.xml</filename>.
|
||
For example:</para>
|
||
<programlisting># mv /etc/cloud/management/components.xml /etc/cloud/management/components.xml-backup</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Copy <filename>/etc/cloud/management/components.xml.rpmnew</filename> to create
|
||
a new <filename>/etc/cloud/management/components.xml</filename>:</para>
|
||
<programlisting># cp -ap /etc/cloud/management/components.xml.rpmnew /etc/cloud/management/components.xml</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Merge your changes from the backup file into the new
|
||
<filename>components.xml</filename>.</para>
|
||
<programlisting># vi /etc/cloudstack/management/components.xml</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
<note>
|
||
<para>If you have more than one management server node, repeat the upgrade steps on each
|
||
node.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>After upgrading to 4.2, API clients are expected to send plain text passwords for
|
||
login and user creation, instead of MD5 hash. Incase, api client changes are not
|
||
acceptable, following changes are to be made for backward compatibility:</para>
|
||
<para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
|
||
authenticator (1st entry in the userAuthenticators adapter list is default)</para>
|
||
<programlisting language="XML">
|
||
<!-- Security adapters -->
|
||
<bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
|
||
<property name="Adapters">
|
||
<list>
|
||
<ref bean="PlainTextUserAuthenticator"/>
|
||
<ref bean="MD5UserAuthenticator"/>
|
||
<ref bean="LDAPUserAuthenticator"/>
|
||
</list>
|
||
</property>
|
||
</bean>
|
||
</programlisting>
|
||
<para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
|
||
4.2.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start the first Management Server. Do not start any other Management Server nodes
|
||
yet.</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> service cloudstack-management start</programlisting>
|
||
<para>Wait until the databases are upgraded. Ensure that the database upgrade is complete.
|
||
After confirmation, start the other Management Servers one at a time by running the same
|
||
command on each node.</para>
|
||
<note>
|
||
<para>Failing to restart the Management Server indicates a problem in the upgrade.
|
||
Having the Management Server restarted without any issues indicates that the upgrade
|
||
is successfully completed.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start all Usage Servers (if they were running on your previous version). Perform
|
||
this on each Usage Server host.</para>
|
||
<para><command># service cloudstack-usage start</command></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Additional steps are required for each KVM host. These steps will not affect running
|
||
guests in the cloud. These steps are required only for clouds using KVM as hosts and
|
||
only on the KVM hosts.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Configure a yum or apt repository containing the &PRODUCT; packages as outlined
|
||
in the Installation Guide.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Stop the running agent.</para>
|
||
<para><command># service cloud-agent stop</command></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Update the agent software with one of the following command sets as appropriate
|
||
for your environment.</para>
|
||
<para><command># yum update cloud-*</command></para>
|
||
<para><command># apt-get update</command></para>
|
||
<para><command># apt-get upgrade cloud-*</command></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Edit <filename>/etc/cloudstack/agent/agent.properties</filename> to change the
|
||
resource parameter from
|
||
"com.cloud.agent.resource.computing.LibvirtComputingResource" to
|
||
"com.cloud.hypervisor.kvm.resource.LibvirtComputingResource".</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Upgrade all the existing bridge names to new bridge names by running this
|
||
script:</para>
|
||
<programlisting> # cloudstack-agent-upgrade</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para> Install a libvirt hook with the following commands:</para>
|
||
<programlisting> # mkdir /etc/libvirt/hooks
|
||
# cp /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
|
||
# chmod +x /etc/libvirt/hooks/qemu</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart libvirtd.</para>
|
||
<programlisting># service libvirtd restart</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start the agent.</para>
|
||
<programlisting># service cloudstack-agent start</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>When the Management Server is up and running, log in to the &PRODUCT; UI and
|
||
restart the virtual router for proper functioning of all the features.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Log in to the CloudStack UI as administrator, and check the status of the hosts. All
|
||
hosts should come to Up state (except those that you know to be offline). You may need
|
||
to wait 20 or 30 minutes, depending on the number of hosts.</para>
|
||
<note>
|
||
<para>Troubleshooting: If login fails, clear your browser cache and reload the
|
||
page.</para>
|
||
</note>
|
||
<para>Do not proceed to the next step until the hosts show in Up state.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If you are upgrading from 3.0.2, perform the following:</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Ensure that the admin port is set to 8096 by using the "integration.api.port"
|
||
global parameter.</para>
|
||
<para>This port is used by the cloud-sysvmadm script at the end of the upgrade
|
||
procedure. For information about how to set this parameter, see "Setting Global
|
||
Configuration Parameters" in the Installation Guide.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart the Management Server.</para>
|
||
<note>
|
||
<para>If you don't want the admin port to remain open, you can set it to null after
|
||
the upgrade is done and restart the management server.</para>
|
||
</note>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the <command>cloudstack-sysvmadm</command> script to stop, then start, all
|
||
Secondary Storage VMs, Console Proxy VMs, and virtual routers. Run the script once on
|
||
each management server. Substitute your own IP address of the MySQL instance, the MySQL
|
||
user to connect as, and the password to use for that user. In addition to those
|
||
parameters, provide the <command>-c</command> and <command>-r</command> arguments. For
|
||
example:</para>
|
||
<para><command># nohup cloudstack-sysvmadm -d 192.168.1.5 -u cloud -p password -c -r >
|
||
sysvm.log 2>&1 &</command></para>
|
||
<para><command># tail -f sysvm.log</command></para>
|
||
<para>This might take up to an hour or more to run, depending on the number of accounts in
|
||
the system.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version
|
||
supported by CloudStack 4.2.0. The supported versions are XenServer 5.6 SP2 and 6.0.2.
|
||
Instructions for upgrade can be found in the CloudStack 4.2.0 Installation Guide under
|
||
"Upgrading XenServer Versions."</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Now apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to
|
||
XenServer v6.0.2 hypervisor hosts.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Disconnect the XenServer cluster from CloudStack.</para>
|
||
<para>In the left navigation bar of the CloudStack UI, select Infrastructure. Under
|
||
Clusters, click View All. Select the XenServer cluster and click Actions -
|
||
Unmanage.</para>
|
||
<para>This may fail if there are hosts not in one of the states Up, Down,
|
||
Disconnected, or Alert. You may need to fix that before unmanaging this
|
||
cluster.</para>
|
||
<para>Wait until the status of the cluster has reached Unmanaged. Use the CloudStack
|
||
UI to check on the status. When the cluster is in the unmanaged state, there is no
|
||
connection to the hosts in the cluster.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>To clean up the VLAN, log in to one XenServer host and run:</para>
|
||
<para><command>/opt/xensource/bin/cloud-clean-vlan.sh</command></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Now prepare the upgrade by running the following on one XenServer host:</para>
|
||
<para><command>/opt/xensource/bin/cloud-prepare-upgrade.sh</command></para>
|
||
<para>If you see a message like "can't eject CD", log in to the VM and unmount the CD,
|
||
then run this script again.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Upload the hotfix to the XenServer hosts. Always start with the Xen pool master,
|
||
then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the
|
||
hotfixes to the host. Place them in a temporary folder such as /tmp. </para>
|
||
<para>On the Xen pool master, upload the hotfix with this command:</para>
|
||
<para><command>xe patch-upload file-name=XS602E003.xsupdate</command></para>
|
||
<para>Make a note of the output from this command, which is a UUID for the hotfix
|
||
file. You'll need it in another step later.</para>
|
||
<note>
|
||
<para>(Optional) If you are applying other hotfixes as well, you can repeat the
|
||
commands in this section with the appropriate hotfix number. For example,
|
||
XS602E004.xsupdate.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Manually live migrate all VMs on this host to another host. First, get a list of
|
||
the VMs on this host:</para>
|
||
<para><command># xe vm-list</command></para>
|
||
<para>Then use this command to migrate each VM. Replace the example host name and VM
|
||
name with your own:</para>
|
||
<para><command># xe vm-migrate live=true host=<replaceable>host-name</replaceable>
|
||
vm=<replaceable>VM-name</replaceable></command></para>
|
||
<note>
|
||
<title>Troubleshooting</title>
|
||
<para>If you see a message like "You attempted an operation on a VM which requires
|
||
PV drivers to be installed but the drivers were not detected," run:</para>
|
||
<para><command>/opt/xensource/bin/make_migratable.sh
|
||
b6cf79c8-02ee-050b-922f-49583d9f1a14</command>.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Apply the hotfix. First, get the UUID of this host:</para>
|
||
<programlisting># xe host-list</programlisting>
|
||
<para>Then use the following command to apply the hotfix. Replace the example host
|
||
UUID with the current host ID, and replace the hotfix UUID with the output from the
|
||
patch-upload command you ran on this machine earlier. You can also get the hotfix
|
||
UUID by running xe patch-list. </para>
|
||
<programlisting><command>xe</command> patch-apply host-uuid=<replaceable>host-uuid</replaceable> uuid=<replaceable>hotfix-uuid</replaceable></programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Copy the following files from the CloudStack Management Server to the
|
||
host.</para>
|
||
<informaltable>
|
||
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
||
<colspec colwidth="1*" colname="1" colnum="1"/>
|
||
<colspec colwidth="2*" colname="2" colnum="2"/>
|
||
<thead>
|
||
<row>
|
||
<entry><para>Copy from here...</para></entry>
|
||
<entry><para>...to here</para></entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py</para></entry>
|
||
<entry><para>/opt/xensource/sm/NFSSR.py</para></entry>
|
||
</row>
|
||
<row>
|
||
<entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/setupxenserver.sh</para></entry>
|
||
<entry><para>/opt/xensource/bin/setupxenserver.sh</para></entry>
|
||
</row>
|
||
<row>
|
||
<entry><para>/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/make_migratable.sh</para></entry>
|
||
<entry><para>/opt/xensource/bin/make_migratable.sh</para></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud
|
||
Support Pack.</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Download the CSP software onto the XenServer host from one of the following
|
||
links:</para>
|
||
<para>For hotfix XS602E005: <ulink
|
||
url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz"
|
||
>http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
|
||
<para>For hotfix XS602E007: <ulink
|
||
url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz"
|
||
>http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Extract the file:</para>
|
||
<programlisting># tar xf xenserver-cloud-supp.tgz</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the following script:</para>
|
||
<programlisting># xe-install-supplemental-pack xenserver-cloud-supp.iso</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If the XenServer host is part of a zone that uses basic networking, disable
|
||
Open vSwitch (OVS):</para>
|
||
<programlisting># xe-switch-network-backend bridge</programlisting>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Reboot this XenServer host.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the following:</para>
|
||
<programlisting>/opt/xensource/bin/setupxenserver.sh</programlisting>
|
||
<note>
|
||
<para>If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or
|
||
directory" appears, you can safely ignore it.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the following:</para>
|
||
<programlisting>for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; </programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>On each slave host in the Xen pool, repeat these steps, starting from "manually
|
||
live migrate VMs."</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
</orderedlist>
|
||
<note>
|
||
<title>Troubleshooting Tip</title>
|
||
<para>If passwords which you know to be valid appear not to work after upgrade, or other UI
|
||
issues are seen, try clearing your browser cache and reloading the UI page.</para>
|
||
</note>
|
||
</section>
|
||
<section id="upgrade-from-2.2.x-to-4.1">
|
||
<title>Upgrade from 2.2.14 to 4.2.0</title>
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Ensure that you query your IPaddress usage records and process them; for example,
|
||
issue invoices for any usage that you have not yet billed users for.</para>
|
||
<para>Starting in 3.0.2, the usage record format for IP addresses is the same as the rest
|
||
of the usage types. Instead of a single record with the assignment and release dates,
|
||
separate records are generated per aggregation period with start and end dates. After
|
||
upgrading to 4.2.0, any existing IP address usage records in the old format will no
|
||
longer be available.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If you are using version 2.2.0 - 2.2.13, first upgrade to 2.2.14 by using the
|
||
instructions in the <ulink
|
||
url="http://download.cloud.com/releases/2.2.0/CloudStack2.2.14ReleaseNotes.pdf">2.2.14
|
||
Release Notes</ulink>.</para>
|
||
<warning>
|
||
<title>KVM Hosts</title>
|
||
<para>If KVM hypervisor is used in your cloud, be sure you completed the step to insert
|
||
a valid username and password into the host_details table on each KVM node as
|
||
described in the 2.2.14 Release Notes. This step is critical, as the database will be
|
||
encrypted after the upgrade to 4.2.0.</para>
|
||
</warning>
|
||
</listitem>
|
||
<listitem>
|
||
<para>While running the 2.2.14 system, log in to the UI as root administrator.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Using the UI, add a new System VM template for each hypervisor type that is used in
|
||
your cloud. In each zone, add a system VM template for each hypervisor used in that
|
||
zone</para>
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>In the left navigation bar, click Templates.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>In Select view, click Templates.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Click Register template.</para>
|
||
<para>The Register template dialog box is displayed.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>In the Register template dialog box, specify the following values depending on
|
||
the hypervisor type (do not change these):</para>
|
||
<informaltable>
|
||
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
||
<colspec colwidth="1*" colname="1" colnum="1"/>
|
||
<colspec colwidth="2*" colname="2" colnum="2"/>
|
||
<thead>
|
||
<row>
|
||
<entry><para>Hypervisor</para></entry>
|
||
<entry><para>Description</para></entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><para>XenServer</para></entry>
|
||
<entry><para>Name: systemvm-xenserver-4.2.0</para>
|
||
<para>Description: systemvm-xenserver-4.2.0</para>
|
||
<para>URL:http://download.cloud.com/templates/4.2/systemvmtemplate-2013-07-12-master-xen.vhd.bz2 </para>
|
||
<para>Zone: Choose the zone where this hypervisor is used</para>
|
||
<para>Hypervisor: XenServer</para>
|
||
<para>Format: VHD</para>
|
||
<para>OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release
|
||
number available in the dropdown)</para>
|
||
<para>Extractable: no</para>
|
||
<para>Password Enabled: no</para>
|
||
<para>Public: no</para>
|
||
<para>Featured: no</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><para>KVM</para></entry>
|
||
<entry><para>Name: systemvm-kvm-4.2.0</para>
|
||
<para>Description: systemvm-kvm-4.2.0</para>
|
||
<para>URL:
|
||
http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2</para>
|
||
<para>Zone: Choose the zone where this hypervisor is used</para>
|
||
<para>Hypervisor: KVM</para>
|
||
<para>Format: QCOW2</para>
|
||
<para>OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release
|
||
number available in the dropdown)</para>
|
||
<para>Extractable: no</para>
|
||
<para>Password Enabled: no</para>
|
||
<para>Public: no</para>
|
||
<para>Featured: no</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><para>VMware</para></entry>
|
||
<entry><para>Name: systemvm-vmware-4.2.0</para>
|
||
<para>Description: systemvm-vmware-4.2.0</para>
|
||
<para>URL:
|
||
http://download.cloud.com/templates/4.2/systemvmtemplate-4.2-vh7.ova</para>
|
||
<para>Zone: Choose the zone where this hypervisor is used</para>
|
||
<para>Hypervisor: VMware</para>
|
||
<para>Format: OVA</para>
|
||
<para>OS Type: Debian GNU/Linux 7.0 (32-bit) (or the highest Debian release
|
||
number available in the dropdown)</para>
|
||
<para>Extractable: no</para>
|
||
<para>Password Enabled: no</para>
|
||
<para>Public: no</para>
|
||
<para>Featured: no</para>
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Watch the screen to be sure that the template downloads successfully and enters the
|
||
READY state. Do not proceed until this is successful</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para><emphasis role="bold">WARNING</emphasis>: If you use more than one type of
|
||
hypervisor in your cloud, be sure you have repeated these steps to download the system
|
||
VM template for each hypervisor type. Otherwise, the upgrade will fail.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(KVM on RHEL 6.0/6.1 only) If your existing &PRODUCT; deployment includes one or
|
||
more clusters of KVM hosts running RHEL 6.0 or RHEL 6.1, perform the following:</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Ensure that you upgrade the operating system version on those hosts before
|
||
upgrading &PRODUCT;</para>
|
||
<para>To do that, change the yum repository for each system with &PRODUCT; packages,
|
||
that implies that all the Management Servers and any hosts that have the KVM agent.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Open <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any systems that
|
||
have &PRODUCT; packages installed.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Edit as follows:</para>
|
||
<programlisting>
|
||
[upgrade]
|
||
name=rhel63
|
||
baseurl=url-of-your-rhel6.3-repo
|
||
enabled=1
|
||
gpgcheck=0
|
||
[apache CloudStack]
|
||
name= Apache CloudStack
|
||
baseurl= http://cloudstack.apt-get.eu/rhel/4.0/
|
||
enabled=1
|
||
gpgcheck=0</programlisting>
|
||
<para>If you are using the community provided package repository, change the baseurl
|
||
to http:// cloudstack.apt-get.eu/rhel/4.2/</para>
|
||
<para>If you are using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Now that you have the repository configured, upgrade the host operating system
|
||
from RHEL 6.0 to 6.3:</para>
|
||
<programlisting># yum upgrade</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Stop all Usage Servers if running. Run this on all Usage Server hosts.</para>
|
||
<programlisting># service cloud-usage stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Stop the Management Servers. Run this on all Management Server hosts.</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> service cloud-management stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>On the MySQL master, take a backup of the MySQL databases. We recommend performing
|
||
this step even in test upgrades. If there is an issue, this will assist with
|
||
debugging.</para>
|
||
<para>In the following commands, it is assumed that you have set the root password on the
|
||
database, which is a CloudStack recommended best practice. Substitute your own MySQL
|
||
root password.</para>
|
||
<programlisting><prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud > <filename>cloud-backup.dmp</filename>
|
||
<prompt>#</prompt> <command>mysqldump</command> -u root -p<replaceable>mysql_password</replaceable> cloud_usage > <filename>cloud-usage-backup.dmp</filename>
|
||
</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para> Either build RPM/DEB packages as detailed in the Installation Guide, or use one of
|
||
the community provided yum/apt repositories to gain access to the &PRODUCT; binaries.
|
||
</para>
|
||
</listitem>
|
||
<listitem id="upgrade-deb-packages-22">
|
||
<para>If you are using Ubuntu, follow this procedure to upgrade your packages. If not,
|
||
skip to step <xref linkend="upgrade-rpm-packages-22"/>.</para>
|
||
<note>
|
||
<title>Community Packages</title>
|
||
<para>This section assumes you're using the community supplied packages for &PRODUCT;.
|
||
If you've created your own packages and APT repository, substitute your own URL for
|
||
the ones used in these examples.</para>
|
||
</note>
|
||
<orderedlist numeration="loweralpha" id="debsteps-22">
|
||
<listitem>
|
||
<para>The first order of business will be to change the sources list for each system
|
||
with &PRODUCT; packages. This means all management servers, and any hosts that have
|
||
the KVM agent. (No changes should be necessary for hosts that are running VMware or
|
||
Xen.)</para>
|
||
<para>Start by opening <filename>/etc/apt/sources.list.d/cloudstack.list</filename> on
|
||
any systems that have &PRODUCT; packages installed.</para>
|
||
<para>This file should have one line, which contains:</para>
|
||
<programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.0</programlisting>
|
||
<para>We'll change it to point to the new package repository:</para>
|
||
<programlisting language="Bash">deb http://cloudstack.apt-get.eu/ubuntu precise 4.2</programlisting>
|
||
<para>If you're using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Now update your apt package list:</para>
|
||
<programlisting language="Bash">$ sudo apt-get update</programlisting>
|
||
</listitem>
|
||
<listitem id="deb-master-22">
|
||
<para>Now that you have the repository configured, it's time to install the
|
||
<filename>cloudstack-management</filename> package. This will pull in any other
|
||
dependencies you need.</para>
|
||
<programlisting language="Bash">$ sudo apt-get install cloudstack-management</programlisting>
|
||
</listitem>
|
||
<listitem id="kvm-agent-deb-22">
|
||
<para>On KVM hosts, you will need to manually install the
|
||
<filename>cloudstack-agent</filename> package:</para>
|
||
<programlisting language="Bash">$ sudo apt-get install cloudstack-agent</programlisting>
|
||
<para>During the installation of <filename>cloudstack-agent</filename>, APT will copy
|
||
your <filename>agent.properties</filename>, <filename>log4j-cloud.xml</filename>,
|
||
and <filename>environment.properties</filename> from
|
||
<filename>/etc/cloud/agent</filename> to
|
||
<filename>/etc/cloudstack/agent</filename>.</para>
|
||
<para>When prompted whether you wish to keep your configuration, say Yes.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Verify that the file
|
||
<filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
|
||
reads:</para>
|
||
<programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
|
||
<para>If not, add the line.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart the agent:</para>
|
||
<programlisting language="Bash">
|
||
service cloud-agent stop
|
||
killall jsvc
|
||
service cloudstack-agent start
|
||
</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>During the upgrade, <filename>log4j-cloud.xml</filename> was simply copied over,
|
||
so the logs will continue to be added to
|
||
<filename>/var/log/cloud/agent/agent.log</filename>. There's nothing
|
||
<emphasis>wrong</emphasis> with this, but if you prefer to be consistent, you can
|
||
change this by copying over the sample configuration file:</para>
|
||
<programlisting language="Bash">
|
||
cd /etc/cloudstack/agent
|
||
mv log4j-cloud.xml.dpkg-dist log4j-cloud.xml
|
||
service cloudstack-agent restart
|
||
</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Once the agent is running, you can uninstall the old cloud-* packages from your
|
||
system:</para>
|
||
<programlisting language="Bash">sudo dpkg --purge cloud-agent</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem id="upgrade-rpm-packages-22">
|
||
<para>If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If
|
||
not, skip to step <xref linkend="correct-components-xml-22"/>.</para>
|
||
<note>
|
||
<title>Community Packages</title>
|
||
<para>This section assumes you're using the community supplied packages for &PRODUCT;.
|
||
If you've created your own packages and yum repository, substitute your own URL for
|
||
the ones used in these examples.</para>
|
||
</note>
|
||
<orderedlist numeration="loweralpha" id="rpmsteps-22">
|
||
<listitem>
|
||
<para>The first order of business will be to change the yum repository for each system
|
||
with &PRODUCT; packages. This means all management servers, and any hosts that have
|
||
the KVM agent. (No changes should be necessary for hosts that are running VMware or
|
||
Xen.)</para>
|
||
<para>Start by opening <filename>/etc/yum.repos.d/cloudstack.repo</filename> on any
|
||
systems that have &PRODUCT; packages installed.</para>
|
||
<para>This file should have content similar to the following:</para>
|
||
<programlisting language="Bash">
|
||
[apache-cloudstack]
|
||
name=Apache CloudStack
|
||
baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
|
||
enabled=1
|
||
gpgcheck=0
|
||
</programlisting>
|
||
<para>If you are using the community provided package repository, change the baseurl
|
||
to http://cloudstack.apt-get.eu/rhel/4.2/</para>
|
||
<para>If you're using your own package repository, change this line to read as
|
||
appropriate for your 4.2.0 repository.</para>
|
||
</listitem>
|
||
<listitem id="rpm-master-22">
|
||
<para>Now that you have the repository configured, it's time to install the
|
||
<filename>cloudstack-management</filename> package by upgrading the older
|
||
<filename>cloud-client</filename> package.</para>
|
||
<programlisting language="Bash">$ sudo yum upgrade cloud-client</programlisting>
|
||
</listitem>
|
||
<listitem id="kvm-agent-rpm-22">
|
||
<para>For KVM hosts, you will need to upgrade the <filename>cloud-agent</filename>
|
||
package, similarly installing the new version as
|
||
<filename>cloudstack-agent</filename>.</para>
|
||
<programlisting language="Bash">$ sudo yum upgrade cloud-agent</programlisting>
|
||
<para>During the installation of <filename>cloudstack-agent</filename>, the RPM will
|
||
copy your <filename>agent.properties</filename>,
|
||
<filename>log4j-cloud.xml</filename>, and
|
||
<filename>environment.properties</filename> from
|
||
<filename>/etc/cloud/agent</filename> to
|
||
<filename>/etc/cloudstack/agent</filename>.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Verify that the file
|
||
<filename>/etc/cloudstack/agent/environment.properties</filename> has a line that
|
||
reads:</para>
|
||
<programlisting language="Bash">paths.script=/usr/share/cloudstack-common</programlisting>
|
||
<para>If not, add the line.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart the agent:</para>
|
||
<programlisting language="Bash">
|
||
service cloud-agent stop
|
||
killall jsvc
|
||
service cloudstack-agent start
|
||
</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem id="correct-components-xml-22">
|
||
<para>If you have made changes to your existing copy of the file components.xml in your
|
||
previous-version CloudStack installation, the changes will be preserved in the upgrade.
|
||
However, you need to do the following steps to place these changes in a new version of
|
||
the file which is compatible with version 4.0.0-incubating.</para>
|
||
<note>
|
||
<para>How will you know whether you need to do this? If the upgrade output in the
|
||
previous step included a message like the following, then some custom content was
|
||
found in your old components.xml, and you need to merge the two files:</para>
|
||
</note>
|
||
<programlisting>warning: /etc/cloud/management/components.xml created as /etc/cloud/management/components.xml.rpmnew </programlisting>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Make a backup copy of your
|
||
<filename>/etc/cloud/management/components.xml</filename> file. For
|
||
example:</para>
|
||
<programlisting><prompt>#</prompt> <command>mv</command> <filename>/etc/cloud/management/components.xml</filename> <filename>/etc/cloud/management/components.xml-backup</filename></programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Copy <filename>/etc/cloud/management/components.xml.rpmnew</filename> to create
|
||
a new <filename>/etc/cloud/management/components.xml</filename>:</para>
|
||
<programlisting><prompt>#</prompt> <command>cp</command> -ap <filename>/etc/cloud/management/components.xml.rpmnew</filename> <filename>/etc/cloud/management/components.xml</filename></programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Merge your changes from the backup file into the new components.xml file.</para>
|
||
<programlisting><prompt>#</prompt> <command>vi</command> <filename>/etc/cloudstack/management/components.xml</filename>
|
||
</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>After upgrading to 4.2, API clients are expected to send plain text passwords for
|
||
login and user creation, instead of MD5 hash. If API client changes are not acceptable,
|
||
following changes are to be made for backward compatibility:</para>
|
||
<para>Modify componentsContext.xml, and make PlainTextUserAuthenticator as the default
|
||
authenticator (1st entry in the userAuthenticators adapter list is default)</para>
|
||
<programlisting language="XML">
|
||
<!-- Security adapters -->
|
||
<bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
|
||
<property name="Adapters">
|
||
<list>
|
||
<ref bean="PlainTextUserAuthenticator"/>
|
||
<ref bean="MD5UserAuthenticator"/>
|
||
<ref bean="LDAPUserAuthenticator"/>
|
||
</list>
|
||
</property>
|
||
</bean>
|
||
</programlisting>
|
||
<para>PlainTextUserAuthenticator works the same way MD5UserAuthenticator worked prior to
|
||
4.2.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If you have made changes to your existing copy of the
|
||
<filename>/etc/cloud/management/db.properties</filename> file in your previous-version
|
||
CloudStack installation, the changes will be preserved in the upgrade. However, you need
|
||
to do the following steps to place these changes in a new version of the file which is
|
||
compatible with version 4.0.0-incubating.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Make a backup copy of your file
|
||
<filename>/etc/cloud/management/db.properties</filename>. For example:</para>
|
||
<programlisting><prompt>#</prompt> <command>mv</command> <filename>/etc/cloud/management/db.properties</filename> <filename>/etc/cloud/management/db.properties-backup</filename></programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Copy <filename>/etc/cloud/management/db.properties.rpmnew</filename> to create a
|
||
new <filename>/etc/cloud/management/db.properties</filename>:</para>
|
||
<programlisting><prompt>#</prompt> <command>cp</command> -ap <filename>/etc/cloud/management/db.properties.rpmnew</filename> <filename>etc/cloud/management/db.properties</filename></programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Merge your changes from the backup file into the new db.properties file.</para>
|
||
<programlisting><prompt>#</prompt> <command>vi</command> <filename>/etc/cloudstack/management/db.properties</filename></programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>On the management server node, run the following command. It is recommended that you
|
||
use the command-line flags to provide your own encryption keys. See Password and Key
|
||
Encryption in the Installation Guide.</para>
|
||
<programlisting><prompt>#</prompt> <command>cloudstack-setup-encryption</command> -e <replaceable>encryption_type</replaceable> -m <replaceable>management_server_key</replaceable> -k <replaceable>database_key</replaceable></programlisting>
|
||
<para>When used without arguments, as in the following example, the default encryption
|
||
type and keys will be used:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>(Optional) For encryption_type, use file or web to indicate the technique used
|
||
to pass in the database encryption password. Default: file.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(Optional) For management_server_key, substitute the default key that is used to
|
||
encrypt confidential parameters in the properties file. Default: password. It is
|
||
highly recommended that you replace this with a more secure value</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(Optional) For database_key, substitute the default key that is used to encrypt
|
||
confidential parameters in the CloudStack database. Default: password. It is highly
|
||
recommended that you replace this with a more secure value.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Repeat steps 10 - 14 on every management server node. If you provided your own
|
||
encryption key in step 14, use the same key on all other management servers.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start the first Management Server. Do not start any other Management Server nodes
|
||
yet.</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> service cloudstack-management start</programlisting>
|
||
<para>Wait until the databases are upgraded. Ensure that the database upgrade is complete.
|
||
You should see a message like "Complete! Done." After confirmation, start the other
|
||
Management Servers one at a time by running the same command on each node.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start all Usage Servers (if they were running on your previous version). Perform
|
||
this on each Usage Server host.</para>
|
||
<programlisting language="Bash"><prompt>#</prompt> service cloudstack-usage start</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(KVM only) Perform the following additional steps on each KVM host. </para>
|
||
<para>These steps will not affect running guests in the cloud. These steps are required
|
||
only for clouds using KVM as hosts and only on the KVM hosts.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para> Configure your CloudStack package repositories as outlined in the Installation
|
||
Guide </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Stop the running agent.</para>
|
||
<programlisting># service cloud-agent stop</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Update the agent software with one of the following command sets as
|
||
appropriate.</para>
|
||
<programlisting><prompt>#</prompt> <command>yum</command> update cloud-*</programlisting>
|
||
<programlisting>
|
||
<prompt>#</prompt> <command>apt-get</command> update
|
||
<prompt>#</prompt> <command>apt-get</command> upgrade cloud-*
|
||
</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para> Copy the contents of the <filename>agent.properties</filename> file to the new
|
||
<filename>agent.properties</filename> file by using the following command</para>
|
||
<programlisting><command>sed</command> -i 's/com.cloud.agent.resource.computing.LibvirtComputingResource/com.cloud.hypervisor.kvm.resource.LibvirtComputingResource/g' <filename>/etc/cloudstack/agent/agent.properties</filename></programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Upgrade all the existing bridge names to new bridge names by running this
|
||
script:</para>
|
||
<programlisting> # cloudstack-agent-upgrade</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para> Install a libvirt hook with the following commands:</para>
|
||
<programlisting> # mkdir /etc/libvirt/hooks
|
||
# cp /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
|
||
# chmod +x /etc/libvirt/hooks/qemu</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Restart libvirtd.</para>
|
||
<programlisting># service libvirtd restart</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Start the agent.</para>
|
||
<programlisting># service cloudstack-agent start</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>When the Management Server is up and running, log in to the CloudStack UI and
|
||
restart the virtual router for proper functioning of all the features.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Log in to the CloudStack UI as admin, and check the status of the hosts. All hosts
|
||
should come to Up state (except those that you know to be offline). You may need to wait
|
||
20 or 30 minutes, depending on the number of hosts.</para>
|
||
<para>Do not proceed to the next step until the hosts show in the Up state. If the hosts
|
||
do not come to the Up state, contact support.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the following script to stop, then start, all Secondary Storage VMs, Console
|
||
Proxy VMs, and virtual routers.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Run the command once on one management server. Substitute your own IP address of
|
||
the MySQL instance, the MySQL user to connect as, and the password to use for that
|
||
user. In addition to those parameters, provide the "-c" and "-r" arguments. For
|
||
example:</para>
|
||
<programlisting><prompt>#</prompt> <command>nohup cloudstack-sysvmadm</command> -d <replaceable>192.168.1.5</replaceable> -u cloud -p <replaceable>password</replaceable> -c -r > sysvm.log 2>&1 &
|
||
<prompt>#</prompt> <command>tail</command> -f <filename>sysvm.log</filename></programlisting>
|
||
<para>This might take up to an hour or more to run, depending on the number of
|
||
accounts in the system.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>After the script terminates, check the log to verify correct execution:</para>
|
||
<programlisting><prompt>#</prompt> <command>tail</command> -f <filename>sysvm.log</filename></programlisting>
|
||
<para>The content should be like the following:</para>
|
||
<programlisting>
|
||
Stopping and starting 1 secondary storage vm(s)...
|
||
Done stopping and starting secondary storage vm(s)
|
||
Stopping and starting 1 console proxy vm(s)...
|
||
Done stopping and starting console proxy vm(s).
|
||
Stopping and starting 4 running routing vm(s)...
|
||
Done restarting router(s).
|
||
</programlisting>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If you would like additional confirmation that the new system VM templates were
|
||
correctly applied when these system VMs were rebooted, SSH into the System VM and check
|
||
the version.</para>
|
||
<para>Use one of the following techniques, depending on the hypervisor.</para>
|
||
<formalpara>
|
||
<title>XenServer or KVM:</title>
|
||
<para>SSH in by using the link local IP address of the system VM. For example, in the
|
||
command below, substitute your own path to the private key used to log in to the
|
||
system VM and your own link local IP.</para>
|
||
</formalpara>
|
||
<para>Run the following commands on the XenServer or KVM host on which the system VM is
|
||
present:</para>
|
||
<programlisting><prompt>#</prompt> <command>ssh</command> -i <replaceable>private-key-path</replaceable> <replaceable>link-local-ip</replaceable> -p 3922
|
||
# cat /etc/cloudstack-release</programlisting>
|
||
<para>The output should be like the following:</para>
|
||
<programlisting>Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</programlisting>
|
||
<formalpara>
|
||
<title>ESXi</title>
|
||
<para>SSH in using the private IP address of the system VM. For example, in the command
|
||
below, substitute your own path to the private key used to log in to the system VM and
|
||
your own private IP.</para>
|
||
</formalpara>
|
||
<para>Run the following commands on the Management Server:</para>
|
||
<programlisting><prompt>#</prompt> <command>ssh</command> -i <replaceable>private-key-path</replaceable> <replaceable>private-ip</replaceable> -p 3922
|
||
<prompt>#</prompt> <command>cat</command> <filename>/etc/cloudstack-release</filename>
|
||
</programlisting>
|
||
<para>The output should be like the following:</para>
|
||
<programlisting>Cloudstack Release 4.0.0-incubating Mon Oct 9 15:10:04 PST 2012</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version
|
||
supported by CloudStack 4.0.0-incubating. The supported versions are XenServer 5.6 SP2
|
||
and 6.0.2. Instructions for upgrade can be found in the CloudStack 4.0.0-incubating
|
||
Installation Guide.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Apply the XenServer hotfix XS602E003 (and any other needed hotfixes) to XenServer
|
||
v6.0.2 hypervisor hosts.</para>
|
||
<orderedlist numeration="loweralpha">
|
||
<listitem>
|
||
<para>Disconnect the XenServer cluster from CloudStack.</para>
|
||
<para>In the left navigation bar of the CloudStack UI, select Infrastructure. Under
|
||
Clusters, click View All. Select the XenServer cluster and click Actions -
|
||
Unmanage.</para>
|
||
<para>This may fail if there are hosts not in one of the states Up, Down,
|
||
Disconnected, or Alert. You may need to fix that before unmanaging this
|
||
cluster.</para>
|
||
<para>Wait until the status of the cluster has reached Unmanaged. Use the CloudStack
|
||
UI to check on the status. When the cluster is in the unmanaged state, there is no
|
||
connection to the hosts in the cluster.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>To clean up the VLAN, log in to one XenServer host and run:</para>
|
||
<programlisting>/opt/xensource/bin/cloud-clean-vlan.sh</programlisting>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Prepare the upgrade by running the following on one XenServer host:</para>
|
||
<programlisting>/opt/xensource/bin/cloud-prepare-upgrade.sh</programlisting>
|
||
<para>If you see a message like "can't eject CD", log in to the VM and umount the CD,
|
||
then run this script again.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Upload the hotfix to the XenServer hosts. Always start with the Xen pool master,
|
||
then the slaves. Using your favorite file copy utility (e.g. WinSCP), copy the
|
||
hotfixes to the host. Place them in a temporary folder such as /root or /tmp. </para>
|
||
<para>On the Xen pool master, upload the hotfix with this command:</para>
|
||
<programlisting>xe patch-upload file-name=XS602E003.xsupdate</programlisting>
|
||
<para>Make a note of the output from this command, which is a UUID for the hotfix
|
||
file. You'll need it in another step later.</para>
|
||
<note>
|
||
<para>(Optional) If you are applying other hotfixes as well, you can repeat the
|
||
commands in this section with the appropriate hotfix number. For example,
|
||
XS602E004.xsupdate.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Manually live migrate all VMs on this host to another host. First, get a list of
|
||
the VMs on this host:</para>
|
||
<programlisting># xe vm-list</programlisting>
|
||
<para>Then use this command to migrate each VM. Replace the example host name and VM
|
||
name with your own:</para>
|
||
<programlisting><prompt>#</prompt> <command>xe</command> vm-migrate live=true host=<replaceable>host-name</replaceable> vm=<replaceable>VM-name</replaceable></programlisting>
|
||
<note>
|
||
<title>Troubleshooting</title>
|
||
<para>If you see a message like "You attempted an operation on a VM which requires
|
||
PV drivers to be installed but the drivers were not detected," run:</para>
|
||
<para><command>/opt/xensource/bin/make_migratable.sh
|
||
b6cf79c8-02ee-050b-922f-49583d9f1a14</command>.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Apply the hotfix. First, get the UUID of this host:</para>
|
||
<para><command># xe host-list</command></para>
|
||
<para>Then use the following command to apply the hotfix. Replace the example host
|
||
UUID with the current host ID, and replace the hotfix UUID with the output from the
|
||
patch-upload command you ran on this machine earlier. You can also get the hotfix
|
||
UUID by running xe patch-list. </para>
|
||
<para><command>xe patch-apply host-uuid=<replaceable>host-uuid</replaceable>
|
||
uuid=<replaceable>hotfix-uuid</replaceable></command></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Copy the following files from the CloudStack Management Server to the
|
||
host.</para>
|
||
<informaltable>
|
||
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
||
<colspec colwidth="1*" colname="1" colnum="1"/>
|
||
<colspec colwidth="2*" colname="2" colnum="2"/>
|
||
<thead>
|
||
<row>
|
||
<entry><para>Copy from here...</para></entry>
|
||
<entry><para>...to here</para></entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><para><filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py</filename></para></entry>
|
||
<entry><para><filename>/opt/xensource/sm/NFSSR.py</filename></para></entry>
|
||
</row>
|
||
<row>
|
||
<entry><para><filename>/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/setupxenserver.sh</filename></para></entry>
|
||
<entry><para><filename>/opt/xensource/bin/setupxenserver.sh</filename></para></entry>
|
||
</row>
|
||
<row>
|
||
<entry><para><filename>/usr/lib64/cloudstack-common/scripts/vm/hypervisor/xenserver/make_migratable.sh</filename></para></entry>
|
||
<entry><para><filename>/opt/xensource/bin/make_migratable.sh</filename></para></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</listitem>
|
||
<listitem>
|
||
<para>(Only for hotfixes XS602E005 and XS602E007) You need to apply a new Cloud
|
||
Support Pack.</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Download the CSP software onto the XenServer host from one of the following
|
||
links:</para>
|
||
<para>For hotfix XS602E005: <ulink
|
||
url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz"
|
||
>http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E005/56710/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
|
||
<para>For hotfix XS602E007: <ulink
|
||
url="http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz"
|
||
>http://coltrane.eng.hq.xensource.com/release/XenServer-6.x/XS-6.0.2/hotfixes/XS602E007/57824/xe-phase-2/xenserver-cloud-supp.tgz</ulink></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Extract the file:</para>
|
||
<para><command># tar xf xenserver-cloud-supp.tgz</command></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the following script:</para>
|
||
<para><command># xe-install-supplemental-pack
|
||
xenserver-cloud-supp.iso</command></para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>If the XenServer host is part of a zone that uses basic networking, disable
|
||
Open vSwitch (OVS):</para>
|
||
<para><command># xe-switch-network-backend bridge</command></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Reboot this XenServer host.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the following:</para>
|
||
<para><command>/opt/xensource/bin/setupxenserver.sh</command></para>
|
||
<note>
|
||
<para>If the message "mv: cannot stat `/etc/cron.daily/logrotate': No such file or
|
||
directory" appears, you can safely ignore it.</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Run the following:</para>
|
||
<para><command>for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk
|
||
'{print $NF}'`; do xe pbd-plug uuid=$pbd ; </command>
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>On each slave host in the Xen pool, repeat these steps, starting from "manually
|
||
live migrate VMs."</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
</orderedlist>
|
||
</section>
|
||
</chapter>
|
||
<chapter id="api-changes">
|
||
<title>API Changes in 4.2</title>
|
||
<section id="added-API-commands-4.2">
|
||
<title>Added API Commands in 4.2</title>
|
||
<section>
|
||
<title>Secondary Storage</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addImageStore (Adds all types of secondary storage providers, S3/Swift/NFS)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>createSecondaryStagingStore (Adds a staging secondary storage in each zone)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listImageStores (Lists all secondary storages, S3/Swift/NFS)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listSecondaryStagingStores (Lists all staging secondary storages)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>addS3 (Adds a Amazon Simple Storage Service instance.) It is recommended to use
|
||
addImageStore instead.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listS3s (Lists all the Amazon Simple Storage Service instances.) It is recommended
|
||
to use listImageStores instead.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>VM Snapshot</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createVMSnapshot (Creates a virtual machine snapshot; see <xref
|
||
linkend="vm-snapshots"/>)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteVMSnapshot (Deletes a virtual machine snapshot)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listVMSnapshot (Shows a virtual machine snapshot)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>revertToVMSnapshot (Returns a virtual machine to the state and data saved in a
|
||
given snapshot)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Load Balancer Health Check</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createLBHealthCheckPolicy (Creates a new health check policy for a load balancer
|
||
rule; see <xref linkend="health-check"/>)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteLBHealthCheckPolicy (Deletes an existing health check policy from a load
|
||
balancer rule)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listLBHealthCheckPolicies (Displays the health check policy for a load balancer
|
||
rule)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Egress Firewall Rules</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createEgressFirewallRules (Creates an egress firewall rule on the guest network;
|
||
see <xref linkend="egress-firewall"/>)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteEgressFirewallRules (Deletes a egress firewall rule on the guest
|
||
network.)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listEgressFirewallRules (Lists the egress firewall rules configured for a guest
|
||
network.)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>SSH Key</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>resetSSHKeyForVirtualMachine (Resets the SSHkey for virtual machine.)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Bare Metal</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addBaremetalHost (Adds a new host. Technically, this API command was present in
|
||
v3.0.6, but its functionality was disabled. See <xref linkend="baremetal"/>)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>addBaremetalDhcp (Adds a DHCP server for bare metal hosts)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para> addBaremetalPxePingServer (Adds a PXE PING server for bare metal hosts)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para> addBaremetalPxeKickStartServer (Adds a PXE server for bare metal hosts)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para> listBaremetalDhcp (Shows the DHCP servers currently defined for bare metal
|
||
hosts)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para> listBaremetalPxePingServer (Shows the PXE PING servers currently defined for bare
|
||
metal hosts)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>NIC</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addNicToVirtualMachine (Adds a new NIC to the specified VM on a selected network;
|
||
see <xref linkend="multiple-ip-nic"/>)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>removeNicFromVirtualMachine (Removes the specified NIC from a selected VM.)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>updateDefaultNicForVirtualMachine (Updates the specified NIC to be the default one
|
||
for a selected VM.)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>addIpToNic (Assigns secondary IP to a NIC.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>removeIpFromNic (Assigns secondary IP to a NIC.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listNics (Lists the NICs associated with a VM.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Regions</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addRegion (Registers a Region into another Region; see <xref linkend="regions"
|
||
/>)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>updateRegion (Updates Region details: ID, Name, Endpoint, User API Key, and User
|
||
Secret Key.)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>removeRegion (Removes a Region from current Region.)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listRegions (Get all the Regions. They can be filtered by using the ID or
|
||
Name.)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>User</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>getUser (This API can only be used by the Admin. Get user account details by using
|
||
the API Key.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>API Throttling</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>getApiLimit (Show number of remaining APIs for the invoking user in current
|
||
window)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>resetApiLimit (For root admin, if accountId parameter is passed, it will reset
|
||
count for that particular account, otherwise it will reset all counters)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>resetApiLimit (Reset the API count.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Locking</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>lockAccount (Locks an account)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>lockUser (Locks a user account)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>VM Scaling</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>scaleVirtualMachine (Scales the virtual machine to a new service offering.)</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Migrate Volume</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>migrateVirtualMachineWithVolume (Attempts migrating VM with its volumes to a
|
||
different host.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listStorageProviders (Lists storage providers.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>findStoragePoolsForMigration (Lists storage pools available for migrating a
|
||
volume.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Dedicated IP and VLAN</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>dedicatePublicIpRange (Dedicates a Public IP range to an account.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>releasePublicIpRange (Releases a Public IP range back to the system pool.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>dedicateGuestVlanRange (Dedicates a guest VLAN range to an account.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>releaseDedicatedGuestVlanRange (Releases a dedicated guest VLAN range to the
|
||
system.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listDedicatedGuestVlanRanges (Lists dedicated guest VLAN ranges.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Port Forwarding</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>updatePortForwardingRule (Updates a port forwarding rule. Only the private port
|
||
and the VM can be updated.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Scale System VM</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>scaleSystemVm (Scale the service offering for a systemVM, console proxy, or
|
||
secondary storage.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Deployment Planner</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>listDeploymentPlanners (Lists all the deployment planners available.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Archive and Delete Events and Alerts</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>archiveEvents (Archive one or more events.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteEvents (Delete one or more events.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>archiveAlerts (Archive one or more alerts.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteAlerts (Delete one or more alerts.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Host Reservation</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>releaseHostReservation (Releases host reservation.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Resize Volume</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>resizeVolume (Resizes a volume.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>updateVolume (Updates the volume.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Egress Firewall Rules</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createEgressFirewallRule (Creates a egress firewall rule for a given network. )
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteEgressFirewallRule (Deletes an egress firewall rule.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listEgressFirewallRules (Lists all egress firewall rules for network.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Network ACL</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>updateNetworkACLItem (Updates ACL item with specified ID.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>createNetworkACLList (Creates a Network ACL for the given VPC.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteNetworkACLList (Deletes a Network ACL.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>replaceNetworkACLList (Replaces ACL associated with a Network or private gateway.)
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listNetworkACLLists (Lists all network ACLs.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Resource Detail</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addResourceDetail (Adds detail for the Resource.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>removeResourceDetail (Removes detail for the Resource.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listResourceDetails (List resource details.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Nicira Integration</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addNiciraNvpDevice (Adds a Nicira NVP device.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteNiciraNvpDevice (Deletes a Nicira NVP device.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listNiciraNvpDevices (Lists Nicira NVP devices.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listNiciraNvpDeviceNetworks (Lists network that are using a Nicira NVP device.)
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>BigSwitch VNS</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addBigSwitchVnsDevice (Adds a BigSwitch VNS device.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteBigSwitchVnsDevice (Deletes a BigSwitch VNS device.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listBigSwitchVnsDevices (Lists BigSwitch VNS devices.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Simulator</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>configureSimulator (Configures a simulator.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>API Discovery</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>listApis (Lists all the available APIs on the server, provided by the API
|
||
Discovery plugin.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Global Load Balancer</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createGlobalLoadBalancerRule (Creates a global load balancer rule.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteGlobalLoadBalancerRule (Deletes a global load balancer rule.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>updateGlobalLoadBalancerRule (update global load balancer rules.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listGlobalLoadBalancerRules (Lists load balancer rules.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>assignToGlobalLoadBalancerRule (Assign load balancer rule or list of load balancer
|
||
rules to a global load balancer rules.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>removeFromGlobalLoadBalancerRule (Removes a load balancer rule association with
|
||
global load balancer rule) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Load Balancer</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createLoadBalancer (Creates a Load Balancer) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listLoadBalancers (Lists Load Balancers) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteLoadBalancer (Deletes a load balancer) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>configureInternalLoadBalancerElement (Configures an Internal Load Balancer
|
||
element.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>createInternalLoadBalancerElement (Create an Internal Load Balancer element.)
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listInternalLoadBalancerElements (Lists all available Internal Load Balancer
|
||
elements.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Affinity Group</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createAffinityGroup (Creates an affinity or anti-affinity group.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteAffinityGroup (Deletes an affinity group.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listAffinityGroups (Lists all the affinity groups.)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>updateVMAffinityGroup (Updates the affinity or anti-affinity group associations of
|
||
a VM. The VM has to be stopped and restarted for the new properties to take effect.)
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listAffinityGroupTypes (Lists affinity group types available.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Portable IP</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>createPortableIpRange (Adds a range of portable portable IPs to a Region.)</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deletePortableIpRange (Deletes a range of portable portable IPs associated with a
|
||
Region.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listPortableIpRanges (Lists portable IP ranges.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Internal Load Balancer VM</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>stopInternalLoadBalancerVM (Stops an Internal LB VM.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>startInternalLoadBalancerVM (Starts an existing Internal LB VM.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listInternalLoadBalancerVMs (List internal LB VMs.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Network Isolation</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>listNetworkIsolationMethods (Lists supported methods of network isolation.)
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
<section>
|
||
<title>Dedicated Resources</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>dedicateZone (Dedicates a zone.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>dedicatePod (Dedicates a pod.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>dedicateCluster (Dedicate an existing cluster.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>dedicateHost (Dedicates a host.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>releaseDedicatedZone (Release dedication of zone.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>releaseDedicatedPod (Release dedication for the pod.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>releaseDedicatedCluster (Release dedication for cluster.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>releaseDedicatedHost (Release dedication for host.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listDedicatedZones (List dedicated zones.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listDedicatedPods (Lists dedicated pods.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listDedicatedClusters (Lists dedicated clusters.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listDedicatedHosts (Lists dedicated hosts.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
</section>
|
||
<section id="changed-api-commands-4.2">
|
||
<title>Changed API Commands in 4.2</title>
|
||
<informaltable>
|
||
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
||
<colspec colwidth="1.0*" colname="1" colnum="1"/>
|
||
<colspec colwidth="4.26*" colname="2" colnum="2"/>
|
||
<thead>
|
||
<row>
|
||
<entry>
|
||
<para>API Commands</para>
|
||
</entry>
|
||
<entry>
|
||
<para>Description</para>
|
||
</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>
|
||
<para>listNetworkACLs</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: aclid (optional), action
|
||
(optional), protocol (optional)</para>
|
||
<para>The following new response parameters are added: aclid, action, number</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>copyTemplate</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listRouters</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: ip6dns1, ip6dns2, role</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateConfiguration</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: accountid (optional),
|
||
clusterid (optional), storageid (optional), zoneid (optional)</para>
|
||
<para>The following new response parameters are added: id, scope </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listVolumes</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is removed: details </para>
|
||
<para>The following new response parameter is added: displayvolume </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>suspendProject</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: cpuavailable, cpulimit,
|
||
cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
|
||
memorytotal, networkavailable, networklimit, networktotal,
|
||
primarystorageavailable, primarystoragelimit, primarystoragetotal,
|
||
secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
|
||
snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
|
||
templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
|
||
volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listRemoteAccessVpns</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: id</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>registerTemplate</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: imagestoreuuid (optional),
|
||
isdynamicallyscalable (optional), isrouting (optional) </para>
|
||
<para>The following new response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>addTrafficMonitor</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are removed: privateinterface, privatezone,
|
||
publicinterface, publiczone, usageinterface, username </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createTemplate</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are removed: clusterid, clustername,
|
||
disksizeallocated, disksizetotal, disksizeused, ipaddress, path, podid, podname,
|
||
state, tags, type </para>
|
||
<para>The following new response parameters are added: account, accountid, bootable,
|
||
checksum, crossZones, details, displaytext, domain, domainid, format, hostid,
|
||
hostname, hypervisor, isdynamicallyscalable, isextractable, isfeatured, ispublic,
|
||
isready, ostypeid, ostypename, passwordenabled, project, projectid, removed, size,
|
||
sourcetemplateid, sshkeyenabled, status, templatetag, templatetype, tags</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listLoadBalancerRuleInstances</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>migrateVolume</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters is added: livemigrate (optional) </para>
|
||
<para>The following new response parameters is added: displayvolume </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createAccount</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: accountid (optional), userid
|
||
(optional)</para>
|
||
<para>The following new response parameters are added: accountdetails, cpuavailable,
|
||
cpulimit, cputotal, defaultzoneid, ipavailable, iplimit, iptotal,
|
||
iscleanuprequired, isdefault, memoryavailable, memorylimit, memorytotal, name,
|
||
networkavailable, networkdomain, networklimit, networktotal,
|
||
primarystorageavailable, primarystoragelimit, primarystoragetotal,
|
||
projectavailable, projectlimit, projecttotal, receivedbytes,
|
||
secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
|
||
sentbytes, snapshotavailable, snapshotlimit, snapshottotal, templateavailable,
|
||
templatelimit, templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
|
||
volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal,
|
||
user</para>
|
||
<para>The following parameters are removed: account, accountid, apikey, created,
|
||
email, firstname, lastname, secretkey, timezone, username </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updatePhysicalNetwork</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters is added: removevlan (optional) </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listTrafficMonitors</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are removed: privateinterface, privatezone,
|
||
publicinterface, publiczone, usageinterface, username </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>attachIso</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listProjects</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: cpuavailable, cpulimit,
|
||
cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
|
||
memorytotal, networkavailable, networklimit, networktotal,
|
||
primarystorageavailable, primarystoragelimit, primarystoragetotal,
|
||
secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
|
||
snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
|
||
templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
|
||
volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>enableAccount</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: cpuavailable, cpulimit,
|
||
cputotal, isdefault, memoryavailable, memorylimit, memorytotal,
|
||
primarystorageavailable, primarystoragelimit, primarystoragetotal,
|
||
secondarystorageavailable, secondarystoragelimit, secondarystoragetotal </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listPublicIpAddresses</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: isportable, vmipaddress
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>enableStorageMaintenance</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: hypervisor, scope,
|
||
suitableformigration </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listLoadBalancerRules</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters is added: networkid (optional) </para>
|
||
<para>The following new response parameters is added: networkid</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>stopRouter</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: ip6dns1, ip6dns2, role
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listClusters</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: cpuovercommitratio,
|
||
memoryovercommitratio </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>attachVolume</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameter is added: displayvolume</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateVPCOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters is made mandatory: id</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>resetSSHKeyForVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameter is added: keypair (required)</para>
|
||
<para>The following parameter is removed: name</para>
|
||
<para>The following new response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateCluster</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are removed: cpuovercommitratio,
|
||
memoryovercommitratio (optional) </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listPrivateGateways</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: aclid, sourcenatsupported
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>ldapConfig</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: listall (optional) </para>
|
||
<para>The following parameters has been made optional: searchbase, hostname,
|
||
queryfilter</para>
|
||
<para>The following new response parameter is added: ssl</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listTemplates</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listNetworks</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: aclid, displaynetwork,
|
||
ip6cidr, ip6gateway, ispersistent, networkcidr, reservediprange </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>restartNetwork</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: isportable, vmipaddress
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>prepareTemplate</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>rebootVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>changeServiceForRouter</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: aclid (optional), action
|
||
(optional), protocol (optional)</para>
|
||
<para>The following new response parameters are added: id, scope</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateZone</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: ip6dns1 (optional), ip6dns2
|
||
(optional) </para>
|
||
<para>The following new response parameters are added: ip6dns1, ip6dns2 </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>ldapRemove</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: ssl</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateServiceOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: deploymentplanner, isvolatile
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateStoragePool</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: hypervisor, scope,
|
||
suitableformigration</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listFirewallRules</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is removed: traffictype</para>
|
||
<para>The following new response parameters are added: networkid</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateUser</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: iscallerchilddomain,
|
||
isdefault </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateProject</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: cpuavailable, cpulimit,
|
||
cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
|
||
memorytotal, networkavailable, networklimit, networktotal,
|
||
primarystorageavailable, primarystoragelimit, primarystoragetotal,
|
||
secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
|
||
snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
|
||
templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
|
||
volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateTemplate</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: isdynamicallyscalable
|
||
(optional), isrouting (optional) </para>
|
||
<para>The following new response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>disableUser</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: iscallerchilddomain,
|
||
isdefault </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>activateProject</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: cpuavailable, cpulimit,
|
||
cputotal, ipavailable, iplimit, iptotal, memoryavailable, memorylimit,
|
||
memorytotal, networkavailable, networklimit, networktotal,
|
||
primarystorageavailable, primarystoragelimit, primarystoragetotal,
|
||
secondarystorageavailable, secondarystoragelimit, secondarystoragetotal,
|
||
snapshotavailable, snapshotlimit, snapshottotal, templateavailable, templatelimit,
|
||
templatetotal, vmavailable, vmlimit, vmrunning, vmstopped, vmtotal,
|
||
volumeavailable, volumelimit, volumetotal, vpcavailable, vpclimit, vpctotal
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createNetworkACL</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: aclid (optional), action
|
||
(optional), number (optional) </para>
|
||
<para>The following request parameter is now optional: networkid</para>
|
||
<para>The following new response parameters are added: aclid, action, number </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>enableStaticNat</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: vmguestip (optional) </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>registerIso</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: imagestoreuuid (optional),
|
||
isdynamicallyscalable (optional)</para>
|
||
<para>The following new response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createIpForwardingRule</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameter is added: vmguestip </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>resetPasswordForVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createVolume</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameter is added: displayvolume (optional)</para>
|
||
<para>The following new response parameter is added: displayvolume</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>startRouter</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: ip6dns1, ip6dns2, role
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listCapabilities</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new response parameters are added: apilimitinterval and
|
||
apilimitmax.</para>
|
||
<para>See <xref linkend="api-request-throttling"/>.</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createServiceOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: deploymentplanner (optional),
|
||
isvolatile (optional), serviceofferingdetails (optional). </para>
|
||
<para>isvolatie indicates whether the service offering includes Volatile VM
|
||
capability, which will discard the VM's root disk and create a new one on reboot.
|
||
See <xref linkend="reset-vm-reboot"/>.</para>
|
||
<para>The following new response parameters are added: deploymentplanner, isvolatile
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>restoreVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: templateID (optional). This is used
|
||
to point to the new template ID when the base image is updated. The parameter
|
||
templateID can be an ISO ID in case of restore vm deployed using ISO. See <xref
|
||
linkend="update-vm-image"/>.</para>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createNetwork</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: aclid (optional),
|
||
displaynetwork (optional), endipv6 (optional), ip6cidr (optional), ip6gateway
|
||
(optional), isolatedpvlan (optional), startipv6 (optional)</para>
|
||
<para>The following new response parameters are added: aclid, displaynetwork,
|
||
ip6cidr, ip6gateway, ispersistent, networkcidr, reservediprange </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createVlanIpRange</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: startipv6, endipv6,
|
||
ip6gateway, ip6cidr</para>
|
||
<para>Changed parameters: startip (is now optional)</para>
|
||
<para>The following new response parameters are added: startipv6, endipv6,
|
||
ip6gateway, ip6cidr</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>CreateZone</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following new request parameters are added: ip6dns1, ip6dns2</para>
|
||
<para>The following new response parameters are added: ip6dns1, ip6dns2 </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>deployVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: affinitygroupids (optional),
|
||
affinitygroupnames (optional), displayvm (optional), ip6address (optional) </para>
|
||
<para>The following request parameter is modified: iptonetworklist has a new
|
||
possible value, ipv6</para>
|
||
<para>The following new response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createNetworkOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: details (optional),
|
||
egressdefaultpolicy (optional), ispersistent (optional) </para>
|
||
<para>ispersistent determines if the network or network offering created or listed
|
||
by using this offering are persistent or not.</para>
|
||
<para>The following response parameters are added: details, egressdefaultpolicy,
|
||
ispersistent </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listNetworks</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters is added: isPersistent.</para>
|
||
<para>This parameter determines if the network or network offering created or listed
|
||
by using this offering are persistent or not.</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listNetworkOfferings</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters is added: isPersistent.</para>
|
||
<para>This parameter determines if the network or network offering created or listed
|
||
by using this offering are persistent or not.</para>
|
||
<para>For listNetworkOfferings, the following response parameter has been added:
|
||
details, egressdefaultpolicy, ispersistent </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>addF5LoadBalancer</para>
|
||
<para>configureNetscalerLoadBalancer</para>
|
||
<para>addNetscalerLoadBalancer</para>
|
||
<para>listF5LoadBalancers</para>
|
||
<para>configureF5LoadBalancer</para>
|
||
<para>listNetscalerLoadBalancers</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is removed: inline.</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listRouters</para>
|
||
</entry>
|
||
<entry>
|
||
<para>For nic responses, the following fields have been added.</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>ip6address</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>ip6gateway</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>ip6cidr</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listVirtualMachines</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: affinitygroupid (optional), vpcid
|
||
(optional) </para>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listRouters</para>
|
||
<para>listZones</para>
|
||
</entry>
|
||
<entry>
|
||
<para>For DomainRouter and DataCenter response, the following fields have been
|
||
added.</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>ip6dns1</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>ip6dns2</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para>For listZones, the following optional request parameters are added: name,
|
||
networktype</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listFirewallRules</para>
|
||
<para>createFirewallRule</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: traffictype (optional).</para>
|
||
<para>The following response parameter is added: networkid </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listUsageRecords</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: virtualsize.</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>deleteIso</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is removed: forced</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>addCluster</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: guestvswitchtype (optional),
|
||
guestvswitchtype (optional), publicvswitchtype (optional), publicvswitchtype
|
||
(optional)</para>
|
||
<para>See <xref linkend="cpu-ram-overcommit"/>.</para>
|
||
<para>The following request parameters are removed: cpuovercommitratio,
|
||
memoryovercommitratio </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateCluster</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: cpuovercommitratio,
|
||
ramovercommitratio</para>
|
||
<para>See <xref linkend="cpu-ram-overcommit"/>.</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createStoragePool</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: hypervisor (optional), provider
|
||
(optional), scope (optional) </para>
|
||
<para>The following request parameters have been made mandatory: podid,
|
||
clusterid</para>
|
||
<para>See <xref linkend="zone-wide-primary-storage"/>.</para>
|
||
<para>The following response parameter has been added: hypervisor, scope,
|
||
suitableformigration </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listStoragePools</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: scope (optional)</para>
|
||
<para>See <xref linkend="zone-wide-primary-storage"/>.</para>
|
||
<para>The following response parameters are added: hypervisor, scope,
|
||
suitableformigration </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateDiskOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: displayoffering </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>changeServiceForVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>recoverVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listCapabilities</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: apilimitinterval, apilimitmax
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createRemoteAccessVpn</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: id</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>startVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>detachIso</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateVPC</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters has been made mandatory: id, name</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>associateIpAddress</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: isportable (optional), regionid
|
||
(optional) </para>
|
||
<para>The following response parameters are added: isportable, vmipaddress </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listProjectAccounts</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
|
||
ipavailable, iplimit, iptotal, memoryavailable, memorylimit, memorytotal,
|
||
networkavailable, networklimit, networktotal, primarystorageavailable,
|
||
primarystoragelimit, primarystoragetotal, secondarystorageavailable,
|
||
secondarystoragelimit, secondarystoragetotal, snapshotavailable, snapshotlimit,
|
||
snapshottotal, templateavailable, templatelimit, templatetotal, vmavailable,
|
||
vmlimit, vmrunning, vmstopped, vmtotal, volumeavailable, volumelimit, volumetotal,
|
||
vpcavailable, vpclimit, vpctotal </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>disableAccount</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
|
||
isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
|
||
primarystoragelimit, primarystoragetotal, secondarystorageavailable,
|
||
secondarystoragelimit, secondarystoragetotal </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listPortForwardingRules</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: vmguestip</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>migrateVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>cancelStorageMaintenance</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: hypervisor, scope,
|
||
suitableformigration </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createPortForwardingRule</para>
|
||
</entry>
|
||
<entry><para>The following request parameter is added: vmguestip (optional) </para>The
|
||
following response parameter is added: vmguestip</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>addVpnUser</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: state</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createVPCOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: serviceproviderlist (optional)
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>assignVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listConditions</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: account, counter, domain,
|
||
domainid, project, projectid, relationaloperator, threshold</para>
|
||
<para>Removed response parameters: name, source, value </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createPrivateGateway</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: aclid (optional),
|
||
sourcenatsupported (optional) </para>
|
||
<para>The following response parameters are added: aclid, sourcenatsupported </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: displayvm (optional),
|
||
isdynamicallyscalable (optional) </para>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>destroyRouter</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: ip6dns1, ip6dns2, role </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listServiceOfferings</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: deploymentplanner, isvolatile
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listUsageRecords</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are removed: virtualsize </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createProject</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
|
||
ipavailable, iplimit, iptotal, memoryavailable, memorylimit, memorytotal,
|
||
networkavailable, networklimit, networktotal, primarystorageavailable,
|
||
primarystoragelimit, primarystoragetotal, secondarystorageavailable,
|
||
secondarystoragelimit, secondarystoragetotal, snapshotavailable, snapshotlimit,
|
||
snapshottotal, templateavailable, templatelimit, templatetotal, vmavailable,
|
||
vmlimit, vmrunning, vmstopped, vmtotal, volumeavailable, volumelimit, volumetotal,
|
||
vpcavailable, vpclimit, vpctotal </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>enableUser</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: iscallerchilddomain, isdefault
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createLoadBalancerRule</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: networkid </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateAccount</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
|
||
isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
|
||
primarystoragelimit, primarystoragetotal, secondarystorageavailable,
|
||
secondarystoragelimit, secondarystoragetotal </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>copyIso</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>uploadVolume</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: imagestoreuuid (optional),
|
||
projectid (optional</para>
|
||
<para>The following response parameters are added: displayvolume </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createDomain</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: domainid (optional) </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>stopVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listAccounts</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
|
||
isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
|
||
primarystoragelimit, primarystoragetotal, secondarystorageavailable,
|
||
secondarystoragelimit, secondarystoragetotal </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createSnapshot</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: zoneid </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateIso</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: isdynamicallyscalable (optional),
|
||
isrouting (optional) </para>
|
||
<para>The following response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listIpForwardingRules</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: vmguestip </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateNetwork</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: displaynetwork (optional),
|
||
guestvmcidr (optional) </para>
|
||
<para>The following response parameters are added: aclid, displaynetwork, ip6cidr,
|
||
ip6gateway, ispersistent, networkcidr, reservediprange </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>destroyVirtualMachine</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: diskioread, diskiowrite,
|
||
diskkbsread, diskkbswrite, displayvm, isdynamicallyscalable, affinitygroup</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createDiskOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: displayoffering (optional)</para>
|
||
<para>The following response parameter is added: displayoffering </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>rebootRouter</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: ip6dns1, ip6dns2, role </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listConfigurations</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: accountid (optional), clusterid
|
||
(optional), storageid (optional), zoneid (optional) </para>
|
||
<para>The following response parameters are added: id, scope</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createUser</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: userid (optional)</para>
|
||
<para>The following response parameters are added: iscallerchilddomain,
|
||
isdefault</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listDiskOfferings</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: displayoffering</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>detachVolume</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: displayvolume </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>deleteUser</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: displaytext, success</para>
|
||
<para>Removed parameters: id, account, accountid, accounttype, apikey, created,
|
||
domain, domainid, email, firstname, lastname, secretkey, state, timezone, username
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listSnapshots</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameter is added: zoneid (optional) </para>
|
||
<para>The following response parameter is added: zoneid</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>markDefaultZoneForAccount</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: cpuavailable, cpulimit, cputotal,
|
||
isdefault, memoryavailable, memorylimit, memorytotal, primarystorageavailable,
|
||
primarystoragelimit, primarystoragetotal, secondarystorageavailable,
|
||
secondarystoragelimit, secondarystoragetotal </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>restartVPC</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are made mandatory: id</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateHypervisorCapabilities</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: hypervisor, hypervisorversion,
|
||
maxdatavolumeslimit, maxguestslimit, maxhostspercluster, securitygroupenabled,
|
||
storagemotionenabled </para>
|
||
<para>Removed parameters: cpunumber, cpuspeed, created, defaultuse, displaytext,
|
||
domain, domainid, hosttags, issystem, limitcpuuse, memory, name, networkrate,
|
||
offerha, storagetype, systemvmtype, tags </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateLoadBalancerRule</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: networkid </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listVlanIpRanges</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: endipv6, ip6cidr, ip6gateway,
|
||
startipv6 </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listHypervisorCapabilities</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: maxdatavolumeslimit,
|
||
maxhostspercluster, storagemotionenabled </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>updateNetworkOffering</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: details, egressdefaultpolicy,
|
||
ispersistent </para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>createVirtualRouterElement</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following request parameters are added: providertype (optional)</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listVpnUsers</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: state</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listUsers</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: iscallerchilddomain, isdefault
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listSupportedNetworkServices</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameter is added: provider</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>
|
||
<para>listIsos</para>
|
||
</entry>
|
||
<entry>
|
||
<para>The following response parameters are added: isdynamicallyscalable,
|
||
sshkeyenabled </para>
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</section>
|
||
<section id="removed-api-4.2">
|
||
<title>Deprecated APIs</title>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>addExternalLoadBalancer (Adds F5 external load balancer appliance.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>deleteExternalLoadBalancer (Deletes a F5 external load balancer appliance added in a
|
||
zone.) </para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>listExternalLoadBalancers (Lists F5 external load balancer appliances added in a
|
||
zone.) </para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
</chapter>
|
||
</book>
|