diff --git a/api/src/com/cloud/storage/Storage.java b/api/src/com/cloud/storage/Storage.java index d6bd04ea61e..fba12b62d3d 100755 --- a/api/src/com/cloud/storage/Storage.java +++ b/api/src/com/cloud/storage/Storage.java @@ -96,6 +96,7 @@ public class Storage { Iscsi(true), // for e.g., ZFS Comstar ISO(false), // for iso image LVM(false), // XenServer local LVM SR + CLVM(true), RBD(true), SharedMountPoint(true), VMFS(true), // VMware VMFS storage diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java index ffc766cb6fd..965dd63b452 100755 --- a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java @@ -706,49 +706,6 @@ public class VirtualRoutingResource implements Manager { return routerProxy("ipassoc.sh", privateIpAddress, args); } - private void deletExitingLinkLocalRoutTable(String linkLocalBr) { - Script command = new Script("/bin/bash", _timeout); - command.add("-c"); - command.add("ip route | grep " + NetUtils.getLinkLocalCIDR()); - OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser(); - String result = command.execute(parser); - boolean foundLinkLocalBr = false; - if (result == null && parser.getLines() != null) { - String[] lines = parser.getLines().split("\\n"); - for (String line : lines) { - String[] tokens = line.split(" "); - if (!tokens[2].equalsIgnoreCase(linkLocalBr)) { - Script.runSimpleBashScript("ip route del " + NetUtils.getLinkLocalCIDR()); - } else { - foundLinkLocalBr = true; - } - } - } - if (!foundLinkLocalBr) { - Script.runSimpleBashScript("ifconfig " + linkLocalBr + " 169.254.0.1;" + "ip route add " + NetUtils.getLinkLocalCIDR() + " dev " + linkLocalBr + " src " + NetUtils.getLinkLocalGateway()); - } - } - - public void createControlNetwork(String privBrName) { - deletExitingLinkLocalRoutTable(privBrName); - if (!isBridgeExists(privBrName)) { - Script.runSimpleBashScript("brctl addbr " + privBrName + "; ifconfig " + privBrName + " up; ifconfig " + privBrName + " 169.254.0.1", _timeout); - } - } - - private boolean isBridgeExists(String bridgeName) { - Script command = new Script("/bin/sh", _timeout); - command.add("-c"); - command.add("brctl show|grep " + bridgeName); - final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser(); - String result = command.execute(parser); - if (result != null || parser.getLine() == null) { - return false; - } else { - return true; - } - } - private void deleteBridge(String brName) { Script cmd = new Script("/bin/sh", _timeout); cmd.add("-c"); @@ -775,12 +732,6 @@ public class VirtualRoutingResource implements Manager { cmd.execute(); } - public void cleanupPrivateNetwork(String privNwName, String privBrName){ - if (isBridgeExists(privBrName)) { - deleteBridge(privBrName); - } - } - // protected Answer execute(final SetFirewallRuleCommand cmd) { // String args; // if(cmd.getProtocol().toLowerCase().equals(NetUtils.NAT_PROTO)){ diff --git a/core/src/com/cloud/storage/template/DownloadManagerImpl.java b/core/src/com/cloud/storage/template/DownloadManagerImpl.java index a8e0db24a5e..cd4b30d37ba 100755 --- a/core/src/com/cloud/storage/template/DownloadManagerImpl.java +++ b/core/src/com/cloud/storage/template/DownloadManagerImpl.java @@ -297,7 +297,7 @@ public class DownloadManagerImpl implements DownloadManager { } byte[] md5sum = digest.digest(); BigInteger bigInt = new BigInteger(1, md5sum); - checksum = String.format("%032x",bigInt.toString(16)); + checksum = String.format("%032x",bigInt); return checksum; }catch(IOException e) { return null; diff --git a/docs/en-US/Author_Group.xml b/docs/en-US/Author_Group.xml index ccb615ba0ab..ba9e651f876 100644 --- a/docs/en-US/Author_Group.xml +++ b/docs/en-US/Author_Group.xml @@ -1,6 +1,6 @@ + %BOOK_ENTITIES; ]> @@ -22,24 +22,11 @@ under the License. --> + - - Jessica - Tomechak - - Citrix - Cloud Platform Group - - jessica.tomechak@citrix.com - - - Radhika - PC - - Citrix - Cloud Platform Group - - radhika.puthiyetath@citrix.com - + + Apache + CloudStack + diff --git a/docs/en-US/Book_Info.xml b/docs/en-US/Book_Info.xml index 7d3953fcbe6..3bd6efa176f 100644 --- a/docs/en-US/Book_Info.xml +++ b/docs/en-US/Book_Info.xml @@ -24,24 +24,24 @@ --> - &PRODUCT; Guide - Revised August 9, 2012 10:48 pm Pacific - Apache CloudStack - 4.0 - 1 - - - - Complete technical documentation of &PRODUCT;. - - - - - - - - - - - + &PRODUCT; Guide + Revised August 9, 2012 10:48 pm Pacific + Apache CloudStack + 4.0 + 1 + + + + Complete technical documentation of &PRODUCT;. + + + + + + + + + + + diff --git a/docs/en-US/Common_Content/Legal_Notice.xml b/docs/en-US/Common_Content/Legal_Notice.xml index 0fe5eb50e49..d35b5c63af8 100644 --- a/docs/en-US/Common_Content/Legal_Notice.xml +++ b/docs/en-US/Common_Content/Legal_Notice.xml @@ -2,20 +2,20 @@ - - 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. - - - Apache CloudStack is an effort undergoing incubation at The Apache Software Foundation (ASF). - - - Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. - + + 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. + + + Apache CloudStack is an effort undergoing incubation at The Apache Software Foundation (ASF). + + + Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. + diff --git a/docs/en-US/LDAPserver-for-user-authentication.xml b/docs/en-US/LDAPserver-for-user-authentication.xml index 3cd4c3ba286..5fcb300af65 100644 --- a/docs/en-US/LDAPserver-for-user-authentication.xml +++ b/docs/en-US/LDAPserver-for-user-authentication.xml @@ -1,16 +1,35 @@ - %BOOK_ENTITIES; ]> + + +
Using an LDAP Server for User Authentication - You can use an external LDAP server such as Microsoft Active Directory or ApacheDS to authenticate CloudPlatform end-users. Just map CloudPlatform accounts to the corresponding LDAP accounts using a query filter. The query filter is written using the query syntax of the particular LDAP server, and can include special wildcard characters provided by CloudPlatform for matching common values such as the user’s email address and name. CloudPlatform will search the external LDAP directory tree starting at a specified base directory and return the distinguished name (DN) and password of the matching user. This information along with the given password is used to authenticate the user.. - To set up LDAP authentication in CloudPlatform, call the CloudPlatform API command ldapConfig and provide the following: + You can use an external LDAP server such as Microsoft Active Directory or ApacheDS to authenticate &PRODUCT; end-users. Just map &PRODUCT; accounts to the corresponding LDAP accounts using a query filter. The query filter is written using the query syntax of the particular LDAP server, and can include special wildcard characters provided by &PRODUCT; for matching common values such as the user’s email address and name. &PRODUCT; will search the external LDAP directory tree starting at a specified base directory and return the distinguished name (DN) and password of the matching user. This information along with the given password is used to authenticate the user.. + To set up LDAP authentication in &PRODUCT;, call the &PRODUCT; API command ldapConfig and provide the following: Hostname or IP address and listening port of the LDAP server Base directory and query filter - Search user DN credentials, which give CloudPlatform permission to search on the LDAP server + Search user DN credentials, which give &PRODUCT; permission to search on the LDAP server SSL keystore and password, if SSL is used @@ -18,4 +37,4 @@ -
+ diff --git a/docs/en-US/Preface.xml b/docs/en-US/Preface.xml index ff90becceaf..b33d62ed528 100644 --- a/docs/en-US/Preface.xml +++ b/docs/en-US/Preface.xml @@ -4,10 +4,10 @@ %BOOK_ENTITIES; ]> - Preface - - - - + Preface + + + + diff --git a/docs/en-US/Revision_History.xml b/docs/en-US/Revision_History.xml index df57d7f48ee..55d741a64f2 100644 --- a/docs/en-US/Revision_History.xml +++ b/docs/en-US/Revision_History.xml @@ -1,27 +1,45 @@ - %BOOK_ENTITIES; ]> - - Revision History - - - - 0-0 - Tue May 29 2012 - - Jessica - Tomechak - - - - - Initial creation of book by publican - - - - - - + + + + Revision History + + + + 0-0 + Tue May 29 2012 + + Jessica + Tomechak + + + + + Initial creation of book by publican + + + + + + diff --git a/docs/en-US/SSL-keystore-path-and-password.xml b/docs/en-US/SSL-keystore-path-and-password.xml index 4819fdc68e8..e75c3d0a0d7 100644 --- a/docs/en-US/SSL-keystore-path-and-password.xml +++ b/docs/en-US/SSL-keystore-path-and-password.xml @@ -4,7 +4,7 @@ %BOOK_ENTITIES; ]>
- SSL Keystore Path and Password - If the LDAP server requires SSL, you need to enable it in the ldapConfig command by setting the parameters ssl, truststore, and truststorepass. Before enabling SSL for ldapConfig, you need to get the certificate which the LDAP server is using and add it to a trusted keystore. You will need to know the path to the keystore and the password. - -
+ SSL Keystore Path and Password + If the LDAP server requires SSL, you need to enable it in the ldapConfig command by setting the parameters ssl, truststore, and truststorepass. Before enabling SSL for ldapConfig, you need to get the certificate which the LDAP server is using and add it to a trusted keystore. You will need to know the path to the keystore and the password. + + diff --git a/docs/en-US/VPN-user-usage-record-format.xml b/docs/en-US/VPN-user-usage-record-format.xml index af9315f80a2..5db6690bc3c 100644 --- a/docs/en-US/VPN-user-usage-record-format.xml +++ b/docs/en-US/VPN-user-usage-record-format.xml @@ -1,17 +1,17 @@
- VPN User Usage Record Format - - account – name of the account - accountid – ID of the account - domainid – ID of the domain in which this account resides - zoneid – Zone where the usage occurred - description – A string describing what the usage record is tracking - usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) - usagetype – A number representing the usage type (see Usage Types) - rawusage – A number representing the actual usage in hours - usageid – VPN user ID - usagetype – A number representing the usage type (see Usage Types) - startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record - + VPN User Usage Record Format + + account – name of the account + accountid – ID of the account + domainid – ID of the domain in which this account resides + zoneid – Zone where the usage occurred + description – A string describing what the usage record is tracking + usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) + usagetype – A number representing the usage type (see Usage Types) + rawusage – A number representing the actual usage in hours + usageid – VPN user ID + usagetype – A number representing the usage type (see Usage Types) + startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record +
diff --git a/docs/en-US/about-clusters.xml b/docs/en-US/about-clusters.xml index 7f46b3f8e4b..e328cbaa169 100644 --- a/docs/en-US/about-clusters.xml +++ b/docs/en-US/about-clusters.xml @@ -23,7 +23,7 @@ -->
- About Clusters + About Clusters A cluster provides a way to group hosts. To be precise, a cluster is a XenServer server pool, a set of KVM servers, a set of OVM hosts, or a VMware cluster preconfigured in vCenter. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared primary storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a &PRODUCT; deployment. Clusters are contained within pods, and pods are contained within zones. Size of the cluster is limited by the underlying hypervisor, although the &PRODUCT; recommends less in most cases; see Best Practices. A cluster consists of one or more hosts and one or more primary storage servers. diff --git a/docs/en-US/about-hosts.xml b/docs/en-US/about-hosts.xml index 93f178feae2..956c695a520 100644 --- a/docs/en-US/about-hosts.xml +++ b/docs/en-US/about-hosts.xml @@ -23,7 +23,7 @@ -->
- About Hosts + About Hosts A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs. For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. The host is the smallest organizational unit within a &PRODUCT; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones. Hosts in a &PRODUCT; deployment: diff --git a/docs/en-US/about-physical-networks.xml b/docs/en-US/about-physical-networks.xml index 3d18b89a9ad..b35aeeb077a 100644 --- a/docs/en-US/about-physical-networks.xml +++ b/docs/en-US/about-physical-networks.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
- About Physical Networks + About Physical Networks Part of adding a zone is setting up the physical network. One or (in an advanced zone) more physical networks can be associated with each zone. The network corresponds to a NIC on the hypervisor host. Each physical network can carry one or more types of network traffic. The choices of traffic type for each network vary depending on whether you are creating a zone with basic networking or advanced networking. A physical network is the actual network hardware and wiring in a zone. A zone can have multiple physical networks. An administrator can: diff --git a/docs/en-US/about-pods.xml b/docs/en-US/about-pods.xml index 711db6b1ab5..ed3520c6451 100644 --- a/docs/en-US/about-pods.xml +++ b/docs/en-US/about-pods.xml @@ -23,7 +23,7 @@ -->
- About Pods + About Pods A pod often represents a single rack. Hosts in the same pod are in the same subnet. A pod is the second-largest organizational unit within a &PRODUCT; deployment. Pods are contained within zones. Each zone can contain one or more pods. Pods are not visible to the end user. diff --git a/docs/en-US/about-primary-storage.xml b/docs/en-US/about-primary-storage.xml index 91262c37a4a..68d7a25ba5a 100644 --- a/docs/en-US/about-primary-storage.xml +++ b/docs/en-US/about-primary-storage.xml @@ -23,7 +23,7 @@ -->
- About Primary Storage + About Primary Storage Primary storage is associated with a cluster, and it stores the disk volumes for all the VMs running on hosts in that cluster. You can add multiple primary storage servers to a cluster. At least one is required. It is typically located close to the hosts for increased performance. &PRODUCT; is designed to work with all standards-compliant iSCSI and NFS servers that are supported by the underlying hypervisor, including, for example: diff --git a/docs/en-US/about-secondary-storage.xml b/docs/en-US/about-secondary-storage.xml index ef2913fac3e..c4df0b8c6e8 100644 --- a/docs/en-US/about-secondary-storage.xml +++ b/docs/en-US/about-secondary-storage.xml @@ -23,7 +23,7 @@ -->
- About Secondary Storage + About Secondary Storage Secondary storage is associated with a zone, and it stores the following: Templates — OS images that can be used to boot VMs and can include additional configuration information, such as installed applications diff --git a/docs/en-US/about-working-with-vms.xml b/docs/en-US/about-working-with-vms.xml index 920c4e8f9ed..47153e2f374 100644 --- a/docs/en-US/about-working-with-vms.xml +++ b/docs/en-US/about-working-with-vms.xml @@ -23,17 +23,17 @@ -->
- About Working with Virtual Machines - &PRODUCT; provides administrators with complete control over the lifecycle of all guest VMs executing in the cloud. &PRODUCT; provides several guest management operations for end users and administrators. VMs may be stopped, started, rebooted, and destroyed. - Guest VMs have a name and group. VM names and groups are opaque to &PRODUCT; and are available for end users to organize their VMs. Each VM can have three names for use in different contexts. Only two of these names can be controlled by the user: - - Instance name – a unique, immutable ID that is generated by &PRODUCT; and can not be modified by the user. This name conforms to the requirements in IETF RFC 1123. - Display name – the name displayed in the &PRODUCT; web UI. Can be set by the user. Defaults to instance name. - Name – host name that the DHCP server assigns to the VM. Can be set by the user. Defaults to instance name - - Guest VMs can be configured to be Highly Available (HA). An HA-enabled VM is monitored by the system. If the system detects that the VM is down, it will attempt to restart the VM, possibly on a different host. For more information, see HA-Enabled Virtual Machines on - Each new VM is allocated one public IP address. When the VM is started, &PRODUCT; automatically creates a static NAT between this public IP address and the private IP address of the VM. - If elastic IP is in use (with the NetScaler load balancer), the IP address initially allocated to the new VM is not marked as elastic. The user must replace the automatically configured IP with a specifically acquired elastic IP, and set up the static NAT mapping between this new IP and the guest VM’s private IP. The VM’s original IP address is then released and returned to the pool of available public IPs. - &PRODUCT; cannot distinguish a guest VM that was shut down by the user (such as with the “shutdown” command in Linux) from a VM that shut down unexpectedly. If an HA-enabled VM is shut down from inside the VM, &PRODUCT; will restart it. To shut down an HA-enabled VM, you must go through the &PRODUCT; UI or API. + About Working with Virtual Machines + &PRODUCT; provides administrators with complete control over the lifecycle of all guest VMs executing in the cloud. &PRODUCT; provides several guest management operations for end users and administrators. VMs may be stopped, started, rebooted, and destroyed. + Guest VMs have a name and group. VM names and groups are opaque to &PRODUCT; and are available for end users to organize their VMs. Each VM can have three names for use in different contexts. Only two of these names can be controlled by the user: + + Instance name – a unique, immutable ID that is generated by &PRODUCT; and can not be modified by the user. This name conforms to the requirements in IETF RFC 1123. + Display name – the name displayed in the &PRODUCT; web UI. Can be set by the user. Defaults to instance name. + Name – host name that the DHCP server assigns to the VM. Can be set by the user. Defaults to instance name + + Guest VMs can be configured to be Highly Available (HA). An HA-enabled VM is monitored by the system. If the system detects that the VM is down, it will attempt to restart the VM, possibly on a different host. For more information, see HA-Enabled Virtual Machines on + Each new VM is allocated one public IP address. When the VM is started, &PRODUCT; automatically creates a static NAT between this public IP address and the private IP address of the VM. + If elastic IP is in use (with the NetScaler load balancer), the IP address initially allocated to the new VM is not marked as elastic. The user must replace the automatically configured IP with a specifically acquired elastic IP, and set up the static NAT mapping between this new IP and the guest VM’s private IP. The VM’s original IP address is then released and returned to the pool of available public IPs. + &PRODUCT; cannot distinguish a guest VM that was shut down by the user (such as with the “shutdown” command in Linux) from a VM that shut down unexpectedly. If an HA-enabled VM is shut down from inside the VM, &PRODUCT; will restart it. To shut down an HA-enabled VM, you must go through the &PRODUCT; UI or API.
diff --git a/docs/en-US/about-zones.xml b/docs/en-US/about-zones.xml index e89e15508a2..a05a9a6e517 100644 --- a/docs/en-US/about-zones.xml +++ b/docs/en-US/about-zones.xml @@ -23,7 +23,7 @@ -->
- About Zones + About Zones A zone is the largest organizational unit within a &PRODUCT; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required). A zone consists of: diff --git a/docs/en-US/accessing-vms.xml b/docs/en-US/accessing-vms.xml index a6f86f553f5..d69d021471b 100644 --- a/docs/en-US/accessing-vms.xml +++ b/docs/en-US/accessing-vms.xml @@ -23,19 +23,19 @@ -->
- Accessing VMs - Any user can access their own virtual machines. The administrator can access all VMs running in the cloud. - To access a VM through the &PRODUCT; UI: - - Log in to the &PRODUCT; UI as a user or admin. - Click Instances, then click the name of a running VM. - Click the View Console button . - - To access a VM directly over the network: - - The VM must have some port open to incoming traffic. For example, in a basic zone, a new VM might be assigned to a security group which allows incoming traffic. This depends on what security group you picked when creating the VM. In other cases, you can open a port by setting up a port forwarding policy. See IP Forwarding and Firewalling. - If a port is open but you can not access the VM using ssh, it’s possible that ssh is not already enabled on the VM. This will depend on whether ssh is enabled in the template you picked when creating the VM. Access the VM through the &PRODUCT; UI and enable ssh on the machine using the commands for the VM’s operating system. - If the network has an external firewall device, you will need to create a firewall rule to allow access. See IP Forwarding and Firewalling. - + Accessing VMs + Any user can access their own virtual machines. The administrator can access all VMs running in the cloud. + To access a VM through the &PRODUCT; UI: + + Log in to the &PRODUCT; UI as a user or admin. + Click Instances, then click the name of a running VM. + Click the View Console button . + + To access a VM directly over the network: + + The VM must have some port open to incoming traffic. For example, in a basic zone, a new VM might be assigned to a security group which allows incoming traffic. This depends on what security group you picked when creating the VM. In other cases, you can open a port by setting up a port forwarding policy. See IP Forwarding and Firewalling. + If a port is open but you can not access the VM using ssh, it’s possible that ssh is not already enabled on the VM. This will depend on whether ssh is enabled in the template you picked when creating the VM. Access the VM through the &PRODUCT; UI and enable ssh on the machine using the commands for the VM’s operating system. + If the network has an external firewall device, you will need to create a firewall rule to allow access. See IP Forwarding and Firewalling. +
diff --git a/docs/en-US/acquire-new-ip-address.xml b/docs/en-US/acquire-new-ip-address.xml index 5c02f8abb55..8af130c9d7e 100644 --- a/docs/en-US/acquire-new-ip-address.xml +++ b/docs/en-US/acquire-new-ip-address.xml @@ -23,14 +23,14 @@ -->
- Acquiring a New IP Address - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, choose Network. - Click the name of the network where you want to work with. - Click View IP Addresses. - Click Acquire New IP, and click Yes in the confirmation dialog. - You are prompted for confirmation because, typically, IP addresses are a limited resource. Within a few moments, the new IP address should appear with the state Allocated. You can now use the IP address in port forwarding or static NAT rules. - - + Acquiring a New IP Address + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, choose Network. + Click the name of the network where you want to work with. + Click View IP Addresses. + Click Acquire New IP, and click Yes in the confirmation dialog. + You are prompted for confirmation because, typically, IP addresses are a limited resource. Within a few moments, the new IP address should appear with the state Allocated. You can now use the IP address in port forwarding or static NAT rules. + +
diff --git a/docs/en-US/add-additional-guest-network.xml b/docs/en-US/add-additional-guest-network.xml index e9ddd3327ce..57e7ffd57a8 100644 --- a/docs/en-US/add-additional-guest-network.xml +++ b/docs/en-US/add-additional-guest-network.xml @@ -23,21 +23,21 @@ -->
- Adding an Additional Guest Network - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, choose Network - Click Add guest network. Provide the following information: - - Name. The name of the network. This will be user-visible. - Description. The description of the network. This will be user-visible. - Network offering. If the administrator has configured multiple network offerings, select the one you want to use for this network. - Pod. The name of the pod this network applies to. Each pod in a basic zone is a broadcast domain, and therefore each pod has a different IP range for the guest network. The administrator must configure the IP range for each pod. - VLAN ID. The VLAN tag for this network. - Gateway. The gateway that the guests should use. - Netmask. The netmask in use on the subnet the guests will use. - Start IP/End IP. Enter the first and last IP addresses that define a range that &PRODUCT; can assign to guests. We strongly recommend the use of multiple NICs. If multiple NICs are used, they may be in a different subnet. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR. - Click Create. - + Adding an Additional Guest Network + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, choose Network + Click Add guest network. Provide the following information: + + Name. The name of the network. This will be user-visible. + Description. The description of the network. This will be user-visible. + Network offering. If the administrator has configured multiple network offerings, select the one you want to use for this network. + Pod. The name of the pod this network applies to. Each pod in a basic zone is a broadcast domain, and therefore each pod has a different IP range for the guest network. The administrator must configure the IP range for each pod. + VLAN ID. The VLAN tag for this network. + Gateway. The gateway that the guests should use. + Netmask. The netmask in use on the subnet the guests will use. + Start IP/End IP. Enter the first and last IP addresses that define a range that &PRODUCT; can assign to guests. We strongly recommend the use of multiple NICs. If multiple NICs are used, they may be in a different subnet. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR. + Click Create. + -
+
diff --git a/docs/en-US/add-ingress-egress-rules.xml b/docs/en-US/add-ingress-egress-rules.xml index 4ea072b28e2..964045f4076 100644 --- a/docs/en-US/add-ingress-egress-rules.xml +++ b/docs/en-US/add-ingress-egress-rules.xml @@ -23,37 +23,37 @@ -->
- Adding Ingress and Egress Rules to a Security Group - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, choose Network - In Select view, choose Security Groups, then click the security group you want . - To add an ingress rule, click the Ingress Rules tab and fill out the following fields to specify what network traffic is allowed into VM instances in this security group. If no ingress rules are specified, then no traffic will be allowed in, except for responses to any traffic that has been allowed out through an egress rule. - - Add by CIDR/Account. Indicate whether the source of the traffic will be defined by IP address (CIDR) or an existing security group in a &PRODUCT; account (Account). Choose Account if you want to allow incoming traffic from all VMs in another security group - Protocol. The networking protocol that sources will use to send traffic to the security group. TCP and UDP are typically used for data exchange and end-user communications. ICMP is typically used to send error messages or network monitoring data. - Start Port, End Port. (TCP, UDP only) A range of listening ports that are the destination for the incoming traffic. If you are opening a single port, use the same number in both fields. - ICMP Type, ICMP Code. (ICMP only) The type of message and error code that will be accepted. - CIDR. (Add by CIDR only) To accept only traffic from IP addresses within a particular address block, enter a CIDR or a comma-separated list of CIDRs. The CIDR is the base IP address of the incoming traffic. For example, 192.168.0.0/22. To allow all CIDRs, set to 0.0.0.0/0. - Account, Security Group. (Add by Account only) To accept only traffic from another security group, enter the &PRODUCT; account and name of a security group that has already been defined in that account. To allow traffic between VMs within the security group you are editing now, enter the same name you used in step 7. - - The following example allows inbound HTTP access from anywhere: - - - - - httpaccess.png: allows inbound HTTP access from anywhere - - - To add an egress rule, click the Egress Rules tab and fill out the following fields to specify what type of traffic is allowed to be sent out of VM instances in this security group. If no egress rules are specified, then all traffic will be allowed out. Once egress rules are specified, the following types of traffic are allowed out: traffic specified in egress rules; queries to DNS and DHCP servers; and responses to any traffic that has been allowed in through an ingress rule - - Add by CIDR/Account. Indicate whether the destination of the traffic will be defined by IP address (CIDR) or an existing security group in a &PRODUCT; account (Account). Choose Account if you want to allow outgoing traffic to all VMs in another security group. - Protocol. The networking protocol that VMs will use to send outgoing traffic. TCP and UDP are typically used for data exchange and end-user communications. ICMP is typically used to send error messages or network monitoring data. - Start Port, End Port. (TCP, UDP only) A range of listening ports that are the destination for the outgoing traffic. If you are opening a single port, use the same number in both fields. - ICMP Type, ICMP Code. (ICMP only) The type of message and error code that will be sent - CIDR. (Add by CIDR only) To send traffic only to IP addresses within a particular address block, enter a CIDR or a comma-separated list of CIDRs. The CIDR is the base IP address of the destination. For example, 192.168.0.0/22. To allow all CIDRs, set to 0.0.0.0/0. - Account, Security Group. (Add by Account only) To allow traffic to be sent to another security group, enter the &PRODUCT; account and name of a security group that has already been defined in that account. To allow traffic between VMs within the security group you are editing now, enter its name. - - Click Add. - + Adding Ingress and Egress Rules to a Security Group + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, choose Network + In Select view, choose Security Groups, then click the security group you want . + To add an ingress rule, click the Ingress Rules tab and fill out the following fields to specify what network traffic is allowed into VM instances in this security group. If no ingress rules are specified, then no traffic will be allowed in, except for responses to any traffic that has been allowed out through an egress rule. + + Add by CIDR/Account. Indicate whether the source of the traffic will be defined by IP address (CIDR) or an existing security group in a &PRODUCT; account (Account). Choose Account if you want to allow incoming traffic from all VMs in another security group + Protocol. The networking protocol that sources will use to send traffic to the security group. TCP and UDP are typically used for data exchange and end-user communications. ICMP is typically used to send error messages or network monitoring data. + Start Port, End Port. (TCP, UDP only) A range of listening ports that are the destination for the incoming traffic. If you are opening a single port, use the same number in both fields. + ICMP Type, ICMP Code. (ICMP only) The type of message and error code that will be accepted. + CIDR. (Add by CIDR only) To accept only traffic from IP addresses within a particular address block, enter a CIDR or a comma-separated list of CIDRs. The CIDR is the base IP address of the incoming traffic. For example, 192.168.0.0/22. To allow all CIDRs, set to 0.0.0.0/0. + Account, Security Group. (Add by Account only) To accept only traffic from another security group, enter the &PRODUCT; account and name of a security group that has already been defined in that account. To allow traffic between VMs within the security group you are editing now, enter the same name you used in step 7. + + The following example allows inbound HTTP access from anywhere: + + + + + httpaccess.png: allows inbound HTTP access from anywhere + + + To add an egress rule, click the Egress Rules tab and fill out the following fields to specify what type of traffic is allowed to be sent out of VM instances in this security group. If no egress rules are specified, then all traffic will be allowed out. Once egress rules are specified, the following types of traffic are allowed out: traffic specified in egress rules; queries to DNS and DHCP servers; and responses to any traffic that has been allowed in through an ingress rule + + Add by CIDR/Account. Indicate whether the destination of the traffic will be defined by IP address (CIDR) or an existing security group in a &PRODUCT; account (Account). Choose Account if you want to allow outgoing traffic to all VMs in another security group. + Protocol. The networking protocol that VMs will use to send outgoing traffic. TCP and UDP are typically used for data exchange and end-user communications. ICMP is typically used to send error messages or network monitoring data. + Start Port, End Port. (TCP, UDP only) A range of listening ports that are the destination for the outgoing traffic. If you are opening a single port, use the same number in both fields. + ICMP Type, ICMP Code. (ICMP only) The type of message and error code that will be sent + CIDR. (Add by CIDR only) To send traffic only to IP addresses within a particular address block, enter a CIDR or a comma-separated list of CIDRs. The CIDR is the base IP address of the destination. For example, 192.168.0.0/22. To allow all CIDRs, set to 0.0.0.0/0. + Account, Security Group. (Add by Account only) To allow traffic to be sent to another security group, enter the &PRODUCT; account and name of a security group that has already been defined in that account. To allow traffic between VMs within the security group you are editing now, enter its name. + + Click Add. +
diff --git a/docs/en-US/add-iso.xml b/docs/en-US/add-iso.xml index 9376bc75192..f56d10cb0f5 100644 --- a/docs/en-US/add-iso.xml +++ b/docs/en-US/add-iso.xml @@ -23,69 +23,69 @@ -->
- Adding an ISO - To make additional operating system or other software available for use with guest VMs, you can add an ISO. The ISO is typically thought of as an operating system image, but you can also add ISOs for other types of software, such as desktop applications that you want to be installed as part of a template. - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation bar, click Templates. - In Select View, choose ISOs. - Click Add ISO. - In the Add ISO screen, provide the following: - - Name. Short name for the ISO image. (E.g. CentOS 6.2 64 bit). - Description. Display test for the ISO image. (E.g. CentOS 6.2 64 bit). - URL. The URL that hosts the ISO image. The Management Server must be able to access this location via HTTP. If needed you can place the ISO image directly on the Management Server - Zone. Choose the zone where you want the ISO to be available, or All Zones to make it available throughout &PRODUCT;. - Bootable. Whether or not a guest could boot off this ISO image. For example, a CentOS ISO is bootable, a Microsoft Office ISO is not bootable. - OS Type. This helps &PRODUCT; and the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following. - - If the operating system of your desired ISO image is listed, choose it. - If the OS Type of the ISO is not listed or if the ISO is not bootable, choose Other. - (XenServer only) If you want to boot from this ISO in PV mode, choose Other PV (32-bit) or Other PV (64-bit) - (KVM only) If you choose an OS that is PV-enabled, the VMs created from this ISO will have a SCSI (virtio) root disk. If the OS is not PV-enabled, the VMs will have an IDE root disk. The PV-enabled types are: - - - - - Fedora 13 - Fedora 12 - Fedora 11 - - - - Fedora 10 - Fedora 9 - Other PV - - - - Debian GNU/Linux - CentOS 5.3 - CentOS 5.4 - - - CentOS 5.5 - Red Hat Enterprise Linux 5.3 - Red Hat Enterprise Linux 5.4 - - - Red Hat Enterprise Linux 5.5 - Red Hat Enterprise Linux 6 - - - - - - - Note: It is not recommended to choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will usually not work. In these cases, choose Other. - - Extractable. Choose Yes if the ISO should be available for extraction. - Public. Choose Yes if this ISO should be available to other users. - Featured. Choose Yes if you would like this ISO to be more prominent for users to select. The ISO will appear in the Featured ISOs list. Only an administrator can make an ISO Featured. - - Click OK. - The Management Server will download the ISO. Depending on the size of the ISO, this may take a long time. The ISO status column will display Ready once it has been successfully downloaded into secondary storage. Clicking Refresh updates the download percentage. - - Important: Wait for the ISO to finish downloading. If you move on to the next task and try to use the ISO right away, it will appear to fail. The entire ISO must be available before &PRODUCT; can work with it - + Adding an ISO + To make additional operating system or other software available for use with guest VMs, you can add an ISO. The ISO is typically thought of as an operating system image, but you can also add ISOs for other types of software, such as desktop applications that you want to be installed as part of a template. + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation bar, click Templates. + In Select View, choose ISOs. + Click Add ISO. + In the Add ISO screen, provide the following: + + Name. Short name for the ISO image. (E.g. CentOS 6.2 64 bit). + Description. Display test for the ISO image. (E.g. CentOS 6.2 64 bit). + URL. The URL that hosts the ISO image. The Management Server must be able to access this location via HTTP. If needed you can place the ISO image directly on the Management Server + Zone. Choose the zone where you want the ISO to be available, or All Zones to make it available throughout &PRODUCT;. + Bootable. Whether or not a guest could boot off this ISO image. For example, a CentOS ISO is bootable, a Microsoft Office ISO is not bootable. + OS Type. This helps &PRODUCT; and the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following. + + If the operating system of your desired ISO image is listed, choose it. + If the OS Type of the ISO is not listed or if the ISO is not bootable, choose Other. + (XenServer only) If you want to boot from this ISO in PV mode, choose Other PV (32-bit) or Other PV (64-bit) + (KVM only) If you choose an OS that is PV-enabled, the VMs created from this ISO will have a SCSI (virtio) root disk. If the OS is not PV-enabled, the VMs will have an IDE root disk. The PV-enabled types are: + + + + + Fedora 13 + Fedora 12 + Fedora 11 + + + + Fedora 10 + Fedora 9 + Other PV + + + + Debian GNU/Linux + CentOS 5.3 + CentOS 5.4 + + + CentOS 5.5 + Red Hat Enterprise Linux 5.3 + Red Hat Enterprise Linux 5.4 + + + Red Hat Enterprise Linux 5.5 + Red Hat Enterprise Linux 6 + + + + + + + Note: It is not recommended to choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will usually not work. In these cases, choose Other. + + Extractable. Choose Yes if the ISO should be available for extraction. + Public. Choose Yes if this ISO should be available to other users. + Featured. Choose Yes if you would like this ISO to be more prominent for users to select. The ISO will appear in the Featured ISOs list. Only an administrator can make an ISO Featured. + + Click OK. + The Management Server will download the ISO. Depending on the size of the ISO, this may take a long time. The ISO status column will display Ready once it has been successfully downloaded into secondary storage. Clicking Refresh updates the download percentage. + + Important: Wait for the ISO to finish downloading. If you move on to the next task and try to use the ISO right away, it will appear to fail. The entire ISO must be available before &PRODUCT; can work with it +
diff --git a/docs/en-US/add-load-balancer-rule.xml b/docs/en-US/add-load-balancer-rule.xml index 42895571dbb..ddbce957926 100644 --- a/docs/en-US/add-load-balancer-rule.xml +++ b/docs/en-US/add-load-balancer-rule.xml @@ -23,24 +23,24 @@ -->
- Adding a Load Balancer Rule - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, choose Network. - Click the name of the network where you want to load balance the traffic. - Click View IP Addresses. - Click the IP address for which you want to create the rule, then click the Configuration tab. - In the Load Balancing node of the diagram, click View All. - Fill in the following: - - Name. A name for the load balancer rule. - Public Port. The port receiving incoming traffic to be balanced. - Private Port. The port that the VMs will use to receive the traffic. - Algorithm. Choose the load balancing algorithm you want &PRODUCT; to use. &PRODUCT; supports a variety of well-known algorithms. If you are not familiar with these choices, you will find plenty of information about them on the Internet. - Stickiness. (Optional) Click Configure and choose the algorithm for the stickiness policy. See Sticky Session Policies for Load Balancer Rules. - - Click Add VMs, then select two or more VMs that will divide the load of incoming traffic, and click Apply. - The new load balancer rule appears in the list. You can repeat these steps to add more load balancer rules for this IP address. - - + Adding a Load Balancer Rule + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, choose Network. + Click the name of the network where you want to load balance the traffic. + Click View IP Addresses. + Click the IP address for which you want to create the rule, then click the Configuration tab. + In the Load Balancing node of the diagram, click View All. + Fill in the following: + + Name. A name for the load balancer rule. + Public Port. The port receiving incoming traffic to be balanced. + Private Port. The port that the VMs will use to receive the traffic. + Algorithm. Choose the load balancing algorithm you want &PRODUCT; to use. &PRODUCT; supports a variety of well-known algorithms. If you are not familiar with these choices, you will find plenty of information about them on the Internet. + Stickiness. (Optional) Click Configure and choose the algorithm for the stickiness policy. See Sticky Session Policies for Load Balancer Rules. + + Click Add VMs, then select two or more VMs that will divide the load of incoming traffic, and click Apply. + The new load balancer rule appears in the list. You can repeat these steps to add more load balancer rules for this IP address. + +
diff --git a/docs/en-US/add-password-management-to-templates.xml b/docs/en-US/add-password-management-to-templates.xml index 05c40afcf10..581e564f59a 100644 --- a/docs/en-US/add-password-management-to-templates.xml +++ b/docs/en-US/add-password-management-to-templates.xml @@ -23,11 +23,11 @@ -->
- Adding Password Management to Your Templates - &PRODUCT; provides an optional password reset feature that allows users to set a temporary admin or root password as well as reset the existing admin or root password from the &PRODUCT; UI. - To enable the Reset Password feature, you will need to download an additional script to patch your template. When you later upload the template into &PRODUCT;, you can specify whether reset admin/root password feature should be enabled for this template. - The password management feature works always resets the account password on instance boot. The script does an HTTP call to the virtual router to retrieve the account password that should be set. As long as the virtual router is accessible the guest will have access to the account password that should be used. When the user requests a password reset the management server generates and sends a new password to the virtual router for the account. Thus an instance reboot is necessary to effect any password changes. - If the script is unable to contact the virtual router during instance boot it will not set the password but boot will continue normally. + Adding Password Management to Your Templates + &PRODUCT; provides an optional password reset feature that allows users to set a temporary admin or root password as well as reset the existing admin or root password from the &PRODUCT; UI. + To enable the Reset Password feature, you will need to download an additional script to patch your template. When you later upload the template into &PRODUCT;, you can specify whether reset admin/root password feature should be enabled for this template. + The password management feature works always resets the account password on instance boot. The script does an HTTP call to the virtual router to retrieve the account password that should be set. As long as the virtual router is accessible the guest will have access to the account password that should be used. When the user requests a password reset the management server generates and sends a new password to the virtual router for the account. Thus an instance reboot is necessary to effect any password changes. + If the script is unable to contact the virtual router during instance boot it will not set the password but boot will continue normally.
diff --git a/docs/en-US/add-security-group.xml b/docs/en-US/add-security-group.xml index c6ddbf57e82..e4c8b3ce2da 100644 --- a/docs/en-US/add-security-group.xml +++ b/docs/en-US/add-security-group.xml @@ -23,17 +23,17 @@ -->
- Adding a Security Group - A user or administrator can change the network offering that is associated with an existing guest network. - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, choose Network - In Select view, choose Security Groups. - Click Add Security Group. - Provide a name and description. - Click OK. - The new security group appears in the Security Groups Details tab. - To make the security group useful, continue to Adding Ingress and Egress Rules to a Security Group. - + Adding a Security Group + A user or administrator can change the network offering that is associated with an existing guest network. + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, choose Network + In Select view, choose Security Groups. + Click Add Security Group. + Provide a name and description. + Click OK. + The new security group appears in the Security Groups Details tab. + To make the security group useful, continue to Adding Ingress and Egress Rules to a Security Group. +
diff --git a/docs/en-US/added-API-commands.xml b/docs/en-US/added-API-commands.xml index bcd72fb052b..b63895e7973 100644 --- a/docs/en-US/added-API-commands.xml +++ b/docs/en-US/added-API-commands.xml @@ -23,145 +23,145 @@ under the License. --> -
- Added API commands - Added in 3.0.3: - - enableCiscoNexusVSM (Enables Nexus 1000v dvSwitch in &PRODUCT;.) - disableCiscoNexusVSM (Disables Nexus 1000v dvSwitch in &PRODUCT;.) - deleteCiscoNexusVSM (Deletes Nexus 1000v dvSwitch in &PRODUCT;.) - listCiscoNexusVSMs (Lists the control VLAN ID, packet VLAN ID, and data VLAN ID, as well as the IP address of the Nexus 1000v dvSwitch.) - - Added in 3.0.2: - - changeServiceForSystemVm - Changes the service offering for a system VM (console proxy or secondary storage). The system VM must be in a "Stopped" state for this command to take effect. - - - Added in 3.0.1: - - changeServiceForSystemVm - Changes the service offering for a system VM (console proxy or secondary storage). The system VM must be in a "Stopped" state for this command to take effect. - - - Added in 3.0.0: - - - - - - - - assignVirtualMachine (Move a user VM to another user under same domain.) - restoreVirtualMachine (Restore a VM to original template or specific snapshot) - createLBStickinessPolicy (Creates a Load Balancer stickiness policy ) - - - deleteLBStickinessPolicy (Deletes a LB stickiness policy.) - listLBStickinessPolicies (Lists LBStickiness policies.) - ldapConfig (Configure the LDAP context for this site.) - - - addSwift (Adds Swift.) - listSwifts (List Swift.) - migrateVolume (Migrate volume) - - - updateStoragePool (Updates a storage pool.) - authorizeSecurityGroupEgress (Authorizes a particular egress rule for this security group) - revokeSecurityGroupEgress (Deletes a particular egress rule from this security group) - - - createNetworkOffering (Creates a network offering.) - deleteNetworkOffering (Deletes a network offering.) - createProject (Creates a project) - - - deleteProject (Deletes a project) - updateProject (Updates a project) - activateProject (Activates a project) - - - suspendProject (Suspends a project) - listProjects (Lists projects and provides detailed information for listed projects) - addAccountToProject (Adds acoount to a project) - - - deleteAccountFromProject (Deletes account from the project) - listProjectAccounts (Lists project's accounts) - listProjectInvitations (Lists an account's invitations to join projects) - - - updateProjectInvitation (Accepts or declines project invitation) - deleteProjectInvitation (Deletes a project invitation) - updateHypervisorCapabilities (Updates a hypervisor capabilities.) - - - listHypervisorCapabilities (Lists all hypervisor capabilities.) - createPhysicalNetwork (Creates a physical network) - deletePhysicalNetwork (Deletes a Physical Network.) - - - listPhysicalNetworks (Lists physical networks) - updatePhysicalNetwork (Updates a physical network) - listSupportedNetworkServices (Lists all network services provided by &PRODUCT; or for the given Provider.) - - - addNetworkServiceProvider (Adds a network serviceProvider to a physical network) - deleteNetworkServiceProvider (Deletes a Network Service Provider.) - listNetworkServiceProviders (Lists network serviceproviders for a given physical network.) - - - updateNetworkServiceProvider (Updates a network serviceProvider of a physical network) - addTrafficType (Adds traffic type to a physical network) - deleteTrafficType (Deletes traffic type of a physical network) - - - listTrafficTypes (Lists traffic types of a given physical network.) - updateTrafficType (Updates traffic type of a physical network) - listTrafficTypeImplementors (Lists implementors of implementor of a network traffic type or implementors of all network traffic types) - - - createStorageNetworkIpRange (Creates a Storage network IP range.) - deleteStorageNetworkIpRange (Deletes a storage network IP Range.) - listStorageNetworkIpRange (List a storage network IP range.) - - - updateStorageNetworkIpRange (Update a Storage network IP range, only allowed when no IPs in this range have been allocated.) - listUsageTypes (List Usage Types) - addF5LoadBalancer (Adds a F5 BigIP load balancer device) - - - configureF5LoadBalancer (configures a F5 load balancer device) - deleteF5LoadBalancer ( delete a F5 load balancer device) - listF5LoadBalancers (lists F5 load balancer devices) - - - listF5LoadBalancerNetworks (lists network that are using a F5 load balancer device) - addSrxFirewall (Adds a SRX firewall device) - deleteSrxFirewall ( delete a SRX firewall device) - - - listSrxFirewalls (lists SRX firewall devices in a physical network) - listSrxFirewallNetworks (lists network that are using SRX firewall device) - addNetscalerLoadBalancer (Adds a netscaler load balancer device) - - - deleteNetscalerLoadBalancer ( delete a netscaler load balancer device) - configureNetscalerLoadBalancer (configures a netscaler load balancer device) - listNetscalerLoadBalancers (lists netscaler load balancer devices) - - - listNetscalerLoadBalancerNetworks (lists network that are using a netscaler load balancer device) - createVirtualRouterElement (Create a virtual router element.) - configureVirtualRouterElement (Configures a virtual router element.) - - - listVirtualRouterElements (Lists all available virtual router elements.) - - - - - - -
+
+ Added API commands + Added in 3.0.3: + + enableCiscoNexusVSM (Enables Nexus 1000v dvSwitch in &PRODUCT;.) + disableCiscoNexusVSM (Disables Nexus 1000v dvSwitch in &PRODUCT;.) + deleteCiscoNexusVSM (Deletes Nexus 1000v dvSwitch in &PRODUCT;.) + listCiscoNexusVSMs (Lists the control VLAN ID, packet VLAN ID, and data VLAN ID, as well as the IP address of the Nexus 1000v dvSwitch.) + + Added in 3.0.2: + + changeServiceForSystemVm + Changes the service offering for a system VM (console proxy or secondary storage). The system VM must be in a "Stopped" state for this command to take effect. + + + Added in 3.0.1: + + changeServiceForSystemVm + Changes the service offering for a system VM (console proxy or secondary storage). The system VM must be in a "Stopped" state for this command to take effect. + + + Added in 3.0.0: + + + + + + + + assignVirtualMachine (Move a user VM to another user under same domain.) + restoreVirtualMachine (Restore a VM to original template or specific snapshot) + createLBStickinessPolicy (Creates a Load Balancer stickiness policy ) + + + deleteLBStickinessPolicy (Deletes a LB stickiness policy.) + listLBStickinessPolicies (Lists LBStickiness policies.) + ldapConfig (Configure the LDAP context for this site.) + + + addSwift (Adds Swift.) + listSwifts (List Swift.) + migrateVolume (Migrate volume) + + + updateStoragePool (Updates a storage pool.) + authorizeSecurityGroupEgress (Authorizes a particular egress rule for this security group) + revokeSecurityGroupEgress (Deletes a particular egress rule from this security group) + + + createNetworkOffering (Creates a network offering.) + deleteNetworkOffering (Deletes a network offering.) + createProject (Creates a project) + + + deleteProject (Deletes a project) + updateProject (Updates a project) + activateProject (Activates a project) + + + suspendProject (Suspends a project) + listProjects (Lists projects and provides detailed information for listed projects) + addAccountToProject (Adds acoount to a project) + + + deleteAccountFromProject (Deletes account from the project) + listProjectAccounts (Lists project's accounts) + listProjectInvitations (Lists an account's invitations to join projects) + + + updateProjectInvitation (Accepts or declines project invitation) + deleteProjectInvitation (Deletes a project invitation) + updateHypervisorCapabilities (Updates a hypervisor capabilities.) + + + listHypervisorCapabilities (Lists all hypervisor capabilities.) + createPhysicalNetwork (Creates a physical network) + deletePhysicalNetwork (Deletes a Physical Network.) + + + listPhysicalNetworks (Lists physical networks) + updatePhysicalNetwork (Updates a physical network) + listSupportedNetworkServices (Lists all network services provided by &PRODUCT; or for the given Provider.) + + + addNetworkServiceProvider (Adds a network serviceProvider to a physical network) + deleteNetworkServiceProvider (Deletes a Network Service Provider.) + listNetworkServiceProviders (Lists network serviceproviders for a given physical network.) + + + updateNetworkServiceProvider (Updates a network serviceProvider of a physical network) + addTrafficType (Adds traffic type to a physical network) + deleteTrafficType (Deletes traffic type of a physical network) + + + listTrafficTypes (Lists traffic types of a given physical network.) + updateTrafficType (Updates traffic type of a physical network) + listTrafficTypeImplementors (Lists implementors of implementor of a network traffic type or implementors of all network traffic types) + + + createStorageNetworkIpRange (Creates a Storage network IP range.) + deleteStorageNetworkIpRange (Deletes a storage network IP Range.) + listStorageNetworkIpRange (List a storage network IP range.) + + + updateStorageNetworkIpRange (Update a Storage network IP range, only allowed when no IPs in this range have been allocated.) + listUsageTypes (List Usage Types) + addF5LoadBalancer (Adds a F5 BigIP load balancer device) + + + configureF5LoadBalancer (configures a F5 load balancer device) + deleteF5LoadBalancer ( delete a F5 load balancer device) + listF5LoadBalancers (lists F5 load balancer devices) + + + listF5LoadBalancerNetworks (lists network that are using a F5 load balancer device) + addSrxFirewall (Adds a SRX firewall device) + deleteSrxFirewall ( delete a SRX firewall device) + + + listSrxFirewalls (lists SRX firewall devices in a physical network) + listSrxFirewallNetworks (lists network that are using SRX firewall device) + addNetscalerLoadBalancer (Adds a netscaler load balancer device) + + + deleteNetscalerLoadBalancer ( delete a netscaler load balancer device) + configureNetscalerLoadBalancer (configures a netscaler load balancer device) + listNetscalerLoadBalancers (lists netscaler load balancer devices) + + + listNetscalerLoadBalancerNetworks (lists network that are using a netscaler load balancer device) + createVirtualRouterElement (Create a virtual router element.) + configureVirtualRouterElement (Configures a virtual router element.) + + + listVirtualRouterElements (Lists all available virtual router elements.) + + + + + + +
diff --git a/docs/en-US/added-cloudPlatform-error-codes.xml b/docs/en-US/added-cloudPlatform-error-codes.xml index b1be04ff0cb..6b1e6a355ca 100644 --- a/docs/en-US/added-cloudPlatform-error-codes.xml +++ b/docs/en-US/added-cloudPlatform-error-codes.xml @@ -23,116 +23,116 @@ -->
- Added &PRODUCT; Error Codes - You can now find the &PRODUCT;-specific error code in the exception response for each type of exception. The following list of error codes is added to the new class named CSExceptionErrorCode. These codes are applicable in &PRODUCT; 3.0.3 and later versions. - - - - - - - - 4250 : "com.cloud.utils.exception.CloudRuntimeException" - 4255 : "com.cloud.utils.exception.ExceptionUtil" - 4260 : "com.cloud.utils.exception.ExecutionException" - - - 4265 : "com.cloud.utils.exception.HypervisorVersionChangedException" - 4270 : "com.cloud.utils.exception.RuntimeCloudException" - 4275 : "com.cloud.exception.CloudException" - - - 4280 : "com.cloud.exception.AccountLimitException" - 4285 : "com.cloud.exception.AgentUnavailableException" - 4290 : "com.cloud.exception.CloudAuthenticationException" - - - 4295 : "com.cloud.exception.CloudExecutionException" - 4300 : "com.cloud.exception.ConcurrentOperationException" - 4305 : "com.cloud.exception.ConflictingNetworkSettingsException" - - - 4310 : "com.cloud.exception.DiscoveredWithErrorException" - 4315 : "com.cloud.exception.HAStateException" - 4320 : "com.cloud.exception.InsufficientAddressCapacityException" - - - 4325 : "com.cloud.exception.InsufficientCapacityException" - 4330 : "com.cloud.exception.InsufficientNetworkCapacityException" - 4335 : "com.cloud.exception.InsufficientServerCapacityException" - - - 4340 : "com.cloud.exception.InsufficientStorageCapacityException" - 4345 : "com.cloud.exception.InternalErrorException" - 4350 : "com.cloud.exception.InvalidParameterValueException" - - - 4355 : "com.cloud.exception.ManagementServerException" - 4360 : "com.cloud.exception.NetworkRuleConflictException" - 4365 : "com.cloud.exception.PermissionDeniedException" - - - 4370 : "com.cloud.exception.ResourceAllocationException" - 4375 : "com.cloud.exception.ResourceInUseException" - 4380 : "com.cloud.exception.ResourceUnavailableException" - - - 4385 : "com.cloud.exception.StorageUnavailableException" - 4390 : "com.cloud.exception.UnsupportedServiceException" - 4395 : "com.cloud.exception.VirtualMachineMigrationException" - - - 4400 : "com.cloud.exception.AccountLimitException" - 4405 : "com.cloud.exception.AgentUnavailableException" - 4410 : "com.cloud.exception.CloudAuthenticationException" - - - 4415 : "com.cloud.exception.CloudException" - 4420 : "com.cloud.exception.CloudExecutionException" - 4425 : "com.cloud.exception.ConcurrentOperationException" - - - 4430 : "com.cloud.exception.ConflictingNetworkSettingsException" - 4435 : "com.cloud.exception.ConnectionException" - 4440 : "com.cloud.exception.DiscoveredWithErrorException" - - - 4445 : "com.cloud.exception.DiscoveryException" - 4450 : "com.cloud.exception.HAStateException" - 4455 : "com.cloud.exception.InsufficientAddressCapacityException" - - - 4460 : "com.cloud.exception.InsufficientCapacityException" - 4465 : "com.cloud.exception.InsufficientNetworkCapacityException" - 4470 : "com.cloud.exception.InsufficientServerCapacityException" - - - 4475 : "com.cloud.exception.InsufficientStorageCapacityException" - 4480 : "com.cloud.exception.InsufficientVirtualNetworkCapcityException" - 4485 : "com.cloud.exception.InternalErrorException" - - - 4490 : "com.cloud.exception.InvalidParameterValueException" - 4495 : "com.cloud.exception.ManagementServerException" - 4500 : "com.cloud.exception.NetworkRuleConflictException" - - - 4505 : "com.cloud.exception.PermissionDeniedException" - 4510 : "com.cloud.exception.ResourceAllocationException" - 4515 : "com.cloud.exception.ResourceInUseException" - - - 4520 : "com.cloud.exception.ResourceUnavailableException" - 4525 : "com.cloud.exception.StorageUnavailableException" - 4530 : "com.cloud.exception.UnsupportedServiceException" - - - 4535 : "com.cloud.exception.VirtualMachineMigrationException" - 9999 : "com.cloud.api.ServerApiException" - - - - - -
+ Added &PRODUCT; Error Codes + You can now find the &PRODUCT;-specific error code in the exception response for each type of exception. The following list of error codes is added to the new class named CSExceptionErrorCode. These codes are applicable in &PRODUCT; 3.0.3 and later versions. + + + + + + + + 4250 : "com.cloud.utils.exception.CloudRuntimeException" + 4255 : "com.cloud.utils.exception.ExceptionUtil" + 4260 : "com.cloud.utils.exception.ExecutionException" + + + 4265 : "com.cloud.utils.exception.HypervisorVersionChangedException" + 4270 : "com.cloud.utils.exception.RuntimeCloudException" + 4275 : "com.cloud.exception.CloudException" + + + 4280 : "com.cloud.exception.AccountLimitException" + 4285 : "com.cloud.exception.AgentUnavailableException" + 4290 : "com.cloud.exception.CloudAuthenticationException" + + + 4295 : "com.cloud.exception.CloudExecutionException" + 4300 : "com.cloud.exception.ConcurrentOperationException" + 4305 : "com.cloud.exception.ConflictingNetworkSettingsException" + + + 4310 : "com.cloud.exception.DiscoveredWithErrorException" + 4315 : "com.cloud.exception.HAStateException" + 4320 : "com.cloud.exception.InsufficientAddressCapacityException" + + + 4325 : "com.cloud.exception.InsufficientCapacityException" + 4330 : "com.cloud.exception.InsufficientNetworkCapacityException" + 4335 : "com.cloud.exception.InsufficientServerCapacityException" + + + 4340 : "com.cloud.exception.InsufficientStorageCapacityException" + 4345 : "com.cloud.exception.InternalErrorException" + 4350 : "com.cloud.exception.InvalidParameterValueException" + + + 4355 : "com.cloud.exception.ManagementServerException" + 4360 : "com.cloud.exception.NetworkRuleConflictException" + 4365 : "com.cloud.exception.PermissionDeniedException" + + + 4370 : "com.cloud.exception.ResourceAllocationException" + 4375 : "com.cloud.exception.ResourceInUseException" + 4380 : "com.cloud.exception.ResourceUnavailableException" + + + 4385 : "com.cloud.exception.StorageUnavailableException" + 4390 : "com.cloud.exception.UnsupportedServiceException" + 4395 : "com.cloud.exception.VirtualMachineMigrationException" + + + 4400 : "com.cloud.exception.AccountLimitException" + 4405 : "com.cloud.exception.AgentUnavailableException" + 4410 : "com.cloud.exception.CloudAuthenticationException" + + + 4415 : "com.cloud.exception.CloudException" + 4420 : "com.cloud.exception.CloudExecutionException" + 4425 : "com.cloud.exception.ConcurrentOperationException" + + + 4430 : "com.cloud.exception.ConflictingNetworkSettingsException" + 4435 : "com.cloud.exception.ConnectionException" + 4440 : "com.cloud.exception.DiscoveredWithErrorException" + + + 4445 : "com.cloud.exception.DiscoveryException" + 4450 : "com.cloud.exception.HAStateException" + 4455 : "com.cloud.exception.InsufficientAddressCapacityException" + + + 4460 : "com.cloud.exception.InsufficientCapacityException" + 4465 : "com.cloud.exception.InsufficientNetworkCapacityException" + 4470 : "com.cloud.exception.InsufficientServerCapacityException" + + + 4475 : "com.cloud.exception.InsufficientStorageCapacityException" + 4480 : "com.cloud.exception.InsufficientVirtualNetworkCapcityException" + 4485 : "com.cloud.exception.InternalErrorException" + + + 4490 : "com.cloud.exception.InvalidParameterValueException" + 4495 : "com.cloud.exception.ManagementServerException" + 4500 : "com.cloud.exception.NetworkRuleConflictException" + + + 4505 : "com.cloud.exception.PermissionDeniedException" + 4510 : "com.cloud.exception.ResourceAllocationException" + 4515 : "com.cloud.exception.ResourceInUseException" + + + 4520 : "com.cloud.exception.ResourceUnavailableException" + 4525 : "com.cloud.exception.StorageUnavailableException" + 4530 : "com.cloud.exception.UnsupportedServiceException" + + + 4535 : "com.cloud.exception.VirtualMachineMigrationException" + 9999 : "com.cloud.api.ServerApiException" + + + + + +
diff --git a/docs/en-US/adding-IP-addresses-for-the-public-network.xml b/docs/en-US/adding-IP-addresses-for-the-public-network.xml index 2bc7494db68..abf4d0233cc 100644 --- a/docs/en-US/adding-IP-addresses-for-the-public-network.xml +++ b/docs/en-US/adding-IP-addresses-for-the-public-network.xml @@ -23,23 +23,23 @@ -->
- Adding IP Addresses for the Public Network - These instructions assume you have already logged in to the &PRODUCT; UI. - - In the left navigation, choose Infrastructure. In Zones, click View More, then click the desired zone . - Click the Network tab. - In the Public node of the diagram, click Configure. - Click the IP Ranges tab. - Provide the following information: - - Gateway. The gateway in use for these IP addresses - Netmask. The netmask associated with this IP range - VLAN. The VLAN that will be used for public traffic - Start IP/End IP. A range of IP addresses that are assumed to be accessible from the Internet and will be allocated for access to guest networks. - - - Click Add. - - - -
+ Adding IP Addresses for the Public Network + These instructions assume you have already logged in to the &PRODUCT; UI. + + In the left navigation, choose Infrastructure. In Zones, click View More, then click the desired zone . + Click the Network tab. + In the Public node of the diagram, click Configure. + Click the IP Ranges tab. + Provide the following information: + + Gateway. The gateway in use for these IP addresses + Netmask. The netmask associated with this IP range + VLAN. The VLAN that will be used for public traffic + Start IP/End IP. A range of IP addresses that are assumed to be accessible from the Internet and will be allocated for access to guest networks. + + + Click Add. + + + +
diff --git a/docs/en-US/admin-guide.xml b/docs/en-US/admin-guide.xml index c10455d4213..512f7a9846a 100644 --- a/docs/en-US/admin-guide.xml +++ b/docs/en-US/admin-guide.xml @@ -23,7 +23,7 @@ --> - Administrator Guide + Administrator Guide diff --git a/docs/en-US/advanced-zone-configuration.xml b/docs/en-US/advanced-zone-configuration.xml index 6803888b881..d73bcf815a8 100644 --- a/docs/en-US/advanced-zone-configuration.xml +++ b/docs/en-US/advanced-zone-configuration.xml @@ -23,6 +23,6 @@ -->
- Advanced Zone Configuration + Advanced Zone Configuration TODO
diff --git a/docs/en-US/advanced-zone-guest-ip-addresses.xml b/docs/en-US/advanced-zone-guest-ip-addresses.xml index 4b15183c430..b5d10a02d05 100644 --- a/docs/en-US/advanced-zone-guest-ip-addresses.xml +++ b/docs/en-US/advanced-zone-guest-ip-addresses.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Advanced Zone Guest IP Addresses When advanced networking is used, the administrator can create additional networks for use by the guests. These networks can span the zone and be available to all accounts, or they can be scoped to a single account, in which case only the named account may create guests that attach to these networks. The networks are defined by a VLAN ID, IP range, and gateway. The administrator may provision thousands of these networks if desired. -
\ No newline at end of file +
diff --git a/docs/en-US/advanced-zone-network-traffic-types.xml b/docs/en-US/advanced-zone-network-traffic-types.xml index adf2d9fb621..9f475cf3f80 100644 --- a/docs/en-US/advanced-zone-network-traffic-types.xml +++ b/docs/en-US/advanced-zone-network-traffic-types.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
- Advanced Zone Network Traffic Types + Advanced Zone Network Traffic Types When advanced networking is used, there can be multiple physical networks in the zone. Each physical network can carry one or more traffic types, and you need to let &PRODUCT; know which type of network traffic you want each network to carry. The traffic types in an advanced zone are: Guest. When end users run VMs, they generate guest traffic. The guest VMs communicate with each other over a network that can be referred to as the guest network. This network can be isolated or shared. In an isolated guest network, the administrator needs to reserve VLAN ranges to provide isolation for each &PRODUCT; account’s network (potentially a large number of VLANs). In a shared guest network, all guest VMs share a single network. @@ -13,4 +32,4 @@ Storage. Traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network. These traffic types can each be on a separate physical network, or they can be combined with certain restrictions. When you use the Add Zone wizard in the UI to create a new zone, you are guided into making only valid choices. -
\ No newline at end of file +
diff --git a/docs/en-US/advanced-zone-physical-network-configuration.xml b/docs/en-US/advanced-zone-physical-network-configuration.xml index 8e1e4456843..4c44c7d4a42 100644 --- a/docs/en-US/advanced-zone-physical-network-configuration.xml +++ b/docs/en-US/advanced-zone-physical-network-configuration.xml @@ -23,6 +23,6 @@ -->
- Advanced Zone Physical Network Configuration - Within a zone that uses advanced networking, you need to tell the Management Server how the physical network is set up to carry different kinds of traffic in isolation. -
+ Advanced Zone Physical Network Configuration + Within a zone that uses advanced networking, you need to tell the Management Server how the physical network is set up to carry different kinds of traffic in isolation. +
diff --git a/docs/en-US/advanced-zone-public-ip-addresses.xml b/docs/en-US/advanced-zone-public-ip-addresses.xml index 2a38696af08..eeb94045e08 100644 --- a/docs/en-US/advanced-zone-public-ip-addresses.xml +++ b/docs/en-US/advanced-zone-public-ip-addresses.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Advanced Zone Public IP Addresses When advanced networking is used, the administrator can create additional networks for use by the guests. These networks can span the zone and be available to all accounts, or they can be scoped to a single account, in which case only the named account may create guests that attach to these networks. The networks are defined by a VLAN ID, IP range, and gateway. The administrator may provision thousands of these networks if desired. -
\ No newline at end of file +
diff --git a/docs/en-US/alerts.xml b/docs/en-US/alerts.xml index 65f957b5ab5..f9030238d43 100644 --- a/docs/en-US/alerts.xml +++ b/docs/en-US/alerts.xml @@ -16,34 +16,34 @@ under the License. --> -
- Alerts - The following is the list of alert type numbers. The current alerts can be found by calling listAlerts. - MEMORY = 0 - CPU = 1 - STORAGE =2 - STORAGE_ALLOCATED = 3 - PUBLIC_IP = 4 - PRIVATE_IP = 5 - HOST = 6 - USERVM = 7 - DOMAIN_ROUTER = 8 - CONSOLE_PROXY = 9 - ROUTING = 10// lost connection to default route (to the gateway) - STORAGE_MISC = 11 // lost connection to default route (to the gateway) - USAGE_SERVER = 12 // lost connection to default route (to the gateway) - MANAGMENT_NODE = 13 // lost connection to default route (to the gateway) - DOMAIN_ROUTER_MIGRATE = 14 - CONSOLE_PROXY_MIGRATE = 15 - USERVM_MIGRATE = 16 - VLAN = 17 - SSVM = 18 - USAGE_SERVER_RESULT = 19 - STORAGE_DELETE = 20; - UPDATE_RESOURCE_COUNT = 21; //Generated when we fail to update the resource count - USAGE_SANITY_RESULT = 22; - DIRECT_ATTACHED_PUBLIC_IP = 23; - LOCAL_STORAGE = 24; - RESOURCE_LIMIT_EXCEEDED = 25; //Generated when the resource limit exceeds the limit. Currently used for recurring snapshots only -
+
+ Alerts + The following is the list of alert type numbers. The current alerts can be found by calling listAlerts. + MEMORY = 0 + CPU = 1 + STORAGE =2 + STORAGE_ALLOCATED = 3 + PUBLIC_IP = 4 + PRIVATE_IP = 5 + HOST = 6 + USERVM = 7 + DOMAIN_ROUTER = 8 + CONSOLE_PROXY = 9 + ROUTING = 10// lost connection to default route (to the gateway) + STORAGE_MISC = 11 // lost connection to default route (to the gateway) + USAGE_SERVER = 12 // lost connection to default route (to the gateway) + MANAGMENT_NODE = 13 // lost connection to default route (to the gateway) + DOMAIN_ROUTER_MIGRATE = 14 + CONSOLE_PROXY_MIGRATE = 15 + USERVM_MIGRATE = 16 + VLAN = 17 + SSVM = 18 + USAGE_SERVER_RESULT = 19 + STORAGE_DELETE = 20; + UPDATE_RESOURCE_COUNT = 21; //Generated when we fail to update the resource count + USAGE_SANITY_RESULT = 22; + DIRECT_ATTACHED_PUBLIC_IP = 23; + LOCAL_STORAGE = 24; + RESOURCE_LIMIT_EXCEEDED = 25; //Generated when the resource limit exceeds the limit. Currently used for recurring snapshots only +
diff --git a/docs/en-US/api-reference.xml b/docs/en-US/api-reference.xml index 74dcbb849cb..cab3adadfab 100644 --- a/docs/en-US/api-reference.xml +++ b/docs/en-US/api-reference.xml @@ -16,11 +16,11 @@ under the License. --> -
- API Reference Documentation - 2.2 API Reference: - http://download.cloud.com/support/downloads.html/ - 3.0 API Reference: - http://download.cloud.com/releases/3.0.0/api_3.0.0/TOC_Root_Admin.html/ -
+
+ API Reference Documentation + 2.2 API Reference: + http://download.cloud.com/support/downloads.html/ + 3.0 API Reference: + http://download.cloud.com/releases/3.0.0/api_3.0.0/TOC_Root_Admin.html/ +
diff --git a/docs/en-US/appendix-a-time-zones.xml b/docs/en-US/appendix-a-time-zones.xml index 83648ca3c05..595e7b5cbf5 100644 --- a/docs/en-US/appendix-a-time-zones.xml +++ b/docs/en-US/appendix-a-time-zones.xml @@ -23,121 +23,121 @@ -->
- Appendix A—Time Zones - The following time zone identifiers are accepted by &PRODUCT;. There are several places that have a time zone as a required or optional parameter. These include scheduling recurring snapshots, creating a user, and specifying the usage time zone in the Configuration table. - - - - - Etc/GMT+12 - America/La_Paz - Asia/Jerusalem - - - - Etc/GMT+11 - America/Santiago - Europe/Minsk - - - - Pacific/Samoa - America/St_Johns - Europe/Moscow - - - Pacific/Honolulu - America/Araguaina - Africa/Nairobi - - - US/Alaska - America/Los_Angeles - Mexico/BajaNorte - - - US/Arizona - US/Mountain - America/Chihuahua - - - - America/Chicago - America/Costa_Rica - America/Mexico_City - - - - Canada/Saskatchewan - America/Bogota - America/New_York - - - America/Caracas - America/Asuncion - America/Cuiaba - - - America/Halifax - America/Argentina/Buenos_Aires - America/Cayenne - - - America/Godthab - America/Montevideo - Etc/GMT+2 - - - - Atlantic/Azores - Atlantic/Cape_Verde - Africa/Casablanca - - - - Etc/UTC - Atlantic/Reykjavik - Europe/London - - - CET - Europe/Bucharest - Africa/Johannesburg - - - Asia/Beirut - Africa/Cairo - Asia/Karachi - - - Asia/Kolkata - Asia/Bangkok - Asia/Shanghai - - - Asia/Kuala_Lumpur - Australia/Perth - Asia/Taipei - - - - Asia/Tokyo - Asia/Seoul - Australia/Adelaide - - - - Australia/Darwin - Australia/Brisbane - Australia/Canberra - - - Pacific/Guam - Pacific/Auckland - - - - - - + Appendix A—Time Zones + The following time zone identifiers are accepted by &PRODUCT;. There are several places that have a time zone as a required or optional parameter. These include scheduling recurring snapshots, creating a user, and specifying the usage time zone in the Configuration table. + + + + + Etc/GMT+12 + America/La_Paz + Asia/Jerusalem + + + + Etc/GMT+11 + America/Santiago + Europe/Minsk + + + + Pacific/Samoa + America/St_Johns + Europe/Moscow + + + Pacific/Honolulu + America/Araguaina + Africa/Nairobi + + + US/Alaska + America/Los_Angeles + Mexico/BajaNorte + + + US/Arizona + US/Mountain + America/Chihuahua + + + + America/Chicago + America/Costa_Rica + America/Mexico_City + + + + Canada/Saskatchewan + America/Bogota + America/New_York + + + America/Caracas + America/Asuncion + America/Cuiaba + + + America/Halifax + America/Argentina/Buenos_Aires + America/Cayenne + + + America/Godthab + America/Montevideo + Etc/GMT+2 + + + + Atlantic/Azores + Atlantic/Cape_Verde + Africa/Casablanca + + + + Etc/UTC + Atlantic/Reykjavik + Europe/London + + + CET + Europe/Bucharest + Africa/Johannesburg + + + Asia/Beirut + Africa/Cairo + Asia/Karachi + + + Asia/Kolkata + Asia/Bangkok + Asia/Shanghai + + + Asia/Kuala_Lumpur + Australia/Perth + Asia/Taipei + + + + Asia/Tokyo + Asia/Seoul + Australia/Adelaide + + + + Australia/Darwin + Australia/Brisbane + Australia/Canberra + + + Pacific/Guam + Pacific/Auckland + + + + + +
diff --git a/docs/en-US/asynchronous-commands-example.xml b/docs/en-US/asynchronous-commands-example.xml index be72997143d..330f1255679 100644 --- a/docs/en-US/asynchronous-commands-example.xml +++ b/docs/en-US/asynchronous-commands-example.xml @@ -17,90 +17,90 @@ -->
- Example - - The following shows an example of using an asynchronous command. Assume the API command: - command=deployVirtualMachine&zoneId=1&serviceOfferingId=1&diskOfferingId=1&templateId=1 - - CloudStack will immediately return a job ID and any other additional data. - - <deployvirtualmachineresponse> - <jobid>1</jobid> - <id>100</id> - </deployvirtualmachineresponse> - - Using the job ID, you can periodically poll for the results by using the queryAsyncJobResult command. - command=queryAsyncJobResult&jobId=1 - Three possible results could come from this query. - Job is still pending: - - <queryasyncjobresult> - <jobid>1</jobid> - <jobstatus>0</jobstatus> - <jobprocstatus>1</jobprocstatus> - </queryasyncjobresult> - - Job has succeeded: - - <queryasyncjobresultresponse cloud-stack-version="3.0.1.6"> - <jobid>1</jobid> - <jobstatus>1</jobstatus> - <jobprocstatus>0</jobprocstatus> - <jobresultcode>0</jobresultcode> - <jobresulttype>object</jobresulttype> - <jobresult> - <virtualmachine> - <id>450</id> - <name>i-2-450-VM</name> - <displayname>i-2-450-VM</displayname> - <account>admin</account> - <domainid>1</domainid> - <domain>ROOT</domain> - <created>2011-03-10T18:20:25-0800</created> - <state>Running</state> - <haenable>false</haenable> - <zoneid>1</zoneid> - <zonename>San Jose 1</zonename> - <hostid>2</hostid> - <hostname>905-13.sjc.lab.vmops.com</hostname> - <templateid>1</templateid> - <templatename>CentOS 5.3 64bit LAMP</templatename> - <templatedisplaytext>CentOS 5.3 64bit LAMP</templatedisplaytext> - <passwordenabled>false</passwordenabled> - <serviceofferingid>1</serviceofferingid> - <serviceofferingname>Small Instance</serviceofferingname> - <cpunumber>1</cpunumber> - <cpuspeed>500</cpuspeed> - <memory>512</memory> - <guestosid>12</guestosid> - <rootdeviceid>0</rootdeviceid> - <rootdevicetype>NetworkFilesystem</rootdevicetype> - <nic> - <id>561</id> - <networkid>205</networkid> - <netmask>255.255.255.0</netmask> - <gateway>10.1.1.1</gateway> - <ipaddress>10.1.1.225</ipaddress> - <isolationuri>vlan://295</isolationuri> - <broadcasturi>vlan://295</broadcasturi> - <traffictype>Guest</traffictype> - <type>Virtual</type> - <isdefault>true</isdefault> - </nic> - <hypervisor>XenServer</hypervisor> - </virtualmachine> - </jobresult> - </queryasyncjobresultresponse> - - Job has failed: - - <queryasyncjobresult> - <jobid>1</jobid> - <jobstatus>2</jobstatus> - <jobprocstatus>0</jobprocstatus> - <jobresultcode>551</jobresultcode> - <jobresulttype>text</jobresulttype> - <jobresult>Unable to deploy virtual machine id = 100 due to not enough capacity</jobresult> - </queryasyncjobresult> - -
+ Example + + The following shows an example of using an asynchronous command. Assume the API command: + command=deployVirtualMachine&zoneId=1&serviceOfferingId=1&diskOfferingId=1&templateId=1 + + CloudStack will immediately return a job ID and any other additional data. + + <deployvirtualmachineresponse> + <jobid>1</jobid> + <id>100</id> + </deployvirtualmachineresponse> + + Using the job ID, you can periodically poll for the results by using the queryAsyncJobResult command. + command=queryAsyncJobResult&jobId=1 + Three possible results could come from this query. + Job is still pending: + + <queryasyncjobresult> + <jobid>1</jobid> + <jobstatus>0</jobstatus> + <jobprocstatus>1</jobprocstatus> + </queryasyncjobresult> + + Job has succeeded: + + <queryasyncjobresultresponse cloud-stack-version="3.0.1.6"> + <jobid>1</jobid> + <jobstatus>1</jobstatus> + <jobprocstatus>0</jobprocstatus> + <jobresultcode>0</jobresultcode> + <jobresulttype>object</jobresulttype> + <jobresult> + <virtualmachine> + <id>450</id> + <name>i-2-450-VM</name> + <displayname>i-2-450-VM</displayname> + <account>admin</account> + <domainid>1</domainid> + <domain>ROOT</domain> + <created>2011-03-10T18:20:25-0800</created> + <state>Running</state> + <haenable>false</haenable> + <zoneid>1</zoneid> + <zonename>San Jose 1</zonename> + <hostid>2</hostid> + <hostname>905-13.sjc.lab.vmops.com</hostname> + <templateid>1</templateid> + <templatename>CentOS 5.3 64bit LAMP</templatename> + <templatedisplaytext>CentOS 5.3 64bit LAMP</templatedisplaytext> + <passwordenabled>false</passwordenabled> + <serviceofferingid>1</serviceofferingid> + <serviceofferingname>Small Instance</serviceofferingname> + <cpunumber>1</cpunumber> + <cpuspeed>500</cpuspeed> + <memory>512</memory> + <guestosid>12</guestosid> + <rootdeviceid>0</rootdeviceid> + <rootdevicetype>NetworkFilesystem</rootdevicetype> + <nic> + <id>561</id> + <networkid>205</networkid> + <netmask>255.255.255.0</netmask> + <gateway>10.1.1.1</gateway> + <ipaddress>10.1.1.225</ipaddress> + <isolationuri>vlan://295</isolationuri> + <broadcasturi>vlan://295</broadcasturi> + <traffictype>Guest</traffictype> + <type>Virtual</type> + <isdefault>true</isdefault> + </nic> + <hypervisor>XenServer</hypervisor> + </virtualmachine> + </jobresult> + </queryasyncjobresultresponse> + + Job has failed: + + <queryasyncjobresult> + <jobid>1</jobid> + <jobstatus>2</jobstatus> + <jobprocstatus>0</jobprocstatus> + <jobresultcode>551</jobresultcode> + <jobresulttype>text</jobresulttype> + <jobresult>Unable to deploy virtual machine id = 100 due to not enough capacity</jobresult> + </queryasyncjobresult> + + diff --git a/docs/en-US/asynchronous-commands.xml b/docs/en-US/asynchronous-commands.xml index aab1b5c327b..4c9b59cbc43 100644 --- a/docs/en-US/asynchronous-commands.xml +++ b/docs/en-US/asynchronous-commands.xml @@ -23,16 +23,16 @@ -->
- Asynchronous Commands - Asynchronous commands were introduced in &PRODUCT; 2.x. Commands are designated as asynchronous when they can potentially take a long period of time to complete such as creating a snapshot or disk volume. They differ from synchronous commands by the following: - - - They are identified in the API Reference by an (A). - They will immediately return a job ID to refer to the job that will be responsible in processing the command. - If executed as a "create" resource command, it will return the resource ID as well as the job ID. - You can periodically check the status of the job by making a simple API call to the command, queryAsyncJobResult and passing in the job ID. - - - - -
+ Asynchronous Commands + Asynchronous commands were introduced in &PRODUCT; 2.x. Commands are designated as asynchronous when they can potentially take a long period of time to complete such as creating a snapshot or disk volume. They differ from synchronous commands by the following: + + + They are identified in the API Reference by an (A). + They will immediately return a job ID to refer to the job that will be responsible in processing the command. + If executed as a "create" resource command, it will return the resource ID as well as the job ID. + You can periodically check the status of the job by making a simple API call to the command, queryAsyncJobResult and passing in the job ID. + + + + + diff --git a/docs/en-US/attach-iso-to-vm.xml b/docs/en-US/attach-iso-to-vm.xml index b5cc177b76b..30e5d51947d 100644 --- a/docs/en-US/attach-iso-to-vm.xml +++ b/docs/en-US/attach-iso-to-vm.xml @@ -23,17 +23,17 @@ -->
- Attaching an ISO to a VM - - In the left navigation, click Instances. - Choose the virtual machine you want to work with. - Click the Attach ISO button - - - - iso.png: Depicts adding an iso image - - In the Attach ISO dialog box, select the desired ISO. - Click OK - + Attaching an ISO to a VM + + In the left navigation, click Instances. + Choose the virtual machine you want to work with. + Click the Attach ISO button + + + + iso.png: Depicts adding an iso image + + In the Attach ISO dialog box, select the desired ISO. + Click OK +
diff --git a/docs/en-US/attaching-volume.xml b/docs/en-US/attaching-volume.xml index c65337a6479..385609b8f57 100644 --- a/docs/en-US/attaching-volume.xml +++ b/docs/en-US/attaching-volume.xml @@ -23,21 +23,21 @@ -->
- Attaching a Volume - You can attach a volume to a guest VM to provide extra disk storage. Attach a volume when you first create a new volume, when you are moving an existing volume from one VM to another, or after you have migrated a volume from one storage pool to another. - - Log in to the &PRODUCT; UI as a user or admin. - In the left navigation, click Storage. - In Select View, choose Volumes. - 4. Click the volume name in the Volumes list, then click the Attach Disk button - - - - AttachDiskButton.png: button to attach a volume - - - In the Instance popup, choose the VM to which you want to attach the volume. You will only see instances to which you are allowed to attach volumes; for example, a user will see only instances created by that user, but the administrator will have more choices. - If the VM is running in the OVM hypervisor, the VM must be stopped before a new volume can be attached to it. - When the volume has been attached, you should be able to see it by clicking Instances, the instance name, and View Volumes. - -
+ Attaching a Volume + You can attach a volume to a guest VM to provide extra disk storage. Attach a volume when you first create a new volume, when you are moving an existing volume from one VM to another, or after you have migrated a volume from one storage pool to another. + + Log in to the &PRODUCT; UI as a user or admin. + In the left navigation, click Storage. + In Select View, choose Volumes. + 4. Click the volume name in the Volumes list, then click the Attach Disk button + + + + AttachDiskButton.png: button to attach a volume + + + In the Instance popup, choose the VM to which you want to attach the volume. You will only see instances to which you are allowed to attach volumes; for example, a user will see only instances created by that user, but the administrator will have more choices. + If the VM is running in the OVM hypervisor, the VM must be stopped before a new volume can be attached to it. + When the volume has been attached, you should be able to see it by clicking Instances, the instance name, and View Volumes. + + diff --git a/docs/en-US/automatic-snapshot-creation-retention.xml b/docs/en-US/automatic-snapshot-creation-retention.xml index cd013143586..ee4cf73f957 100644 --- a/docs/en-US/automatic-snapshot-creation-retention.xml +++ b/docs/en-US/automatic-snapshot-creation-retention.xml @@ -23,8 +23,8 @@ -->
- Automatic Snapshot Creation and Retention - (Supported for the following hypervisors: XenServer, VMware vSphere, and KVM) - Users can set up a recurring snapshot policy to automatically create multiple snapshots of a disk at regular intervals. Snapshots can be created on an hourly, daily, weekly, or monthly interval. One snapshot policy can be set up per disk volume. For example, a user can set up a daily snapshot at 02:30. - With each snapshot schedule, users can also specify the number of scheduled snapshots to be retained. Older snapshots that exceed the retention limit are automatically deleted. This user-defined limit must be equal to or lower than the global limit set by the &PRODUCT; administrator. See . The limit applies only to those snapshots that are taken as part of an automatic recurring snapshot policy. Additional manual snapshots can be created and retained. -
+ Automatic Snapshot Creation and Retention + (Supported for the following hypervisors: XenServer, VMware vSphere, and KVM) + Users can set up a recurring snapshot policy to automatically create multiple snapshots of a disk at regular intervals. Snapshots can be created on an hourly, daily, weekly, or monthly interval. One snapshot policy can be set up per disk volume. For example, a user can set up a daily snapshot at 02:30. + With each snapshot schedule, users can also specify the number of scheduled snapshots to be retained. Older snapshots that exceed the retention limit are automatically deleted. This user-defined limit must be equal to or lower than the global limit set by the &PRODUCT; administrator. See . The limit applies only to those snapshots that are taken as part of an automatic recurring snapshot policy. Additional manual snapshots can be created and retained. + diff --git a/docs/en-US/basic-zone-configuration.xml b/docs/en-US/basic-zone-configuration.xml index bbfd6ec4bb5..18afa84f794 100644 --- a/docs/en-US/basic-zone-configuration.xml +++ b/docs/en-US/basic-zone-configuration.xml @@ -23,7 +23,7 @@ -->
- Basic Zone Configuration + Basic Zone Configuration After you select Basic in the Add Zone wizard and click Next, you will be asked to enter the following details. Then click Next. diff --git a/docs/en-US/basic-zone-guest-ip-addresses.xml b/docs/en-US/basic-zone-guest-ip-addresses.xml index a29fffb7a50..d1d9135b4c6 100644 --- a/docs/en-US/basic-zone-guest-ip-addresses.xml +++ b/docs/en-US/basic-zone-guest-ip-addresses.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Basic Zone Guest IP Addresses When basic networking is used, CloudPlatform will assign IP addresses in the CIDR of the pod to the guests in that pod. The administrator must add a Direct IP range on the pod for this purpose. These IPs are in the same VLAN as the hosts. -
\ No newline at end of file +
diff --git a/docs/en-US/basic-zone-network-traffic-types.xml b/docs/en-US/basic-zone-network-traffic-types.xml index 530fb0f641a..fa3be0f442b 100644 --- a/docs/en-US/basic-zone-network-traffic-types.xml +++ b/docs/en-US/basic-zone-network-traffic-types.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
- Basic Zone Network Traffic Types + Basic Zone Network Traffic Types When basic networking is used, there can be only one physical network in the zone. That physical network carries the following traffic types: Guest. When end users run VMs, they generate guest traffic. The guest VMs communicate with each other over a network that can be referred to as the guest network. Each pod in a basic zone is a broadcast domain, and therefore each pod has a different IP range for the guest network. The administrator must configure the IP range for each pod. diff --git a/docs/en-US/basic-zone-physical-network-configuration.xml b/docs/en-US/basic-zone-physical-network-configuration.xml index a9b8f55fb80..83833a73e78 100644 --- a/docs/en-US/basic-zone-physical-network-configuration.xml +++ b/docs/en-US/basic-zone-physical-network-configuration.xml @@ -23,7 +23,7 @@ -->
- Basic Zone Physical Network Configuration - In a basic network, configuring the physical network is fairly straightforward. You only need to configure one guest network to carry traffic that is generated by guest VMs. When you first add a zone to CloudPlatform, you set up the guest network through the Add Zone screens. - -
+ Basic Zone Physical Network Configuration + In a basic network, configuring the physical network is fairly straightforward. You only need to configure one guest network to carry traffic that is generated by guest VMs. When you first add a zone to CloudPlatform, you set up the guest network through the Add Zone screens. + +
diff --git a/docs/en-US/best-practices-for-vms.xml b/docs/en-US/best-practices-for-vms.xml index 59e270864e5..a67add4edeb 100644 --- a/docs/en-US/best-practices-for-vms.xml +++ b/docs/en-US/best-practices-for-vms.xml @@ -17,7 +17,7 @@ -->
- VM Lifecycle - The CloudPlatform administrator should monitor the total number of VM instances in each cluster, and disable allocation to the cluster if the total is approaching the maximum that the hypervisor can handle. Be sure to leave a safety margin to allow for the possibility of one or more hosts failing, which would increase the VM load on the other hosts as the VMs are automatically redeployed. Consult the documentation for your chosen hypervisor to find the maximum permitted number of VMs per host, then use CloudPlatform global configuration settings to set this as the default limit. Monitor the VM activity in each cluster at all times. Keep the total number of VMs below a safe level that allows for the occasional host failure. For example, if there are N hosts in the cluster, and you want to allow for one host in the cluster to be down at any given time, the total number of VM instances you can permit in the cluster is at most (N-1) * (per-host-limit). Once a cluster reaches this number of VMs, use the CloudPlatform UI to disable allocation of more VMs to the cluster.. - + VM Lifecycle + The CloudPlatform administrator should monitor the total number of VM instances in each cluster, and disable allocation to the cluster if the total is approaching the maximum that the hypervisor can handle. Be sure to leave a safety margin to allow for the possibility of one or more hosts failing, which would increase the VM load on the other hosts as the VMs are automatically redeployed. Consult the documentation for your chosen hypervisor to find the maximum permitted number of VMs per host, then use CloudPlatform global configuration settings to set this as the default limit. Monitor the VM activity in each cluster at all times. Keep the total number of VMs below a safe level that allows for the occasional host failure. For example, if there are N hosts in the cluster, and you want to allow for one host in the cluster to be down at any given time, the total number of VM instances you can permit in the cluster is at most (N-1) * (per-host-limit). Once a cluster reaches this number of VMs, use the CloudPlatform UI to disable allocation of more VMs to the cluster.. +
diff --git a/docs/en-US/best-practices-primary-storage.xml b/docs/en-US/best-practices-primary-storage.xml index c02501bcdb1..2f639b130cb 100644 --- a/docs/en-US/best-practices-primary-storage.xml +++ b/docs/en-US/best-practices-primary-storage.xml @@ -23,9 +23,9 @@ -->
- Best Practices for Primary Storage - - The speed of primary storage will impact guest performance. If possible, choose smaller, higher RPM drives for primary storage. - Ensure that nothing is stored on the server. Adding the server to CloudPlatform will destroy any existing data - -
+ Best Practices for Primary Storage + + The speed of primary storage will impact guest performance. If possible, choose smaller, higher RPM drives for primary storage. + Ensure that nothing is stored on the server. Adding the server to CloudPlatform will destroy any existing data + + diff --git a/docs/en-US/best-practices-secondary-storage.xml b/docs/en-US/best-practices-secondary-storage.xml index 5c08f9dbd1d..c2da7d8be2d 100644 --- a/docs/en-US/best-practices-secondary-storage.xml +++ b/docs/en-US/best-practices-secondary-storage.xml @@ -23,10 +23,10 @@ -->
- Best Practices for Secondary Storage - - Each Zone can have one or more secondary storage servers. Multiple secondary storage servers provide increased scalability to the system. - Secondary storage has a high read:write ratio and is expected to consist of larger drives with lower IOPS than primary storage. - Ensure that nothing is stored on the server. Adding the server to CloudPlatform will destroy any existing data. - -
+ Best Practices for Secondary Storage + + Each Zone can have one or more secondary storage servers. Multiple secondary storage servers provide increased scalability to the system. + Secondary storage has a high read:write ratio and is expected to consist of larger drives with lower IOPS than primary storage. + Ensure that nothing is stored on the server. Adding the server to CloudPlatform will destroy any existing data. + + diff --git a/docs/en-US/best-practices-templates.xml b/docs/en-US/best-practices-templates.xml index 411ae3a061d..4e2992c021d 100644 --- a/docs/en-US/best-practices-templates.xml +++ b/docs/en-US/best-practices-templates.xml @@ -23,6 +23,6 @@ -->
- Best Practices for Templates - If you plan to use large templates (100 GB or larger), be sure you have a 10-gigabit network to support the large templates. A slower network can lead to timeouts and other errors when large templates are used. + Best Practices for Templates + If you plan to use large templates (100 GB or larger), be sure you have a 10-gigabit network to support the large templates. A slower network can lead to timeouts and other errors when large templates are used.
diff --git a/docs/en-US/change-network-offering-on-guest-network.xml b/docs/en-US/change-network-offering-on-guest-network.xml index 7a9482c760b..98f1b63f484 100644 --- a/docs/en-US/change-network-offering-on-guest-network.xml +++ b/docs/en-US/change-network-offering-on-guest-network.xml @@ -23,22 +23,22 @@ -->
- Changing the Network Offering on a Guest Network - A user or administrator can change the network offering that is associated with an existing guest network. - - Log in to the &PRODUCT; UI as an administrator or end user. - If you are changing from a network offering that uses the &PRODUCT; virtual router to one that uses external devices as network service providers, you must first stop all the VMs on the network. See Stopping and Starting VMs. Then return here and continue to the next step - In the left navigation, choose Network - Click the name of the network you want to modify - - - - AttachDiskButton.png: button to attach a volume - . - In Network Offering, choose the new network offering, then click Apply. - A prompt appears asking whether you want to keep the existing CIDR. This is to let you know that if you change the network offering, the CIDR will be affected. Choose No to proceed with the change. - Wait for the update to complete. Don’t try to restart VMs until after the network change is complete. - If you stopped any VMs in step 2, restart them. - + Changing the Network Offering on a Guest Network + A user or administrator can change the network offering that is associated with an existing guest network. + + Log in to the &PRODUCT; UI as an administrator or end user. + If you are changing from a network offering that uses the &PRODUCT; virtual router to one that uses external devices as network service providers, you must first stop all the VMs on the network. See Stopping and Starting VMs. Then return here and continue to the next step + In the left navigation, choose Network + Click the name of the network you want to modify + + + + AttachDiskButton.png: button to attach a volume + . + In Network Offering, choose the new network offering, then click Apply. + A prompt appears asking whether you want to keep the existing CIDR. This is to let you know that if you change the network offering, the CIDR will be affected. Choose No to proceed with the change. + Wait for the update to complete. Don’t try to restart VMs until after the network change is complete. + If you stopped any VMs in step 2, restart them. + -
+ diff --git a/docs/en-US/change-to-behavior-of-list-commands.xml b/docs/en-US/change-to-behavior-of-list-commands.xml index aa5f96595b9..4e53590a773 100644 --- a/docs/en-US/change-to-behavior-of-list-commands.xml +++ b/docs/en-US/change-to-behavior-of-list-commands.xml @@ -23,67 +23,67 @@ -->
- Change to Behavior of List Commands - There was a major change in how our List* API commands work in CloudStack 3.0 compared to 2.2.x. The rules below apply only for managed resources – those that belong to an account, domain, or project. They are irrelevant for the List* commands displaying unmanaged (system) resources, such as hosts, clusters, and external network resources. - When no parameters are passed in to the call, the caller sees only resources owned by the caller (even when the caller is the administrator). Previously, the administrator saw everyone else's resources by default. - When accountName and domainId are passed in: - - The caller sees the resources dedicated to the account specified. - If the call is executed by a regular user, the user is authorized to specify only the user's own account and domainId. - If the caller is a domain administrator, CloudStack performs an authorization check to see whether the caller is permitted to view resources for the given account and domainId. - - When projectId is passed in, only resources belonging to that project are listed. - When domainId is passed in, the call returns only resources belonging to the domain specified. To see the resources of subdomains, use the parameter isRecursive=true. Again, the regular user can see only resources owned by that user, the root administrator can list anything, and a domain administrator is authorized to see only resources of the administrator's own domain and subdomains. - To see all resources the caller is authorized to see, except for Project resources, use the parameter listAll=true. - To see all Project resources the caller is authorized to see, use the parameter projectId=-1. - There is one API command that doesn't fall under the rules above completely: the listTemplates command. This command has its own flags defining the list rules: - - - - - - - listTemplates Flag - Description - - - - - featured - Returns templates that have been marked as featured and public. - + Change to Behavior of List Commands + There was a major change in how our List* API commands work in CloudStack 3.0 compared to 2.2.x. The rules below apply only for managed resources – those that belong to an account, domain, or project. They are irrelevant for the List* commands displaying unmanaged (system) resources, such as hosts, clusters, and external network resources. + When no parameters are passed in to the call, the caller sees only resources owned by the caller (even when the caller is the administrator). Previously, the administrator saw everyone else's resources by default. + When accountName and domainId are passed in: + + The caller sees the resources dedicated to the account specified. + If the call is executed by a regular user, the user is authorized to specify only the user's own account and domainId. + If the caller is a domain administrator, CloudStack performs an authorization check to see whether the caller is permitted to view resources for the given account and domainId. + + When projectId is passed in, only resources belonging to that project are listed. + When domainId is passed in, the call returns only resources belonging to the domain specified. To see the resources of subdomains, use the parameter isRecursive=true. Again, the regular user can see only resources owned by that user, the root administrator can list anything, and a domain administrator is authorized to see only resources of the administrator's own domain and subdomains. + To see all resources the caller is authorized to see, except for Project resources, use the parameter listAll=true. + To see all Project resources the caller is authorized to see, use the parameter projectId=-1. + There is one API command that doesn't fall under the rules above completely: the listTemplates command. This command has its own flags defining the list rules: + + + + + + + listTemplates Flag + Description + + + + + featured + Returns templates that have been marked as featured and public. + - - self - Returns templates that have been registered or created by the calling user. - + + self + Returns templates that have been registered or created by the calling user. + - - selfexecutable - Same as self, but only returns templates that are ready to be deployed with. - + + selfexecutable + Same as self, but only returns templates that are ready to be deployed with. + - - sharedexecutable - Ready templates that have been granted to the calling user by another user. - + + sharedexecutable + Ready templates that have been granted to the calling user by another user. + - - executable - Templates that are owned by the calling user, or public templates, that can be used to deploy a new VM. - + + executable + Templates that are owned by the calling user, or public templates, that can be used to deploy a new VM. + - - community - Returns templates that have been marked as public but not featured. - + + community + Returns templates that have been marked as public but not featured. + - - all - Returns all templates (only usable by admins). - - - - - The &PRODUCT; UI on a general view will display all resources that the logged-in user is authorized to see, except for project resources. To see the project resources, select the project view. -
+ + all + Returns all templates (only usable by admins). + + + + + The &PRODUCT; UI on a general view will display all resources that the logged-in user is authorized to see, except for project resources. To see the project resources, select the project view. + diff --git a/docs/en-US/changing-root-password.xml b/docs/en-US/changing-root-password.xml index 0b8ad0fc2ef..0d2333a2a67 100644 --- a/docs/en-US/changing-root-password.xml +++ b/docs/en-US/changing-root-password.xml @@ -23,7 +23,7 @@ -->
- Changing the Root Password + Changing the Root Password During installation and ongoing cloud administration, you will need to log in to the UI as the root administrator. The root administrator account manages the &PRODUCT; deployment, including physical infrastructure. The root administrator can modify configuration settings to change basic functionality, create or delete user accounts, and take many actions that should be performed only by an authorized person. diff --git a/docs/en-US/changing-secondary-storage-ip.xml b/docs/en-US/changing-secondary-storage-ip.xml index e39a68effd0..7e146de812f 100644 --- a/docs/en-US/changing-secondary-storage-ip.xml +++ b/docs/en-US/changing-secondary-storage-ip.xml @@ -2,7 +2,7 @@ %BOOK_ENTITIES; -]> +]>
- Making API Requests - You can change the secondary storage IP address after it has been provisioned. After changing the IP address on the host, log in to your management server and execute the following commands. Replace HOSTID below with your own value, and change the URL to use the appropriate IP address and path for your server: - - # mysql -p - mysql> use cloud; - mysql> select id from host where type = 'SecondaryStorage'; - mysql> update host_details set value = 'nfs://192.168.160.20/export/mike-ss1' - where host_id = HOSTID and name = 'orig.url'; - mysql> update host set name = 'nfs://192.168.160.20/export/mike-ss1' where type - = 'SecondaryStorage' and id = #; - mysql> update host set url = 'nfs://192.168.160.20/export/mike-ss1' where type - = 'SecondaryStorage' and id = #; - mysql> update host set guid = 'nfs://192.168.160.20/export/mike-ss1' where type - = 'SecondaryStorage' and id = #; - - When copying and pasting a command, be sure the command has pasted as a single line before executing. Some document viewers may introduce unwanted line breaks in copied text. - Then log in to the cloud console UI and stop and start (not reboot) the Secondary Storage VM for that Zone. - -
+ Making API Requests + You can change the secondary storage IP address after it has been provisioned. After changing the IP address on the host, log in to your management server and execute the following commands. Replace HOSTID below with your own value, and change the URL to use the appropriate IP address and path for your server: + + # mysql -p + mysql> use cloud; + mysql> select id from host where type = 'SecondaryStorage'; + mysql> update host_details set value = 'nfs://192.168.160.20/export/mike-ss1' + where host_id = HOSTID and name = 'orig.url'; + mysql> update host set name = 'nfs://192.168.160.20/export/mike-ss1' where type + = 'SecondaryStorage' and id = #; + mysql> update host set url = 'nfs://192.168.160.20/export/mike-ss1' where type + = 'SecondaryStorage' and id = #; + mysql> update host set guid = 'nfs://192.168.160.20/export/mike-ss1' where type + = 'SecondaryStorage' and id = #; + + When copying and pasting a command, be sure the command has pasted as a single line before executing. Some document viewers may introduce unwanted line breaks in copied text. + Then log in to the cloud console UI and stop and start (not reboot) the Secondary Storage VM for that Zone. + +
diff --git a/docs/en-US/changing-secondary-storage-servers.xml b/docs/en-US/changing-secondary-storage-servers.xml index 2ab8836adda..62ad65015a3 100644 --- a/docs/en-US/changing-secondary-storage-servers.xml +++ b/docs/en-US/changing-secondary-storage-servers.xml @@ -23,14 +23,14 @@ -->
- Changing Secondary Storage Servers - You can change the secondary storage NFS mount. Perform the following steps to do so: - - Stop all running Management Servers. - Wait 30 minutes. This allows any writes to secondary storage to complete. - Copy all files from the old secondary storage mount to the new. - Use the procedure above to change the IP address for secondary storage if required. - Start the Management Server. - -
+ Changing Secondary Storage Servers + You can change the secondary storage NFS mount. Perform the following steps to do so: + + Stop all running Management Servers. + Wait 30 minutes. This allows any writes to secondary storage to complete. + Copy all files from the old secondary storage mount to the new. + Use the procedure above to change the IP address for secondary storage if required. + Start the Management Server. + + diff --git a/docs/en-US/changing-secondary-storage-serversp.xml b/docs/en-US/changing-secondary-storage-serversp.xml index 2ab8836adda..62ad65015a3 100644 --- a/docs/en-US/changing-secondary-storage-serversp.xml +++ b/docs/en-US/changing-secondary-storage-serversp.xml @@ -23,14 +23,14 @@ -->
- Changing Secondary Storage Servers - You can change the secondary storage NFS mount. Perform the following steps to do so: - - Stop all running Management Servers. - Wait 30 minutes. This allows any writes to secondary storage to complete. - Copy all files from the old secondary storage mount to the new. - Use the procedure above to change the IP address for secondary storage if required. - Start the Management Server. - -
+ Changing Secondary Storage Servers + You can change the secondary storage NFS mount. Perform the following steps to do so: + + Stop all running Management Servers. + Wait 30 minutes. This allows any writes to secondary storage to complete. + Copy all files from the old secondary storage mount to the new. + Use the procedure above to change the IP address for secondary storage if required. + Start the Management Server. + + diff --git a/docs/en-US/changing-service-offering-for-vm.xml b/docs/en-US/changing-service-offering-for-vm.xml index 7448b4d47d8..5a42912e130 100644 --- a/docs/en-US/changing-service-offering-for-vm.xml +++ b/docs/en-US/changing-service-offering-for-vm.xml @@ -23,27 +23,27 @@ -->
- Changing the Service Offering for a VM - To upgrade or downgrade the level of compute resources available to a virtual machine, you can change the VM's compute offering. - - Log in to the &PRODUCT; UI as a user or admin. - In the left navigation, click Instances. - Choose the VM that you want to work with. - Click the Stop button to stop the VM - - - - StopButton.png: button to stop a VM - - - Click the Change Service button - - - - ChangeServiceButton.png: button to change the service of a VM - . The Change service dialog box is displayed. - Select the offering you want. - Click OK. - -
+ Changing the Service Offering for a VM + To upgrade or downgrade the level of compute resources available to a virtual machine, you can change the VM's compute offering. + + Log in to the &PRODUCT; UI as a user or admin. + In the left navigation, click Instances. + Choose the VM that you want to work with. + Click the Stop button to stop the VM + + + + StopButton.png: button to stop a VM + + + Click the Change Service button + + + + ChangeServiceButton.png: button to change the service of a VM + . The Change service dialog box is displayed. + Select the offering you want. + Click OK. + + diff --git a/docs/en-US/changing-vm-name-os-group.xml b/docs/en-US/changing-vm-name-os-group.xml index 88b982c2b1f..f16ffdab059 100644 --- a/docs/en-US/changing-vm-name-os-group.xml +++ b/docs/en-US/changing-vm-name-os-group.xml @@ -23,32 +23,32 @@ -->
- Changing the VM Name, OS, or Group - After a VM is created, you can modify the display name, operating system, and the group it belongs to. - To access a VM through the &PRODUCT; UI: - - Log in to the &PRODUCT; UI as a user or admin. - In the left navigation, click Instances. - Select the VM that you want to modify. - Click the Stop button to stop the VM - - - - StopButton.png: button to stop a VM - - - Click Edit - - - - StopButton.png: button to edit the properties of a VM - . - Make the desired changes to the following: - - Display name: Enter a new display name if you want to change the name of the VM. - OS Type: Select the desired operating system. - Group: Enter the group name for the VM. - - Click Apply. - -
+ Changing the VM Name, OS, or Group + After a VM is created, you can modify the display name, operating system, and the group it belongs to. + To access a VM through the &PRODUCT; UI: + + Log in to the &PRODUCT; UI as a user or admin. + In the left navigation, click Instances. + Select the VM that you want to modify. + Click the Stop button to stop the VM + + + + StopButton.png: button to stop a VM + + + Click Edit + + + + StopButton.png: button to edit the properties of a VM + . + Make the desired changes to the following: + + Display name: Enter a new display name if you want to change the name of the VM. + OS Type: Select the desired operating system. + Group: Enter the group name for the VM. + + Click Apply. + + diff --git a/docs/en-US/cloud-infrastructure-concepts.xml b/docs/en-US/cloud-infrastructure-concepts.xml index 1070cb8e283..40ceff8aed2 100644 --- a/docs/en-US/cloud-infrastructure-concepts.xml +++ b/docs/en-US/cloud-infrastructure-concepts.xml @@ -23,7 +23,7 @@ -->
- Cloud Infrastructure Concepts + Cloud Infrastructure Concepts diff --git a/docs/en-US/cloud-infrastructure-overview.xml b/docs/en-US/cloud-infrastructure-overview.xml index b379bd3cb45..5b467a33d4c 100644 --- a/docs/en-US/cloud-infrastructure-overview.xml +++ b/docs/en-US/cloud-infrastructure-overview.xml @@ -23,24 +23,24 @@ -->
- Cloud Infrastructure Overview - - The Management Server manages one or more zones (typically, datacenters) containing host computers where guest virtual machines will run. The cloud infrastructure is organized as follows: - - - Zone: Typically, a zone is equivalent to a single datacenter. A zone consists of one or more pods and secondary storage. - Pod: A pod is usually one rack of hardware that includes a layer-2 switch and one or more clusters. - Cluster: A cluster consists of one or more hosts and primary storage. - Host: A single compute node within a cluster. The hosts are where the actual cloud services run in the form of guest virtual machines. - Primary storage is associated with a cluster, and it stores the disk volumes for all the VMs running on hosts in that cluster. - Secondary storage is associated with a zone, and it stores templates, ISO images, and disk volume snapshots. - - - - - - infrastructure_overview.png: Nested organization of a zone - - More Information - For more information, see . + Cloud Infrastructure Overview + + The Management Server manages one or more zones (typically, datacenters) containing host computers where guest virtual machines will run. The cloud infrastructure is organized as follows: + + + Zone: Typically, a zone is equivalent to a single datacenter. A zone consists of one or more pods and secondary storage. + Pod: A pod is usually one rack of hardware that includes a layer-2 switch and one or more clusters. + Cluster: A cluster consists of one or more hosts and primary storage. + Host: A single compute node within a cluster. The hosts are where the actual cloud services run in the form of guest virtual machines. + Primary storage is associated with a cluster, and it stores the disk volumes for all the VMs running on hosts in that cluster. + Secondary storage is associated with a zone, and it stores templates, ISO images, and disk volume snapshots. + + + + + + infrastructure_overview.png: Nested organization of a zone + + More Information + For more information, see .
diff --git a/docs/en-US/cloudstack-admin.xml b/docs/en-US/cloudstack-admin.xml index cfdfcf07d2b..c1537638bd8 100644 --- a/docs/en-US/cloudstack-admin.xml +++ b/docs/en-US/cloudstack-admin.xml @@ -23,8 +23,8 @@ --> - + - + diff --git a/docs/en-US/cloudstack.xml b/docs/en-US/cloudstack.xml index 459a3ac6692..c18bc194cfe 100644 --- a/docs/en-US/cloudstack.xml +++ b/docs/en-US/cloudstack.xml @@ -23,7 +23,7 @@ --> - + diff --git a/docs/en-US/cloudstack_admin.xml b/docs/en-US/cloudstack_admin.xml index e6c392327bc..c80c94f5ff5 100644 --- a/docs/en-US/cloudstack_admin.xml +++ b/docs/en-US/cloudstack_admin.xml @@ -23,9 +23,9 @@ --> - + - + diff --git a/docs/en-US/cloudstack_developers.xml b/docs/en-US/cloudstack_developers.xml index 39817abc907..e847f6a0474 100644 --- a/docs/en-US/cloudstack_developers.xml +++ b/docs/en-US/cloudstack_developers.xml @@ -23,9 +23,9 @@ --> - + - + diff --git a/docs/en-US/cloudstack_features.xml b/docs/en-US/cloudstack_features.xml index 4d29e435f28..95825aa2758 100644 --- a/docs/en-US/cloudstack_features.xml +++ b/docs/en-US/cloudstack_features.xml @@ -22,45 +22,45 @@ under the License. --> -
- What Can &PRODUCT; Do? - - - Multiple Hypervisor Support - - - &PRODUCT; works with a variety of hypervisors. A single cloud deployment can contain multiple hypervisor implementations. You have the complete freedom to choose the right hypervisor for your workload. &PRODUCT; is designed to work with open source Xen and KVM hypervisors as well as enterprise-grade hypervisors such as Citrix XenServer, VMware vSphere, and Oracle VM (OVM). You can also provision “bare metal” hosts with no hypervisor (Beta feature. Untested in &PRODUCT; 3.0.x0.) - - - Massively Scalable Infrastructure Management - - - &PRODUCT; can manage tens of thousands of servers installed in multiple geographically distributed datacenters. The centralized management server scales linearly, eliminating the need for intermediate cluster-level management servers. No single component failure can cause cloud-wide outage. Periodic maintenance of the management server can be performed without affecting the functioning of virtual machines running in the cloud. - - - Automatic Configuration Management - - &PRODUCT; automatically configures each guest virtual machine’s networking and storage settings. - - &PRODUCT; internally manages a pool of virtual appliances to support the cloud itself. These appliances offer services such as firewalling, routing, DHCP, VPN access, console proxy, storage access, and storage replication. The extensive use of virtual appliances simplifies the installation, configuration, and ongoing management of a cloud deployment. - - - Graphical User Interface - - &PRODUCT; offers an administrator's Web interface, used for provisioning and managing the cloud, as well as an end-user's Web interface, used for running VMs and managing VM templates. The UI can be customized to reflect the desired service provider or enterprise look and feel. - - - API and Extensibility - - - &PRODUCT; provides an API that gives programmatic access to all the management features available in the UI. The API is maintained and documented. This API enables the creation of command line tools and new user interfaces to suit particular needs. See the Developer’s Guide and API Reference, both available at http://docs.cloud.com/CloudStack_Documentation. - - - The &PRODUCT; platform pluggable allocation architecture allows the creation of new types of allocators for the selection of storage and Hosts. See the Allocator Implementation Guide (http://docs.cloud.com/CloudStack_Documentation/Allocator_Implementation_Guide). - - - High Availability - - The &PRODUCT; platform has a number of features to increase the availability of the system. The Management Server itself may be deployed in a multi-node installation where the servers are load balanced. MySQL may be configured to use replication to provide for a manual failover in the event of database loss. For the Hosts, the &PRODUCT; platform supports NIC bonding and the use of separate networks for storage as well as iSCSI Multipath. - -
+
+ What Can &PRODUCT; Do? + + + Multiple Hypervisor Support + + + &PRODUCT; works with a variety of hypervisors. A single cloud deployment can contain multiple hypervisor implementations. You have the complete freedom to choose the right hypervisor for your workload. &PRODUCT; is designed to work with open source Xen and KVM hypervisors as well as enterprise-grade hypervisors such as Citrix XenServer, VMware vSphere, and Oracle VM (OVM). You can also provision “bare metal” hosts with no hypervisor (Beta feature. Untested in &PRODUCT; 3.0.x0.) + + + Massively Scalable Infrastructure Management + + + &PRODUCT; can manage tens of thousands of servers installed in multiple geographically distributed datacenters. The centralized management server scales linearly, eliminating the need for intermediate cluster-level management servers. No single component failure can cause cloud-wide outage. Periodic maintenance of the management server can be performed without affecting the functioning of virtual machines running in the cloud. + + + Automatic Configuration Management + + &PRODUCT; automatically configures each guest virtual machine’s networking and storage settings. + + &PRODUCT; internally manages a pool of virtual appliances to support the cloud itself. These appliances offer services such as firewalling, routing, DHCP, VPN access, console proxy, storage access, and storage replication. The extensive use of virtual appliances simplifies the installation, configuration, and ongoing management of a cloud deployment. + + + Graphical User Interface + + &PRODUCT; offers an administrator's Web interface, used for provisioning and managing the cloud, as well as an end-user's Web interface, used for running VMs and managing VM templates. The UI can be customized to reflect the desired service provider or enterprise look and feel. + + + API and Extensibility + + + &PRODUCT; provides an API that gives programmatic access to all the management features available in the UI. The API is maintained and documented. This API enables the creation of command line tools and new user interfaces to suit particular needs. See the Developer’s Guide and API Reference, both available at http://docs.cloud.com/CloudStack_Documentation. + + + The &PRODUCT; platform pluggable allocation architecture allows the creation of new types of allocators for the selection of storage and Hosts. See the Allocator Implementation Guide (http://docs.cloud.com/CloudStack_Documentation/Allocator_Implementation_Guide). + + + High Availability + + The &PRODUCT; platform has a number of features to increase the availability of the system. The Management Server itself may be deployed in a multi-node installation where the servers are load balanced. MySQL may be configured to use replication to provide for a manual failover in the event of database loss. For the Hosts, the &PRODUCT; platform supports NIC bonding and the use of separate networks for storage as well as iSCSI Multipath. + +
diff --git a/docs/en-US/cloudstack_installation.xml b/docs/en-US/cloudstack_installation.xml index 7e06dfd5fcd..f6ef3cf7c4d 100644 --- a/docs/en-US/cloudstack_installation.xml +++ b/docs/en-US/cloudstack_installation.xml @@ -23,8 +23,8 @@ --> - + - + diff --git a/docs/en-US/cloudstack_system_requirements.xml b/docs/en-US/cloudstack_system_requirements.xml index 665e23d7f4c..8b5d709c441 100644 --- a/docs/en-US/cloudstack_system_requirements.xml +++ b/docs/en-US/cloudstack_system_requirements.xml @@ -22,47 +22,47 @@ under the License. --> -
- Minimum System Requirements - - The machines that will run the Management Server and MySQL database must meet the following requirements. The same machines can also be used to provide primary and secondary storage, such as via localdisk or NFS. The Management Server may be placed on a virtual machine. - - - Operating system: - - Commercial users: Preferred: RHEL 6.2+ 64-bit (https://access.redhat.com/downloads) or CentOS 6.2+ 64-bit (http://isoredirect.centos.org/centos/6/isos/x86_64/). Also supported (v3.0.3 and greater): RHEL and CentOS 5.4-5.x 64-bit - Open-source community users: RHEL 5.4-5.x 64-bit or 6.2+ 64-bit; CentOS 5.4-5.x 64-bit or 6.2+ 64-bit; Ubuntu 10.04 LTS - - - 64-bit x86 CPU (more cores results in better performance) - 4 GB of memory - 250 GB of local disk (more results in better capability; 500 GB recommended) - At least 1 NIC - Statically allocated IP address - Fully qualified domain name as returned by the hostname command - - The host is where the cloud services run in the form of guest virtual machines. Each host is one machine that meets the following requirements: - - Must be 64-bit and must support HVM (Intel-VT or AMD-V enabled). - 64-bit x86 CPU (more cores results in better performance) - Hardware virtualization support required - 4 GB of memory - 36 GB of local disk - At least 1 NIC - Statically allocated IP Address - Latest hotfixes applied to hypervisor software - When you deploy &PRODUCT;, the hypervisor host must not have any VMs already running - - Hosts have additional requirements depending on the hypervisor. See the requirements listed at the top of the Installation section for your chosen hypervisor: - - Citrix XenServer Installation for &PRODUCT; - VMware vSphere Installation and Configuration - KVM Installation and Configuration - Oracle VM (OVM) Installation and Configuration - - - - Be sure you fulfill the additional hypervisor requirements and installation steps provided in this Guide. Hypervisor hosts must be properly prepared to work with &PRODUCT;. For example, the requirements for XenServer are listed under Citrix XenServer Installation for &PRODUCT;. - - -
+
+ Minimum System Requirements + + The machines that will run the Management Server and MySQL database must meet the following requirements. The same machines can also be used to provide primary and secondary storage, such as via localdisk or NFS. The Management Server may be placed on a virtual machine. + + + Operating system: + + Commercial users: Preferred: RHEL 6.2+ 64-bit (https://access.redhat.com/downloads) or CentOS 6.2+ 64-bit (http://isoredirect.centos.org/centos/6/isos/x86_64/). Also supported (v3.0.3 and greater): RHEL and CentOS 5.4-5.x 64-bit + Open-source community users: RHEL 5.4-5.x 64-bit or 6.2+ 64-bit; CentOS 5.4-5.x 64-bit or 6.2+ 64-bit; Ubuntu 10.04 LTS + + + 64-bit x86 CPU (more cores results in better performance) + 4 GB of memory + 250 GB of local disk (more results in better capability; 500 GB recommended) + At least 1 NIC + Statically allocated IP address + Fully qualified domain name as returned by the hostname command + + The host is where the cloud services run in the form of guest virtual machines. Each host is one machine that meets the following requirements: + + Must be 64-bit and must support HVM (Intel-VT or AMD-V enabled). + 64-bit x86 CPU (more cores results in better performance) + Hardware virtualization support required + 4 GB of memory + 36 GB of local disk + At least 1 NIC + Statically allocated IP Address + Latest hotfixes applied to hypervisor software + When you deploy &PRODUCT;, the hypervisor host must not have any VMs already running + + Hosts have additional requirements depending on the hypervisor. See the requirements listed at the top of the Installation section for your chosen hypervisor: + + Citrix XenServer Installation for &PRODUCT; + VMware vSphere Installation and Configuration + KVM Installation and Configuration + Oracle VM (OVM) Installation and Configuration + + + + Be sure you fulfill the additional hypervisor requirements and installation steps provided in this Guide. Hypervisor hosts must be properly prepared to work with &PRODUCT;. For example, the requirements for XenServer are listed under Citrix XenServer Installation for &PRODUCT;. + + +
diff --git a/docs/en-US/cloudstack_trial_installation.xml b/docs/en-US/cloudstack_trial_installation.xml index e3cb0c65079..24a1699d1d7 100644 --- a/docs/en-US/cloudstack_trial_installation.xml +++ b/docs/en-US/cloudstack_trial_installation.xml @@ -23,8 +23,8 @@ --> - + - + diff --git a/docs/en-US/cloudstack_whatis.xml b/docs/en-US/cloudstack_whatis.xml index b8cf1e22beb..5fea7d40199 100644 --- a/docs/en-US/cloudstack_whatis.xml +++ b/docs/en-US/cloudstack_whatis.xml @@ -23,17 +23,17 @@ under the License. --> -
- What Is &PRODUCT;? - Who Should Read This - If you are new to &PRODUCT; or you want to learn more about concepts before installing and running &PRODUCT;, read this overview. If you just want to get started, you can skip to Overview of Installation Steps. - &PRODUCT; is an open source software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. &PRODUCT; manages the network, storage, and compute nodes that make up a cloud infrastructure. Use &PRODUCT; to deploy, manage, and configure cloud computing environments. Typical users are service providers and enterprises. With &PRODUCT;, you can: - - - Set up an on-demand, elastic cloud computing service. Service providers can sell self service virtual machine instances, storage volumes, and networking configurations over the Internet. - - Set up an on-premise private cloud for use by employees. Rather than managing virtual machines in the same way as physical machines, with &PRODUCT; an enterprise can offer self-service virtual machines to users without involving IT departments. - - - -
+
+ What Is &PRODUCT;? + Who Should Read This + If you are new to &PRODUCT; or you want to learn more about concepts before installing and running &PRODUCT;, read this overview. If you just want to get started, you can skip to Overview of Installation Steps. + &PRODUCT; is an open source software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. &PRODUCT; manages the network, storage, and compute nodes that make up a cloud infrastructure. Use &PRODUCT; to deploy, manage, and configure cloud computing environments. Typical users are service providers and enterprises. With &PRODUCT;, you can: + + + Set up an on-demand, elastic cloud computing service. Service providers can sell self service virtual machine instances, storage volumes, and networking configurations over the Internet. + + Set up an on-premise private cloud for use by employees. Rather than managing virtual machines in the same way as physical machines, with &PRODUCT; an enterprise can offer self-service virtual machines to users without involving IT departments. + + + +
diff --git a/docs/en-US/cluster-add.xml b/docs/en-US/cluster-add.xml index d1ba3084e5e..5210bd8b84c 100644 --- a/docs/en-US/cluster-add.xml +++ b/docs/en-US/cluster-add.xml @@ -23,6 +23,6 @@ -->
- Adding a Cluster - TODO + Adding a Cluster + TODO
diff --git a/docs/en-US/compatibility-matrix.xml b/docs/en-US/compatibility-matrix.xml index ac8e838f2f4..8576f71e781 100644 --- a/docs/en-US/compatibility-matrix.xml +++ b/docs/en-US/compatibility-matrix.xml @@ -23,94 +23,94 @@ -->
- Compatibility Matrix - - - - - Hypervisor - CloudStack 2.1.x - CloudStack 2.2.x - CloudStack 3.0.0 - CloudStack 3.0.1 - CloudStack 3.0.2 - CloudStack 3.0.3 - - - - - XenServer 5.6 - Yes - Yes - No - No - No - No - - - XenServer 5.6 FP1 - Yes - Yes - No - No - No - No - - - XenServer 5.6 SP2 - Yes - Yes - No - No - Yes - Yes - - - XenServer 6.0.0 - No - No - No - No - No - Yes - - - XenServer 6.0.2 - No - No - Yes - Yes - Yes - Yes - - - XenServer 6.1 - No - No - No - No - No - No - - - KVM (RHEL 6.0 or 6.1) - Yes - Yes - Yes - Yes - Yes - Yes - - - VMware (vSphere and vCenter, both version 4.1) - Yes - Yes - Yes - Yes - Yes - Yes - - - - + Compatibility Matrix + + + + + Hypervisor + CloudStack 2.1.x + CloudStack 2.2.x + CloudStack 3.0.0 + CloudStack 3.0.1 + CloudStack 3.0.2 + CloudStack 3.0.3 + + + + + XenServer 5.6 + Yes + Yes + No + No + No + No + + + XenServer 5.6 FP1 + Yes + Yes + No + No + No + No + + + XenServer 5.6 SP2 + Yes + Yes + No + No + Yes + Yes + + + XenServer 6.0.0 + No + No + No + No + No + Yes + + + XenServer 6.0.2 + No + No + Yes + Yes + Yes + Yes + + + XenServer 6.1 + No + No + No + No + No + No + + + KVM (RHEL 6.0 or 6.1) + Yes + Yes + Yes + Yes + Yes + Yes + + + VMware (vSphere and vCenter, both version 4.1) + Yes + Yes + Yes + Yes + Yes + Yes + + + +
diff --git a/docs/en-US/concepts.xml b/docs/en-US/concepts.xml index f49fc3ece00..1912c23a8c9 100644 --- a/docs/en-US/concepts.xml +++ b/docs/en-US/concepts.xml @@ -23,8 +23,8 @@ --> - Concepts - - - + Concepts + + + diff --git a/docs/en-US/configure-guest-traffic-in-advanced-zone.xml b/docs/en-US/configure-guest-traffic-in-advanced-zone.xml index af7c21bbe41..95df4730985 100644 --- a/docs/en-US/configure-guest-traffic-in-advanced-zone.xml +++ b/docs/en-US/configure-guest-traffic-in-advanced-zone.xml @@ -23,28 +23,28 @@ -->
- Configure Guest Traffic in an Advanced Zone - These steps assume you have already logged in to the &PRODUCT; UI. To configure the base guest network: - - In the left navigation, choose Infrastructure. On Zones, click View More, then click the zone to which you want to add a network. - Click the Network tab. - Click Add network. - Provide the following information: - - Name. The name of the network. This will be user-visible - Description: The description of the network. This will be user-visible - VLAN ID: Enter an administrator-configured VLAN ID so you can create different networks for use by different VM users in the zone - Scope: Choose account-specific or domain-specific if you would like to make the network accessible to only a single account or domain. Choose zone-wide if all accounts with access to the zone should be able to access the network. - Domain/Account: If Scope is account-specific, enter the domain and account name for the account - Network offering: If the administrator has configured multiple network offerings, select the one you want to use for this network - Gateway: The gateway that the guests should use - Netmask: The netmask in use on the subnet the guests will use - Start IP/End IP: Enter the first and last IP addresses that define a range that &PRODUCT; can assign to guests. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR. If multiple NICs are used, they may be in a different subnet. - Network Domain: (Optional) If you want to assign a special domain name to this network, specify the DNS suffix. - - - Click OK. - - - -
+ Configure Guest Traffic in an Advanced Zone + These steps assume you have already logged in to the &PRODUCT; UI. To configure the base guest network: + + In the left navigation, choose Infrastructure. On Zones, click View More, then click the zone to which you want to add a network. + Click the Network tab. + Click Add network. + Provide the following information: + + Name. The name of the network. This will be user-visible + Description: The description of the network. This will be user-visible + VLAN ID: Enter an administrator-configured VLAN ID so you can create different networks for use by different VM users in the zone + Scope: Choose account-specific or domain-specific if you would like to make the network accessible to only a single account or domain. Choose zone-wide if all accounts with access to the zone should be able to access the network. + Domain/Account: If Scope is account-specific, enter the domain and account name for the account + Network offering: If the administrator has configured multiple network offerings, select the one you want to use for this network + Gateway: The gateway that the guests should use + Netmask: The netmask in use on the subnet the guests will use + Start IP/End IP: Enter the first and last IP addresses that define a range that &PRODUCT; can assign to guests. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR. If multiple NICs are used, they may be in a different subnet. + Network Domain: (Optional) If you want to assign a special domain name to this network, specify the DNS suffix. + + + Click OK. + + + +
diff --git a/docs/en-US/configure-public-traffic-in-an-advanced-zone.xml b/docs/en-US/configure-public-traffic-in-an-advanced-zone.xml index 8a9fb4a164f..960a1a3308b 100644 --- a/docs/en-US/configure-public-traffic-in-an-advanced-zone.xml +++ b/docs/en-US/configure-public-traffic-in-an-advanced-zone.xml @@ -3,6 +3,25 @@ %BOOK_ENTITIES; ]> + + +
Configure Public Traffic in an Advanced Zone In a zone that uses advanced networking, you need to configure at least one range of IP addresses for Internet traffic. diff --git a/docs/en-US/configure-usage-server.xml b/docs/en-US/configure-usage-server.xml index 55d3908a544..d167a497b16 100644 --- a/docs/en-US/configure-usage-server.xml +++ b/docs/en-US/configure-usage-server.xml @@ -54,7 +54,7 @@ usage.aggregation.timezone Time zone of usage records. Set this if the usage records and daily job execution are in different time zones. For example, with the following settings, the usage job will run at PST 00:15 and generate usage records for the 24 hours from 00:00:00 GMT to 23:59:59 GMT: - usage.stats.job.exec.time = 00:15 + usage.stats.job.exec.time = 00:15 usage.execution.timezone = PST usage.aggregation.timezone = GMT diff --git a/docs/en-US/configure-vpn.xml b/docs/en-US/configure-vpn.xml index 0ab3ef55cae..9e059f7aaba 100644 --- a/docs/en-US/configure-vpn.xml +++ b/docs/en-US/configure-vpn.xml @@ -23,30 +23,30 @@ -->
- Configuring VPN - To set up VPN for the cloud: - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, click Global Settings. - Set the following global configuration parameters. - - remote.access.vpn.client.ip.range – The range of IP addressess to be allocated to remote access VPN clients. The first IP in the range is used by the VPN server. - remote.access.vpn.psk.length – Length of the IPSec key. - remote.access.vpn.user.limit – Maximum number of VPN users per account. - - To enable VPN for a particular network: - - Log in as a user or administrator to the &PRODUCT; UI. - In the left navigation, click Network. - Click the name of the network you want to work with. - Click View IP Addresses. - Click one of the displayed IP address names. - Click the Enable VPN button - - - - AttachDiskButton.png: button to attach a volume - . - The IPsec key is displayed in a popup window. - + Configuring VPN + To set up VPN for the cloud: + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, click Global Settings. + Set the following global configuration parameters. + + remote.access.vpn.client.ip.range – The range of IP addressess to be allocated to remote access VPN clients. The first IP in the range is used by the VPN server. + remote.access.vpn.psk.length – Length of the IPSec key. + remote.access.vpn.user.limit – Maximum number of VPN users per account. + + To enable VPN for a particular network: + + Log in as a user or administrator to the &PRODUCT; UI. + In the left navigation, click Network. + Click the name of the network you want to work with. + Click View IP Addresses. + Click one of the displayed IP address names. + Click the Enable VPN button + + + + AttachDiskButton.png: button to attach a volume + . + The IPsec key is displayed in a popup window. +
diff --git a/docs/en-US/convert-hyperv-vm-to-template.xml b/docs/en-US/convert-hyperv-vm-to-template.xml index 1ceaa758e32..c6294d4443c 100644 --- a/docs/en-US/convert-hyperv-vm-to-template.xml +++ b/docs/en-US/convert-hyperv-vm-to-template.xml @@ -23,46 +23,46 @@ -->
- Converting a Hyper-V VM to a Template - To convert a Hyper-V VM to a XenServer-compatible &PRODUCT; template, you will need a standalone XenServer host with an attached NFS VHD SR. Use whatever XenServer version you are using with &PRODUCT;, but use XenCenter 5.6 FP1 or SP2 (it is backwards compatible to 5.6). Additionally, it may help to have an attached NFS ISO SR. - For Linux VMs, you may need to do some preparation in Hyper-V before trying to get the VM to work in XenServer. Clone the VM and work on the clone if you still want to use the VM in Hyper-V. Uninstall Hyper-V Integration Components and check for any references to device names in /etc/fstab: - - From the linux_ic/drivers/dist directory, run make uninstall (where "linux_ic" is the path to the copied Hyper-V Integration Components files). - Restore the original initrd from backup in /boot/ (the backup is named *.backup0). - Remove the "hdX=noprobe" entries from /boot/grub/menu.lst. - Check /etc/fstab for any partitions mounted by device name. Change those entries (if any) to mount by LABEL or UUID (get that information with the "blkid" command).. - - The next step is make sure the VM is not running in Hyper-V, then get the VHD into XenServer. There are two options for doing this. - Option one: - - Import the VHD using XenCenter. In XenCenter, go to Tools>Virtual Appliance Tools>Disk Image Import. - Choose the VHD, then click Next. - Name the VM, choose the NFS VHD SR under Storage, enable "Run Operating System Fixups" and choose the NFS ISO SR. - Click Next, then Finish. A VM should be created. - - Option two - - Run XenConvert, under From choose VHD, under To choose XenServer. Click Next. - Choose the VHD, then click Next. - Input the XenServer host info, then click Next. - Name the VM, then click Next, then Convert. A VM should be created - - Once you have a VM created from the Hyper-V VHD, prepare it using the following steps: - - Boot the VM, uninstall Hyper-V Integration Services, and reboot. - Install XenServer Tools, then reboot. - Prepare the VM as desired. For example, run sysprep on Windows VMs. See - - Either option above will create a VM in HVM mode. This is fine for Windows VMs, but Linux VMs may not perform optimally. Converting a Linux VM to PV mode will require additional steps and will vary by distribution. - - Shut down the VM and copy the VHD from the NFS storage to a web server; for example, mount the NFS share on the web server and copy it, or from the XenServer host use sftp or scp to upload it to the web server. - In &PRODUCT;, create a new template using the following values: - - URL. Give the URL for the VHD - OS Type. Use the appropriate OS. For PV mode on CentOS, choose Other PV (32-bit) or Other PV (64-bit). This choice is available only for XenServer. - Hypervisor. XenServer - Format. VHD - - - The template will be created, and you can create instances from it. + Converting a Hyper-V VM to a Template + To convert a Hyper-V VM to a XenServer-compatible &PRODUCT; template, you will need a standalone XenServer host with an attached NFS VHD SR. Use whatever XenServer version you are using with &PRODUCT;, but use XenCenter 5.6 FP1 or SP2 (it is backwards compatible to 5.6). Additionally, it may help to have an attached NFS ISO SR. + For Linux VMs, you may need to do some preparation in Hyper-V before trying to get the VM to work in XenServer. Clone the VM and work on the clone if you still want to use the VM in Hyper-V. Uninstall Hyper-V Integration Components and check for any references to device names in /etc/fstab: + + From the linux_ic/drivers/dist directory, run make uninstall (where "linux_ic" is the path to the copied Hyper-V Integration Components files). + Restore the original initrd from backup in /boot/ (the backup is named *.backup0). + Remove the "hdX=noprobe" entries from /boot/grub/menu.lst. + Check /etc/fstab for any partitions mounted by device name. Change those entries (if any) to mount by LABEL or UUID (get that information with the "blkid" command).. + + The next step is make sure the VM is not running in Hyper-V, then get the VHD into XenServer. There are two options for doing this. + Option one: + + Import the VHD using XenCenter. In XenCenter, go to Tools>Virtual Appliance Tools>Disk Image Import. + Choose the VHD, then click Next. + Name the VM, choose the NFS VHD SR under Storage, enable "Run Operating System Fixups" and choose the NFS ISO SR. + Click Next, then Finish. A VM should be created. + + Option two + + Run XenConvert, under From choose VHD, under To choose XenServer. Click Next. + Choose the VHD, then click Next. + Input the XenServer host info, then click Next. + Name the VM, then click Next, then Convert. A VM should be created + + Once you have a VM created from the Hyper-V VHD, prepare it using the following steps: + + Boot the VM, uninstall Hyper-V Integration Services, and reboot. + Install XenServer Tools, then reboot. + Prepare the VM as desired. For example, run sysprep on Windows VMs. See + + Either option above will create a VM in HVM mode. This is fine for Windows VMs, but Linux VMs may not perform optimally. Converting a Linux VM to PV mode will require additional steps and will vary by distribution. + + Shut down the VM and copy the VHD from the NFS storage to a web server; for example, mount the NFS share on the web server and copy it, or from the XenServer host use sftp or scp to upload it to the web server. + In &PRODUCT;, create a new template using the following values: + + URL. Give the URL for the VHD + OS Type. Use the appropriate OS. For PV mode on CentOS, choose Other PV (32-bit) or Other PV (64-bit). This choice is available only for XenServer. + Hypervisor. XenServer + Format. VHD + + + The template will be created, and you can create instances from it.
diff --git a/docs/en-US/create-bare-metal-template.xml b/docs/en-US/create-bare-metal-template.xml index 635e13faade..19db2ed5f30 100644 --- a/docs/en-US/create-bare-metal-template.xml +++ b/docs/en-US/create-bare-metal-template.xml @@ -23,24 +23,24 @@ -->
- Creating a Bare Metal Template - Beta feature. Untested in &PRODUCT; 3.0.3. Provided without guarantee of performance. - Before you can create a bare metal template, you must have performed several other installation and setup steps to create a bare metal cluster and environment. See Bare Metal Installation in the Installation Guide. It is assumed you already have a directory named "win7_64bit" on your CIFS server, containing the image for the bare metal instance. This directory and image are set up as part of the Bare Metal Installation procedure. - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation bar, click Templates. - Click Create Template. - In the dialog box, enter the following values. - - Name. Short name for the template. - Display Text. Description of the template. - URL. The directory name which contains image file on your CIFS server. For example, win7_64bit. - Zone. All Zones. - OS Type. Select the OS type of the ISO image. Choose other if the OS Type of the ISO is not listed or if the ISO is not bootable. - Hypervisor. BareMetal. - Format. BareMetal. - Password Enabled. No. - Public. No. - Featured. Choose Yes if you would like this template to be more prominent for users to select. Only administrators may make templates featured. - -
+ Creating a Bare Metal Template + Beta feature. Untested in &PRODUCT; 3.0.3. Provided without guarantee of performance. + Before you can create a bare metal template, you must have performed several other installation and setup steps to create a bare metal cluster and environment. See Bare Metal Installation in the Installation Guide. It is assumed you already have a directory named "win7_64bit" on your CIFS server, containing the image for the bare metal instance. This directory and image are set up as part of the Bare Metal Installation procedure. + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation bar, click Templates. + Click Create Template. + In the dialog box, enter the following values. + + Name. Short name for the template. + Display Text. Description of the template. + URL. The directory name which contains image file on your CIFS server. For example, win7_64bit. + Zone. All Zones. + OS Type. Select the OS type of the ISO image. Choose other if the OS Type of the ISO is not listed or if the ISO is not bootable. + Hypervisor. BareMetal. + Format. BareMetal. + Password Enabled. No. + Public. No. + Featured. Choose Yes if you would like this template to be more prominent for users to select. Only administrators may make templates featured. + +
diff --git a/docs/en-US/create-template-from-existing-vm.xml b/docs/en-US/create-template-from-existing-vm.xml index d6b6f0db0bd..c22b7ec7f5c 100644 --- a/docs/en-US/create-template-from-existing-vm.xml +++ b/docs/en-US/create-template-from-existing-vm.xml @@ -23,27 +23,27 @@ -->
- Creating a Template from an Existing Virtual Machine - Once you have at least one VM set up in the way you want, you can use it as the prototype for other VMs. - - Create and start a virtual machine using any of the techniques given in . - Make any desired configuration changes on the running VM, then click Stop. - Wait for the VM to stop. When the status shows Stopped, go to the next step. - Click Create Template and provide the following: - - Name and Display Text. These will be shown in the UI, so choose something descriptive. - OS Type. This helps &PRODUCT; and the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following. - - If the operating system of the stopped VM is listed, choose it. - If the OS type of the stopped VM is not listed, choose Other. - If you want to boot from this template in PV mode, choose Other PV (32-bit) or Other PV (64-bit). This choice is available only for XenServere: - Note: Generally you should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other. - - - Public. Choose Yes to make this template accessible to all users of this &PRODUCT; installation. The template will appear in the Community Templates list. See . - Password Enabled. Choose Yes if your template has the &PRODUCT; password change script installed. See Adding Password Management to Your Templates. - - Click Add. - - The new template will be visible in the Templates section when the template creation process has been completed. The template is then available when creating a new VM + Creating a Template from an Existing Virtual Machine + Once you have at least one VM set up in the way you want, you can use it as the prototype for other VMs. + + Create and start a virtual machine using any of the techniques given in . + Make any desired configuration changes on the running VM, then click Stop. + Wait for the VM to stop. When the status shows Stopped, go to the next step. + Click Create Template and provide the following: + + Name and Display Text. These will be shown in the UI, so choose something descriptive. + OS Type. This helps &PRODUCT; and the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following. + + If the operating system of the stopped VM is listed, choose it. + If the OS type of the stopped VM is not listed, choose Other. + If you want to boot from this template in PV mode, choose Other PV (32-bit) or Other PV (64-bit). This choice is available only for XenServere: + Note: Generally you should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other. + + + Public. Choose Yes to make this template accessible to all users of this &PRODUCT; installation. The template will appear in the Community Templates list. See . + Password Enabled. Choose Yes if your template has the &PRODUCT; password change script installed. See Adding Password Management to Your Templates. + + Click Add. + + The new template will be visible in the Templates section when the template creation process has been completed. The template is then available when creating a new VM
diff --git a/docs/en-US/create-templates-overview.xml b/docs/en-US/create-templates-overview.xml index 7e41035a733..818b42d1068 100644 --- a/docs/en-US/create-templates-overview.xml +++ b/docs/en-US/create-templates-overview.xml @@ -23,13 +23,13 @@ -->
- Creating Templates: Overview - &PRODUCT; ships with a default template for the CentOS operating system. There are a variety of ways to add more templates. Administrators and end users can add templates. The typical sequence of events is: - - Launch a VM instance that has the operating system you want. Make any other desired configuration changes to the VM. - Stop the VM. - Convert the volume into a template. - - There are other ways to add templates to &PRODUCT;. For example, you can take a snapshot of the VM's volume and create a template from the snapshot, or import a VHD from another system into &PRODUCT; - The various techniques for creating templates are described in the next few sections. + Creating Templates: Overview + &PRODUCT; ships with a default template for the CentOS operating system. There are a variety of ways to add more templates. Administrators and end users can add templates. The typical sequence of events is: + + Launch a VM instance that has the operating system you want. Make any other desired configuration changes to the VM. + Stop the VM. + Convert the volume into a template. + + There are other ways to add templates to &PRODUCT;. For example, you can take a snapshot of the VM's volume and create a template from the snapshot, or import a VHD from another system into &PRODUCT; + The various techniques for creating templates are described in the next few sections.
diff --git a/docs/en-US/create-windows-template.xml b/docs/en-US/create-windows-template.xml index ef36020799a..f8dbc79bce9 100644 --- a/docs/en-US/create-windows-template.xml +++ b/docs/en-US/create-windows-template.xml @@ -23,16 +23,16 @@ -->
- Creating a Windows Template - Windows templates must be prepared with Sysprep before they can be provisioned on multiple machines. Sysprep allows you to create a generic Windows template and avoid any possible SID conflicts. - (XenServer) Windows VMs running on XenServer require PV drivers, which may be provided in the template or added after the VM is created. The PV drivers are necessary for essential management functions such as mounting additional volumes and ISO images, live migration, and graceful shutdown. - An overview of the procedure is as follows: - - Upload your Windows ISO. For more information, see - Create a VM Instance with this ISO. For more information, see - Follow the steps in Sysprep for Windows Server 2008 R2 (below) or Sysprep for Windows Server 2003 R2, depending on your version of Windows Server - The preparation steps are complete. Now you can actually create the template as described in Creating the Windows Template. - - - + Creating a Windows Template + Windows templates must be prepared with Sysprep before they can be provisioned on multiple machines. Sysprep allows you to create a generic Windows template and avoid any possible SID conflicts. + (XenServer) Windows VMs running on XenServer require PV drivers, which may be provided in the template or added after the VM is created. The PV drivers are necessary for essential management functions such as mounting additional volumes and ISO images, live migration, and graceful shutdown. + An overview of the procedure is as follows: + + Upload your Windows ISO. For more information, see + Create a VM Instance with this ISO. For more information, see + Follow the steps in Sysprep for Windows Server 2008 R2 (below) or Sysprep for Windows Server 2003 R2, depending on your version of Windows Server + The preparation steps are complete. Now you can actually create the template as described in Creating the Windows Template. + + +
diff --git a/docs/en-US/creating-new-volumes.xml b/docs/en-US/creating-new-volumes.xml index 995da86d487..62181b9ea36 100644 --- a/docs/en-US/creating-new-volumes.xml +++ b/docs/en-US/creating-new-volumes.xml @@ -23,19 +23,19 @@ -->
- Creating a New Volume - You can add more data disk volumes to a guest VM at any time, up to the limits of your storage capacity. Both &PRODUCT; administrators and users can add volumes to VM instances. When you create a new volume, it is stored as an entity in &PRODUCT;, but the actual storage resources are not allocated on the physical storage device until you attach the volume. This optimization allows the &PRODUCT; to provision the volume nearest to the guest that will use it when the first attachment is made. - - Log in to the &PRODUCT; UI as a user or admin. - In the left navigation bar, click Storage. - In Select View, choose Volumes. - To create a new volume, click Add Volume, provide the following details, and click OK. - - Name. Give the volume a unique name so you can find it later. - Availability Zone. Where do you want the storage to reside? This should be close to the VM that will use the volume. - Disk Offering. Choose the characteristics of the storage. - - The new volume appears in the list of volumes with the state “Allocated.” The volume data is stored in &PRODUCT;, but the volume is not yet ready for use - To start using the volume, continue to Attaching a Volume - -
+ Creating a New Volume + You can add more data disk volumes to a guest VM at any time, up to the limits of your storage capacity. Both &PRODUCT; administrators and users can add volumes to VM instances. When you create a new volume, it is stored as an entity in &PRODUCT;, but the actual storage resources are not allocated on the physical storage device until you attach the volume. This optimization allows the &PRODUCT; to provision the volume nearest to the guest that will use it when the first attachment is made. + + Log in to the &PRODUCT; UI as a user or admin. + In the left navigation bar, click Storage. + In Select View, choose Volumes. + To create a new volume, click Add Volume, provide the following details, and click OK. + + Name. Give the volume a unique name so you can find it later. + Availability Zone. Where do you want the storage to reside? This should be close to the VM that will use the volume. + Disk Offering. Choose the characteristics of the storage. + + The new volume appears in the list of volumes with the state “Allocated.” The volume data is stored in &PRODUCT;, but the volume is not yet ready for use + To start using the volume, continue to Attaching a Volume + + diff --git a/docs/en-US/creating-vms.xml b/docs/en-US/creating-vms.xml index dd6ec79a5fc..dc37dbb38c3 100644 --- a/docs/en-US/creating-vms.xml +++ b/docs/en-US/creating-vms.xml @@ -23,27 +23,27 @@ -->
- Creating VMs - Virtual machines are usually created from a template. Users can also create blank virtual machines. A blank virtual machine is a virtual machine without an OS template. Users can attach an ISO file and install the OS from the CD/DVD-ROM. - To create a VM from a template: - - Log in to the &PRODUCT; UI as an administrator or user. - In the left navigation bar, click Instances. - Click Add Instance. - Select a template, then follow the steps in the wizard. (For more information about how the templates came to be in this list, see Working with Templates. - Be sure that the hardware you have allows starting the selected service offering. - Click Submit and your VM will be created and started. - For security reason, the internal name of the VM is visible only to the root admin. - - Starting with v3.0.3, you can create a VM without starting it. You can determine whether the VM needs to be started as part of the VM deployment. A new request parameter, startVM, is introduced in the deployVm API to support this feature. For more information, see the Developer's Guide - To create a VM from an ISO: - (XenServer) Windows VMs running on XenServer require PV drivers, which may be provided in the template or added after the VM is created. The PV drivers are necessary for essential management functions such as mounting additional volumes and ISO images, live migration, and graceful shutdown. - - Log in to the &PRODUCT; UI as an administrator or user. - In the left navigation bar, click Instances. - Click Add Instance. - Select ISO Boot, and follow the steps in the wizard. - Click Submit and your VM will be created and started. - (Oracle VM only) After ISO installation, the installer reboots into the operating system. Due to a known issue in OVM, the reboot will place the VM in the Stopped state. In the &PRODUCT; UI, detach the ISO from the VM (so that the VM will not boot from the ISO again), then click the Start button to restart the VM. - + Creating VMs + Virtual machines are usually created from a template. Users can also create blank virtual machines. A blank virtual machine is a virtual machine without an OS template. Users can attach an ISO file and install the OS from the CD/DVD-ROM. + To create a VM from a template: + + Log in to the &PRODUCT; UI as an administrator or user. + In the left navigation bar, click Instances. + Click Add Instance. + Select a template, then follow the steps in the wizard. (For more information about how the templates came to be in this list, see Working with Templates. + Be sure that the hardware you have allows starting the selected service offering. + Click Submit and your VM will be created and started. + For security reason, the internal name of the VM is visible only to the root admin. + + Starting with v3.0.3, you can create a VM without starting it. You can determine whether the VM needs to be started as part of the VM deployment. A new request parameter, startVM, is introduced in the deployVm API to support this feature. For more information, see the Developer's Guide + To create a VM from an ISO: + (XenServer) Windows VMs running on XenServer require PV drivers, which may be provided in the template or added after the VM is created. The PV drivers are necessary for essential management functions such as mounting additional volumes and ISO images, live migration, and graceful shutdown. + + Log in to the &PRODUCT; UI as an administrator or user. + In the left navigation bar, click Instances. + Click Add Instance. + Select ISO Boot, and follow the steps in the wizard. + Click Submit and your VM will be created and started. + (Oracle VM only) After ISO installation, the installer reboots into the operating system. Due to a known issue in OVM, the reboot will place the VM in the Stopped state. In the &PRODUCT; UI, detach the ISO from the VM (so that the VM will not boot from the ISO again), then click the Start button to restart the VM. +
diff --git a/docs/en-US/dates-in-usage-record.xml b/docs/en-US/dates-in-usage-record.xml index 0fe430dba87..dc2f07221be 100644 --- a/docs/en-US/dates-in-usage-record.xml +++ b/docs/en-US/dates-in-usage-record.xml @@ -16,11 +16,11 @@ under the License. --> -
- Dates in the Usage Record - Usage records include a start date and an end date. These dates define the period of time for which the raw usage number was calculated. If daily aggregation is used, the start date is midnight on the day in question and the end date is 23:59:59 on the day in question (with one exception; see below). A virtual machine could have been deployed at noon on that day, stopped at 6pm on that day, then started up again at 11pm. When usage is calculated on that day, there will be 7 hours of running VM usage (usage type 1) and 12 hours of allocated VM usage (usage type 2). If the same virtual machine runs for the entire next day, there will 24 hours of both running VM usage (type 1) and allocated VM usage (type 2). - Note: The start date is not the time a virtual machine was started, and the end date is not the time when a virtual machine was stopped. The start and end dates give the time range within which usage was calculated. - For network usage, the start date and end date again define the range in which the number of bytes transferred was calculated. If a user downloads 10 MB and uploads 1 MB in one day, there will be two records, one showing the 10 megabytes received and one showing the 1 megabyte sent. - There is one case where the start date and end date do not correspond to midnight and 11:59:59pm when daily aggregation is used. This occurs only for network usage records. When the usage server has more than one day's worth of unprocessed data, the old data will be included in the aggregation period. The start date in the usage record will show the date and time of the earliest event. For other types of usage, such as IP addresses and VMs, the old unprocessed data is not included in daily aggregation. -
+
+ Dates in the Usage Record + Usage records include a start date and an end date. These dates define the period of time for which the raw usage number was calculated. If daily aggregation is used, the start date is midnight on the day in question and the end date is 23:59:59 on the day in question (with one exception; see below). A virtual machine could have been deployed at noon on that day, stopped at 6pm on that day, then started up again at 11pm. When usage is calculated on that day, there will be 7 hours of running VM usage (usage type 1) and 12 hours of allocated VM usage (usage type 2). If the same virtual machine runs for the entire next day, there will 24 hours of both running VM usage (type 1) and allocated VM usage (type 2). + Note: The start date is not the time a virtual machine was started, and the end date is not the time when a virtual machine was stopped. The start and end dates give the time range within which usage was calculated. + For network usage, the start date and end date again define the range in which the number of bytes transferred was calculated. If a user downloads 10 MB and uploads 1 MB in one day, there will be two records, one showing the 10 megabytes received and one showing the 1 megabyte sent. + There is one case where the start date and end date do not correspond to midnight and 11:59:59pm when daily aggregation is used. This occurs only for network usage records. When the usage server has more than one day's worth of unprocessed data, the old data will be included in the aggregation period. The start date in the usage record will show the date and time of the earliest event. For other types of usage, such as IP addresses and VMs, the old unprocessed data is not included in daily aggregation. +
diff --git a/docs/en-US/default-template.xml b/docs/en-US/default-template.xml index c4741c964e3..16442c38f47 100644 --- a/docs/en-US/default-template.xml +++ b/docs/en-US/default-template.xml @@ -23,12 +23,12 @@ -->
- The Default Template - &PRODUCT; includes a CentOS template. This template is downloaded by the Secondary Storage VM after the primary and secondary storage are configured. You can use this template in your production deployment or you can delete it and use custom templates. - The root password for the default template is "password". - A default template is provided for each of XenServer, KVM, and vSphere. The templates that are downloaded depend on the hypervisor type that is available in your cloud. Each template is approximately 2.5 GB physical size. - The default template includes the standard iptables rules, which will block most access to the template excluding ssh. - # iptables --list + The Default Template + &PRODUCT; includes a CentOS template. This template is downloaded by the Secondary Storage VM after the primary and secondary storage are configured. You can use this template in your production deployment or you can delete it and use custom templates. + The root password for the default template is "password". + A default template is provided for each of XenServer, KVM, and vSphere. The templates that are downloaded depend on the hypervisor type that is available in your cloud. Each template is approximately 2.5 GB physical size. + The default template includes the standard iptables rules, which will block most access to the template excluding ssh. + # iptables --list Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere diff --git a/docs/en-US/delete-templates.xml b/docs/en-US/delete-templates.xml index 48d8fd11ff8..f9351da844f 100644 --- a/docs/en-US/delete-templates.xml +++ b/docs/en-US/delete-templates.xml @@ -23,7 +23,7 @@ -->
- Deleting Templates - Templates may be deleted. In general, when a template spans multiple Zones, only the copy that is selected for deletion will be deleted; the same template in other Zones will not be deleted. The provided CentOS template is an exception to this. If the provided CentOS template is deleted, it will be deleted from all Zones. - When templates are deleted, the VMs instantiated from them will continue to run. However, new VMs cannot be created based on the deleted template. + Deleting Templates + Templates may be deleted. In general, when a template spans multiple Zones, only the copy that is selected for deletion will be deleted; the same template in other Zones will not be deleted. The provided CentOS template is an exception to this. If the provided CentOS template is deleted, it will be deleted from all Zones. + When templates are deleted, the VMs instantiated from them will continue to run. However, new VMs cannot be created based on the deleted template.
diff --git a/docs/en-US/deleting-vms.xml b/docs/en-US/deleting-vms.xml index ab65fef1db9..1f1ee959f57 100644 --- a/docs/en-US/deleting-vms.xml +++ b/docs/en-US/deleting-vms.xml @@ -23,19 +23,19 @@ -->
- Deleting VMs - Users can delete their own virtual machines. A running virtual machine will be abruptly stopped before it is deleted. Administrators can delete any virtual machines. - To delete a virtual machine: - - Log in to the &PRODUCT; UI as a user or admin. - In the left navigation, click Instances. - Choose the VM that you want to delete. - Click the Destroy Instance button - - - - Destroyinstance.png: button to destroy an instance - - - -
+ Deleting VMs + Users can delete their own virtual machines. A running virtual machine will be abruptly stopped before it is deleted. Administrators can delete any virtual machines. + To delete a virtual machine: + + Log in to the &PRODUCT; UI as a user or admin. + In the left navigation, click Instances. + Choose the VM that you want to delete. + Click the Destroy Instance button + + + + Destroyinstance.png: button to destroy an instance + + + +
diff --git a/docs/en-US/deployment-architecture-overview.xml b/docs/en-US/deployment-architecture-overview.xml index 2d463790af7..6a67a2ce589 100644 --- a/docs/en-US/deployment-architecture-overview.xml +++ b/docs/en-US/deployment-architecture-overview.xml @@ -23,22 +23,22 @@ -->
- Deployment Architecture Overview - - A &PRODUCT; installation consists of two parts: the Management Server and the cloud infrastructure that it manages. When you set up and manage a &PRODUCT; cloud, you provision resources such as hosts, storage devices, and IP addresses into the Management Server, and the Management Server manages those resources. - - - The minimum production installation consists of one machine running the &PRODUCT; Management Server and another machine to act as the cloud infrastructure (in this case, a very simple infrastructure consisting of one host running hypervisor software). In a trial installation, a single machine can act as both the Management Server and the hypervisor host (using the KVM hypervisor). - - - - - - basic-deployment.png: Basic two-machine deployment - - A more full-featured installation consists of a highly-available multi-node Management Server installation and up to thousands of hosts using any of several advanced networking setups. For information about deployment options, see Choosing a Deployment Architecture. - - - - + Deployment Architecture Overview + + A &PRODUCT; installation consists of two parts: the Management Server and the cloud infrastructure that it manages. When you set up and manage a &PRODUCT; cloud, you provision resources such as hosts, storage devices, and IP addresses into the Management Server, and the Management Server manages those resources. + + + The minimum production installation consists of one machine running the &PRODUCT; Management Server and another machine to act as the cloud infrastructure (in this case, a very simple infrastructure consisting of one host running hypervisor software). In a trial installation, a single machine can act as both the Management Server and the hypervisor host (using the KVM hypervisor). + + + + + + basic-deployment.png: Basic two-machine deployment + + A more full-featured installation consists of a highly-available multi-node Management Server installation and up to thousands of hosts using any of several advanced networking setups. For information about deployment options, see Choosing a Deployment Architecture. + + + +
diff --git a/docs/en-US/detach-move-volumes.xml b/docs/en-US/detach-move-volumes.xml index 6f241d594e6..a00e15f6cee 100644 --- a/docs/en-US/detach-move-volumes.xml +++ b/docs/en-US/detach-move-volumes.xml @@ -23,21 +23,21 @@ -->
- Attaching a Volume - This procedure is different from moving disk volumes from one storage pool to another. See VM Storage Migration - A volume can be detached from a guest VM and attached to another guest. Both &PRODUCT; administrators and users can detach volumes from VMs and move them to other VMs. - If the two VMs are in different clusters, and the volume is large, it may take several minutes for the volume to be moved to the new VM. - If the destination VM is running in the OVM hypervisor, the VM must be stopped before a new volume can be attached to it. - - Log in to the &PRODUCT; UI as a user or admin. - In the left navigation bar, click Storage, and choose Volumes in Select View. Alternatively, if you know which VM the volume is attached to, you can click Instances, click the VM name, and click View Volumes. - Click the name of the volume you want to detach, then click the Detach Disk button - - - - DetachDiskButton.png: button to detach a volume - - - To move the volume to another VM, follow the steps in Attaching a Volume . - -
+ Attaching a Volume + This procedure is different from moving disk volumes from one storage pool to another. See VM Storage Migration + A volume can be detached from a guest VM and attached to another guest. Both &PRODUCT; administrators and users can detach volumes from VMs and move them to other VMs. + If the two VMs are in different clusters, and the volume is large, it may take several minutes for the volume to be moved to the new VM. + If the destination VM is running in the OVM hypervisor, the VM must be stopped before a new volume can be attached to it. + + Log in to the &PRODUCT; UI as a user or admin. + In the left navigation bar, click Storage, and choose Volumes in Select View. Alternatively, if you know which VM the volume is attached to, you can click Instances, click the VM name, and click View Volumes. + Click the name of the volume you want to detach, then click the Detach Disk button + + + + DetachDiskButton.png: button to detach a volume + + + To move the volume to another VM, follow the steps in Attaching a Volume . + + diff --git a/docs/en-US/developer-getting-started.xml b/docs/en-US/developer-getting-started.xml index 08e23951a90..14560280909 100644 --- a/docs/en-US/developer-getting-started.xml +++ b/docs/en-US/developer-getting-started.xml @@ -23,16 +23,16 @@ under the License. --> -
- Getting Started - - To get started using the &PRODUCT; API, you should have the following: - - URL of the &PRODUCT; server you wish to integrate with. - Both the API Key and Secret Key for an account. This should have been generated by the administrator of the cloud instance and given to you. - Familiarity with HTTP GET/POST and query strings. - Knowledge of either XML or JSON. - Knowledge of a programming language that can generate HTTP requests; for example, Java or PHP. - -
+
+ Getting Started + + To get started using the &PRODUCT; API, you should have the following: + + URL of the &PRODUCT; server you wish to integrate with. + Both the API Key and Secret Key for an account. This should have been generated by the administrator of the cloud instance and given to you. + Familiarity with HTTP GET/POST and query strings. + Knowledge of either XML or JSON. + Knowledge of a programming language that can generate HTTP requests; for example, Java or PHP. + +
diff --git a/docs/en-US/developer-guide.xml b/docs/en-US/developer-guide.xml index 970fe16ba00..c4bdf39d6fc 100644 --- a/docs/en-US/developer-guide.xml +++ b/docs/en-US/developer-guide.xml @@ -23,8 +23,8 @@ --> - Using the API - + Using the API + diff --git a/docs/en-US/developer-introduction.xml b/docs/en-US/developer-introduction.xml index f2ab1d4f37a..5b9964e5380 100644 --- a/docs/en-US/developer-introduction.xml +++ b/docs/en-US/developer-introduction.xml @@ -23,8 +23,8 @@ -->
- Introduction for Developers - + Introduction for Developers + - +
diff --git a/docs/en-US/developer_guide.xml b/docs/en-US/developer_guide.xml index 9606bab8a16..18ef88a4c68 100644 --- a/docs/en-US/developer_guide.xml +++ b/docs/en-US/developer_guide.xml @@ -23,8 +23,8 @@ --> - Developer Guide - + Developer Guide + diff --git a/docs/en-US/disk-volume-usage-record-format.xml b/docs/en-US/disk-volume-usage-record-format.xml index 72836982251..c15d979e113 100644 --- a/docs/en-US/disk-volume-usage-record-format.xml +++ b/docs/en-US/disk-volume-usage-record-format.xml @@ -17,22 +17,22 @@ -->
- Disk Volume Usage Record Format - For disk volumes, the following fields exist in a usage record. - - account – name of the account - accountid – ID of the account - domainid – ID of the domain in which this account resides - zoneid – Zone where the usage occurred - description – A string describing what the usage record is tracking - usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) - usagetype – A number representing the usage type (see Usage Types) - rawusage – A number representing the actual usage in hours - usageid – The volume ID - offeringid – The ID of the disk offering - type – Hypervisor - templateid – ROOT template ID - size – The amount of storage allocated - startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record - -
+ Disk Volume Usage Record Format + For disk volumes, the following fields exist in a usage record. + + account – name of the account + accountid – ID of the account + domainid – ID of the domain in which this account resides + zoneid – Zone where the usage occurred + description – A string describing what the usage record is tracking + usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) + usagetype – A number representing the usage type (see Usage Types) + rawusage – A number representing the actual usage in hours + usageid – The volume ID + offeringid – The ID of the disk offering + type – Hypervisor + templateid – ROOT template ID + size – The amount of storage allocated + startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record + + diff --git a/docs/en-US/dns-dhcp.xml b/docs/en-US/dns-dhcp.xml index 4d5bf00f907..2359e8380cd 100644 --- a/docs/en-US/dns-dhcp.xml +++ b/docs/en-US/dns-dhcp.xml @@ -23,6 +23,6 @@ -->
- DNS and DHCP - The Virtual Router provides DNS and DHCP services to the guests. It proxies DNS requests to the DNS server configured on the Availability Zone. + DNS and DHCP + The Virtual Router provides DNS and DHCP services to the guests. It proxies DNS requests to the DNS server configured on the Availability Zone.
diff --git a/docs/en-US/domains.xml b/docs/en-US/domains.xml index 9d19c7e9d5e..f348fe88998 100644 --- a/docs/en-US/domains.xml +++ b/docs/en-US/domains.xml @@ -23,6 +23,6 @@ -->
- Domains - If the LDAP server requires SSL, you need to enable it in the ldapConfig command by setting the parameters ssl, truststore, and truststorepass. Before enabling SSL for ldapConfig, you need to get the certificate which the LDAP server is using and add it to a trusted keystore. You will need to know the path to the keystore and the password. -
+ Domains + If the LDAP server requires SSL, you need to enable it in the ldapConfig command by setting the parameters ssl, truststore, and truststorepass. Before enabling SSL for ldapConfig, you need to get the certificate which the LDAP server is using and add it to a trusted keystore. You will need to know the path to the keystore and the password. + diff --git a/docs/en-US/enable-disable-static-nat.xml b/docs/en-US/enable-disable-static-nat.xml index 3a768846960..f25327a54b3 100644 --- a/docs/en-US/enable-disable-static-nat.xml +++ b/docs/en-US/enable-disable-static-nat.xml @@ -23,22 +23,22 @@ -->
- Enabling or Disabling Static NAT - If port forwarding rules are already in effect for an IP address, you cannot enable static NAT to that IP. - If a guest VM is part of more than one network, static NAT rules will function only if they are defined on the default network. - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, choose Network. - Click the name of the network where you want to work with. - Click View IP Addresses. - Click the IP address you want to work with. - - Click the Static NAT button. - - - - ReleaseIPButton.png: button to release an IP - The button toggles between Enable and Disable, depending on whether static NAT is currently enabled for the IP address. - If you are enabling static NAT, a dialog appears where you can choose the destination VM and click Apply - + Enabling or Disabling Static NAT + If port forwarding rules are already in effect for an IP address, you cannot enable static NAT to that IP. + If a guest VM is part of more than one network, static NAT rules will function only if they are defined on the default network. + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, choose Network. + Click the name of the network where you want to work with. + Click View IP Addresses. + Click the IP address you want to work with. + + Click the Static NAT button. + + + + ReleaseIPButton.png: button to release an IP + The button toggles between Enable and Disable, depending on whether static NAT is currently enabled for the IP address. + If you are enabling static NAT, a dialog appears where you can choose the destination VM and click Apply +
diff --git a/docs/en-US/enable-security-groups.xml b/docs/en-US/enable-security-groups.xml index f2e07b3114d..27f69d2cef2 100644 --- a/docs/en-US/enable-security-groups.xml +++ b/docs/en-US/enable-security-groups.xml @@ -23,7 +23,7 @@ -->
- Enabling Security Groups - In order for security groups to function in a zone, the security groups feature must first be enabled for the zone. The administrator can do this when creating a new zone, by selecting a network offering that includes security groups. The procedure is described in Basic Zone Configuration in the Advanced Installation Guide. + Enabling Security Groups + In order for security groups to function in a zone, the security groups feature must first be enabled for the zone. The administrator can do this when creating a new zone, by selecting a network offering that includes security groups. The procedure is described in Basic Zone Configuration in the Advanced Installation Guide.
diff --git a/docs/en-US/enabling-api-call-expiration.xml b/docs/en-US/enabling-api-call-expiration.xml index dd0d9ceccfc..cd82d3d1141 100644 --- a/docs/en-US/enabling-api-call-expiration.xml +++ b/docs/en-US/enabling-api-call-expiration.xml @@ -22,19 +22,19 @@ under the License. --> -
- Enabling API Call Expiration - - You can set an expiry timestamp on API calls to prevent replay attacks over non-secure channels, such as HTTP. The server tracks the expiry timestamp you have specified and rejects all the subsequent API requests that come in after this validity period. - - To enable this feature, add the following parameters to the API request: - - signatureVersion=3: If the signatureVersion parameter is missing or is not equal to 3, the expires parameter is ignored in the API request. - expires=YYYY-MM-DDThh:mm:ssZ: Specifies the date and time at which the signature included in the request is expired. The timestamp is expressed in the YYYY-MM-DDThh:mm:ssZ format, as specified in the ISO 8601 standard. - - For example: - expires=2011-10-10T12:00:00+0530 - A sample API request with expiration is given below: - http://<IPAddress>:8080/client/api?command=listZones&signatureVersion=3&expires=2011-10-10T12:00:00+0530&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D +
+ Enabling API Call Expiration + + You can set an expiry timestamp on API calls to prevent replay attacks over non-secure channels, such as HTTP. The server tracks the expiry timestamp you have specified and rejects all the subsequent API requests that come in after this validity period. + + To enable this feature, add the following parameters to the API request: + + signatureVersion=3: If the signatureVersion parameter is missing or is not equal to 3, the expires parameter is ignored in the API request. + expires=YYYY-MM-DDThh:mm:ssZ: Specifies the date and time at which the signature included in the request is expired. The timestamp is expressed in the YYYY-MM-DDThh:mm:ssZ format, as specified in the ISO 8601 standard. + + For example: + expires=2011-10-10T12:00:00+0530 + A sample API request with expiration is given below: + http://<IPAddress>:8080/client/api?command=listZones&signatureVersion=3&expires=2011-10-10T12:00:00+0530&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D
diff --git a/docs/en-US/enabling-port-8096.xml b/docs/en-US/enabling-port-8096.xml index 9609ee40523..57c492edcd5 100644 --- a/docs/en-US/enabling-port-8096.xml +++ b/docs/en-US/enabling-port-8096.xml @@ -22,16 +22,16 @@ under the License. --> -
- Enabling Port 8096 - - Port 8096, which allows API calls without authentication, is closed and disabled by default on any fresh 3.0.1 installations. You can enable 8096 (or another port) for this purpose as follows: - - - Ensure that the first Management Server is installed and running. - Set the global configuration parameter integration.api.port to the desired port. - Restart the Management Server. - On the Management Server host machine, create an iptables rule allowing access to that port. - -
+
+ Enabling Port 8096 + + Port 8096, which allows API calls without authentication, is closed and disabled by default on any fresh 3.0.1 installations. You can enable 8096 (or another port) for this purpose as follows: + + + Ensure that the first Management Server is installed and running. + Set the global configuration parameter integration.api.port to the desired port. + Restart the Management Server. + On the Management Server host machine, create an iptables rule allowing access to that port. + +
diff --git a/docs/en-US/end-user-ui-overview.xml b/docs/en-US/end-user-ui-overview.xml index 9c52720d69e..dc95ce064b9 100644 --- a/docs/en-US/end-user-ui-overview.xml +++ b/docs/en-US/end-user-ui-overview.xml @@ -23,6 +23,6 @@ -->
- End User's UI Overview - The &PRODUCT; UI helps users of cloud infrastructure to view and use their cloud resources, including virtual machines, templates and ISOs, data volumes and snapshots, guest networks, and IP addresses. If the user is a member or administrator of one or more &PRODUCT; projects, the UI can provide a project-oriented view. + End User's UI Overview + The &PRODUCT; UI helps users of cloud infrastructure to view and use their cloud resources, including virtual machines, templates and ISOs, data volumes and snapshots, guest networks, and IP addresses. If the user is a member or administrator of one or more &PRODUCT; projects, the UI can provide a project-oriented view.
diff --git a/docs/en-US/error-handling.xml b/docs/en-US/error-handling.xml index 869e964850e..3f119bf4d93 100644 --- a/docs/en-US/error-handling.xml +++ b/docs/en-US/error-handling.xml @@ -22,8 +22,8 @@ under the License. --> -
- Error Handling - If an error occurs while processing an API request, the appropriate response in the format specified is returned. Each error response consists of an error code and an error text describing what possibly can go wrong. For an example error response, see page 12. - An HTTP error code of 401 is always returned if API request was rejected due to bad signatures, missing API Keys, or the user simply did not have the permissions to execute the command. +
+ Error Handling + If an error occurs while processing an API request, the appropriate response in the format specified is returned. Each error response consists of an error code and an error text describing what possibly can go wrong. For an example error response, see page 12. + An HTTP error code of 401 is always returned if API request was rejected due to bad signatures, missing API Keys, or the user simply did not have the permissions to execute the command.
diff --git a/docs/en-US/event-log-queries.xml b/docs/en-US/event-log-queries.xml index 1eb449783fc..32a1612ce6c 100644 --- a/docs/en-US/event-log-queries.xml +++ b/docs/en-US/event-log-queries.xml @@ -34,4 +34,4 @@ Storage volume creation and deletion User login and logout -
+
diff --git a/docs/en-US/event-types.xml b/docs/en-US/event-types.xml index 7be69706529..9a710559b15 100644 --- a/docs/en-US/event-types.xml +++ b/docs/en-US/event-types.xml @@ -22,199 +22,199 @@ under the License. --> -
- Event Types - - - - - - - VM.CREATE - TEMPLATE.EXTRACT - SG.REVOKE.INGRESS - - - VM.DESTROY - TEMPLATE.UPLOAD - HOST.RECONNECT - - - VM.START - TEMPLATE.CLEANUP - MAINT.CANCEL - - - VM.STOP - VOLUME.CREATE - MAINT.CANCEL.PS - - - VM.REBOOT - VOLUME.DELETE - MAINT.PREPARE - - - VM.UPGRADE - VOLUME.ATTACH - MAINT.PREPARE.PS - - - VM.RESETPASSWORD - VOLUME.DETACH - VPN.REMOTE.ACCESS.CREATE - - - ROUTER.CREATE - VOLUME.UPLOAD - VPN.USER.ADD - - - ROUTER.DESTROY - SERVICEOFFERING.CREATE - VPN.USER.REMOVE - - - ROUTER.START - SERVICEOFFERING.UPDATE - NETWORK.RESTART - - - ROUTER.STOP - SERVICEOFFERING.DELETE - UPLOAD.CUSTOM.CERTIFICATE - - - ROUTER.REBOOT - DOMAIN.CREATE - UPLOAD.CUSTOM.CERTIFICATE - - - ROUTER.HA - DOMAIN.DELETE - STATICNAT.DISABLE - - - PROXY.CREATE - DOMAIN.UPDATE - SSVM.CREATE - - - PROXY.DESTROY - SNAPSHOT.CREATE - SSVM.DESTROY - - - PROXY.START - SNAPSHOT.DELETE - SSVM.START - - - PROXY.STOP - SNAPSHOTPOLICY.CREATE - SSVM.STOP - - - PROXY.REBOOT - SNAPSHOTPOLICY.UPDATE - SSVM.REBOOT - - - PROXY.HA - SNAPSHOTPOLICY.DELETE - SSVM.H - - - VNC.CONNECT - VNC.DISCONNECT - NET.IPASSIGN - - - NET.IPRELEASE - NET.RULEADD - NET.RULEDELETE - - - NET.RULEMODIFY - NETWORK.CREATE - NETWORK.DELETE - - - LB.ASSIGN.TO.RULE - LB.REMOVE.FROM.RULE - LB.CREATE - - - LB.DELETE - LB.UPDATE - USER.LOGIN - - - USER.LOGOUT - USER.CREATE - USER.DELETE - - - USER.UPDATE - USER.DISABLE - TEMPLATE.CREATE - - - TEMPLATE.DELETE - TEMPLATE.UPDATE - TEMPLATE.COPY - - - TEMPLATE.DOWNLOAD.START - TEMPLATE.DOWNLOAD.SUCCESS - TEMPLATE.DOWNLOAD.FAILED - - - ISO.CREATE - ISO.DELETE - ISO.COPY - - - ISO.ATTACH - ISO.DETACH - ISO.EXTRACT - - - ISO.UPLOAD - SERVICE.OFFERING.CREATE - SERVICE.OFFERING.EDIT - - - SERVICE.OFFERING.DELETE - DISK.OFFERING.CREATE - DISK.OFFERING.EDIT - - - DISK.OFFERING.DELETE - NETWORK.OFFERING.CREATE - NETWORK.OFFERING.EDIT - - - NETWORK.OFFERING.DELETE - POD.CREATE - POD.EDIT - - - POD.DELETE - ZONE.CREATE - ZONE.EDIT - - - ZONE.DELETE - VLAN.IP.RANGE.CREATE - VLAN.IP.RANGE.DELETE - - - CONFIGURATION.VALUE.EDIT - SG.AUTH.INGRESS - - - - - -
+
+ Event Types + + + + + + + VM.CREATE + TEMPLATE.EXTRACT + SG.REVOKE.INGRESS + + + VM.DESTROY + TEMPLATE.UPLOAD + HOST.RECONNECT + + + VM.START + TEMPLATE.CLEANUP + MAINT.CANCEL + + + VM.STOP + VOLUME.CREATE + MAINT.CANCEL.PS + + + VM.REBOOT + VOLUME.DELETE + MAINT.PREPARE + + + VM.UPGRADE + VOLUME.ATTACH + MAINT.PREPARE.PS + + + VM.RESETPASSWORD + VOLUME.DETACH + VPN.REMOTE.ACCESS.CREATE + + + ROUTER.CREATE + VOLUME.UPLOAD + VPN.USER.ADD + + + ROUTER.DESTROY + SERVICEOFFERING.CREATE + VPN.USER.REMOVE + + + ROUTER.START + SERVICEOFFERING.UPDATE + NETWORK.RESTART + + + ROUTER.STOP + SERVICEOFFERING.DELETE + UPLOAD.CUSTOM.CERTIFICATE + + + ROUTER.REBOOT + DOMAIN.CREATE + UPLOAD.CUSTOM.CERTIFICATE + + + ROUTER.HA + DOMAIN.DELETE + STATICNAT.DISABLE + + + PROXY.CREATE + DOMAIN.UPDATE + SSVM.CREATE + + + PROXY.DESTROY + SNAPSHOT.CREATE + SSVM.DESTROY + + + PROXY.START + SNAPSHOT.DELETE + SSVM.START + + + PROXY.STOP + SNAPSHOTPOLICY.CREATE + SSVM.STOP + + + PROXY.REBOOT + SNAPSHOTPOLICY.UPDATE + SSVM.REBOOT + + + PROXY.HA + SNAPSHOTPOLICY.DELETE + SSVM.H + + + VNC.CONNECT + VNC.DISCONNECT + NET.IPASSIGN + + + NET.IPRELEASE + NET.RULEADD + NET.RULEDELETE + + + NET.RULEMODIFY + NETWORK.CREATE + NETWORK.DELETE + + + LB.ASSIGN.TO.RULE + LB.REMOVE.FROM.RULE + LB.CREATE + + + LB.DELETE + LB.UPDATE + USER.LOGIN + + + USER.LOGOUT + USER.CREATE + USER.DELETE + + + USER.UPDATE + USER.DISABLE + TEMPLATE.CREATE + + + TEMPLATE.DELETE + TEMPLATE.UPDATE + TEMPLATE.COPY + + + TEMPLATE.DOWNLOAD.START + TEMPLATE.DOWNLOAD.SUCCESS + TEMPLATE.DOWNLOAD.FAILED + + + ISO.CREATE + ISO.DELETE + ISO.COPY + + + ISO.ATTACH + ISO.DETACH + ISO.EXTRACT + + + ISO.UPLOAD + SERVICE.OFFERING.CREATE + SERVICE.OFFERING.EDIT + + + SERVICE.OFFERING.DELETE + DISK.OFFERING.CREATE + DISK.OFFERING.EDIT + + + DISK.OFFERING.DELETE + NETWORK.OFFERING.CREATE + NETWORK.OFFERING.EDIT + + + NETWORK.OFFERING.DELETE + POD.CREATE + POD.EDIT + + + POD.DELETE + ZONE.CREATE + ZONE.EDIT + + + ZONE.DELETE + VLAN.IP.RANGE.CREATE + VLAN.IP.RANGE.DELETE + + + CONFIGURATION.VALUE.EDIT + SG.AUTH.INGRESS + + + + + +
diff --git a/docs/en-US/events-log.xml b/docs/en-US/events-log.xml index 5db856a8b7f..9de679ea130 100644 --- a/docs/en-US/events-log.xml +++ b/docs/en-US/events-log.xml @@ -25,4 +25,4 @@
Event Logs There are two types of events logged in the &PRODUCT; Event Log. Standard events log the success or failure of an event and can be used to identify jobs or processes that have failed. There are also long running job events. Events for asynchronous jobs log when a job is scheduled, when it starts, and when it completes. Other long running synchronous jobs log when a job starts, and when it completes. Long running synchronous and asynchronous event logs can be used to gain more information on the status of a pending job or can be used to identify a job that is hanging or has not started. The following sections provide more information on these events.. -
+ diff --git a/docs/en-US/events.xml b/docs/en-US/events.xml index 9d672ff4c0d..cbefc544b60 100644 --- a/docs/en-US/events.xml +++ b/docs/en-US/events.xml @@ -23,7 +23,7 @@ -->
- + diff --git a/docs/en-US/example-response-from-listUsageRecords.xml b/docs/en-US/example-response-from-listUsageRecords.xml index 8ed752de55c..e0d79240e09 100644 --- a/docs/en-US/example-response-from-listUsageRecords.xml +++ b/docs/en-US/example-response-from-listUsageRecords.xml @@ -22,35 +22,35 @@ under the License. --> -
- Example response from listUsageRecords - - All &PRODUCT; API requests are submitted in the form of a HTTP GET/POST with an associated command and any parameters. A request is composed of the following whether in HTTP or HTTPS: - - - <listusagerecordsresponse> - <count>1816</count> - <usagerecord> - <account>user5</account> - <accountid>10004</accountid> - <domainid>1</domainid> - <zoneid>1</zoneid> - <description>i-3-4-WC running time (ServiceOffering: 1) (Template: 3)</description> - <usage>2.95288 Hrs</usage> - <usagetype>1</usagetype> - <rawusage>2.95288</rawusage> - <virtualmachineid>4</virtualmachineid> - <name>i-3-4-WC</name> - <offeringid>1</offeringid> - <templateid>3</templateid> - <usageid>245554</usageid> - <type>XenServer</type> - <startdate>2009-09-15T00:00:00-0700</startdate> - <enddate>2009-09-18T16:14:26-0700</enddate> - </usagerecord> +
+ Example response from listUsageRecords + + All &PRODUCT; API requests are submitted in the form of a HTTP GET/POST with an associated command and any parameters. A request is composed of the following whether in HTTP or HTTPS: + + + <listusagerecordsresponse> + <count>1816</count> + <usagerecord> + <account>user5</account> + <accountid>10004</accountid> + <domainid>1</domainid> + <zoneid>1</zoneid> + <description>i-3-4-WC running time (ServiceOffering: 1) (Template: 3)</description> + <usage>2.95288 Hrs</usage> + <usagetype>1</usagetype> + <rawusage>2.95288</rawusage> + <virtualmachineid>4</virtualmachineid> + <name>i-3-4-WC</name> + <offeringid>1</offeringid> + <templateid>3</templateid> + <usageid>245554</usageid> + <type>XenServer</type> + <startdate>2009-09-15T00:00:00-0700</startdate> + <enddate>2009-09-18T16:14:26-0700</enddate> + </usagerecord> - … (1,815 more usage records) - </listusagerecordsresponse> - -
+ … (1,815 more usage records) + </listusagerecordsresponse> +
+
diff --git a/docs/en-US/export-template.xml b/docs/en-US/export-template.xml index 05df2c0974b..c225e360344 100644 --- a/docs/en-US/export-template.xml +++ b/docs/en-US/export-template.xml @@ -23,7 +23,7 @@ -->
- Exporting Templates - End users and Administrators may export templates from the &PRODUCT;. Navigate to the template in the UI and choose the Download function from the Actions menu. + Exporting Templates + End users and Administrators may export templates from the &PRODUCT;. Navigate to the template in the UI and choose the Download function from the Actions menu.
diff --git a/docs/en-US/feature-overview.xml b/docs/en-US/feature-overview.xml index 7413e43edc6..236d78b026b 100644 --- a/docs/en-US/feature-overview.xml +++ b/docs/en-US/feature-overview.xml @@ -23,46 +23,46 @@ -->
- What Can &PRODUCT; Do? - - Multiple Hypervisor Support - - - &PRODUCT; works with a variety of hypervisors. A single cloud deployment can contain multiple hypervisor implementations. You have the complete freedom to choose the right hypervisor for your workload. - - - &PRODUCT; is designed to work with open source Xen and KVM hypervisors as well as enterprise-grade hypervisors such as Citrix XenServer, VMware vSphere, and Oracle VM (OVM). You can also provision “bare metal” hosts with no hypervisor (Beta feature. Untested in &PRODUCT; 3.0.x.) - - - Massively Scalable Infrastructure Management - - - &PRODUCT; can manage tens of thousands of servers installed in multiple geographically distributed datacenters. The centralized management server scales linearly, eliminating the need for intermediate cluster-level management servers. No single component failure can cause cloud-wide outage. Periodic maintenance of the management server can be performed without affecting the functioning of virtual machines running in the cloud. - - - Automatic Configuration Management - - &PRODUCT; automatically configures each guest virtual machine’s networking and storage settings. - - &PRODUCT; internally manages a pool of virtual appliances to support the cloud itself. These appliances offer services such as firewalling, routing, DHCP, VPN access, console proxy, storage access, and storage replication. The extensive use of virtual appliances simplifies the installation, configuration, and ongoing management of a cloud deployment. - - - Graphical User Interface - - &PRODUCT; offers an administrator's Web interface, used for provisioning and managing the cloud, as well as an end-user's Web interface, used for running VMs and managing VM templates. The UI can be customized to reflect the desired service provider or enterprise look and feel. - - - API and Extensibility - - - &PRODUCT; provides an API that gives programmatic access to all the management features available in the UI. The API is maintained and documented. This API enables the creation of command line tools and new user interfaces to suit particular needs. See the Developer’s Guide and API Reference, both available at http://docs.cloudstack.org/Apache_CloudStack_Documentation. - - - The &PRODUCT; pluggable allocation architecture allows the creation of new types of allocators for the selection of storage and Hosts. See the Allocator Implementation Guide (http://docs.cloudstack.org/CloudStack_Documentation/Allocator_Implementation_Guide). - - - High Availability - - &PRODUCT; has a number of features to increase the availability of the system. The Management Server itself may be deployed in a multi-node installation where the servers are load balanced. MySQL may be configured to use replication to provide for a manual failover in the event of database loss. For the hosts, &PRODUCT; supports NIC bonding and the use of separate networks for storage as well as iSCSI Multipath. - + What Can &PRODUCT; Do? + + Multiple Hypervisor Support + + + &PRODUCT; works with a variety of hypervisors. A single cloud deployment can contain multiple hypervisor implementations. You have the complete freedom to choose the right hypervisor for your workload. + + + &PRODUCT; is designed to work with open source Xen and KVM hypervisors as well as enterprise-grade hypervisors such as Citrix XenServer, VMware vSphere, and Oracle VM (OVM). You can also provision “bare metal” hosts with no hypervisor (Beta feature. Untested in &PRODUCT; 3.0.x.) + + + Massively Scalable Infrastructure Management + + + &PRODUCT; can manage tens of thousands of servers installed in multiple geographically distributed datacenters. The centralized management server scales linearly, eliminating the need for intermediate cluster-level management servers. No single component failure can cause cloud-wide outage. Periodic maintenance of the management server can be performed without affecting the functioning of virtual machines running in the cloud. + + + Automatic Configuration Management + + &PRODUCT; automatically configures each guest virtual machine’s networking and storage settings. + + &PRODUCT; internally manages a pool of virtual appliances to support the cloud itself. These appliances offer services such as firewalling, routing, DHCP, VPN access, console proxy, storage access, and storage replication. The extensive use of virtual appliances simplifies the installation, configuration, and ongoing management of a cloud deployment. + + + Graphical User Interface + + &PRODUCT; offers an administrator's Web interface, used for provisioning and managing the cloud, as well as an end-user's Web interface, used for running VMs and managing VM templates. The UI can be customized to reflect the desired service provider or enterprise look and feel. + + + API and Extensibility + + + &PRODUCT; provides an API that gives programmatic access to all the management features available in the UI. The API is maintained and documented. This API enables the creation of command line tools and new user interfaces to suit particular needs. See the Developer’s Guide and API Reference, both available at http://docs.cloudstack.org/Apache_CloudStack_Documentation. + + + The &PRODUCT; pluggable allocation architecture allows the creation of new types of allocators for the selection of storage and Hosts. See the Allocator Implementation Guide (http://docs.cloudstack.org/CloudStack_Documentation/Allocator_Implementation_Guide). + + + High Availability + + &PRODUCT; has a number of features to increase the availability of the system. The Management Server itself may be deployed in a multi-node installation where the servers are load balanced. MySQL may be configured to use replication to provide for a manual failover in the event of database loss. For the hosts, &PRODUCT; supports NIC bonding and the use of separate networks for storage as well as iSCSI Multipath. +
diff --git a/docs/en-US/firewall-rules.xml b/docs/en-US/firewall-rules.xml index 59231515633..388bf7e2885 100644 --- a/docs/en-US/firewall-rules.xml +++ b/docs/en-US/firewall-rules.xml @@ -23,34 +23,34 @@ -->
- Firewall Rules - By default, all incoming traffic to the public IP address is rejected by the firewall. To allow external traffic, you can open firewall ports by specifying firewall rules. You can optionally specify one or more CIDRs to filter the source IPs. This is useful when you want to allow only incoming requests from certain IP addresses. - You cannot use firewall rules to open ports for an elastic IP address. When elastic IP is used, outside access is instead controlled through the use of security groups. See . - Firewall rules can be created using the Firewall tab in the Management Server UI. This tab is not displayed by default when &PRODUCT; is installed. To display the Firewall tab, the &PRODUCT; administrator must set the global configuration parameter firewall.rule.ui.enabled to "true." - To create a firewall rule: - - Log in to the &PRODUCT; UI as an administrator or end user. - In the left navigation, choose Network. - Click the name of the network where you want to work with. - Click View IP Addresses. - Click the IP address you want to work with. - - Click the Configuration tab and fill in the following values. - - Source CIDR. (Optional) To accept only traffic from IP - addresses within a particular address block, enter a CIDR or a - comma-separated list of CIDRs. Example: 192.168.0.0/22. Leave empty to allow - all CIDRs. - Protocol. The communication protocol in use on the opened - port(s). - Start Port and End Port. The port(s) you want to open on the - firewall. If you are opening a single port, use the same number in both - fields - ICMP Type and ICMP Code. Used only if Protocol is set to - ICMP. Provide the type and code required by the ICMP protocol to fill out - the ICMP header. Refer to ICMP documentation for more details if you are not - sure what to enter - - Click Add - + Firewall Rules + By default, all incoming traffic to the public IP address is rejected by the firewall. To allow external traffic, you can open firewall ports by specifying firewall rules. You can optionally specify one or more CIDRs to filter the source IPs. This is useful when you want to allow only incoming requests from certain IP addresses. + You cannot use firewall rules to open ports for an elastic IP address. When elastic IP is used, outside access is instead controlled through the use of security groups. See . + Firewall rules can be created using the Firewall tab in the Management Server UI. This tab is not displayed by default when &PRODUCT; is installed. To display the Firewall tab, the &PRODUCT; administrator must set the global configuration parameter firewall.rule.ui.enabled to "true." + To create a firewall rule: + + Log in to the &PRODUCT; UI as an administrator or end user. + In the left navigation, choose Network. + Click the name of the network where you want to work with. + Click View IP Addresses. + Click the IP address you want to work with. + + Click the Configuration tab and fill in the following values. + + Source CIDR. (Optional) To accept only traffic from IP + addresses within a particular address block, enter a CIDR or a + comma-separated list of CIDRs. Example: 192.168.0.0/22. Leave empty to allow + all CIDRs. + Protocol. The communication protocol in use on the opened + port(s). + Start Port and End Port. The port(s) you want to open on the + firewall. If you are opening a single port, use the same number in both + fields + ICMP Type and ICMP Code. Used only if Protocol is set to + ICMP. Provide the type and code required by the ICMP protocol to fill out + the ICMP header. Refer to ICMP documentation for more details if you are not + sure what to enter + + Click Add +
diff --git a/docs/en-US/first_ms_node_install.xml b/docs/en-US/first_ms_node_install.xml index ea9c2f3b45e..fcb4a864875 100644 --- a/docs/en-US/first_ms_node_install.xml +++ b/docs/en-US/first_ms_node_install.xml @@ -22,37 +22,37 @@ under the License. --> -
- Install the First Management Server - - Download the &PRODUCT; Management Server onto the host where it will run from one of the following links. If your operating system is CentOS, use the download file for RHEL. - - Open-source community: http://sourceforge.net/projects/cloudstack/files/CloudStack Acton/ - Commercial customers: https://www.citrix.com/English/ss/downloads/. - Commercial customers will need a MyCitrix account. - - - - Install the &PRODUCT; packages. You should have a file in the form of “CloudStack-VERSION-N-OSVERSION.tar.gz”. Untar the file and then run the install.sh script inside it. Replace the file and directory names below with those you are using: - # tar xzf CloudStack-VERSION-N-OSVERSION.tar.gz +
+ Install the First Management Server + + Download the &PRODUCT; Management Server onto the host where it will run from one of the following links. If your operating system is CentOS, use the download file for RHEL. + + Open-source community: http://sourceforge.net/projects/cloudstack/files/CloudStack Acton/ + Commercial customers: https://www.citrix.com/English/ss/downloads/. + Commercial customers will need a MyCitrix account. + + + + Install the &PRODUCT; packages. You should have a file in the form of “CloudStack-VERSION-N-OSVERSION.tar.gz”. Untar the file and then run the install.sh script inside it. Replace the file and directory names below with those you are using: + # tar xzf CloudStack-VERSION-N-OSVERSION.tar.gz # cd CloudStack-VERSION-N-OSVERSION # ./install.sh - You should see a few messages as the installer prepares, followed by a list of choices. - - Choose M to install the Management Server software. - > M - - Wait for a message like “Complete! Done,” which indicates that the software was installed successfully. - - (RHEL or CentOS) When the installation is finished, run the following commands to start essential services (the commands might be different depending on your OS): - # service rpcbind start + You should see a few messages as the installer prepares, followed by a list of choices. + + Choose M to install the Management Server software. + > M + + Wait for a message like “Complete! Done,” which indicates that the software was installed successfully. + + (RHEL or CentOS) When the installation is finished, run the following commands to start essential services (the commands might be different depending on your OS): + # service rpcbind start # service nfs start # chkconfig nfs on # chkconfig rpcbind on - - - Continue to Install and Configure the Database. - - -
+
+
+ Continue to Install and Configure the Database. + +
+
diff --git a/docs/en-US/globally-configured-limit.xml b/docs/en-US/globally-configured-limit.xml index 95d8895f570..ac71112b310 100644 --- a/docs/en-US/globally-configured-limit.xml +++ b/docs/en-US/globally-configured-limit.xml @@ -23,78 +23,78 @@ -->
- Globally Configured Limits - In a zone, the guest virtual network has a 24 bit CIDR by default. This limits the guest virtual network to 254 running instances. It can be adjusted as needed, but this must be done before any instances are created in the zone. For example, 10.1.1.0/22 would provide for ~1000 addresses. - The following table lists limits set in the Global Configuration: - - - - - Parameter Name - Definition - - - - - - max.account.public.ips - Number of public IP addresses that can be owned by an account - - - - max.account.snapshots - Number of snapshots that can exist for an account - - - - - max.account.templates - Number of templates that can exist for an account - - - - max.account.user.vms - Number of virtual machine instances that can exist for an account - - - - max.account.volumes - Number of disk volumes that can exist for an account - - - - max.template.iso.size - Maximum size for a downloaded template or ISO in GB - - - - max.volume.size.gb - Maximum size for a volume in GB - - - network.throttling.rate - Default data transfer rate in megabits per second allowed per user (supported on XenServer) - - - snapshot.max.hourly - Maximum recurring hourly snapshots to be retained for a volume. If the limit is reached, early snapshots from the start of the hour are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring hourly snapshots can not be scheduled - - - - snapshot.max.daily - Maximum recurring daily snapshots to be retained for a volume. If the limit is reached, snapshots from the start of the day are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring daily snapshots can not be scheduled - - - snapshot.max.weekly - Maximum recurring weekly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the week are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring weekly snapshots can not be scheduled - - - - snapshot.max.monthly - Maximum recurring monthly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the month are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring monthly snapshots can not be scheduled. - - - - - To modify global configuration parameters, use the global configuration screen in the &PRODUCT; UI. See Setting Global Configuration Parameters + Globally Configured Limits + In a zone, the guest virtual network has a 24 bit CIDR by default. This limits the guest virtual network to 254 running instances. It can be adjusted as needed, but this must be done before any instances are created in the zone. For example, 10.1.1.0/22 would provide for ~1000 addresses. + The following table lists limits set in the Global Configuration: + + + + + Parameter Name + Definition + + + + + + max.account.public.ips + Number of public IP addresses that can be owned by an account + + + + max.account.snapshots + Number of snapshots that can exist for an account + + + + + max.account.templates + Number of templates that can exist for an account + + + + max.account.user.vms + Number of virtual machine instances that can exist for an account + + + + max.account.volumes + Number of disk volumes that can exist for an account + + + + max.template.iso.size + Maximum size for a downloaded template or ISO in GB + + + + max.volume.size.gb + Maximum size for a volume in GB + + + network.throttling.rate + Default data transfer rate in megabits per second allowed per user (supported on XenServer) + + + snapshot.max.hourly + Maximum recurring hourly snapshots to be retained for a volume. If the limit is reached, early snapshots from the start of the hour are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring hourly snapshots can not be scheduled + + + + snapshot.max.daily + Maximum recurring daily snapshots to be retained for a volume. If the limit is reached, snapshots from the start of the day are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring daily snapshots can not be scheduled + + + snapshot.max.weekly + Maximum recurring weekly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the week are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring weekly snapshots can not be scheduled + + + + snapshot.max.monthly + Maximum recurring monthly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the month are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring monthly snapshots can not be scheduled. + + + + + To modify global configuration parameters, use the global configuration screen in the &PRODUCT; UI. See Setting Global Configuration Parameters
diff --git a/docs/en-US/globally-configured-limits.xml b/docs/en-US/globally-configured-limits.xml index 95d8895f570..ac71112b310 100644 --- a/docs/en-US/globally-configured-limits.xml +++ b/docs/en-US/globally-configured-limits.xml @@ -23,78 +23,78 @@ -->
- Globally Configured Limits - In a zone, the guest virtual network has a 24 bit CIDR by default. This limits the guest virtual network to 254 running instances. It can be adjusted as needed, but this must be done before any instances are created in the zone. For example, 10.1.1.0/22 would provide for ~1000 addresses. - The following table lists limits set in the Global Configuration: - - - - - Parameter Name - Definition - - - - - - max.account.public.ips - Number of public IP addresses that can be owned by an account - - - - max.account.snapshots - Number of snapshots that can exist for an account - - - - - max.account.templates - Number of templates that can exist for an account - - - - max.account.user.vms - Number of virtual machine instances that can exist for an account - - - - max.account.volumes - Number of disk volumes that can exist for an account - - - - max.template.iso.size - Maximum size for a downloaded template or ISO in GB - - - - max.volume.size.gb - Maximum size for a volume in GB - - - network.throttling.rate - Default data transfer rate in megabits per second allowed per user (supported on XenServer) - - - snapshot.max.hourly - Maximum recurring hourly snapshots to be retained for a volume. If the limit is reached, early snapshots from the start of the hour are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring hourly snapshots can not be scheduled - - - - snapshot.max.daily - Maximum recurring daily snapshots to be retained for a volume. If the limit is reached, snapshots from the start of the day are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring daily snapshots can not be scheduled - - - snapshot.max.weekly - Maximum recurring weekly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the week are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring weekly snapshots can not be scheduled - - - - snapshot.max.monthly - Maximum recurring monthly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the month are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring monthly snapshots can not be scheduled. - - - - - To modify global configuration parameters, use the global configuration screen in the &PRODUCT; UI. See Setting Global Configuration Parameters + Globally Configured Limits + In a zone, the guest virtual network has a 24 bit CIDR by default. This limits the guest virtual network to 254 running instances. It can be adjusted as needed, but this must be done before any instances are created in the zone. For example, 10.1.1.0/22 would provide for ~1000 addresses. + The following table lists limits set in the Global Configuration: + + + + + Parameter Name + Definition + + + + + + max.account.public.ips + Number of public IP addresses that can be owned by an account + + + + max.account.snapshots + Number of snapshots that can exist for an account + + + + + max.account.templates + Number of templates that can exist for an account + + + + max.account.user.vms + Number of virtual machine instances that can exist for an account + + + + max.account.volumes + Number of disk volumes that can exist for an account + + + + max.template.iso.size + Maximum size for a downloaded template or ISO in GB + + + + max.volume.size.gb + Maximum size for a volume in GB + + + network.throttling.rate + Default data transfer rate in megabits per second allowed per user (supported on XenServer) + + + snapshot.max.hourly + Maximum recurring hourly snapshots to be retained for a volume. If the limit is reached, early snapshots from the start of the hour are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring hourly snapshots can not be scheduled + + + + snapshot.max.daily + Maximum recurring daily snapshots to be retained for a volume. If the limit is reached, snapshots from the start of the day are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring daily snapshots can not be scheduled + + + snapshot.max.weekly + Maximum recurring weekly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the week are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring weekly snapshots can not be scheduled + + + + snapshot.max.monthly + Maximum recurring monthly snapshots to be retained for a volume. If the limit is reached, snapshots from the beginning of the month are deleted so that newer ones can be saved. This limit does not apply to manual snapshots. If set to 0, recurring monthly snapshots can not be scheduled. + + + + + To modify global configuration parameters, use the global configuration screen in the &PRODUCT; UI. See Setting Global Configuration Parameters
diff --git a/docs/en-US/guest-ip-ranges.xml b/docs/en-US/guest-ip-ranges.xml index 08267a8c1d8..1f8c8a1a4b1 100644 --- a/docs/en-US/guest-ip-ranges.xml +++ b/docs/en-US/guest-ip-ranges.xml @@ -23,6 +23,6 @@ -->
- Guest IP Ranges - The IP ranges for guest network traffic are set on a per-account basis by the user. This allows the users to configure their network in a fashion that will enable VPN linking between their guest network and their clients. + Guest IP Ranges + The IP ranges for guest network traffic are set on a per-account basis by the user. This allows the users to configure their network in a fashion that will enable VPN linking between their guest network and their clients.
diff --git a/docs/en-US/guest-network.xml b/docs/en-US/guest-network.xml index c9dee8032e5..692eb29f525 100644 --- a/docs/en-US/guest-network.xml +++ b/docs/en-US/guest-network.xml @@ -23,7 +23,7 @@ -->
- Guest Network - In a &PRODUCT; cloud, guest VMs can communicate with each other using shared infrastructure with the security and user perception that the guests have a private LAN. - The &PRODUCT; virtual router is the main component providing networking features for guest traffic. + Guest Network + In a &PRODUCT; cloud, guest VMs can communicate with each other using shared infrastructure with the security and user perception that the guests have a private LAN. + The &PRODUCT; virtual router is the main component providing networking features for guest traffic.
diff --git a/docs/en-US/guest-traffic.xml b/docs/en-US/guest-traffic.xml index b5c50ccb6d6..96f9c062db8 100644 --- a/docs/en-US/guest-traffic.xml +++ b/docs/en-US/guest-traffic.xml @@ -23,16 +23,16 @@ -->
- Guest Traffic - A network can carry guest traffic only between VMs within one zone. Virtual machines in different zones cannot communicate with each other using their IP addresses; they must communicate with each other by routing through a public IP address. - Figure 1 illustrates a typical guest traffic setup: - - - - - guesttraffic.png: Depicts a guest traffic setup - - The Management Server automatically creates a virtual router for each network. A virtual router is a special virtual machine that runs on the hosts. Each virtual router has three network interfaces. Its eth0 interface serves as the gateway for the guest traffic and has the IP address of 10.1.1.1. Its eth1 interface is used by the system to configure the virtual router. Its eth2 interface is assigned a public IP address for public traffic. - The virtual router provides DHCP and will automatically assign an IP address for each guest VM within the IP range assigned for the network. The user can manually reconfigure guest VMs to assume different IP addresses. - Source NAT is automatically configured in the virtual router to forward outbound traffic for all guest VMs + Guest Traffic + A network can carry guest traffic only between VMs within one zone. Virtual machines in different zones cannot communicate with each other using their IP addresses; they must communicate with each other by routing through a public IP address. + Figure 1 illustrates a typical guest traffic setup: + + + + + guesttraffic.png: Depicts a guest traffic setup + + The Management Server automatically creates a virtual router for each network. A virtual router is a special virtual machine that runs on the hosts. Each virtual router has three network interfaces. Its eth0 interface serves as the gateway for the guest traffic and has the IP address of 10.1.1.1. Its eth1 interface is used by the system to configure the virtual router. Its eth2 interface is assigned a public IP address for public traffic. + The virtual router provides DHCP and will automatically assign an IP address for each guest VM within the IP range assigned for the network. The user can manually reconfigure guest VMs to assume different IP addresses. + Source NAT is automatically configured in the virtual router to forward outbound traffic for all guest VMs
diff --git a/docs/en-US/host-add.xml b/docs/en-US/host-add.xml index e86760aca43..2a984fd02ba 100644 --- a/docs/en-US/host-add.xml +++ b/docs/en-US/host-add.xml @@ -23,6 +23,6 @@ -->
- Adding a Host - TODO + Adding a Host + TODO
diff --git a/docs/en-US/hypervisor-support-for-primarystorage.xml b/docs/en-US/hypervisor-support-for-primarystorage.xml index 7c547a6683e..ca266a43013 100644 --- a/docs/en-US/hypervisor-support-for-primarystorage.xml +++ b/docs/en-US/hypervisor-support-for-primarystorage.xml @@ -23,80 +23,80 @@ -->
- Hypervisor Support for Primary Storage - The following table shows storage options and parameters for different hypervisors. - - - - - - - - - - - - - VMware vSphere - Citrix XenServer - KVM - Oracle VM - - - - - Format for Disks, Templates, and - Snapshots - VMDK - VHD - QCOW2 - RAW - - - iSCSI support - VMFS - Clustered LVM - Yes, via Shared Mountpoint - Yes, via OCFS2M - - - Fiber Channel support - VMFS - Yes, via Existing SR - Yes, via Shared Mountpoint - No - - - NFS support - Y - Y - Y - Y - - - - Local storage support - Y - Y - Y - Y - - - - Storage over-provisioning - NFS and iSCSI - NFS - NFS - No - - - - - - XenServer uses a clustered LVM system to store VM images on iSCSI and Fiber Channel volumes and does not support over-provisioning in the hypervisor. The storage server itself, however, can support thin-provisioning. As a result the &PRODUCT; can still support storage over-provisioning by running on thin-provisioned storage volumes. - KVM supports "Shared Mountpoint" storage. A shared mountpoint is a file system path local to each server in a given cluster. The path must be the same across all Hosts in the cluster, for example /mnt/primary1. This shared mountpoint is assumed to be a clustered filesystem such as OCFS2. In this case the &PRODUCT; does not attempt to mount or unmount the storage as is done with NFS. The &PRODUCT; requires that the administrator insure that the storage is available - Oracle VM supports both iSCSI and NFS storage. When iSCSI is used with OVM, the &PRODUCT; administrator is responsible for setting up iSCSI on the host, including re-mounting the storage after the host recovers from a failure such as a network outage. With other hypervisors, &PRODUCT; takes care of mounting the iSCSI target on the host whenever it discovers a connection with an iSCSI server and unmounting the target when it discovers the connection is down. - With NFS storage, &PRODUCT; manages the overprovisioning. In this case the global configuration parameter storage.overprovisioning.factor controls the degree of overprovisioning. This is independent of hypervisor type. - Local storage is an option for primary storage for vSphere, XenServer, Oracle VM, and KVM. When the local disk option is enabled, a local disk storage pool is automatically created on each host. To use local storage for the System Virtual Machines (such as the Virtual Router), set system.vm.use.local.storage to true in global configuration. - &PRODUCT; supports multiple primary storage pools in a Cluster. For example, you could provision 2 NFS servers in primary storage. Or you could provision 1 iSCSI LUN initially and then add a second iSCSI LUN when the first approaches capacity. -
+ Hypervisor Support for Primary Storage + The following table shows storage options and parameters for different hypervisors. + + + + + + + + + + + + + VMware vSphere + Citrix XenServer + KVM + Oracle VM + + + + + Format for Disks, Templates, and + Snapshots + VMDK + VHD + QCOW2 + RAW + + + iSCSI support + VMFS + Clustered LVM + Yes, via Shared Mountpoint + Yes, via OCFS2M + + + Fiber Channel support + VMFS + Yes, via Existing SR + Yes, via Shared Mountpoint + No + + + NFS support + Y + Y + Y + Y + + + + Local storage support + Y + Y + Y + Y + + + + Storage over-provisioning + NFS and iSCSI + NFS + NFS + No + + + + + + XenServer uses a clustered LVM system to store VM images on iSCSI and Fiber Channel volumes and does not support over-provisioning in the hypervisor. The storage server itself, however, can support thin-provisioning. As a result the &PRODUCT; can still support storage over-provisioning by running on thin-provisioned storage volumes. + KVM supports "Shared Mountpoint" storage. A shared mountpoint is a file system path local to each server in a given cluster. The path must be the same across all Hosts in the cluster, for example /mnt/primary1. This shared mountpoint is assumed to be a clustered filesystem such as OCFS2. In this case the &PRODUCT; does not attempt to mount or unmount the storage as is done with NFS. The &PRODUCT; requires that the administrator insure that the storage is available + Oracle VM supports both iSCSI and NFS storage. When iSCSI is used with OVM, the &PRODUCT; administrator is responsible for setting up iSCSI on the host, including re-mounting the storage after the host recovers from a failure such as a network outage. With other hypervisors, &PRODUCT; takes care of mounting the iSCSI target on the host whenever it discovers a connection with an iSCSI server and unmounting the target when it discovers the connection is down. + With NFS storage, &PRODUCT; manages the overprovisioning. In this case the global configuration parameter storage.overprovisioning.factor controls the degree of overprovisioning. This is independent of hypervisor type. + Local storage is an option for primary storage for vSphere, XenServer, Oracle VM, and KVM. When the local disk option is enabled, a local disk storage pool is automatically created on each host. To use local storage for the System Virtual Machines (such as the Virtual Router), set system.vm.use.local.storage to true in global configuration. + &PRODUCT; supports multiple primary storage pools in a Cluster. For example, you could provision 2 NFS servers in primary storage. Or you could provision 1 iSCSI LUN initially and then add a second iSCSI LUN when the first approaches capacity. +
diff --git a/docs/en-US/import-ami.xml b/docs/en-US/import-ami.xml index a79eb83bba2..2f093b178c8 100644 --- a/docs/en-US/import-ami.xml +++ b/docs/en-US/import-ami.xml @@ -23,31 +23,31 @@ -->
- Importing Amazon Machine Images - The following procedures describe how to import an Amazon Machine Image (AMI) into &PRODUCT; when using the XenServer hypervisor. - Assume you have an AMI file and this file is called CentOS_6.2_x64. Assume further that you are working on a CentOS host. If the AMI is a Fedora image, you need to be working on a Fedora host initially. - You need to have a XenServer host with a file-based storage repository (either a local ext3 SR or an NFS SR) to convert to a VHD once the image file has been customized on the Centos/Fedora host. - When copying and pasting a command, be sure the command has pasted as a single line before executing. Some document viewers may introduce unwanted line breaks in copied text. - - Set up loopback on image file:# mkdir -p /mnt/loop/centos62 + Importing Amazon Machine Images + The following procedures describe how to import an Amazon Machine Image (AMI) into &PRODUCT; when using the XenServer hypervisor. + Assume you have an AMI file and this file is called CentOS_6.2_x64. Assume further that you are working on a CentOS host. If the AMI is a Fedora image, you need to be working on a Fedora host initially. + You need to have a XenServer host with a file-based storage repository (either a local ext3 SR or an NFS SR) to convert to a VHD once the image file has been customized on the Centos/Fedora host. + When copying and pasting a command, be sure the command has pasted as a single line before executing. Some document viewers may introduce unwanted line breaks in copied text. + + Set up loopback on image file:# mkdir -p /mnt/loop/centos62 # mount -o loop CentOS_6.2_x64 /mnt/loop/centos54 - Install the kernel-xen package into the image. This downloads the PV kernel and ramdisk to the image.# yum -c /mnt/loop/centos54/etc/yum.conf --installroot=/mnt/loop/centos62/ -y install kernel-xen - Create a grub entry in /boot/grub/grub.conf.# mkdir -p /mnt/loop/centos62/boot/grub + Install the kernel-xen package into the image. This downloads the PV kernel and ramdisk to the image.# yum -c /mnt/loop/centos54/etc/yum.conf --installroot=/mnt/loop/centos62/ -y install kernel-xen + Create a grub entry in /boot/grub/grub.conf.# mkdir -p /mnt/loop/centos62/boot/grub # touch /mnt/loop/centos62/boot/grub/grub.conf # echo "" > /mnt/loop/centos62/boot/grub/grub.conf - Determine the name of the PV kernel that has been installed into the image. - # cd /mnt/loop/centos62 + Determine the name of the PV kernel that has been installed into the image. + # cd /mnt/loop/centos62 # ls lib/modules/ 2.6.16.33-xenU 2.6.16-xenU 2.6.18-164.15.1.el5xen 2.6.18-164.6.1.el5.centos.plus 2.6.18-xenU-ec2-v1.0 2.6.21.7-2.fc8xen 2.6.31-302-ec2 # ls boot/initrd* boot/initrd-2.6.18-164.6.1.el5.centos.plus.img boot/initrd-2.6.18-164.15.1.el5xen.img # ls boot/vmlinuz* boot/vmlinuz-2.6.18-164.15.1.el5xen boot/vmlinuz-2.6.18-164.6.1.el5.centos.plus boot/vmlinuz-2.6.18-xenU-ec2-v1.0 boot/vmlinuz-2.6.21-2952.fc8xen - - Xen kernels/ramdisk always end with "xen". For the kernel version you choose, there has to be an entry for that version under lib/modules, there has to be an initrd and vmlinuz corresponding to that. Above, the only kernel that satisfies this condition is 2.6.18-164.15.1.el5xen. - Based on your findings, create an entry in the grub.conf file. Below is an example entry.default=0 + + Xen kernels/ramdisk always end with "xen". For the kernel version you choose, there has to be an entry for that version under lib/modules, there has to be an initrd and vmlinuz corresponding to that. Above, the only kernel that satisfies this condition is 2.6.18-164.15.1.el5xen. + Based on your findings, create an entry in the grub.conf file. Below is an example entry.default=0 timeout=5 hiddenmenu title CentOS (2.6.18-164.15.1.el5xen) @@ -55,58 +55,58 @@ title CentOS (2.6.18-164.15.1.el5xen) kernel /boot/vmlinuz-2.6.18-164.15.1.el5xen ro root=/dev/xvda initrd /boot/initrd-2.6.18-164.15.1.el5xen.img - Edit etc/fstab, changing “sda1” to “xvda” and changing “sdb” to “xvdb”. - # cat etc/fstab + Edit etc/fstab, changing “sda1” to “xvda” and changing “sdb” to “xvdb”. + # cat etc/fstab /dev/xvda / ext3 defaults 1 1 /dev/xvdb /mnt ext3 defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 - Enable login via the console. The default console device in a XenServer system is xvc0. Ensure that etc/inittab and etc/securetty have the following lines respectively: - # grep xvc0 etc/inittab + Enable login via the console. The default console device in a XenServer system is xvc0. Ensure that etc/inittab and etc/securetty have the following lines respectively: + # grep xvc0 etc/inittab co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav # grep xvc0 etc/securetty xvc0 - Ensure the ramdisk supports PV disk and PV network. Customize this for the kernel version you have determined above. - # chroot /mnt/loop/centos54 + Ensure the ramdisk supports PV disk and PV network. Customize this for the kernel version you have determined above. + # chroot /mnt/loop/centos54 # cd /boot/ # mv initrd-2.6.18-164.15.1.el5xen.img initrd-2.6.18-164.15.1.el5xen.img.bak # mkinitrd -f /boot/initrd-2.6.18-164.15.1.el5xen.img --with=xennet --preload=xenblk --omit-scsi-modules 2.6.18-164.15.1.el5xen - Change the password. - # passwd + Change the password. + # passwd Changing password for user root. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. - Exit out of chroot.# exit - Check etc/ssh/sshd_config for lines allowing ssh login using a password. - # egrep "PermitRootLogin|PasswordAuthentication" /mnt/loop/centos54/etc/ssh/sshd_config + Exit out of chroot.# exit + Check etc/ssh/sshd_config for lines allowing ssh login using a password. + # egrep "PermitRootLogin|PasswordAuthentication" /mnt/loop/centos54/etc/ssh/sshd_config PermitRootLogin yes PasswordAuthentication yes - If you need the template to be enabled to reset passwords from the &PRODUCT; UI or API, + If you need the template to be enabled to reset passwords from the &PRODUCT; UI or API, install the password change script into the image at this point. See - . - Unmount and delete loopback mount.# umount /mnt/loop/centos54 + . + Unmount and delete loopback mount.# umount /mnt/loop/centos54 # losetup -d /dev/loop0 - Copy the image file to your XenServer host's file-based storage repository. In the example below, the Xenserver is "xenhost". This XenServer has an NFS repository whose uuid is a9c5b8c8-536b-a193-a6dc-51af3e5ff799. - # scp CentOS_6.2_x64 xenhost:/var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799/ - Log in to the Xenserver and create a VDI the same size as the image. - [root@xenhost ~]# cd /var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799 + Copy the image file to your XenServer host's file-based storage repository. In the example below, the Xenserver is "xenhost". This XenServer has an NFS repository whose uuid is a9c5b8c8-536b-a193-a6dc-51af3e5ff799. + # scp CentOS_6.2_x64 xenhost:/var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799/ + Log in to the Xenserver and create a VDI the same size as the image. + [root@xenhost ~]# cd /var/run/sr-mount/a9c5b8c8-536b-a193-a6dc-51af3e5ff799 [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# ls -lh CentOS_6.2_x64 -rw-r--r-- 1 root root 10G Mar 16 16:49 CentOS_6.2_x64 [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-create virtual-size=10GiB sr-uuid=a9c5b8c8-536b-a193-a6dc-51af3e5ff799 type=user name-label="Centos 6.2 x86_64" cad7317c-258b-4ef7-b207-cdf0283a7923 - Import the image file into the VDI. This may take 10–20 minutes.[root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-import filename=CentOS_6.2_x64 uuid=cad7317c-258b-4ef7-b207-cdf0283a7923 - Locate a the VHD file. This is the file with the VDI’s UUID as its name. Compress it and upload it to your web server. - [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# bzip2 -c cad7317c-258b-4ef7-b207-cdf0283a7923.vhd > CentOS_6.2_x64.vhd.bz2 + Import the image file into the VDI. This may take 10–20 minutes.[root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# xe vdi-import filename=CentOS_6.2_x64 uuid=cad7317c-258b-4ef7-b207-cdf0283a7923 + Locate a the VHD file. This is the file with the VDI’s UUID as its name. Compress it and upload it to your web server. + [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# bzip2 -c cad7317c-258b-4ef7-b207-cdf0283a7923.vhd > CentOS_6.2_x64.vhd.bz2 [root@xenhost a9c5b8c8-536b-a193-a6dc-51af3e5ff799]# scp CentOS_6.2_x64.vhd.bz2 webserver:/var/www/html/templates/ - +
diff --git a/docs/en-US/incremental-snapshots-backup.xml b/docs/en-US/incremental-snapshots-backup.xml index 6c7d820dff1..ade00c90c17 100644 --- a/docs/en-US/incremental-snapshots-backup.xml +++ b/docs/en-US/incremental-snapshots-backup.xml @@ -23,29 +23,29 @@ -->
- Incremental Snapshots and Backup - Snapshots are created on primary storage where a disk resides. After a snapshot is created, it is immediately backed up to secondary storage and removed from primary storage for optimal utilization of space on primary storage. - &PRODUCT; does incremental backups for some hypervisors. When incremental backups are supported, every N backup is a full backup. - - - - - - - VMware vSphere - Citrix XenServer - KVM - - - - - Support incremental backup - N - Y - N - - - - - -
+ Incremental Snapshots and Backup + Snapshots are created on primary storage where a disk resides. After a snapshot is created, it is immediately backed up to secondary storage and removed from primary storage for optimal utilization of space on primary storage. + &PRODUCT; does incremental backups for some hypervisors. When incremental backups are supported, every N backup is a full backup. + + + + + + + VMware vSphere + Citrix XenServer + KVM + + + + + Support incremental backup + N + Y + N + + + + + + diff --git a/docs/en-US/initial-setup-of-external-firewalls-loadbalancers.xml b/docs/en-US/initial-setup-of-external-firewalls-loadbalancers.xml index a2d8db24400..332afa04ebb 100644 --- a/docs/en-US/initial-setup-of-external-firewalls-loadbalancers.xml +++ b/docs/en-US/initial-setup-of-external-firewalls-loadbalancers.xml @@ -34,5 +34,5 @@ A new VLAN that matches the account's provisioned Zone VLAN A self IP for the VLAN. This is always the second IP of the account's private subnet (e.g. 10.1.1.2). - - + + diff --git a/docs/en-US/initialize-and-test.xml b/docs/en-US/initialize-and-test.xml index 1c66c40a8ab..e5a57d89dc2 100644 --- a/docs/en-US/initialize-and-test.xml +++ b/docs/en-US/initialize-and-test.xml @@ -23,6 +23,6 @@ -->
- Initialize and Test - TODO + Initialize and Test + TODO
diff --git a/docs/en-US/install-database-on-management-server-node.xml b/docs/en-US/install-database-on-management-server-node.xml index 2369e7cdb16..238f9dee629 100644 --- a/docs/en-US/install-database-on-management-server-node.xml +++ b/docs/en-US/install-database-on-management-server-node.xml @@ -23,76 +23,76 @@ -->
- Install the Database on the Management Server Node - This section describes how to install MySQL on the same machine with the Management Server. This technique is intended for a simple deployment that has a single Management Server node. If you have a multi-node Management Server deployment, you will typically use a separate node for MySQL. See . - - - If you already have a version of MySQL installed on the Management Server node, make one of the following choices, depending on what version of MySQL it is. The most recent version tested is 5.1.58. - - If you already have installed MySQL version 5.1.58 or later, skip to step 4. - - If you have installed a version of MySQL earlier than 5.1.58, you can either skip to step 4 or uninstall MySQL and proceed to step 2 to install a more recent version. - - It is important that you choose the right database version. Never downgrade a MySQL installation. - - On the same computer where you installed the Management Server, re-run install.sh. - # ./install.sh - You should see a few messages as the installer prepares, followed by a list of choices. - - Choose D to install the MySQL server from the distribution’s repo. - > D - Troubleshooting: If you do not see the D option, you already have MySQL installed. Please go back to step 1. - - Edit the MySQL configuration (/etc/my.cnf or /etc/mysql/my.cnf, depending on your OS) and insert the following lines in the [mysqld] section. You can put these lines below the datadir line. The max_connections parameter should be set to 350 multiplied by the number of Management Servers you are deploying. This example assumes one Management Server. - + Install the Database on the Management Server Node + This section describes how to install MySQL on the same machine with the Management Server. This technique is intended for a simple deployment that has a single Management Server node. If you have a multi-node Management Server deployment, you will typically use a separate node for MySQL. See . + + + If you already have a version of MySQL installed on the Management Server node, make one of the following choices, depending on what version of MySQL it is. The most recent version tested is 5.1.58. + + If you already have installed MySQL version 5.1.58 or later, skip to step 4. + + If you have installed a version of MySQL earlier than 5.1.58, you can either skip to step 4 or uninstall MySQL and proceed to step 2 to install a more recent version. + + It is important that you choose the right database version. Never downgrade a MySQL installation. + + On the same computer where you installed the Management Server, re-run install.sh. + # ./install.sh + You should see a few messages as the installer prepares, followed by a list of choices. + + Choose D to install the MySQL server from the distribution’s repo. + > D + Troubleshooting: If you do not see the D option, you already have MySQL installed. Please go back to step 1. + + Edit the MySQL configuration (/etc/my.cnf or /etc/mysql/my.cnf, depending on your OS) and insert the following lines in the [mysqld] section. You can put these lines below the datadir line. The max_connections parameter should be set to 350 multiplied by the number of Management Servers you are deploying. This example assumes one Management Server. + innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=350 log-bin=mysql-bin binlog-format = 'ROW' - - The binlog-format variable is supported in MySQL versions 5.1 and greater. It is not supported in MySQL 5.0. In some versions of MySQL, an underscore character is used in place of the hyphen in the variable name. For the exact syntax and spelling of each variable, consult the documentation for your version of MySQL. - - Restart the MySQL service, then invoke MySQL as the root user. - + + The binlog-format variable is supported in MySQL versions 5.1 and greater. It is not supported in MySQL 5.0. In some versions of MySQL, an underscore character is used in place of the hyphen in the variable name. For the exact syntax and spelling of each variable, consult the documentation for your version of MySQL. + + Restart the MySQL service, then invoke MySQL as the root user. + # service mysqld restart # mysql -u root - - - Best Practice: On RHEL and CentOS, MySQL does not set a root password by default. It is very strongly recommended that you set a root password as a security precaution. Run the following commands, and substitute your own desired root password. - mysql> SET PASSWORD = PASSWORD('password'); - From now on, start MySQL with mysql -p so it will prompt you for the password. - - To grant access privileges to remote users, perform the following steps. - - Run the following commands from the mysql prompt: - + + + Best Practice: On RHEL and CentOS, MySQL does not set a root password by default. It is very strongly recommended that you set a root password as a security precaution. Run the following commands, and substitute your own desired root password. + mysql> SET PASSWORD = PASSWORD('password'); + From now on, start MySQL with mysql -p so it will prompt you for the password. + + To grant access privileges to remote users, perform the following steps. + + Run the following commands from the mysql prompt: + mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; mysql> exit - - - Restart the MySQL service. - # service mysqld restart - Open the MySQL server port (3306) in the firewall to allow remote clients to connect. - # iptables -I INPUT -p tcp --dport 3306 -j ACCEPT - Edit the /etc/sysconfig/iptables file and add the following line at the beginning of the INPUT chain. - -A INPUT -p tcp --dport 3306 -j ACCEPT - - - Set up the database. The following command creates the cloud user on the database. - - In dbpassword, specify the password to be assigned to the cloud user. You can choose to provide no password. - In deploy-as, specify the username and password of the user deploying the database. In the following command, it is assumed the root user is deploying the database and creating the cloud user. - (Optional) For encryption_type, use file or web to indicate the technique used to pass in the database encryption password. Default: file. See About Password and Key Encryption. - (Optional) For management_server_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; properties file. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. - (Optional) For database_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; database. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. - - # cloud-setup-databases cloud:<dbpassword>@localhost --deploy-as=root:<password> -e <encryption_type> -m <management_server_key> -k <database_key> - When this script is finished, you should see a message like “Successfully initialized the database.” - - Now that the database is set up, you can finish configuring the OS for the Management Server. This command will set up iptables, sudoers, and start the Management Server. - # cloud-setup-management - You should see the message “Management Server setup is done.” - - + + + Restart the MySQL service. + # service mysqld restart + Open the MySQL server port (3306) in the firewall to allow remote clients to connect. + # iptables -I INPUT -p tcp --dport 3306 -j ACCEPT + Edit the /etc/sysconfig/iptables file and add the following line at the beginning of the INPUT chain. + -A INPUT -p tcp --dport 3306 -j ACCEPT + + + Set up the database. The following command creates the cloud user on the database. + + In dbpassword, specify the password to be assigned to the cloud user. You can choose to provide no password. + In deploy-as, specify the username and password of the user deploying the database. In the following command, it is assumed the root user is deploying the database and creating the cloud user. + (Optional) For encryption_type, use file or web to indicate the technique used to pass in the database encryption password. Default: file. See About Password and Key Encryption. + (Optional) For management_server_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; properties file. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. + (Optional) For database_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; database. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. + + # cloud-setup-databases cloud:<dbpassword>@localhost --deploy-as=root:<password> -e <encryption_type> -m <management_server_key> -k <database_key> + When this script is finished, you should see a message like “Successfully initialized the database.” + + Now that the database is set up, you can finish configuring the OS for the Management Server. This command will set up iptables, sudoers, and start the Management Server. + # cloud-setup-management + You should see the message “Management Server setup is done.” + +
diff --git a/docs/en-US/install-database-on-separate-node.xml b/docs/en-US/install-database-on-separate-node.xml index 362269c56b4..bc768290ce3 100644 --- a/docs/en-US/install-database-on-separate-node.xml +++ b/docs/en-US/install-database-on-separate-node.xml @@ -23,83 +23,83 @@ -->
- Install the Database on a Separate Node - This section describes how to install MySQL on a standalone machine, separate from the Management Server. - This technique is intended for a deployment that includes several Management Server nodes. - If you have a single-node Management Server deployment, you will typically use the same node for MySQL. - See . - - - If you already have a version of MySQL installed on the Management Server node, make one of the following choices, depending on what version of MySQL it is. The most recent version tested is 5.1.58. - - If you already have installed MySQL version 5.1.58 or later, skip to step 3. - - If you have installed a version of MySQL earlier than 5.1.58, you can either skip to step 3 or uninstall MySQL and proceed to step 2 to install a more recent version. - - It is important that you choose the right database version. Never downgrade a MySQL installation. - - Log in as root to your Database Node and run the following commands. If you are going to install a replica database, then log in to the master. - + Install the Database on a Separate Node + This section describes how to install MySQL on a standalone machine, separate from the Management Server. + This technique is intended for a deployment that includes several Management Server nodes. + If you have a single-node Management Server deployment, you will typically use the same node for MySQL. + See . + + + If you already have a version of MySQL installed on the Management Server node, make one of the following choices, depending on what version of MySQL it is. The most recent version tested is 5.1.58. + + If you already have installed MySQL version 5.1.58 or later, skip to step 3. + + If you have installed a version of MySQL earlier than 5.1.58, you can either skip to step 3 or uninstall MySQL and proceed to step 2 to install a more recent version. + + It is important that you choose the right database version. Never downgrade a MySQL installation. + + Log in as root to your Database Node and run the following commands. If you are going to install a replica database, then log in to the master. + # yum install mysql-server # chkconfig --level 35 mysqld on - - - Edit the MySQL configuration (/etc/my.cnf or /etc/mysql/my.cnf, depending on your OS) - and insert the following lines in the [mysqld] section. You can put these lines below the datadir - line. The max_connections parameter should be set to 350 multiplied by the number of Management - Servers you are deploying. This example assumes two Management Servers. - + + + Edit the MySQL configuration (/etc/my.cnf or /etc/mysql/my.cnf, depending on your OS) + and insert the following lines in the [mysqld] section. You can put these lines below the datadir + line. The max_connections parameter should be set to 350 multiplied by the number of Management + Servers you are deploying. This example assumes two Management Servers. + innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=700 log-bin=mysql-bin binlog-format = 'ROW' - - The binlog-format variable is supported in MySQL versions 5.1 and greater. It is not supported in MySQL 5.0. In some versions of MySQL, an underscore character is used in place of the hyphen in the variable name. For the exact syntax and spelling of each variable, consult the documentation for your version of MySQL. - - Restart the MySQL service, then invoke MySQL as the root user. - + + The binlog-format variable is supported in MySQL versions 5.1 and greater. It is not supported in MySQL 5.0. In some versions of MySQL, an underscore character is used in place of the hyphen in the variable name. For the exact syntax and spelling of each variable, consult the documentation for your version of MySQL. + + Restart the MySQL service, then invoke MySQL as the root user. + # service mysqld restart # mysql -u root - - - Best Practice: On RHEL and CentOS, MySQL does not set a root password by default. It is very strongly recommended that you set a root password as a security precaution. Run the following commands, and substitute your own desired root password. - mysql> SET PASSWORD = PASSWORD('password'); - From now on, start MySQL with mysql -p so it will prompt you for the password. - - To grant access privileges to remote users, perform the following steps. - - Run the following commands from the mysql prompt: - + + + Best Practice: On RHEL and CentOS, MySQL does not set a root password by default. It is very strongly recommended that you set a root password as a security precaution. Run the following commands, and substitute your own desired root password. + mysql> SET PASSWORD = PASSWORD('password'); + From now on, start MySQL with mysql -p so it will prompt you for the password. + + To grant access privileges to remote users, perform the following steps. + + Run the following commands from the mysql prompt: + mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; mysql> exit - - - Restart the MySQL service. - # service mysqld restart - - Open the MySQL server port (3306) in the firewall to allow remote clients to connect. - # iptables -I INPUT -p tcp --dport 3306 -j ACCEPT - - Edit the /etc/sysconfig/iptables file and add the following line at the beginning of the INPUT chain. - -A INPUT -p tcp --dport 3306 -j ACCEPT - - - - Set up the database. The following command creates the cloud user on the database. - - In dbpassword, specify the password to be assigned to the cloud user. You can choose to provide no password. - In deploy-as, specify the username and password of the user deploying the database. In the following command, it is assumed the root user is deploying the database and creating the cloud user. - (Optional) For encryption_type, use file or web to indicate the technique used to pass in the database encryption password. Default: file. See About Password and Key Encryption. - (Optional) For management_server_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; properties file. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. - (Optional) For database_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; database. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. - - # cloud-setup-databases cloud:<dbpassword>@localhost --deploy-as=root:<password> -e <encryption_type> -m <management_server_key> -k <database_key> - When this script is finished, you should see a message like “Successfully initialized the database.” - - Now that the database is set up, you can finish configuring the OS for the Management Server. This command will set up iptables, sudoers, and start the Management Server. - # cloud-setup-management - You should see the message “Management Server setup is done.” - - + + + Restart the MySQL service. + # service mysqld restart + + Open the MySQL server port (3306) in the firewall to allow remote clients to connect. + # iptables -I INPUT -p tcp --dport 3306 -j ACCEPT + + Edit the /etc/sysconfig/iptables file and add the following line at the beginning of the INPUT chain. + -A INPUT -p tcp --dport 3306 -j ACCEPT + + + + Set up the database. The following command creates the cloud user on the database. + + In dbpassword, specify the password to be assigned to the cloud user. You can choose to provide no password. + In deploy-as, specify the username and password of the user deploying the database. In the following command, it is assumed the root user is deploying the database and creating the cloud user. + (Optional) For encryption_type, use file or web to indicate the technique used to pass in the database encryption password. Default: file. See About Password and Key Encryption. + (Optional) For management_server_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; properties file. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. + (Optional) For database_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; database. Default: password. It is highly recommended that you replace this with a more secure value. See About Password and Key Encryption. + + # cloud-setup-databases cloud:<dbpassword>@localhost --deploy-as=root:<password> -e <encryption_type> -m <management_server_key> -k <database_key> + When this script is finished, you should see a message like “Successfully initialized the database.” + + Now that the database is set up, you can finish configuring the OS for the Management Server. This command will set up iptables, sudoers, and start the Management Server. + # cloud-setup-management + You should see the message “Management Server setup is done.” + +
diff --git a/docs/en-US/install-management-server-multi-nodes.xml b/docs/en-US/install-management-server-multi-nodes.xml index 5b8326538a8..17d0f868b3c 100644 --- a/docs/en-US/install-management-server-multi-nodes.xml +++ b/docs/en-US/install-management-server-multi-nodes.xml @@ -23,52 +23,52 @@ -->
- Prepare and Start Additional Management Servers - For your second and subsequent Management Servers, you will install the Management Server software, connect it to the database, and set up the OS for the Management Server. - - - Perform the steps in . - - Download the Management Server onto the additional host where it will run. Get the software from the following link. - https://www.citrix.com/English/ss/downloads/ + Prepare and Start Additional Management Servers + For your second and subsequent Management Servers, you will install the Management Server software, connect it to the database, and set up the OS for the Management Server. + + + Perform the steps in . + + Download the Management Server onto the additional host where it will run. Get the software from the following link. + https://www.citrix.com/English/ss/downloads/ FIXME - You will need a MyCitrix account. - - Install the packages. You should have a file in the form of “&PRODUCT;-VERSION-N-OSVERSION.tar.gz”. Untar the file and then run the install.sh script inside it. Replace the file and directory names below with those you are using: - + You will need a MyCitrix account. + + Install the packages. You should have a file in the form of “&PRODUCT;-VERSION-N-OSVERSION.tar.gz”. Untar the file and then run the install.sh script inside it. Replace the file and directory names below with those you are using: + # tar xzf &PRODUCT;-VERSION-N-OSVERSION.tar.gz # cd &PRODUCT;-VERSION-N-OSVERSION # ./install.sh - - You should see a few messages as the installer prepares, followed by a list of choices. - - Choose M to install the Management Server software. - > M - - Wait for a message like “Complete! Done,” which indicates that the software was installed successfully. - - (RHEL or CentOS) When the installation is finished, run the following commands to start essential services (the commands might be different depending on your OS): - + + You should see a few messages as the installer prepares, followed by a list of choices. + + Choose M to install the Management Server software. + > M + + Wait for a message like “Complete! Done,” which indicates that the software was installed successfully. + + (RHEL or CentOS) When the installation is finished, run the following commands to start essential services (the commands might be different depending on your OS): + # service rpcbind start # service nfs start # chkconfig nfs on # chkconfig rpcbind on - - - Configure the database client. Note the absence of the --deploy-as argument in this case. - (For more details about the arguments to this command, see .) - - # cloud-setup-databases cloud:<dbpassword>@<dbhost> -e <encryption_type> -m <management_server_key> -k <database_key> - - - (Trial installations only) If you are running the hypervisor on the same machine with the Management Server, edit /etc/sudoers and add the following line: - Defaults:cloud !requiretty - - Configure the OS and start the Management Server: - # cloud-setup-management - The Management Server on this node should now be running. - - Repeat these steps on each additional Management Server. - Be sure to configure a load balancer for the Management Servers. See Management Server Load Balancing. - + + + Configure the database client. Note the absence of the --deploy-as argument in this case. + (For more details about the arguments to this command, see .) + + # cloud-setup-databases cloud:<dbpassword>@<dbhost> -e <encryption_type> -m <management_server_key> -k <database_key> + + + (Trial installations only) If you are running the hypervisor on the same machine with the Management Server, edit /etc/sudoers and add the following line: + Defaults:cloud !requiretty + + Configure the OS and start the Management Server: + # cloud-setup-management + The Management Server on this node should now be running. + + Repeat these steps on each additional Management Server. + Be sure to configure a load balancer for the Management Servers. See Management Server Load Balancing. +
diff --git a/docs/en-US/install-management-server.xml b/docs/en-US/install-management-server.xml index c74c866b557..d8eb1e5d4eb 100644 --- a/docs/en-US/install-management-server.xml +++ b/docs/en-US/install-management-server.xml @@ -23,36 +23,36 @@ -->
- Install the Management Server on the First Host - The first step in installation, whether you are installing the Management Server on one host or many, is to install the software on a single node. - - If you are planning to install the Management Server on multiple nodes for high availability, do not proceed to the additional nodes yet. That step will come later. - - Download the Management Server onto the host where it will run. Get the software from the following link. - https://www.citrix.com/English/ss/downloads/ - FIXME - You will need a MyCitrix account. - - Install the packages. You should have a file in the form of “&PRODUCT;-VERSION-N-OSVERSION.tar.gz”. Untar the file and then run the install.sh script inside it. Replace the file and directory names below with those you are using: - + Install the Management Server on the First Host + The first step in installation, whether you are installing the Management Server on one host or many, is to install the software on a single node. + + If you are planning to install the Management Server on multiple nodes for high availability, do not proceed to the additional nodes yet. That step will come later. + + Download the Management Server onto the host where it will run. Get the software from the following link. + https://www.citrix.com/English/ss/downloads/ + FIXME + You will need a MyCitrix account. + + Install the packages. You should have a file in the form of “&PRODUCT;-VERSION-N-OSVERSION.tar.gz”. Untar the file and then run the install.sh script inside it. Replace the file and directory names below with those you are using: + # tar xzf &PRODUCT;-VERSION-N-OSVERSION.tar.gz # cd &PRODUCT;-VERSION-N-OSVERSION # ./install.sh - - You should see a few messages as the installer prepares, followed by a list of choices. - - Choose M to install the Management Server software. - > M - - Wait for a message like “Complete! Done,” which indicates that the software was installed successfully. - - (RHEL or CentOS) When the installation is finished, run the following commands to start essential services (the commands might be different depending on your OS): - + + You should see a few messages as the installer prepares, followed by a list of choices. + + Choose M to install the Management Server software. + > M + + Wait for a message like “Complete! Done,” which indicates that the software was installed successfully. + + (RHEL or CentOS) When the installation is finished, run the following commands to start essential services (the commands might be different depending on your OS): + # service rpcbind start # service nfs start # chkconfig nfs on # chkconfig rpcbind on - - - + + +
diff --git a/docs/en-US/installation-complete.xml b/docs/en-US/installation-complete.xml index 197c3cf6c38..8f4aa6f68de 100644 --- a/docs/en-US/installation-complete.xml +++ b/docs/en-US/installation-complete.xml @@ -23,17 +23,17 @@ -->
- Installation Complete! Next Steps - Congratulations! You have now installed &PRODUCT; Management Server and the database it uses to persist system data. - - - - - installation-complete.png: Finished installs with single Management Server and multiple Management Servers - - What should you do next? - - Even without adding any cloud infrastructure, you can run the UI to get a feel for what's offered and how you will interact with &PRODUCT; on an ongoing basis. See Log In to the UI. - When you're ready, add the cloud infrastructure and try running some virtual machines on it, so you can watch how &PRODUCT; manages the infrastructure. See Provision Your Cloud Infrastructure. - + Installation Complete! Next Steps + Congratulations! You have now installed &PRODUCT; Management Server and the database it uses to persist system data. + + + + + installation-complete.png: Finished installs with single Management Server and multiple Management Servers + + What should you do next? + + Even without adding any cloud infrastructure, you can run the UI to get a feel for what's offered and how you will interact with &PRODUCT; on an ongoing basis. See Log In to the UI. + When you're ready, add the cloud infrastructure and try running some virtual machines on it, so you can watch how &PRODUCT; manages the infrastructure. See Provision Your Cloud Infrastructure. +
diff --git a/docs/en-US/installation-steps-overview.xml b/docs/en-US/installation-steps-overview.xml index 493ea247a50..ed2e3d1617d 100644 --- a/docs/en-US/installation-steps-overview.xml +++ b/docs/en-US/installation-steps-overview.xml @@ -23,60 +23,60 @@ -->
- Overview of Installation Steps - For anything more than a simple trial installation, you will need guidance for a variety of configuration choices. It is strongly recommended that you read the following: - - Choosing a Deployment Architecture - Choosing a Hypervisor: Supported Features - Network Setup - Storage Setup - Best Practices - - - - - Prepare - - Make sure you have the required hardware ready - - - (Optional) Fill out the preparation checklists - - - Install the &PRODUCT; software - - - Install the Management Server (choose single-node or multi-node) - - - Log in to the UI - - - Provision your cloud infrastructure - - - Add a zone. Includes the first pod, cluster, and host - - - Add more pods - - - Add more clusters - - - Add more hosts - - - Add more primary storage - - - Add more secondary storage - - - Try using the cloud - - - Initialization and testing - + Overview of Installation Steps + For anything more than a simple trial installation, you will need guidance for a variety of configuration choices. It is strongly recommended that you read the following: + + Choosing a Deployment Architecture + Choosing a Hypervisor: Supported Features + Network Setup + Storage Setup + Best Practices + + + + + Prepare + + Make sure you have the required hardware ready + + + (Optional) Fill out the preparation checklists + + + Install the &PRODUCT; software + + + Install the Management Server (choose single-node or multi-node) + + + Log in to the UI + + + Provision your cloud infrastructure + + + Add a zone. Includes the first pod, cluster, and host + + + Add more pods + + + Add more clusters + + + Add more hosts + + + Add more primary storage + + + Add more secondary storage + + + Try using the cloud + + + Initialization and testing +
diff --git a/docs/en-US/installation.xml b/docs/en-US/installation.xml index 3b827278f3f..883a09462cf 100644 --- a/docs/en-US/installation.xml +++ b/docs/en-US/installation.xml @@ -23,9 +23,9 @@ --> - Installation - - - - + Installation + + + + diff --git a/docs/en-US/installation_overview.xml b/docs/en-US/installation_overview.xml index 84a45037272..eee444e571e 100644 --- a/docs/en-US/installation_overview.xml +++ b/docs/en-US/installation_overview.xml @@ -23,11 +23,11 @@ --> - Installation Overview - - - - - - + Installation Overview + + + + + + diff --git a/docs/en-US/introduction.xml b/docs/en-US/introduction.xml index 3a30896dd04..9aca8bdfc93 100644 --- a/docs/en-US/introduction.xml +++ b/docs/en-US/introduction.xml @@ -23,8 +23,8 @@ -->
- Introduction - + Introduction + - +
diff --git a/docs/en-US/ip-load-balancing.xml b/docs/en-US/ip-load-balancing.xml index 1ec4663cd19..ae569e7d969 100644 --- a/docs/en-US/ip-load-balancing.xml +++ b/docs/en-US/ip-load-balancing.xml @@ -23,12 +23,12 @@ -->
- IP Load Balancing - The user may choose to associate the same public IP for multiple guests. &PRODUCT; implements a TCP-level load balancer with the following policies. - - Round-robin - Least connection - Source IP - - This is similar to port forwarding but the destination may be multiple IP addresses. + IP Load Balancing + The user may choose to associate the same public IP for multiple guests. &PRODUCT; implements a TCP-level load balancer with the following policies. + + Round-robin + Least connection + Source IP + + This is similar to port forwarding but the destination may be multiple IP addresses.
diff --git a/docs/en-US/ipaddress-usage-record-format.xml b/docs/en-US/ipaddress-usage-record-format.xml index e0551fc4f2a..1a0385b999e 100644 --- a/docs/en-US/ipaddress-usage-record-format.xml +++ b/docs/en-US/ipaddress-usage-record-format.xml @@ -23,20 +23,20 @@ -->
- IP Address Usage Record Format - For IP address usage the following fields exist in a usage record. - - account - name of the account - accountid - ID of the account - domainid - ID of the domain in which this account resides - zoneid - Zone where the usage occurred - description - A string describing what the usage record is tracking - usage - String representation of the usage, including the units of usage - usagetype - A number representing the usage type (see Usage Types) - rawusage - A number representing the actual usage in hours - usageid - IP address ID - startdate, enddate - The range of time for which the usage is aggregated; see Dates in the Usage Record - issourcenat - Whether source NAT is enabled for the IP address - iselastic - True if the IP address is elastic. - + IP Address Usage Record Format + For IP address usage the following fields exist in a usage record. + + account - name of the account + accountid - ID of the account + domainid - ID of the domain in which this account resides + zoneid - Zone where the usage occurred + description - A string describing what the usage record is tracking + usage - String representation of the usage, including the units of usage + usagetype - A number representing the usage type (see Usage Types) + rawusage - A number representing the actual usage in hours + usageid - IP address ID + startdate, enddate - The range of time for which the usage is aggregated; see Dates in the Usage Record + issourcenat - Whether source NAT is enabled for the IP address + iselastic - True if the IP address is elastic. +
diff --git a/docs/en-US/job-status.xml b/docs/en-US/job-status.xml index aebf8af0931..da0f76c5dff 100644 --- a/docs/en-US/job-status.xml +++ b/docs/en-US/job-status.xml @@ -23,12 +23,12 @@ -->
- Job Status - The key to using an asynchronous command is the job ID that is returned immediately once the command has been executed. With the job ID, you can periodically check the job status by making calls to queryAsyncJobResult command. The command will return three possible job status integer values: - - 0 - Job is still in progress. Continue to periodically poll for any status changes. - 1 - Job has successfully completed. The job will return any successful response values associated with command that was originally executed. - 2 - Job has failed to complete. Please check the "jobresultcode" tag for failure reason code and "jobresult" for the failure reason. - + Job Status + The key to using an asynchronous command is the job ID that is returned immediately once the command has been executed. With the job ID, you can periodically check the job status by making calls to queryAsyncJobResult command. The command will return three possible job status integer values: + + 0 - Job is still in progress. Continue to periodically poll for any status changes. + 1 - Job has successfully completed. The job will return any successful response values associated with command that was originally executed. + 2 - Job has failed to complete. Please check the "jobresultcode" tag for failure reason code and "jobresult" for the failure reason. +
diff --git a/docs/en-US/linux-installation.xml b/docs/en-US/linux-installation.xml index df7a8b70e3b..60d389c0ef4 100644 --- a/docs/en-US/linux-installation.xml +++ b/docs/en-US/linux-installation.xml @@ -23,25 +23,25 @@ -->
- Linux OS Installation - Use the following steps to begin the Linux OS installation: - - Download the script file cloud-set-guest-password: - - Linux: - Windows: - - - Copy this file to /etc/init.d. - On some Linux distributions, copy the file to /etc/rc.d/init.d. - - Run the following command to make the script executable:chmod +x /etc/init.d/cloud-set-guest-password - - Depending on the Linux distribution, continue with the appropriate step.On Fedora, CentOS/RHEL, and Debian, run:chkconfig --add cloud-set-guest-password - On Ubuntu with VMware tools, link the script file to the /etc/network/if-up and /etc/network/if-down folders, and run the script: - #ln -s /etc/init.d/cloud-set-guest-password /etc/network/if-up/cloud-set-guest-password - #ln -s /etc/init.d/cloud-set-guest-password /etc/network/if-down/cloud-set-guest-password - If you are using Ubuntu 11.04, start by creating a directory called /var/lib/dhcp3 on your Ubuntu machine (works around a known issue with this version of Ubuntu). On all Ubuntu versions: Run “sudo update-rc.d cloud-set-guest-password defaults 98”. To test, run "mkpasswd" and check that it is generating a new password. If the “mkpasswd” command does not exist, run "sudo apt-get install whois" (or sudo apt-get install mkpasswd, depending on your Ubuntu version) and repeat. - - -
+ Linux OS Installation + Use the following steps to begin the Linux OS installation: + + Download the script file cloud-set-guest-password: + + Linux: + Windows: + + + Copy this file to /etc/init.d. + On some Linux distributions, copy the file to /etc/rc.d/init.d. + + Run the following command to make the script executable:chmod +x /etc/init.d/cloud-set-guest-password + + Depending on the Linux distribution, continue with the appropriate step.On Fedora, CentOS/RHEL, and Debian, run:chkconfig --add cloud-set-guest-password + On Ubuntu with VMware tools, link the script file to the /etc/network/if-up and /etc/network/if-down folders, and run the script: + #ln -s /etc/init.d/cloud-set-guest-password /etc/network/if-up/cloud-set-guest-password + #ln -s /etc/init.d/cloud-set-guest-password /etc/network/if-down/cloud-set-guest-password + If you are using Ubuntu 11.04, start by creating a directory called /var/lib/dhcp3 on your Ubuntu machine (works around a known issue with this version of Ubuntu). On all Ubuntu versions: Run “sudo update-rc.d cloud-set-guest-password defaults 98”. To test, run "mkpasswd" and check that it is generating a new password. If the “mkpasswd” command does not exist, run "sudo apt-get install whois" (or sudo apt-get install mkpasswd, depending on your Ubuntu version) and repeat. + + + diff --git a/docs/en-US/loadbalancer-policy-port-forwarding-rule-usage-record-format.xml b/docs/en-US/loadbalancer-policy-port-forwarding-rule-usage-record-format.xml index 86f54117528..e27a49d6b96 100644 --- a/docs/en-US/loadbalancer-policy-port-forwarding-rule-usage-record-format.xml +++ b/docs/en-US/loadbalancer-policy-port-forwarding-rule-usage-record-format.xml @@ -23,18 +23,18 @@ -->
- Load Balancer Policy or Port Forwarding Rule Usage Record Format - - account - name of the account - accountid - ID of the account - domainid - ID of the domain in which this account resides - zoneid - Zone where the usage occurred - description - A string describing what the usage record is tracking - usage - String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) - usagetype - A number representing the usage type (see Usage Types) - rawusage - A number representing the actual usage in hours - usageid - ID of the load balancer policy or port forwarding rule - usagetype - A number representing the usage type (see Usage Types) - startdate, enddate - The range of time for which the usage is aggregated; see Dates in the Usage Record - + Load Balancer Policy or Port Forwarding Rule Usage Record Format + + account - name of the account + accountid - ID of the account + domainid - ID of the domain in which this account resides + zoneid - Zone where the usage occurred + description - A string describing what the usage record is tracking + usage - String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) + usagetype - A number representing the usage type (see Usage Types) + rawusage - A number representing the actual usage in hours + usageid - ID of the load balancer policy or port forwarding rule + usagetype - A number representing the usage type (see Usage Types) + startdate, enddate - The range of time for which the usage is aggregated; see Dates in the Usage Record +
diff --git a/docs/en-US/log-in.xml b/docs/en-US/log-in.xml index 4425aa43b11..e72d27bf61b 100644 --- a/docs/en-US/log-in.xml +++ b/docs/en-US/log-in.xml @@ -23,9 +23,9 @@ -->
- Log In to the UI - &PRODUCT; provides a web-based UI that can be used by both administrators and end users. The appropriate version of the UI is displayed depending on the credentials used to log in. The UI is available in popular browsers including IE7, IE8, IE9, Firefox 3.5+, Firefox 4, Safari 4, and Safari 5. The URL is: (substitute your own management server IP address) - http://<management-server-ip-address>:8080/client + Log In to the UI + &PRODUCT; provides a web-based UI that can be used by both administrators and end users. The appropriate version of the UI is displayed depending on the credentials used to log in. The UI is available in popular browsers including IE7, IE8, IE9, Firefox 3.5+, Firefox 4, Safari 4, and Safari 5. The URL is: (substitute your own management server IP address) + http://<management-server-ip-address>:8080/client On a fresh Management Server installation, a guided tour splash screen appears. On later visits, you’ll see a login screen where you specify the following to proceed to your Dashboard: Username @@ -42,7 +42,7 @@ If you are a user in the sub-domains, enter the full path to the domain, excluding the root domain. For example, suppose multiple levels are created under the root domain, such as Comp1/hr. The users in the Comp1 domain should enter Comp1 in the Domain field, whereas the users in the Comp1/sales domain should enter Comp1/sales. For more guidance about the choices that appear when you log in to this UI, see Logging In as the Root Administrator. - - - + + +
diff --git a/docs/en-US/long-running-job-events.xml b/docs/en-US/long-running-job-events.xml index 345a0d0dddb..cae2b747586 100644 --- a/docs/en-US/long-running-job-events.xml +++ b/docs/en-US/long-running-job-events.xml @@ -37,5 +37,5 @@ ERROR. This event is generated when an operation has not been successfully performed - + diff --git a/docs/en-US/maintenance-mode-for-primary-storage.xml b/docs/en-US/maintenance-mode-for-primary-storage.xml index 657bc8b7e6e..54c3a0d8901 100644 --- a/docs/en-US/maintenance-mode-for-primary-storage.xml +++ b/docs/en-US/maintenance-mode-for-primary-storage.xml @@ -23,6 +23,6 @@ -->
- Maintenance Mode for Primary Storage - Primary storage may be placed into maintenance mode. This is useful, for example, to replace faulty RAM in a storage device. Maintenance mode for a storage device will first stop any new guests from being provisioned on the storage device. Then it will stop all guests that have any volume on that storage device. When all such guests are stopped the storage device is in maintenance mode and may be shut down. When the storage device is online again you may cancel maintenance mode for the device. The &PRODUCT; will bring the device back online and attempt to start all guests that were running at the time of the entry into maintenance mode. -
+ Maintenance Mode for Primary Storage + Primary storage may be placed into maintenance mode. This is useful, for example, to replace faulty RAM in a storage device. Maintenance mode for a storage device will first stop any new guests from being provisioned on the storage device. Then it will stop all guests that have any volume on that storage device. When all such guests are stopped the storage device is in maintenance mode and may be shut down. When the storage device is online again you may cancel maintenance mode for the device. The &PRODUCT; will bring the device back online and attempt to start all guests that were running at the time of the entry into maintenance mode. + diff --git a/docs/en-US/making-api-request.xml b/docs/en-US/making-api-request.xml index 33c43c5c40f..49ea158bb21 100644 --- a/docs/en-US/making-api-request.xml +++ b/docs/en-US/making-api-request.xml @@ -2,7 +2,7 @@ %BOOK_ENTITIES; -]> +]>
- Making API Requests - All &PRODUCT; API requests are submitted in the form of a HTTP GET/POST with an associated command and any parameters. A request is composed of the following whether in HTTP or HTTPS: - - - &PRODUCT; API URL: This is the web services API entry point(for example, http://www.cloud.com:8080/client/api) - Command: The web services command you wish to execute, such as start a virtual machine or create a disk volume - Parameters: Any additional required or optional parameters for the command - - A sample API GET request looks like the following: - http://localhost:8080/client/api?command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D - - Or in a more readable format: - + Making API Requests + All &PRODUCT; API requests are submitted in the form of a HTTP GET/POST with an associated command and any parameters. A request is composed of the following whether in HTTP or HTTPS: + + + &PRODUCT; API URL: This is the web services API entry point(for example, http://www.cloud.com:8080/client/api) + Command: The web services command you wish to execute, such as start a virtual machine or create a disk volume + Parameters: Any additional required or optional parameters for the command + + A sample API GET request looks like the following: + http://localhost:8080/client/api?command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D + + Or in a more readable format: + 1. http://localhost:8080/client/api 2. ?command=deployVirtualMachine 3. &serviceOfferingId=1 @@ -44,11 +44,11 @@ 6. &zoneId=4 7. &apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXqjB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ 8. &signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D - - The first line is the &PRODUCT; API URL. This is the Cloud instance you wish to interact with. - The second line refers to the command you wish to execute. In our example, we are attempting to deploy a fresh new virtual machine. It is preceded by a (?) to separate itself from the &PRODUCT; API URL. - Lines 3-6 are the parameters for this given command. To see the command and its request parameters, please refer to the appropriate section in the &PRODUCT; API documentation. Each parameter field-value pair (field=value) is preceded by an ampersand character (&). - Line 7 is the user API Key that uniquely identifies the account. See Signing API Requests on page 7. - Line 8 is the signature hash created to authenticate the user account executing the API command. See Signing API Requests on page 7. -
+ + The first line is the &PRODUCT; API URL. This is the Cloud instance you wish to interact with. + The second line refers to the command you wish to execute. In our example, we are attempting to deploy a fresh new virtual machine. It is preceded by a (?) to separate itself from the &PRODUCT; API URL. + Lines 3-6 are the parameters for this given command. To see the command and its request parameters, please refer to the appropriate section in the &PRODUCT; API documentation. Each parameter field-value pair (field=value) is preceded by an ampersand character (&). + Line 7 is the user API Key that uniquely identifies the account. See Signing API Requests on page 7. + Line 8 is the signature hash created to authenticate the user account executing the API command. See Signing API Requests on page 7. + diff --git a/docs/en-US/management-server-install-flow.xml b/docs/en-US/management-server-install-flow.xml index dc6c651bc00..b6c7052d268 100644 --- a/docs/en-US/management-server-install-flow.xml +++ b/docs/en-US/management-server-install-flow.xml @@ -23,14 +23,14 @@ -->
- Management Server Installation - - - + Management Server Installation + + + - - - - - + + + + +
diff --git a/docs/en-US/management-server-installation-overview.xml b/docs/en-US/management-server-installation-overview.xml index 7c000c5363a..3ccbdccfc9b 100644 --- a/docs/en-US/management-server-installation-overview.xml +++ b/docs/en-US/management-server-installation-overview.xml @@ -23,23 +23,23 @@ -->
- Management Server Installation Overview - This section describes installing the Management Server. There are two slightly different installation flows, depending on how many Management Server nodes will be in your cloud: - - A single Management Server node, with MySQL on the same node. - Multiple Management Server nodes, with MySQL on a node separate from the Management Servers. - - In either case, each machine must meet the system requirements described in System Requirements. - For the sake of security, be sure the public Internet can not access port 8096 or port 8250 on the Management Server. - - The procedure for installing the Management Server is: - - - Prepare the Operating System - Install the First Management Server - Install and Configure the Database - Prepare NFS Shares - Prepare and Start Additional Management Servers (optional) - Prepare the System VM Template - -
+ Management Server Installation Overview + This section describes installing the Management Server. There are two slightly different installation flows, depending on how many Management Server nodes will be in your cloud: + + A single Management Server node, with MySQL on the same node. + Multiple Management Server nodes, with MySQL on a node separate from the Management Servers. + + In either case, each machine must meet the system requirements described in System Requirements. + For the sake of security, be sure the public Internet can not access port 8096 or port 8250 on the Management Server. + + The procedure for installing the Management Server is: + + + Prepare the Operating System + Install the First Management Server + Install and Configure the Database + Prepare NFS Shares + Prepare and Start Additional Management Servers (optional) + Prepare the System VM Template + + diff --git a/docs/en-US/management-server-overview.xml b/docs/en-US/management-server-overview.xml index 12a5121e7e5..ed301424651 100644 --- a/docs/en-US/management-server-overview.xml +++ b/docs/en-US/management-server-overview.xml @@ -23,36 +23,36 @@ -->
- Management Server Overview - The Management Server is the &PRODUCT; software that manages cloud resources. By interacting with the Management Server through its UI or API, you can configure and manage your cloud infrastructure. - - The Management Server runs on a dedicated server or VM. It controls allocation of virtual machines to hosts and assigns storage and IP addresses to the virtual machine instances. The Management Server runs in a Tomcat container and requires a MySQL database for persistence. - - The machine must meet the system requirements described in System Requirements. - - The Management Server: - - - - Provides the web user interface for the administrator and a reference user interface for end users. - - - Provides the APIs for &PRODUCT;. - - - Manages the assignment of guest VMs to particular hosts. - - - Manages the assignment of public and private IP addresses to particular accounts. - - - Manages the allocation of storage to guests as virtual disks. - - - Manages snapshots, templates, and ISO images, possibly replicating them across data centers. - - - Provides a single point of configuration for the cloud. - - -
+ Management Server Overview + The Management Server is the &PRODUCT; software that manages cloud resources. By interacting with the Management Server through its UI or API, you can configure and manage your cloud infrastructure. + + The Management Server runs on a dedicated server or VM. It controls allocation of virtual machines to hosts and assigns storage and IP addresses to the virtual machine instances. The Management Server runs in a Tomcat container and requires a MySQL database for persistence. + + The machine must meet the system requirements described in System Requirements. + + The Management Server: + + + + Provides the web user interface for the administrator and a reference user interface for end users. + + + Provides the APIs for &PRODUCT;. + + + Manages the assignment of guest VMs to particular hosts. + + + Manages the assignment of public and private IP addresses to particular accounts. + + + Manages the allocation of storage to guests as virtual disks. + + + Manages snapshots, templates, and ISO images, possibly replicating them across data centers. + + + Provides a single point of configuration for the cloud. + + + diff --git a/docs/en-US/management_server_multi_node_install.xml b/docs/en-US/management_server_multi_node_install.xml index 5b6555a3151..30f6af9f6a7 100644 --- a/docs/en-US/management_server_multi_node_install.xml +++ b/docs/en-US/management_server_multi_node_install.xml @@ -23,8 +23,8 @@ --> - Management Server Multi-Node Installation - - - + Management Server Multi-Node Installation + + + diff --git a/docs/en-US/management_server_overview.xml b/docs/en-US/management_server_overview.xml index 6b5d6fed3eb..b5d74f38a8b 100644 --- a/docs/en-US/management_server_overview.xml +++ b/docs/en-US/management_server_overview.xml @@ -21,33 +21,33 @@ specific language governing permissions and limitations under the License. --> -
- Management Server Overview - The Management Server is the &PRODUCT; software that manages cloud resources. By interacting with the Management Server through its UI or API, you can configure and manage your cloud infrastructure. - The Management Server runs on a dedicated server or VM. It controls allocation of virtual machines to hosts and assigns storage and IP addresses to the virtual machine instances. The &PRODUCT; Management Server runs in a Tomcat container and requires a MySQL database for persistence. - The machine must meet the system requirements described in System Requirements. - The Management Server: - - - Provides the web user interface for the administrator and a reference user interface for end users. - - - Provides the APIs for the &PRODUCT; platform. - - - Manages the assignment of guest VMs to particular hosts. - - - Manages the assignment of public and private IP addresses to particular accounts. - - - Manages the allocation of storage to guests as virtual disks. - - - Manages snapshots, templates, and ISO images, possibly replicating them across data centers. - - - Provides a single point of configuration for the cloud. - - -
+
+ Management Server Overview + The Management Server is the &PRODUCT; software that manages cloud resources. By interacting with the Management Server through its UI or API, you can configure and manage your cloud infrastructure. + The Management Server runs on a dedicated server or VM. It controls allocation of virtual machines to hosts and assigns storage and IP addresses to the virtual machine instances. The &PRODUCT; Management Server runs in a Tomcat container and requires a MySQL database for persistence. + The machine must meet the system requirements described in System Requirements. + The Management Server: + + + Provides the web user interface for the administrator and a reference user interface for end users. + + + Provides the APIs for the &PRODUCT; platform. + + + Manages the assignment of guest VMs to particular hosts. + + + Manages the assignment of public and private IP addresses to particular accounts. + + + Manages the allocation of storage to guests as virtual disks. + + + Manages snapshots, templates, and ISO images, possibly replicating them across data centers. + + + Provides a single point of configuration for the cloud. + + +
diff --git a/docs/en-US/manual-live-migration.xml b/docs/en-US/manual-live-migration.xml index a82b52ed1e6..390b41768c8 100644 --- a/docs/en-US/manual-live-migration.xml +++ b/docs/en-US/manual-live-migration.xml @@ -23,30 +23,30 @@ -->
- Moving VMs Between Hosts (Manual Live Migration) - The CloudPlatform administrator can move a running VM from one host to another without interrupting service to users or going into maintenance mode. This is called manual live migration, and can be done under the following conditions: - - The root administrator is logged in. Domain admins and users can not perform manual live migration of VMs. - The VM is running. Stopped VMs can not be live migrated. - The destination host must be in the same cluster as the original host. - The VM must not be using local disk storage. - The destination host must have enough available capacity. If not, the VM will remain in the "migrating" state until memory becomes available. - (OVM) If the VM is running on the OVM hypervisor, it must not have an ISO attached. Live migration of a VM with attached ISO is not supported in OVM. - - To manually live migrate a virtual machine - - Log in to the CloudPlatform UI as a user or admin. - In the left navigation, click Instances. - Choose the VM that you want to migrate. - Click the Migrate Instance button - - - - Migrateinstance.png: button to migrate an instance - - - From the list of hosts, choose the one to which you want to move the VM. - Click OK. - -
+ Moving VMs Between Hosts (Manual Live Migration) + The CloudPlatform administrator can move a running VM from one host to another without interrupting service to users or going into maintenance mode. This is called manual live migration, and can be done under the following conditions: + + The root administrator is logged in. Domain admins and users can not perform manual live migration of VMs. + The VM is running. Stopped VMs can not be live migrated. + The destination host must be in the same cluster as the original host. + The VM must not be using local disk storage. + The destination host must have enough available capacity. If not, the VM will remain in the "migrating" state until memory becomes available. + (OVM) If the VM is running on the OVM hypervisor, it must not have an ISO attached. Live migration of a VM with attached ISO is not supported in OVM. + + To manually live migrate a virtual machine + + Log in to the CloudPlatform UI as a user or admin. + In the left navigation, click Instances. + Choose the VM that you want to migrate. + Click the Migrate Instance button + + + + Migrateinstance.png: button to migrate an instance + + + From the list of hosts, choose the one to which you want to move the VM. + Click OK. + + diff --git a/docs/en-US/max-result-page-returned.xml b/docs/en-US/max-result-page-returned.xml index 3c12415bd72..fdbf63962d4 100644 --- a/docs/en-US/max-result-page-returned.xml +++ b/docs/en-US/max-result-page-returned.xml @@ -22,17 +22,17 @@ under the License. --> -
- Maximum Result Pages Returned - - For each cloud, there is a default upper limit on the number of results that any API command will return in a single page. This is to help prevent overloading the cloud servers and prevent DOS attacks. For example, if the page size limit is 500 and a command returns 10,000 results, the command will return 20 pages. - - The default page size limit can be different for each cloud. It is set in the global configuration parameter default.page.size. If your cloud has many users with lots of VMs, you might need to increase the value of this parameter. At the same time, be careful not to set it so high that your site can be taken down by an enormous return from an API call. For more information about how to set global configuration parameters, see "Describe Your Deployment" in the Installation Guide. - To decrease the page size limit for an individual API command, override the global setting with the page and pagesize parameters, which are available in any list* command (listCapabilities, listDiskOfferings, etc.). - - Both parameters must be specified together. - The value of the pagesize parameter must be smaller than the value of default.page.size. That is, you can not increase the number of possible items in a result page, only decrease it. - - For syntax information on the list* commands, see the API Reference. -
+
+ Maximum Result Pages Returned + + For each cloud, there is a default upper limit on the number of results that any API command will return in a single page. This is to help prevent overloading the cloud servers and prevent DOS attacks. For example, if the page size limit is 500 and a command returns 10,000 results, the command will return 20 pages. + + The default page size limit can be different for each cloud. It is set in the global configuration parameter default.page.size. If your cloud has many users with lots of VMs, you might need to increase the value of this parameter. At the same time, be careful not to set it so high that your site can be taken down by an enormous return from an API call. For more information about how to set global configuration parameters, see "Describe Your Deployment" in the Installation Guide. + To decrease the page size limit for an individual API command, override the global setting with the page and pagesize parameters, which are available in any list* command (listCapabilities, listDiskOfferings, etc.). + + Both parameters must be specified together. + The value of the pagesize parameter must be smaller than the value of default.page.size. That is, you can not increase the number of possible items in a result page, only decrease it. + + For syntax information on the list* commands, see the API Reference. +
diff --git a/docs/en-US/migrate-datadisk-volume-new-storage-pool.xml b/docs/en-US/migrate-datadisk-volume-new-storage-pool.xml index 0d545bab0b6..552fb319341 100644 --- a/docs/en-US/migrate-datadisk-volume-new-storage-pool.xml +++ b/docs/en-US/migrate-datadisk-volume-new-storage-pool.xml @@ -23,13 +23,13 @@ -->
- Migrating a Data Disk Volume to a New Storage Pool - - Log in to the &PRODUCT; UI as a user or admin. - Detach the data disk from the VM. See Detaching and Moving Volumes (but skip the “reattach” step at the end. You will do that after migrating to new storage). - Call the &PRODUCT; API command migrateVolume and pass in the volume ID and the ID of any storage pool in the zone. - Watch for the volume status to change to Migrating, then back to Ready. - Attach the volume to any desired VM running in the same cluster as the new storage server. See Attaching a Volume - -
+ Migrating a Data Disk Volume to a New Storage Pool + + Log in to the &PRODUCT; UI as a user or admin. + Detach the data disk from the VM. See Detaching and Moving Volumes (but skip the “reattach” step at the end. You will do that after migrating to new storage). + Call the &PRODUCT; API command migrateVolume and pass in the volume ID and the ID of any storage pool in the zone. + Watch for the volume status to change to Migrating, then back to Ready. + Attach the volume to any desired VM running in the same cluster as the new storage server. See Attaching a Volume + + diff --git a/docs/en-US/migrate-vm-rootvolume-volume-new-storage-pool.xml b/docs/en-US/migrate-vm-rootvolume-volume-new-storage-pool.xml index 0ce06b0223d..67fe2f58920 100644 --- a/docs/en-US/migrate-vm-rootvolume-volume-new-storage-pool.xml +++ b/docs/en-US/migrate-vm-rootvolume-volume-new-storage-pool.xml @@ -23,15 +23,15 @@ -->
- Migrating a VM Root Volume to a New Storage Pool - When migrating the root disk volume, the VM must first be stopped, and users can not access the VM. After migration is complete, the VM can be restarted. - - Log in to the &PRODUCT; UI as a user or admin. - Detach the data disk from the VM. See Detaching and Moving Volumes (but skip the “reattach” step at the end. You will do that after migrating to new storage). - Stop the VM. - Call the &PRODUCT; API command migrateVirtualMachine with the ID of the VM to migrate and the IDs of a destination host and destination storage pool in the same zone. - Watch for the VM status to change to Migrating, then back to Stopped. - Restart the VM. - -
+ Migrating a VM Root Volume to a New Storage Pool + When migrating the root disk volume, the VM must first be stopped, and users can not access the VM. After migration is complete, the VM can be restarted. + + Log in to the &PRODUCT; UI as a user or admin. + Detach the data disk from the VM. See Detaching and Moving Volumes (but skip the “reattach” step at the end. You will do that after migrating to new storage). + Stop the VM. + Call the &PRODUCT; API command migrateVirtualMachine with the ID of the VM to migrate and the IDs of a destination host and destination storage pool in the same zone. + Watch for the VM status to change to Migrating, then back to Stopped. + Restart the VM. + + diff --git a/docs/en-US/minimum-system-requirements.xml b/docs/en-US/minimum-system-requirements.xml index 595c97985ed..da60c2c7984 100644 --- a/docs/en-US/minimum-system-requirements.xml +++ b/docs/en-US/minimum-system-requirements.xml @@ -23,70 +23,68 @@ -->
- Minimum System Requirements -
- Management Server, Database, and Storage System Requirements - The machines that will run the Management Server and MySQL database must meet the following requirements. The same machines can also be used to provide primary and secondary storage, such as via localdisk or NFS. The Management Server may be placed on a virtual machine. - - Operating system: - - Preferred: RHEL 6.2+ 64-bit (https://access.redhat.com/downloads) or CentOS 6.2+ 64-bit (http://isoredirect.centos.org/centos/6/isos/x86_64/). - Also supported (v3.0.3 and greater): RHEL and CentOS 5.4-5.x 64-bit - It is highly recommended that you purchase a RHEL support license. - Citrix support can not be responsible for helping fix issues with the underlying OS. - - - 64-bit x86 CPU (more cores results in better performance) - 4 GB of memory - 250 GB of local disk (more results in better capability; 500 GB recommended) - At least 1 NIC - Statically allocated IP address - Fully qualified domain name as returned by the hostname command - -
-
- Host/Hypervisor System Requirements - The host is where the cloud services run in the form of guest virtual machines. Each host is one machine that meets the following requirements: - - Must be 64-bit and must support HVM (Intel-VT or AMD-V enabled). - 64-bit x86 CPU (more cores results in better performance) - Hardware virtualization support required - 4 GB of memory - 36 GB of local disk - At least 1 NIC - Statically allocated IP Address - Latest hotfixes applied to hypervisor software - When you deploy &PRODUCT;, the hypervisor host must not have any VMs already running - - Hosts have additional requirements depending on the hypervisor. See the requirements listed at the top of the Installation section for your chosen hypervisor: - - Be sure you fulfill the additional hypervisor requirements and installation steps provided in this Guide. Hypervisor hosts must be properly prepared to work with CloudStack. For example, the requirements for XenServer are listed under Citrix XenServer Installation. - -
- Citrix XenServer requirements - To be determined -
-
- VMware vSphere requirements - To be determined -
-
- KVM requirements - For running a KVM hypervisor the main requirement is the Linux distribution it is running. Although you are not required to run these distributions, it is recommended. - Recommended distributions: - - CentOS / RHEL: 6.2 and 6.3 - Ubuntu: 12.04(.1) - - The main requirement for KVM hypervisors is the libvirt and Qemu version. If you whish to run on a different distribution, make sure you meet the following requirements: - - libvirt: 0.9.4 and higher - Qemu/KVM: 1.0 and higher - -
-
- Oracle VM (OVM) requirements - To be determined -
-
+ Minimum System Requirements +
+ Management Server, Database, and Storage System Requirements + The machines that will run the Management Server and MySQL database must meet the following requirements. The same machines can also be used to provide primary and secondary storage, such as via localdisk or NFS. The Management Server may be placed on a virtual machine. + + Operating system: + + Preferred: CentOS/RHEL 6.2+ or Ubuntu 12.04(.1) + Also supported: CentOS/RHEL 5.5 or Ubuntu 10.04 + + + 64-bit x86 CPU (more cores results in better performance) + 4 GB of memory + 250 GB of local disk (more results in better capability; 500 GB recommended) + At least 1 NIC + Statically allocated IP address + Fully qualified domain name as returned by the hostname command + +
+
+ Host/Hypervisor System Requirements + The host is where the cloud services run in the form of guest virtual machines. Each host is one machine that meets the following requirements: + + Must be 64-bit and must support HVM (Intel-VT or AMD-V enabled). + 64-bit x86 CPU (more cores results in better performance) + Hardware virtualization support required + 4 GB of memory + 36 GB of local disk + At least 1 NIC + Statically allocated IP Address + Latest hotfixes applied to hypervisor software + When you deploy &PRODUCT;, the hypervisor host must not have any VMs already running + + Hosts have additional requirements depending on the hypervisor. See the requirements listed at the top of the Installation section for your chosen hypervisor: + + Be sure you fulfill the additional hypervisor requirements and installation steps provided in this Guide. Hypervisor hosts must be properly prepared to work with CloudStack. For example, the requirements for XenServer are listed under Citrix XenServer Installation. + +
+ Citrix XenServer requirements + To be determined +
+
+ VMware vSphere requirements + To be determined +
+
+ KVM requirements + For running a KVM hypervisor the main requirement is the Linux distribution it is running. Although you are not required to run these distributions, it is recommended. + Recommended distributions: + + CentOS / RHEL: 6.2 and 6.3 + Ubuntu: 12.04(.1) + + The main requirement for KVM hypervisors is the libvirt and Qemu version. If you whish to run on a different distribution, make sure you meet the following requirements: + + libvirt: 0.9.4 and higher + Qemu/KVM: 1.0 and higher + +
+
+ Oracle VM (OVM) requirements + To be determined +
+
diff --git a/docs/en-US/multi_node_overview.xml b/docs/en-US/multi_node_overview.xml index 92904cff969..1eee0377ba9 100644 --- a/docs/en-US/multi_node_overview.xml +++ b/docs/en-US/multi_node_overview.xml @@ -22,22 +22,22 @@ under the License. --> -
- Management Server Multi-Node Installation Overview - - This section describes installing multiple Management Servers and installing MySQL on a node separate from the Management Servers. The machines must meet the system requirements described in System Requirements. - - For the sake of security, be sure the public Internet can not access port 8096 or port 8250 on the Management Server. - - The procedure for a multi-node installation is: - - - Prepare the Operating System - Install the First Management Server - Install and Configure the Database - Prepare NFS Shares - Prepare and Start Additional Management Servers - Prepare the System VM Template - -
+
+ Management Server Multi-Node Installation Overview + + This section describes installing multiple Management Servers and installing MySQL on a node separate from the Management Servers. The machines must meet the system requirements described in System Requirements. + + For the sake of security, be sure the public Internet can not access port 8096 or port 8250 on the Management Server. + + The procedure for a multi-node installation is: + + + Prepare the Operating System + Install the First Management Server + Install and Configure the Database + Prepare NFS Shares + Prepare and Start Additional Management Servers + Prepare the System VM Template + +
diff --git a/docs/en-US/network-offering-usage-record-format.xml b/docs/en-US/network-offering-usage-record-format.xml index 5dfc36178ff..a1b0da96221 100644 --- a/docs/en-US/network-offering-usage-record-format.xml +++ b/docs/en-US/network-offering-usage-record-format.xml @@ -23,21 +23,21 @@ -->
- Network Offering Usage Record Format - - account – name of the account - accountid – ID of the account - domainid – ID of the domain in which this account resides - zoneid – Zone where the usage occurred - description – A string describing what the usage record is tracking - usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) - usagetype – A number representing the usage type (see Usage Types) - rawusage – A number representing the actual usage in hours - usageid – ID of the network offering - usagetype – A number representing the usage type (see Usage Types) - offeringid – Network offering ID - virtualMachineId – The ID of the virtual machine - virtualMachineId – The ID of the virtual machine - startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record - + Network Offering Usage Record Format + + account – name of the account + accountid – ID of the account + domainid – ID of the domain in which this account resides + zoneid – Zone where the usage occurred + description – A string describing what the usage record is tracking + usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) + usagetype – A number representing the usage type (see Usage Types) + rawusage – A number representing the actual usage in hours + usageid – ID of the network offering + usagetype – A number representing the usage type (see Usage Types) + offeringid – Network offering ID + virtualMachineId – The ID of the virtual machine + virtualMachineId – The ID of the virtual machine + startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record +
diff --git a/docs/en-US/network-usage-record-format.xml b/docs/en-US/network-usage-record-format.xml index 742f26be9e6..34b8f2d4955 100644 --- a/docs/en-US/network-usage-record-format.xml +++ b/docs/en-US/network-usage-record-format.xml @@ -23,18 +23,18 @@ -->
- Network Usage Record Format - For network usage (bytes sent/received), the following fields exist in a usage record. - - account – name of the account - accountid – ID of the account - domainid – ID of the domain in which this account resides - zoneid – Zone where the usage occurred - description – A string describing what the usage record is tracking - usagetype – A number representing the usage type (see Usage Types) - rawusage – A number representing the actual usage in hours - usageid – Device ID (virtual router ID or external device ID) - type – Device type (domain router, external load balancer, etc.) - startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record - + Network Usage Record Format + For network usage (bytes sent/received), the following fields exist in a usage record. + + account – name of the account + accountid – ID of the account + domainid – ID of the domain in which this account resides + zoneid – Zone where the usage occurred + description – A string describing what the usage record is tracking + usagetype – A number representing the usage type (see Usage Types) + rawusage – A number representing the actual usage in hours + usageid – Device ID (virtual router ID or external device ID) + type – Device type (domain router, external load balancer, etc.) + startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record +
diff --git a/docs/en-US/networking-in-a-pod.xml b/docs/en-US/networking-in-a-pod.xml index 1033b15ebc3..81f08271874 100644 --- a/docs/en-US/networking-in-a-pod.xml +++ b/docs/en-US/networking-in-a-pod.xml @@ -23,19 +23,19 @@ -->
- Networking in a Pod - Figure 2 illustrates network setup within a single pod. The hosts are connected to a pod-level switch. At a minimum, the hosts should have one physical uplink to each switch. Bonded NICs are supported as well. The pod-level switch is a pair of redundant gigabit switches with 10 G uplinks. - - - - - networking-in-a-pod.png: Network setup in a pod - - Servers are connected as follows: - - Storage devices are connected to only the network that carries management traffic. - Hosts are connected to networks for both management traffic and public traffic. - Hosts are also connected to one or more networks carrying guest traffic. - - We recommend the use of multiple physical Ethernet cards to implement each network interface as well as redundant switch fabric in order to maximize throughput and improve reliability. + Networking in a Pod + Figure 2 illustrates network setup within a single pod. The hosts are connected to a pod-level switch. At a minimum, the hosts should have one physical uplink to each switch. Bonded NICs are supported as well. The pod-level switch is a pair of redundant gigabit switches with 10 G uplinks. + + + + + networking-in-a-pod.png: Network setup in a pod + + Servers are connected as follows: + + Storage devices are connected to only the network that carries management traffic. + Hosts are connected to networks for both management traffic and public traffic. + Hosts are also connected to one or more networks carrying guest traffic. + + We recommend the use of multiple physical Ethernet cards to implement each network interface as well as redundant switch fabric in order to maximize throughput and improve reliability.
diff --git a/docs/en-US/networking-in-a-zone.xml b/docs/en-US/networking-in-a-zone.xml index 6f4e92a97f1..c380c33dd94 100644 --- a/docs/en-US/networking-in-a-zone.xml +++ b/docs/en-US/networking-in-a-zone.xml @@ -23,14 +23,14 @@ -->
- Networking in a Zone - Figure 3 illustrates the network setup within a single zone. - - - - - networking-in-a-zone.png: Network setup in a single zone - - A firewall for management traffic operates in the NAT mode. The network typically is assigned IP addresses in the 192.168.0.0/16 Class B private address space. Each pod is assigned IP addresses in the 192.168.*.0/24 Class C private address space. - Each zone has its own set of public IP addresses. Public IP addresses from different zones do not overlap. + Networking in a Zone + Figure 3 illustrates the network setup within a single zone. + + + + + networking-in-a-zone.png: Network setup in a single zone + + A firewall for management traffic operates in the NAT mode. The network typically is assigned IP addresses in the 192.168.0.0/16 Class B private address space. Each pod is assigned IP addresses in the 192.168.*.0/24 Class C private address space. + Each zone has its own set of public IP addresses. Public IP addresses from different zones do not overlap.
diff --git a/docs/en-US/networking-overview.xml b/docs/en-US/networking-overview.xml index 6f244df1ea5..798fd7a8bd8 100644 --- a/docs/en-US/networking-overview.xml +++ b/docs/en-US/networking-overview.xml @@ -23,13 +23,13 @@ -->
- Networking Overview - - &PRODUCT; offers two types of networking scenario: - - - Basic. For AWS-style networking. Provides a single network where guest isolation can be provided through layer-3 means such as security groups (IP address source filtering). - Advanced. For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks. - - For more details, see Network Setup. + Networking Overview + + &PRODUCT; offers two types of networking scenario: + + + Basic. For AWS-style networking. Provides a single network where guest isolation can be provided through layer-3 means such as security groups (IP address source filtering). + Advanced. For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks. + + For more details, see Network Setup.
diff --git a/docs/en-US/networking_overview.xml b/docs/en-US/networking_overview.xml index f00094c2728..a5f27c31402 100644 --- a/docs/en-US/networking_overview.xml +++ b/docs/en-US/networking_overview.xml @@ -23,14 +23,14 @@ -->
- Networking Overview - - CloudStack offers two types of networking scenario: - - - Basic. For AWS-style networking. Provides a single network where guest isolation can be provided through layer-3 means such as security groups (IP address source filtering). - Advanced. For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks. - - For more details, see Network Setup. + Networking Overview + + CloudStack offers two types of networking scenario: + + + Basic. For AWS-style networking. Provides a single network where guest isolation can be provided through layer-3 means such as security groups (IP address source filtering). + Advanced. For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks. + + For more details, see Network Setup.
diff --git a/docs/en-US/nfs-shares-on-management-server.xml b/docs/en-US/nfs-shares-on-management-server.xml index f1c0f422f3a..2c9b324d1a2 100644 --- a/docs/en-US/nfs-shares-on-management-server.xml +++ b/docs/en-US/nfs-shares-on-management-server.xml @@ -3,41 +3,60 @@ %BOOK_ENTITIES; ]> + + +
- Using the Management Server As the NFS Server - This section tells how to set up NFS shares for primary and secondary storage on the same node with the Management Server. This is more typical of a trial installation, but is technically possible in a larger deployment. It is assumed that you will have less than 16TB of storage on the host. - The exact commands for the following steps may vary depending on your operating system version. - - On the Management Server host, create two directories that you will use for primary and secondary storage. For example: - + Using the Management Server As the NFS Server + This section tells how to set up NFS shares for primary and secondary storage on the same node with the Management Server. This is more typical of a trial installation, but is technically possible in a larger deployment. It is assumed that you will have less than 16TB of storage on the host. + The exact commands for the following steps may vary depending on your operating system version. + + On the Management Server host, create two directories that you will use for primary and secondary storage. For example: + # mkdir -p /export/primary # mkdir -p /export/secondary - - - To configure the new directories as NFS exports, edit /etc/exports. Export the NFS share(s) with rw,async,no_root_squash. For example: - # vi /etc/exports - Insert the following line. - /export *(rw,async,no_root_squash) - - Export the /export directory. - # exportfs -a - - Edit the /etc/sysconfig/nfs file. - # vi /etc/sysconfig/nfs - Uncomment the following lines: - + + + To configure the new directories as NFS exports, edit /etc/exports. Export the NFS share(s) with rw,async,no_root_squash. For example: + # vi /etc/exports + Insert the following line. + /export *(rw,async,no_root_squash) + + Export the /export directory. + # exportfs -a + + Edit the /etc/sysconfig/nfs file. + # vi /etc/sysconfig/nfs + Uncomment the following lines: + LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 RQUOTAD_PORT=875 STATD_PORT=662 STATD_OUTGOING_PORT=2020 - - - Edit the /etc/sysconfig/iptables file. - # vi /etc/sysconfig/iptables - Add the following lines at the beginning of the INPUT chain where <NETWORK> is the network that you'll be using: - + + + Edit the /etc/sysconfig/iptables file. + # vi /etc/sysconfig/iptables + Add the following lines at the beginning of the INPUT chain where <NETWORK> is the network that you'll be using: + -A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 111 -j ACCEPT -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 111 -j ACCEPT -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 2049 -j ACCEPT @@ -48,46 +67,46 @@ STATD_OUTGOING_PORT=2020 -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 875 -j ACCEPT -A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 875 -j ACCEPT -A INPUT -s <NETWORK> -m state --state NEW -p tcp --dport 662 -j ACCEPT --A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 662 -j ACCEPT - - - Run the following commands: - +-A INPUT -s <NETWORK> -m state --state NEW -p udp --dport 662 -j ACCEPT + + + Run the following commands: + # service iptables restart # service iptables save - - - If NFS v4 communication is used between client and server, add your domain to /etc/idmapd.conf on both the hypervisor host and Management Server. - # vi /etc/idmapd.conf - Remove the character # from the beginning of the Domain line in idmapd.conf and replace the value in the file with your own domain. In the example below, the domain is company.com. - Domain = company.com - - Reboot the Management Server host. - Two NFS shares called /export/primary and /export/secondary are now set up. - - It is recommended that you test to be sure the previous steps have been successful. - - Log in to the hypervisor host. - Be sure NFS and rpcbind are running. The commands might be different depending on your OS. For example: - + + + If NFS v4 communication is used between client and server, add your domain to /etc/idmapd.conf on both the hypervisor host and Management Server. + # vi /etc/idmapd.conf + Remove the character # from the beginning of the Domain line in idmapd.conf and replace the value in the file with your own domain. In the example below, the domain is company.com. + Domain = company.com + + Reboot the Management Server host. + Two NFS shares called /export/primary and /export/secondary are now set up. + + It is recommended that you test to be sure the previous steps have been successful. + + Log in to the hypervisor host. + Be sure NFS and rpcbind are running. The commands might be different depending on your OS. For example: + # service rpcbind start # service nfs start # chkconfig nfs on # chkconfig rpcbind on -# reboot - - - Log back in to the hypervisor host and try to mount the /export directories. For example (substitute your own management server name): - +# reboot + + + Log back in to the hypervisor host and try to mount the /export directories. For example (substitute your own management server name): + # mkdir /primarymount # mount -t nfs <management-server-name>:/export/primary /primarymount # umount /primarymount # mkdir /secondarymount # mount -t nfs <management-server-name>:/export/secondary /secondarymount -# umount /secondarymount - - - - - +# umount /secondarymount + + + + +
diff --git a/docs/en-US/nfs-shares-on-separate-server.xml b/docs/en-US/nfs-shares-on-separate-server.xml index e2a7b39d2b2..947106dcd4f 100644 --- a/docs/en-US/nfs-shares-on-separate-server.xml +++ b/docs/en-US/nfs-shares-on-separate-server.xml @@ -23,30 +23,30 @@ -->
- Using a Separate NFS Server - This section tells how to set up NFS shares for secondary and (optionally) primary storage on an NFS server running on a separate node from the Management Server. - The exact commands for the following steps may vary depending on your operating system version. - (KVM only) Ensure that no volume is already mounted at your NFS mount point. - - On the storage server, create an NFS share for secondary storage and, if you are using NFS for primary storage as well, create a second NFS share. For example: - + Using a Separate NFS Server + This section tells how to set up NFS shares for secondary and (optionally) primary storage on an NFS server running on a separate node from the Management Server. + The exact commands for the following steps may vary depending on your operating system version. + (KVM only) Ensure that no volume is already mounted at your NFS mount point. + + On the storage server, create an NFS share for secondary storage and, if you are using NFS for primary storage as well, create a second NFS share. For example: + # mkdir -p /export/primary # mkdir -p /export/secondary - - - To configure the new directories as NFS exports, edit /etc/exports. Export the NFS share(s) with rw,async,no_root_squash. For example: - # vi /etc/exports - Insert the following line. - /export *(rw,async,no_root_squash) - - Export the /export directory. - # exportfs -a - - On the management server, create a mount point for secondary storage. For example: - # mkdir -p /mnt/secondary - - Mount the secondary storage on your Management Server. Replace the example NFS server name and NFS share paths below with your own. - # mount -t nfs nfsservername:/nfs/share/secondary /mnt/secondary - - + + + To configure the new directories as NFS exports, edit /etc/exports. Export the NFS share(s) with rw,async,no_root_squash. For example: + # vi /etc/exports + Insert the following line. + /export *(rw,async,no_root_squash) + + Export the /export directory. + # exportfs -a + + On the management server, create a mount point for secondary storage. For example: + # mkdir -p /mnt/secondary + + Mount the secondary storage on your Management Server. Replace the example NFS server name and NFS share paths below with your own. + # mount -t nfs nfsservername:/nfs/share/secondary /mnt/secondary + +
diff --git a/docs/en-US/ongoing-configuration-of-external-firewalls-loadbalancer.xml b/docs/en-US/ongoing-configuration-of-external-firewalls-loadbalancer.xml index 444a715291f..6a02d27fb7b 100644 --- a/docs/en-US/ongoing-configuration-of-external-firewalls-loadbalancer.xml +++ b/docs/en-US/ongoing-configuration-of-external-firewalls-loadbalancer.xml @@ -1,15 +1,34 @@ - %BOOK_ENTITIES; ]> + + +
Ongoing Configuration of External Firewalls and Load Balancers - Additional user actions (e.g. setting a port forward) will cause further programming of the firewall and load balancer. A user may request additional public IP addresses and forward traffic received at these IPs to specific VMs. This is accomplished by enabling static NAT for a public IP address, assigning the IP to a VM, and specifying a set of protocols and port ranges to open. When a static NAT rule is created, CloudPlatform programs the zone's external firewall with the following objects: + Additional user actions (e.g. setting a port forward) will cause further programming of the firewall and load balancer. A user may request additional public IP addresses and forward traffic received at these IPs to specific VMs. This is accomplished by enabling static NAT for a public IP address, assigning the IP to a VM, and specifying a set of protocols and port ranges to open. When a static NAT rule is created, &PRODUCT; programs the zone's external firewall with the following objects: A static NAT rule that maps the public IP address to the private IP address of a VM. A security policy that allows traffic within the set of protocols and port ranges that are specified. A firewall filter counter that measures the number of bytes of incoming traffic to the public IP. - The number of incoming and outgoing bytes through source NAT, static NAT, and load balancing rules is measured and saved on each external element. This data is collected on a regular basis and stored in the CloudPlatform database. + The number of incoming and outgoing bytes through source NAT, static NAT, and load balancing rules is measured and saved on each external element. This data is collected on a regular basis and stored in the &PRODUCT; database.
diff --git a/docs/en-US/over-provisioning-service-offering-limits.xml b/docs/en-US/over-provisioning-service-offering-limits.xml index 17704bc9a79..64a162745e5 100644 --- a/docs/en-US/over-provisioning-service-offering-limits.xml +++ b/docs/en-US/over-provisioning-service-offering-limits.xml @@ -1,12 +1,31 @@ - %BOOK_ENTITIES; ]> + + +
Over-Provisioning and Service Offering Limits - CloudPlatform performs CPU over-provisioning based on an over-provisioning ratio configured by the administrator. This is defined by the cpu.overprovisioning.factor global configuration variable. - CloudPlatform performs CPU over-provisioning based on an over-provisioning ratio configured by the administrator. This is defined by the cpu.overprovisioning.factor global configuration variable + &PRODUCT; performs CPU over-provisioning based on an over-provisioning ratio configured by the administrator. This is defined by the cpu.overprovisioning.factor global configuration variable. + &PRODUCT; performs CPU over-provisioning based on an over-provisioning ratio configured by the administrator. This is defined by the cpu.overprovisioning.factor global configuration variable Service offerings limits (e.g. 1 GHz, 1 core) are strictly enforced for core count. For example, a guest with a service offering of one core will have only one core available to it regardless of other activity on the Host. - Service offering limits for gigahertz are enforced only in the presence of contention for CPU resources. For example, suppose that a guest was created with a service offering of 1 GHz on a Host that has 2 GHz cores, and that guest is the only guest running on the Host. The guest will have the full 2 GHz available to it. When multiple guests are attempting to use the CPU a weighting factor is used to schedule CPU resources. The weight is based on the clock speed in the service offering. Guests receive a CPU allocation that is proportionate to the GHz in the service offering. For example, a guest created from a 2 GHz service offering will receive twice the CPU allocation as a guest created from a 1 GHz service offering. CloudPlatform does not perform memory over-provisioning. -
\ No newline at end of file + Service offering limits for gigahertz are enforced only in the presence of contention for CPU resources. For example, suppose that a guest was created with a service offering of 1 GHz on a Host that has 2 GHz cores, and that guest is the only guest running on the Host. The guest will have the full 2 GHz available to it. When multiple guests are attempting to use the CPU a weighting factor is used to schedule CPU resources. The weight is based on the clock speed in the service offering. Guests receive a CPU allocation that is proportionate to the GHz in the service offering. For example, a guest created from a 2 GHz service offering will receive twice the CPU allocation as a guest created from a 1 GHz service offering. &PRODUCT; does not perform memory over-provisioning. + diff --git a/docs/en-US/per-domain-limits.xml b/docs/en-US/per-domain-limits.xml index af770a56e3e..c20e84d4a58 100644 --- a/docs/en-US/per-domain-limits.xml +++ b/docs/en-US/per-domain-limits.xml @@ -1,16 +1,35 @@ - %BOOK_ENTITIES; ]> + + +
Per-Domain Limits - CloudPlatform allows the configuration of limits on a domain basis. With a domain limit in place, all users still have their account limits. They are additionally limited, as a group, to not exceed the resource limits set on their domain. Domain limits aggregate the usage of all accounts in the domain as well as all accounts in all subdomains of that domain. Limits set at the root domain level apply to the sum of resource usage by the accounts in all domains and sub-domains below that root domain. + &PRODUCT; allows the configuration of limits on a domain basis. With a domain limit in place, all users still have their account limits. They are additionally limited, as a group, to not exceed the resource limits set on their domain. Domain limits aggregate the usage of all accounts in the domain as well as all accounts in all subdomains of that domain. Limits set at the root domain level apply to the sum of resource usage by the accounts in all domains and sub-domains below that root domain. To set a domain limit: - Log in to the CloudPlatform UI. + Log in to the &PRODUCT; UI. In the left navigation tree, click Domains. - 3. Select the domain you want to modify. The current domain limits are displayed. A value of -1 shows that there is no limit in place. + Select the domain you want to modify. The current domain limits are displayed. A value of -1 shows that there is no limit in place. Click the Edit button diff --git a/docs/en-US/performance-monitoring.xml b/docs/en-US/performance-monitoring.xml index d1c3fda5dcf..70efbf783df 100644 --- a/docs/en-US/performance-monitoring.xml +++ b/docs/en-US/performance-monitoring.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Performance Monitoring Host and guest performance monitoring is available to end users and administrators. This allows the user to monitor their utilization of resources and determine when it is appropriate to choose a more powerful service offering or larger disk. diff --git a/docs/en-US/physical-network-configuration-settings.xml b/docs/en-US/physical-network-configuration-settings.xml index e55098400cf..4ab18b01d30 100644 --- a/docs/en-US/physical-network-configuration-settings.xml +++ b/docs/en-US/physical-network-configuration-settings.xml @@ -1,16 +1,35 @@ - %BOOK_ENTITIES; ]> + + +
- Configurable Characteristics of Physical Networks + Configurable Characteristics of Physical Networks &PRODUCT; provides configuration settings you can use to set up a physical network in a zone, including: What type of network traffic it carries (guest, public, management, storage) VLANs Unique name that the hypervisor can use to find that particular network - Enabled or disabled. When a network is first set up, it is disabled – not in use yet. The administrator sets the physical network to enabled, and it begins to be used. The administrator can later disable the network again, which prevents any new virtual networks from being created on that physical network; the existing network traffic continues even though the state is disabled. + Enabled or disabled. When a network is first set up, it is disabled – not in use yet. The administrator sets the physical network to enabled, and it begins to be used. The administrator can later disable the network again, which prevents any new virtual networks from being created on that physical network; the existing network traffic continues even though the state is disabled. Speed Tags, so network offerings can be matched to physical networks Isolation method diff --git a/docs/en-US/pod-add.xml b/docs/en-US/pod-add.xml index d6f018a41f9..419e333272e 100644 --- a/docs/en-US/pod-add.xml +++ b/docs/en-US/pod-add.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
- Adding a Pod - TODO + Adding a Pod + TODO
diff --git a/docs/en-US/port-forwarding.xml b/docs/en-US/port-forwarding.xml index 06beaf3b0eb..b7786936c4b 100644 --- a/docs/en-US/port-forwarding.xml +++ b/docs/en-US/port-forwarding.xml @@ -1,33 +1,49 @@ - %BOOK_ENTITIES; ]> + + +
- Port Forwarding - A port forward service is a set of port forwarding rules that define a policy. A port forward service is then applied to one or more guest VMs. The guest VM then has its inbound network access managed according to the policy defined by the port forwarding service. You can optionally specify one or more CIDRs to filter the source IPs. This is useful when you want to allow only incoming requests from certain IP addresses to be forwarded. - A guest VM can be in any number of port forward services. Port forward services can be defined but have no members. If a guest VM is part of more than one network, port forwarding rules will function only if they are defined on the default network - You cannot use port forwarding to open ports for an elastic IP address. When elastic IP is used, outside access is instead controlled through the use of security groups. See Security Groups. - To set up port forwarding: - - Log in to the CloudPlatform UI as an administrator or end user. - If you have not already done so, add a public IP address range to a zone in CloudPlatform. See Adding a Zone and Pod in the Installation Guide. - Add one or more VM instances to CloudPlatform. - In the left navigation bar, click Network. - Click the name of the guest network where the VMs are running. - - Choose an existing IP address or acquire a new IP address. (See Acquiring a New IP Address on page 73.) Click the name of the IP address in the list. - Click the Configuration tab. - In the Port Forwarding node of the diagram, click View All. - Fill in the following: - - Public Port. The port to which public traffic will be - addressed on the IP address you acquired in the previous step. - Private Port. The port on which the instance is listening for - forwarded public traffic. - Protocol. The communication protocol in use between the two - ports - - Click Add - + Port Forwarding + A port forward service is a set of port forwarding rules that define a policy. A port forward service is then applied to one or more guest VMs. The guest VM then has its inbound network access managed according to the policy defined by the port forwarding service. You can optionally specify one or more CIDRs to filter the source IPs. This is useful when you want to allow only incoming requests from certain IP addresses to be forwarded. + A guest VM can be in any number of port forward services. Port forward services can be defined but have no members. If a guest VM is part of more than one network, port forwarding rules will function only if they are defined on the default network + You cannot use port forwarding to open ports for an elastic IP address. When elastic IP is used, outside access is instead controlled through the use of security groups. See Security Groups. + To set up port forwarding: + + Log in to the CloudPlatform UI as an administrator or end user. + If you have not already done so, add a public IP address range to a zone in CloudPlatform. See Adding a Zone and Pod in the Installation Guide. + Add one or more VM instances to CloudPlatform. + In the left navigation bar, click Network. + Click the name of the guest network where the VMs are running. + + Choose an existing IP address or acquire a new IP address. (See Acquiring a New IP Address on page 73.) Click the name of the IP address in the list. + Click the Configuration tab. + In the Port Forwarding node of the diagram, click View All. + Fill in the following: + + Public Port. The port to which public traffic will be addressed on the IP address you acquired in the previous step. + Private Port. The port on which the instance is listening for forwarded public traffic. + Protocol. The communication protocol in use between the two ports. + + Click Add. +
diff --git a/docs/en-US/prepare-nfs-shares.xml b/docs/en-US/prepare-nfs-shares.xml index b0b0e3827c8..28e3fa30de1 100644 --- a/docs/en-US/prepare-nfs-shares.xml +++ b/docs/en-US/prepare-nfs-shares.xml @@ -1,21 +1,38 @@ - %BOOK_ENTITIES; ]> + + +
- Prepare NFS Shares - &PRODUCT; needs a place to keep primary and secondary storage (see Cloud Infrastructure Overview). Both of these can be NFS shares. This section tells how to set up the NFS shares before adding the storage to &PRODUCT;. - For primary storage, you can use iSCSI instead. - The requirements for primary and secondary storage are described in: - - About Primary Storage - About Secondary Storage - - A production installation typically uses a separate NFS server. See . - You can also use the Management Server node as the NFS server. This is more typical of a trial installation, but is technically possible in a larger deployment. - See . - - - -
\ No newline at end of file + Prepare NFS Shares + &PRODUCT; needs a place to keep primary and secondary storage (see Cloud Infrastructure Overview). Both of these can be NFS shares. This section tells how to set up the NFS shares before adding the storage to &PRODUCT;. + For primary storage, you can use iSCSI instead. + The requirements for primary and secondary storage are described in: + + About Primary Storage + About Secondary Storage + + A production installation typically uses a separate NFS server. See . + You can also use the Management Server node as the NFS server. This is more typical of a trial installation, but is technically possible in a larger deployment. See . + + +
diff --git a/docs/en-US/prepare-os.xml b/docs/en-US/prepare-os.xml index 0e23315d167..677ae43d4b8 100644 --- a/docs/en-US/prepare-os.xml +++ b/docs/en-US/prepare-os.xml @@ -1,86 +1,110 @@ -
- Prepare the Operating System - - The OS must be prepared to host the Management Server using the following steps. These steps must be performed on each Management Server node. - - - Log in to your OS as root. - Check for a fully qualified hostname. - # hostname --fqdn - This should return a fully qualified hostname such as "kvm1.lab.example.org". If it does not, edit /etc/hosts so that it does. - - Set SELinux to be permissive by default. - - Check to see whether SELinux is installed on your machine. If not, you can skip to step 4. - In RHEL or CentOS, SELinux is installed and enabled by default. You can verify this with: - # rpm -qa | grep selinux - In Ubuntu, SELinux is not installed by default. You can verify this with: - # dpkg --list 'selinux' - - Set the SELINUX variable in /etc/selinux/config to “permissive”. This ensures that the permissive setting will be maintained after a system reboot. - In RHEL or CentOS: - # vi /etc/selinux/config - In Ubuntu (do this step only if SELinux was found on the machine in the previous step): - # selinux-config-enforcing permissive - - Then set SELinux to permissive starting immediately, without requiring a system reboot. - In CentOS: - # setenforce permissive - In RHEL: - # setenforce 0 - In Ubuntu (do this step only if SELinux was found on the machine): - # setenforce permissive - - - - Make sure that the machine can reach the Internet. - # ping www.google.com - - (RHEL 6.2) If you do not have a Red Hat Network account, you need to prepare a local Yum repository. - - If you are working with a physical host, insert the RHEL 6.2 installation CD. If you are using a VM, attach the RHEL6 ISO. - Mount the CDROM to /media. - Create a repo file at /etc/yum.repos.d/rhel6.repo. In the file, insert the following lines: - + + +%BOOK_ENTITIES; +]> + + + +
+ Prepare the Operating System + + The OS must be prepared to host the Management Server using the following steps. These steps must be performed on each Management Server node. + + + Log in to your OS as root. + Check for a fully qualified hostname. + # hostname --fqdn + This should return a fully qualified hostname such as "kvm1.lab.example.org". If it does not, edit /etc/hosts so that it does. + + Set SELinux to be permissive by default. + + Check to see whether SELinux is installed on your machine. If not, you can skip to step 4. + In RHEL or CentOS, SELinux is installed and enabled by default. You can verify this with: + # rpm -qa | grep selinux + In Ubuntu, SELinux is not installed by default. You can verify this with: + # dpkg --list 'selinux' + + Set the SELINUX variable in /etc/selinux/config to “permissive”. This ensures that the permissive setting will be maintained after a system reboot. + In RHEL or CentOS: + # vi /etc/selinux/config + In Ubuntu (do this step only if SELinux was found on the machine in the previous step): + # selinux-config-enforcing permissive + + Then set SELinux to permissive starting immediately, without requiring a system reboot. + In CentOS: + # setenforce permissive + In RHEL: + # setenforce 0 + In Ubuntu (do this step only if SELinux was found on the machine): + # setenforce permissive + + + + Make sure that the machine can reach the Internet. + # ping www.google.com + + (RHEL 6.2) If you do not have a Red Hat Network account, you need to prepare a local Yum repository. + + If you are working with a physical host, insert the RHEL 6.2 installation CD. If you are using a VM, attach the RHEL6 ISO. + Mount the CDROM to /media. + Create a repo file at /etc/yum.repos.d/rhel6.repo. In the file, insert the following lines: + [rhel] name=rhel6 baseurl=file:///media enabled=1 -gpgcheck=0 - - - - - Turn on NTP for time synchronization. - NTP is required to synchronize the clocks of the servers in your cloud. - - Install NTP. - On RHEL or CentOS: - # yum install ntp - On Ubuntu: - # apt-get install ntp - - Edit the NTP configuration file to point to your NTP server. - # vi /etc/ntp.conf - Add one or more server lines in this file with the names of the NTP servers - you want to use. For example: - server 0.xenserver.pool.ntp.org +gpgcheck=0 + + + + + Turn on NTP for time synchronization. + NTP is required to synchronize the clocks of the servers in your cloud. + + Install NTP. + On RHEL or CentOS: + # yum install ntp + On Ubuntu: + # apt-get install ntp + + Edit the NTP configuration file to point to your NTP server. + # vi /etc/ntp.conf + Add one or more server lines in this file with the names of the NTP servers + you want to use. For example: + server 0.xenserver.pool.ntp.org server 1.xenserver.pool.ntp.org server 2.xenserver.pool.ntp.org server 3.xenserver.pool.ntp.org - - Restart the NTP client. - # service ntpd restart - - Make sure NTP will start again upon reboot. - On RHEL or CentOS: - # chkconfig ntpd on - On Ubuntu: - # chkconfig ntp on - - - - Repeat all of these steps on every host where the Management Server will be installed. - -
\ No newline at end of file +
+ Restart the NTP client. + # service ntpd restart + + Make sure NTP will start again upon reboot. + On RHEL or CentOS: + # chkconfig ntpd on + On Ubuntu: + # chkconfig ntp on + +
+
+ Repeat all of these steps on every host where the Management Server will be installed. +
+
diff --git a/docs/en-US/prepare-system-vm-template.xml b/docs/en-US/prepare-system-vm-template.xml index ff4b58a3dd5..85f144e356e 100644 --- a/docs/en-US/prepare-system-vm-template.xml +++ b/docs/en-US/prepare-system-vm-template.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Prepare the System VM Template Secondary storage must be seeded with a template that is used for &PRODUCT; system VMs. @@ -24,7 +43,7 @@ - 2. If you are using a separate NFS server, perform this step. If you are using the Management Server as the NFS server, you MUST NOT perform this step. + If you are using a separate NFS server, perform this step. If you are using the Management Server as the NFS server, you MUST NOT perform this step. When the script has finished, unmount secondary storage and remove the created directory. # umount /mnt/secondary diff --git a/docs/en-US/prepare_os.xml b/docs/en-US/prepare_os.xml index 782a0b24d19..f0fc201cde7 100644 --- a/docs/en-US/prepare_os.xml +++ b/docs/en-US/prepare_os.xml @@ -1,84 +1,106 @@ -
- Prepare the Operating System - - The OS must be prepared to host the Management Server using the following steps. These steps must be performed on each Management Server node. - - - Log in to your OS as root. - Check for a fully qualified hostname. - # hostname --fqdn - This should return a fully qualified hostname such as "kvm1.lab.example.org". If it does not, edit /etc/hosts so that it does. - - Set SELinux to be permissive by default. - - Check to see whether SELinux is installed on your machine. If not, you can skip to step 4. - In RHEL or CentOS, SELinux are installed and enabled by default. You can verify this with: - # rpm -qa | grep selinux - In Ubuntu, SELinux is not installed by default. You can verify this with: - # dpkg --list 'selinux' - - Set the SELINUX variable in /etc/selinux/config to “permissive”. This ensures that the permissive setting will be maintained after a system reboot. - In RHEL or CentOS: - # vi /etc/selinux/config - In Ubuntu (do this step only if SELinux was found on the machine in the previous step): - # selinux-config-enforcing permissive - - Then set SELinux to permissive starting immediately, without requiring a system reboot. - In CentOS: - # setenforce permissive - In RHEL: - # setenforce 0 - In Ubuntu (do this step only if SELinux was found on the machine): - # setenforce permissive - - - - Make sure that the Management Server can reach the Internet. - # ping www.google.com - - (RHEL 6.2) If you do not have a Red Hat Network account, you need to prepare a local Yum repository. - - If you are working with a physical host, insert the RHEL 6.2 installation CD. If you are using a VM, attach the RHEL6 ISO. - Mount the CDROM to /media. - Create a repo file at /etc/yum.repos.d/rhel6.repo. In the file, insert the following lines: - + + +%BOOK_ENTITIES; +]> + + + +
+ Prepare the Operating System + The OS must be prepared to host the Management Server using the following steps. These steps must be performed on each Management Server node. + + Log in to your OS as root. + Check for a fully qualified hostname. + # hostname --fqdn + This should return a fully qualified hostname such as "kvm1.lab.example.org". If it does not, edit /etc/hosts so that it does. + + Set SELinux to be permissive by default. + + Check to see whether SELinux is installed on your machine. If not, you can skip to step 4. + In RHEL or CentOS, SELinux are installed and enabled by default. You can verify this with: + # rpm -qa | grep selinux + In Ubuntu, SELinux is not installed by default. You can verify this with: + # dpkg --list 'selinux' + + Set the SELINUX variable in /etc/selinux/config to “permissive”. This ensures that the permissive setting will be maintained after a system reboot. + In RHEL or CentOS: + # vi /etc/selinux/config + In Ubuntu (do this step only if SELinux was found on the machine in the previous step): + # selinux-config-enforcing permissive + + Then set SELinux to permissive starting immediately, without requiring a system reboot. + In CentOS: + # setenforce permissive + In RHEL: + # setenforce 0 + In Ubuntu (do this step only if SELinux was found on the machine): + # setenforce permissive + + + + Make sure that the Management Server can reach the Internet. + # ping www.google.com + + (RHEL 6.2) If you do not have a Red Hat Network account, you need to prepare a local Yum repository. + + If you are working with a physical host, insert the RHEL 6.2 installation CD. If you are using a VM, attach the RHEL6 ISO. + Mount the CDROM to /media. + Create a repo file at /etc/yum.repos.d/rhel6.repo. In the file, insert the following lines: + [rhel] name=rhel6 baseurl=file:///media enabled=1 -gpgcheck=0 - - - - - Turn on NTP for time synchronization. - NTP is required to synchronize the clocks of the servers in your cloud. - - Install NTP. - On RHEL or CentOS: - # yum install ntp - On Ubuntu: - # apt-get install ntp - - Edit the NTP configuration file to point to your NTP server. - # vi /etc/ntp.conf - For example, you can use one of the following: - 0.xenserver.pool.ntp.org +gpgcheck=0 + + + + + Turn on NTP for time synchronization. + NTP is required to synchronize the clocks of the servers in your cloud. + + Install NTP. + On RHEL or CentOS: + # yum install ntp + On Ubuntu: + # apt-get install ntp + + Edit the NTP configuration file to point to your NTP server. + # vi /etc/ntp.conf + For example, you can use one of the following: + 0.xenserver.pool.ntp.org 1.xenserver.pool.ntp.org 2.xenserver.pool.ntp.org 3.xenserver.pool.ntp.org - - Restart the NTP client. - # service ntpd restart - - Make sure NTP will start again upon reboot. - On RHEL or CentOS: - # chkconfig ntpd on - On Ubuntu: - # chkconfig ntp on - - - - -
\ No newline at end of file +
+ Restart the NTP client. + # service ntpd restart + + Make sure NTP will start again upon reboot. + On RHEL or CentOS: + # chkconfig ntpd on + On Ubuntu: + # chkconfig ntp on + +
+
+
+
diff --git a/docs/en-US/primary-storage-add.xml b/docs/en-US/primary-storage-add.xml index f8b49a91118..588d491a07a 100644 --- a/docs/en-US/primary-storage-add.xml +++ b/docs/en-US/primary-storage-add.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
- Adding Primary Storage - TODO -
\ No newline at end of file + Adding Primary Storage + TODO +
diff --git a/docs/en-US/primary-storage-outage-and-data-loss.xml b/docs/en-US/primary-storage-outage-and-data-loss.xml index 1e2e588ed1b..e68d1d98e1b 100644 --- a/docs/en-US/primary-storage-outage-and-data-loss.xml +++ b/docs/en-US/primary-storage-outage-and-data-loss.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Primary Storage Outage and Data Loss When a primary storage outage occurs the hypervisor immediately stops all VMs stored on that storage device. Guests that are marked for HA will be restarted as soon as practical when the primary storage comes back on line. With NFS, the hypervisor may allow the virtual machines to continue running depending on the nature of the issue. For example, an NFS hang will cause the guest VMs to be suspended until storage connectivity is restored.Primary storage is not designed to be backed up. Individual volumes in primary storage can be backed up using snapshots. diff --git a/docs/en-US/primary-storage.xml b/docs/en-US/primary-storage.xml index 25afc214724..4860488fb29 100644 --- a/docs/en-US/primary-storage.xml +++ b/docs/en-US/primary-storage.xml @@ -1,10 +1,28 @@ - %BOOK_ENTITIES; ]> -
- Primary Storage - This section gives concepts and technical details about CloudPlatform primary storage. For information about how to install and configure primary storage through the CloudPlatform UI, see the Advanced Installation Guide. -
+ + +
+ Primary Storage + This section gives concepts and technical details about CloudPlatform primary storage. For information about how to install and configure primary storage through the CloudPlatform UI, see the Advanced Installation Guide. +
diff --git a/docs/en-US/private-public-template.xml b/docs/en-US/private-public-template.xml index 1acc91a2d86..85565833f03 100644 --- a/docs/en-US/private-public-template.xml +++ b/docs/en-US/private-public-template.xml @@ -1,12 +1,30 @@ - %BOOK_ENTITIES; ]> + + +
- Private and Public Templates - When a user creates a template, it can be designated private or public. - Private templates are only available to the user who created them. By default, an uploaded template is private. - When a user marks a template as “public,” the template becomes available to all users in all accounts in the user's domain, as well as users in any other domains that have access to the Zone where the template is stored. This depends on whether the Zone, in turn, was defined as private or public. A private Zone is assigned to a single domain, and a public Zone is accessible to any domain. If a public template is created in a private Zone, it is available only to users in the domain assigned to that Zone. If a public template is created in a public Zone, it is available to all users in all domains. - + Private and Public Templates + When a user creates a template, it can be designated private or public. + Private templates are only available to the user who created them. By default, an uploaded template is private. + When a user marks a template as “public,” the template becomes available to all users in all accounts in the user's domain, as well as users in any other domains that have access to the Zone where the template is stored. This depends on whether the Zone, in turn, was defined as private or public. A private Zone is assigned to a single domain, and a public Zone is accessible to any domain. If a public template is created in a private Zone, it is available only to users in the domain assigned to that Zone. If a public template is created in a public Zone, it is available to all users in all domains.
diff --git a/docs/en-US/projects.xml b/docs/en-US/projects.xml index 37ca7b15f4e..0390f528f3f 100644 --- a/docs/en-US/projects.xml +++ b/docs/en-US/projects.xml @@ -1,13 +1,31 @@ - %BOOK_ENTITIES; ]> + + +
Projects - Projects are used to organize people and resources. CloudPlatform users within a single domain can group themselves into project teams so they can collaborate and share virtual resources such as VMs, snapshots, templates, data disks, and IP addresses. CloudPlatform tracks resource usage per project as well as per user, so the usage can be billed to either a user account or a project. For example, a private cloud within a software company might have all members of the QA department assigned to one project, so the company can track the resources used in testing while the project members can more easily isolate their efforts from other users of the same cloud - You can configure CloudPlatform to allow any user to create a new project, or you can restrict that ability to just CloudPlatform administrators. Once you have created a project, you become that project’s administrator, and you can add others within your domain to the project. CloudPlatform can be set up either so that you can add people directly to a project, or so that you have to send an invitation which the recipient must accept. Project members can view and manage all virtual resources created by anyone in the project (for example, share VMs). A user can be a member of any number of projects and can switch views in the CloudPlatform UI to show only project-related information, such as project VMs, fellow project members, project-related alerts, and so on. - The project administrator can pass on the role to another project member. The project administrator can also add more members, remove members from the project, set new resource limits (as long as they are below the global defaults set by the CloudPlatform administrator), and delete the project. When the administrator removes a member from the project, resources created by that user, such as VM instances, remain with the project. This brings us to the subject of resource ownership and which resources can be used by a project. - Resources created within a project are owned by the project, not by any particular CloudPlatform account, and they can be used only within the project. A user who belongs to one or more projects can still create resources outside of those projects, and those resources belong to the user’s account; they will not be counted against the project’s usage or resource limits. You can create project-level networks to isolate traffic within the project and provide network services such as port forwarding, load balancing, VPN, and static NAT. A project can also make use of certain types of resources from outside the project, if those resources are shared. For example, a shared network or public template is available to any project in the domain. A project can get access to a private template if the template’s owner will grant permission. A project can use any service offering or disk offering available in its domain; however, you can not create private service and disk offerings at the project level.. + Projects are used to organize people and resources. &PRODUCT; users within a single domain can group themselves into project teams so they can collaborate and share virtual resources such as VMs, snapshots, templates, data disks, and IP addresses. &PRODUCT; tracks resource usage per project as well as per user, so the usage can be billed to either a user account or a project. For example, a private cloud within a software company might have all members of the QA department assigned to one project, so the company can track the resources used in testing while the project members can more easily isolate their efforts from other users of the same cloud + You can configure &PRODUCT; to allow any user to create a new project, or you can restrict that ability to just &PRODUCT; administrators. Once you have created a project, you become that project’s administrator, and you can add others within your domain to the project. &PRODUCT; can be set up either so that you can add people directly to a project, or so that you have to send an invitation which the recipient must accept. Project members can view and manage all virtual resources created by anyone in the project (for example, share VMs). A user can be a member of any number of projects and can switch views in the &PRODUCT; UI to show only project-related information, such as project VMs, fellow project members, project-related alerts, and so on. + The project administrator can pass on the role to another project member. The project administrator can also add more members, remove members from the project, set new resource limits (as long as they are below the global defaults set by the &PRODUCT; administrator), and delete the project. When the administrator removes a member from the project, resources created by that user, such as VM instances, remain with the project. This brings us to the subject of resource ownership and which resources can be used by a project. + Resources created within a project are owned by the project, not by any particular &PRODUCT; account, and they can be used only within the project. A user who belongs to one or more projects can still create resources outside of those projects, and those resources belong to the user’s account; they will not be counted against the project’s usage or resource limits. You can create project-level networks to isolate traffic within the project and provide network services such as port forwarding, load balancing, VPN, and static NAT. A project can also make use of certain types of resources from outside the project, if those resources are shared. For example, a shared network or public template is available to any project in the domain. A project can get access to a private template if the template’s owner will grant permission. A project can use any service offering or disk offering available in its domain; however, you can not create private service and disk offerings at the project level..
- diff --git a/docs/en-US/provisioning-auth-api.xml b/docs/en-US/provisioning-auth-api.xml index d7c518446a0..0f28b1f3421 100644 --- a/docs/en-US/provisioning-auth-api.xml +++ b/docs/en-US/provisioning-auth-api.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
Provisioning and Authentication API - CloudPlatform expects that a customer will have their own user provisioning infrastructure. It provides APIs to integrate with these existing systems where the systems call out to CloudPlatform to add/remove users.. - CloudPlatform supports pluggable authenticators. By default, CloudPlatform assumes it is provisioned with the user’s password, and as a result authentication is done locally. However, external authentication is possible as well. For example, see Using an LDAP Server for User Authentication . -
\ No newline at end of file + &PRODUCT; expects that a customer will have their own user provisioning infrastructure. It provides APIs to integrate with these existing systems where the systems call out to &PRODUCT; to add/remove users.. + &PRODUCT; supports pluggable authenticators. By default, &PRODUCT; assumes it is provisioned with the user’s password, and as a result authentication is done locally. However, external authentication is possible as well. For example, see Using an LDAP Server for User Authentication. +
diff --git a/docs/en-US/provisioning-steps-overview.xml b/docs/en-US/provisioning-steps-overview.xml index 3c1d46588c7..1da4485ff39 100644 --- a/docs/en-US/provisioning-steps-overview.xml +++ b/docs/en-US/provisioning-steps-overview.xml @@ -1,27 +1,46 @@ - %BOOK_ENTITIES; ]> + + +
- Overview of Provisioning Steps - After the Management Server is installed and running, you can add the compute resources for it to manage. For an overview of how a &PRODUCT; cloud infrastructure is organized, see . - To provision the cloud infrastructure, or to scale it up at any time, follow these procedures: - - Change the root password. See . - Add a zone. See . - Add more pods (optional). See . - Add more clusters (optional). See . - Add more hosts (optional). See . - Add primary storage. See . - Add secondary storage. See . - Initialize and test the new cloud. See . - - When you have finished these steps, you will have a deployment with the following basic structure: - - - - - provisioning-overview.png: Conceptual overview of a basic deployment - + Overview of Provisioning Steps + After the Management Server is installed and running, you can add the compute resources for it to manage. For an overview of how a &PRODUCT; cloud infrastructure is organized, see . + To provision the cloud infrastructure, or to scale it up at any time, follow these procedures: + + Change the root password. See . + Add a zone. See . + Add more pods (optional). See . + Add more clusters (optional). See . + Add more hosts (optional). See . + Add primary storage. See . + Add secondary storage. See . + Initialize and test the new cloud. See . + + When you have finished these steps, you will have a deployment with the following basic structure: + + + + + provisioning-overview.png: Conceptual overview of a basic deployment +
diff --git a/docs/en-US/provisioning-steps.xml b/docs/en-US/provisioning-steps.xml index 62ab9fa336b..fda3e177f15 100644 --- a/docs/en-US/provisioning-steps.xml +++ b/docs/en-US/provisioning-steps.xml @@ -1,11 +1,30 @@ - %BOOK_ENTITIES; ]> + + +
- Steps to Provisioning Your Cloud Infrastructure - This section tells how to add zones, pods, clusters, hosts, storage, and networks to your cloud. If you are unfamiliar with these entities, please begin by looking through . + Steps to Provisioning Your Cloud Infrastructure + This section tells how to add zones, pods, clusters, hosts, storage, and networks to your cloud. If you are unfamiliar with these entities, please begin by looking through . @@ -15,4 +34,4 @@ -
\ No newline at end of file +
diff --git a/docs/en-US/provisioning.xml b/docs/en-US/provisioning.xml index 957bc1ef9c2..07758ef92f5 100644 --- a/docs/en-US/provisioning.xml +++ b/docs/en-US/provisioning.xml @@ -1,10 +1,10 @@ - %BOOK_ENTITIES; ]> - Provisioning Your Cloud Infrastructure - + Provisioning Your Cloud Infrastructure + diff --git a/docs/en-US/query-filter.xml b/docs/en-US/query-filter.xml index bb577746aac..fa5ea6344c1 100644 --- a/docs/en-US/query-filter.xml +++ b/docs/en-US/query-filter.xml @@ -1,42 +1,60 @@ - %BOOK_ENTITIES; ]> + + +
- Query Filter - The query filter is used to find a mapped user in the external LDAP server. The query filter should uniquely map the CloudPlatform user to LDAP user for a meaningful authentication. For more information about query filter syntax, consult the documentation for your LDAP server. - The CloudPlatform query filter wildcards are: - - - - - Query Filter Wildcard - Description - - - - - %u - User name - - - %e - Email address - - - %n - First and last name - - - - - The following examples assume you are using Active Directory, and refer to user attributes from the Active Directory schema. - If the CloudPlatform user name is the same as the LDAP user ID: - (uid=%u) - If the CloudPlatform user name is the LDAP display name: - (displayName=%u) - To find a user by email address: - - (mail=%e) +Query Filter +The query filter is used to find a mapped user in the external LDAP server. The query filter should uniquely map the CloudPlatform user to LDAP user for a meaningful authentication. For more information about query filter syntax, consult the documentation for your LDAP server. +The CloudPlatform query filter wildcards are: + + + + + Query Filter Wildcard + Description + + + + + %u + User name + + + %e + Email address + + + %n + First and last name + + + + +The following examples assume you are using Active Directory, and refer to user attributes from the Active Directory schema. +If the CloudPlatform user name is the same as the LDAP user ID: +(uid=%u) +If the CloudPlatform user name is the LDAP display name: +(displayName=%u) +To find a user by email address: +(mail=%e)
diff --git a/docs/en-US/release-ip-address.xml b/docs/en-US/release-ip-address.xml index 59c4814c9c2..87b53007cdb 100644 --- a/docs/en-US/release-ip-address.xml +++ b/docs/en-US/release-ip-address.xml @@ -1,22 +1,41 @@ - %BOOK_ENTITIES; ]> + + +
- Releasing an IP Address - - Log in to the CloudPlatform UI as an administrator or end user. - In the left navigation, choose Network. - Click the name of the network where you want to work with. - Click View IP Addresses. - Click the IP address you want to release. - - Click the Release IP button - - - - ReleaseIPButton.png: button to release an IP - . - + Releasing an IP Address + + Log in to the CloudPlatform UI as an administrator or end user. + In the left navigation, choose Network. + Click the name of the network where you want to work with. + Click View IP Addresses. + Click the IP address you want to release. + + Click the Release IP button + + + + ReleaseIPButton.png: button to release an IP + . +
diff --git a/docs/en-US/release-notes-3.0.4.xml b/docs/en-US/release-notes-3.0.4.xml index 26e3532eb97..744d3d2900f 100644 --- a/docs/en-US/release-notes-3.0.4.xml +++ b/docs/en-US/release-notes-3.0.4.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + + @@ -20,14 +39,14 @@ Stop all Usage Servers if running. Run this on all Usage Server hosts.# service cloud-usage stop Stop the Management Servers. Run this on all Management Server hosts.# service cloud-management stop 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. - In the following commands, it is assumed that you have set the root password on the database, which is a CloudPlatform recommended best practice. Substitute your own MySQL root password. + In the following commands, it is assumed that you have set the root password on the database, which is a &PRODUCT; recommended best practice. Substitute your own MySQL root password. # mysqldump -u root -p<mysql_password> cloud >> cloud-backup.dmp # mysqldump -u root -p<mysql_password> cloud_usage > cloud-usage-backup.dmp - Download CloudPlatform 3.0.4 onto management server host where it will run. Get the software from the following link: + Download &PRODUCT; 3.0.4 onto management server host where it will run. Get the software from the following link: . You need a My Citrix Account. - Upgrade the CloudPlatform packages. You should have a file in the form of + Upgrade the &PRODUCT; packages. You should have a file in the form of “CloudStack-3.0.4-N-OSVERSION.tar.gz”. Untar the file, then run the install.sh script inside it. Replace the file and directory names below with those you are using: # tar xzf CloudStack-3.0.4-N-OSVERSION.tar.gz # cd CloudStack-3.0.4-N-OSVERSION @@ -35,7 +54,7 @@ You should see a few messages as the installer prepares, followed by a list of choices. Choose "U" to upgrade the package>UYou should see some output as the upgrade proceeds, ending with a message like "Complete! Done." - If you have made changes to your existing copy of the file components.xml in your previous-version CloudPlatform 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 3.0.4. + If you have made changes to your existing copy of the file components.xml in your previous-version &PRODUCT; 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 3.0.4. 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: warning: /etc/cloud/management/components.xml created as /etc/cloud/management/components.xml.rpmnew @@ -54,7 +73,7 @@ # service cloud-usage start 12. (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. - Copy the CloudPlatform 3.0.4 tar file to the host, untar it, and change directory to the resulting directory. + Copy the &PRODUCT; 3.0.4 tar file to the host, untar it, and change directory to the resulting directory. Stop the running agent. # service cloud-agent stop Update the agent software.# ./install.sh @@ -62,7 +81,7 @@ Start the agent.# service cloud-agent start - Log in to the CloudPlatform 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. + Log in to the &PRODUCT; 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. Troubleshooting: If login fails, clear your browser cache and reload the page. Do not proceed to the next step until the hosts show in Up state. If the hosts do not come to the Up state, contact support. If you are upgrading from 3.0.1 or 3.0.2, perform the following: @@ -92,7 +111,7 @@ Open port 7080: # iptables -I INPUT -p tcp -m tcp --dport 7080 -j ACCEPT - If you have made any modifications in server.xml on your existing CloudPlatform installation, back it up: + If you have made any modifications in server.xml on your existing &PRODUCT; installation, back it up: # mv /etc/cloud/management/server.xml /etc/cloud/management/server.xml-backup Then replace with the new server.xml file: # cp /etc/cloud/management/server.xml.rpmnew /etc/cloud/management/server.xml @@ -110,13 +129,13 @@ cloudAPIPort=8080 Restart the Management Server to put the new settings into effect.
- If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version supported by CloudPlatform 3.0.4. The supported versions are XenServer 5.6 SP2 and 6.0.2. Instructions for upgrade can be found in the CloudPlatform 3.0.3 Advanced Installation Guide. + If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version supported by &PRODUCT; 3.0.4. The supported versions are XenServer 5.6 SP2 and 6.0.2. Instructions for upgrade can be found in the &PRODUCT; 3.0.3 Advanced Installation Guide. Now apply the XenServer hotfix XS602E003 to XenServer v6.0.2 hypervisor hosts. (Support for this hotfix is the reason for release 3.0.4.) - Disconnect the XenServer cluster from CloudPlatform. - In the left navigation bar of the CloudPlatform UI, select Infrastructure. Under Clusters, click View All. Select the XenServer cluster and click Actions - Unmanage. + Disconnect the XenServer cluster from &PRODUCT;. + In the left navigation bar of the &PRODUCT; UI, select Infrastructure. Under Clusters, click View All. Select the XenServer cluster and click Actions - Unmanage. 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. - Wait until the status of the cluster has reached Unmanaged. Use the CloudPlatform UI to check on the status. When the cluster is in the unmanaged state, there is no connection to the hosts in the cluster. + Wait until the status of the cluster has reached Unmanaged. Use the &PRODUCT; UI to check on the status. When the cluster is in the unmanaged state, there is no connection to the hosts in the cluster. To clean up the VLAN, log in to one XenServer host and run: /opt/xensource/bin/cloud-clean-vlan.sh @@ -146,7 +165,7 @@ cloudAPIPort=8080 xe patch-apply host-uuid=<host-uuid> uuid=<hotfix-uuid> - Copy the following files from the CloudPlatform Management Server to the host. + Copy the following files from the &PRODUCT; Management Server to the host. @@ -274,15 +293,15 @@ cloudAPIPort=8080 Stop the Management Servers. Run this on all Management Server hosts. # service cloud-management stop 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. - In the following commands, it is assumed that you have set the root password on the database, which is a CloudPlatform recommended best practice. Substitute your own MySQL root password. + In the following commands, it is assumed that you have set the root password on the database, which is a &PRODUCT; recommended best practice. Substitute your own MySQL root password. # mysqldump -u root -p<mysql_password> cloud >> cloud-backup.dmp # mysqldump -u root -p<mysql_password> cloud_usage > cloud-usage-backup.dmp - Download CloudPlatform 3.0.4 onto management server host where it will run. Get the software from the following link: + Download &PRODUCT; 3.0.4 onto management server host where it will run. Get the software from the following link: You need a My Citrix Account. - Upgrade the CloudPlatform packages. You should have a file in the form of + Upgrade the &PRODUCT; packages. You should have a file in the form of “CloudStack-3.0.4-N-OSVERSION.tar.gz”. Untar the file, then run the install.sh script inside it. Replace the file and directory names below with those you are using: # tar xzf CloudStack-3.0.4-N-OSVERSION.tar.gz # cd CloudStack-3.0.4-N-OSVERSION @@ -290,7 +309,7 @@ cloudAPIPort=8080 You should see a few messages as the installer prepares, followed by a list of choices. Choose "U" to upgrade the package>UYou should see some output as the upgrade proceeds, ending with a message like "Complete! Done." - If you have made changes to your existing copy of the file components.xml in your previous-version CloudPlatform 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 3.0.4. + If you have made changes to your existing copy of the file components.xml in your previous-version &PRODUCT; 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 3.0.4. How will you know whether you need to do this? If the upgrade output in the previous step included a message like "warning: /etc/cloud/management/components.xml created as /etc/cloud/management/components.xml.rpmnew", then some custom content was found in your old components.xml, and you need to merge the two files: Make a backup copy of your /etc/cloud/management/components.xml file. For example: @@ -300,7 +319,7 @@ cloudAPIPort=8080 Merge your changes from the backup file into the new components.xml file.# vi /etc/cloud/management/components.xml - If you have made changes to your existing copy of the /etc/cloud/management/db.properties file in your previous-version CloudPlatform 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 3.0.4. + If you have made changes to your existing copy of the /etc/cloud/management/db.properties file in your previous-version &PRODUCT; 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 3.0.4. Make a backup copy of your file /etc/cloud/management/db.properties. For example: # mv /etc/cloud/management/db.properties /etc/cloud/management/db.properties-backup @@ -316,7 +335,7 @@ cloudAPIPort=8080 (Optional) For encryption_type, use file or web to indicate the technique used to pass in the database encryption password. Default: file. (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 - (Optional) For database_key, substitute the default key that is used to encrypt confidential parameters in the CloudPlatform database. Default: password. It is highly recommended that you replace this with a more secure value. + (Optional) For database_key, substitute the default key that is used to encrypt confidential parameters in the &PRODUCT; database. Default: password. It is highly recommended that you replace this with a more secure value. Repeat steps 10 - 15 on every management server node. If you provided your own encryption key in step 15, use the same key on all other management servers. @@ -335,7 +354,7 @@ cloudAPIPort=8080 Start the agent.# service cloud-agent start - Log in to the CloudPlatform 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. + Log in to the &PRODUCT; 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. 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. Run the following script to stop, then start, all Secondary Storage VMs, Console Proxy VMs, and virtual routers. @@ -388,7 +407,7 @@ Done restarting router(s). Open port 7080: # iptables -I INPUT -p tcp -m tcp --dport 7080 -j ACCEPT - If you have made any modifications in server.xml on your existing CloudPlatform installation, back it up: + If you have made any modifications in server.xml on your existing &PRODUCT; installation, back it up: # mv /etc/cloud/management/server.xml /etc/cloud/management/server.xml-backup Then replace with the new server.xml file: # cp /etc/cloud/management/server.xml.rpmnew /etc/cloud/management/server.xml @@ -406,13 +425,13 @@ cloudAPIPort=8080 Restart the Management Server to put the new settings into effect. - If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version supported by CloudPlatform 3.0.4. The supported versions are XenServer 5.6 SP2 and 6.0.2. Instructions for upgrade can be found in the CloudPlatform 3.0.3 Advanced Installation Guide. + If needed, upgrade all Citrix XenServer hypervisor hosts in your cloud to a version supported by &PRODUCT; 3.0.4. The supported versions are XenServer 5.6 SP2 and 6.0.2. Instructions for upgrade can be found in the &PRODUCT; 3.0.3 Advanced Installation Guide. Now apply the XenServer hotfix XS602E003 to XenServer v6.0.2 hypervisor hosts. (Support for this hotfix is the reason for release 3.0.4.) - Disconnect the XenServer cluster from CloudPlatform. - In the left navigation bar of the CloudPlatform UI, select Infrastructure. Under Clusters, click View All. Select the XenServer cluster and click Actions - Unmanage. + Disconnect the XenServer cluster from &PRODUCT;. + In the left navigation bar of the &PRODUCT; UI, select Infrastructure. Under Clusters, click View All. Select the XenServer cluster and click Actions - Unmanage. 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. - Wait until the status of the cluster has reached Unmanaged. Use the CloudPlatform UI to check on the status. When the cluster is in the unmanaged state, there is no connection to the hosts in the cluster. + Wait until the status of the cluster has reached Unmanaged. Use the &PRODUCT; UI to check on the status. When the cluster is in the unmanaged state, there is no connection to the hosts in the cluster. To clean up the VLAN, log in to one XenServer host and run: /opt/xensource/bin/cloud-clean-vlan.sh @@ -442,7 +461,7 @@ cloudAPIPort=8080 xe patch-apply host-uuid=<host-uuid> uuid=<hotfix-uuid> - Copy the following files from the CloudPlatform Management Server to the host. + Copy the following files from the &PRODUCT; Management Server to the host. @@ -493,7 +512,7 @@ cloudAPIPort=8080
What’s New in 3.0.4 - CloudPlatform 3.0.4 is the first maintenance patch for CloudPlatform 3.0.3. This release includes no new features. For a list of the major fixed items, see Issues Fixed in 3.0.4. + &PRODUCT; 3.0.4 is the first maintenance patch for &PRODUCT; 3.0.3. This release includes no new features. For a list of the major fixed items, see Issues Fixed in 3.0.4.
Issues Fixed in 3.0.4 @@ -514,7 +533,7 @@ cloudAPIPort=8080 CS-13944 - The CloudPlatform 2.2.x to 3.0.x database upgrade for multiple physical networks is now supported. + The &PRODUCT; 2.2.x to 3.0.x database upgrade for multiple physical networks is now supported. CS-15300 @@ -522,7 +541,7 @@ cloudAPIPort=8080 CS-15396 - The CloudPlatform database now contain the UUD information after the 2.2.14 to 3.0.4 upgrade. + The &PRODUCT; database now contain the UUD information after the 2.2.14 to 3.0.4 upgrade. CS-15450 @@ -550,7 +569,7 @@ cloudAPIPort=8080 CS-15323 - CloudPlatform supports the following Citrix XenServer hotfixes: XS602E003, XS602E004, and + &PRODUCT; supports the following Citrix XenServer hotfixes: XS602E003, XS602E004, and XS602E005. @@ -617,7 +636,7 @@ cloudAPIPort=8080 CloudStack and LDAP user validation cannot happen simultaneously because the user password is hashed and stored in the database, and LDAP requires the passwords in plain text. To work with the LDAP user, the MD5 hash should be disabled in the login process by commenting the following variable in sharedFunctions.js file available at /usr/share/cloud/management/webapps/client/scripts, and restart the cloud-management service. var md5HashedLogin = false;However, if md5HashedLogin is set to false, the end user can login with the LDAP credentials - but not with the CloudPlatform user credentials. + but not with the &PRODUCT; user credentials. CS-15578 @@ -676,7 +695,7 @@ cloudAPIPort=8080
Support for Amazon Web Services API - This release supports Amazon Web Services APIs, including Elastic Compute Cloud (EC2) API. Fidelity with the EC2 API and the installation experience for this functionality are both enhanced. In prior releases, users were required to install a separate component called CloudBridge, in addition to installing the Management Server. For new installations of CloudPlatform 3.0.3, this software is installed automatically along with CloudPlatform and runs in a more closely integrated fashion. The feature is disabled by default, but can be easily enabled by setting the appropriate global configuration parameter and performing a few setup steps. + This release supports Amazon Web Services APIs, including Elastic Compute Cloud (EC2) API. Fidelity with the EC2 API and the installation experience for this functionality are both enhanced. In prior releases, users were required to install a separate component called CloudBridge, in addition to installing the Management Server. For new installations of &PRODUCT; 3.0.3, this software is installed automatically along with &PRODUCT; and runs in a more closely integrated fashion. The feature is disabled by default, but can be easily enabled by setting the appropriate global configuration parameter and performing a few setup steps.
Support for Cisco Nexus 1000v Virtual Switch @@ -759,7 +778,7 @@ cloudAPIPort=8080 CS-12705 - When creating a Network offering by using SRX as the service provider for SourceNAT servcies, an option is given in the CloudPlatform UI now to set the source_nat type to "per Zone"/"per account". + When creating a Network offering by using SRX as the service provider for SourceNAT servcies, an option is given in the &PRODUCT; UI now to set the source_nat type to "per Zone"/"per account". CS-12782 @@ -811,11 +830,11 @@ cloudAPIPort=8080 CS-14025 - The Python Eggs are provided to easily package the test client for each branch of CloudPlatform. + The Python Eggs are provided to easily package the test client for each branch of &PRODUCT;. CS-14068 - Resetting the VM password through the CloudPlatform UI no longer causes any error. + Resetting the VM password through the &PRODUCT; UI no longer causes any error. CS-14156 @@ -839,7 +858,7 @@ cloudAPIPort=8080 CS-14234 - Sending project invite email to an account now requires SMTP configured in CloudPlatform. + Sending project invite email to an account now requires SMTP configured in &PRODUCT;. CS-14237 @@ -964,7 +983,7 @@ cloudAPIPort=8080 CS-15009 - The port_profile table will not be populated with port profile information. In this release, CloudPlatform directly connects to the VSM for all the port profile operations; therefore, no port profile information is cached. + The port_profile table will not be populated with port profile information. In this release, &PRODUCT; directly connects to the VSM for all the port profile operations; therefore, no port profile information is cached. CS-15037 @@ -988,7 +1007,7 @@ cloudAPIPort=8080 CS-15120 - No actions are listed in the Action column of the Volumes page in the CloudPlatform UI. + No actions are listed in the Action column of the Volumes page in the &PRODUCT; UI. CS-15124 @@ -1006,10 +1025,6 @@ cloudAPIPort=8080 CS-15198 Peak bandwidth (PIR) and burst size shaping policies are not applied on Nexus 1000v virtual switch interface. - - CS-15218 - You might find the term "CloudStack" when you expect "CloudPlatform" in scripts, file names, etc. The use of the new product name CloudPlatform is not yet fully implemented. - CS-15256 If cluster addition fails in a zone using the Cisco Nexus 1000v virtual switch, a subsequent retry will not succeed in adding the cluster. To work around: @@ -1799,7 +1814,7 @@ mysql> select id from `cloud`.`virtual_supervisor_module` where ipaddr="<vsm_
VM Storage Migration - The CloudPlatform administrator can move a virtual machine’s root disk volume or any additional data disk from one storage pool to another in the same zone. You can use the storage migration feature to achieve some commonly desired administration goals, such as balancing the load on storage pools and increasing the reliability of virtual machines by moving them away from any storage pool that is experiencing issues. This functionality is supported in XenServer, KVM, and VMware. + The &PRODUCT; administrator can move a virtual machine’s root disk volume or any additional data disk from one storage pool to another in the same zone. You can use the storage migration feature to achieve some commonly desired administration goals, such as balancing the load on storage pools and increasing the reliability of virtual machines by moving them away from any storage pool that is experiencing issues. This functionality is supported in XenServer, KVM, and VMware.
Swift for Secondary Storage @@ -1807,8 +1822,8 @@ mysql> select id from `cloud`.`virtual_supervisor_module` where ipaddr="<vsm_
Password and Key Encryption - CloudPlatform stores several sensitive passwords and secret keys that are used to provide security. Starting in version 3.0, these values are always automatically encrypted. These include the database secret key, database password, SSH keys, compute node root password, VPN password, user API secret key, and VNC password. - In version 3.0, the Java Simplified Encryption (JASYPT) library is used. The data values are encrypted and decrypted using a database secret key. Of course, the database secret key itself cannot be stored in the open – it must be encrypted. To read it, a second secret key must be provided from an external source during Management Server startup. This key can be provided in one of two ways: loaded from a file or provided by the CloudPlatform administrator. The encryption type, database secret key, and Management Server secret key are set by the administrator during the CloudPlatform installation. + &PRODUCT; stores several sensitive passwords and secret keys that are used to provide security. Starting in version 3.0, these values are always automatically encrypted. These include the database secret key, database password, SSH keys, compute node root password, VPN password, user API secret key, and VNC password. + In version 3.0, the Java Simplified Encryption (JASYPT) library is used. The data values are encrypted and decrypted using a database secret key. Of course, the database secret key itself cannot be stored in the open – it must be encrypted. To read it, a second secret key must be provided from an external source during Management Server startup. This key can be provided in one of two ways: loaded from a file or provided by the &PRODUCT; administrator. The encryption type, database secret key, and Management Server secret key are set by the administrator during the &PRODUCT; installation.
Security Group Egress Rules @@ -1818,12 +1833,12 @@ mysql> select id from `cloud`.`virtual_supervisor_module` where ipaddr="<vsm_
Using Projects to Organize Users and Resources In version 3.0, users can group themselves into projects so they can collaborate and share virtual resources. The usage per project as well as per user is tracked, so the usage can be billed to either a user account or a project. For example, a private cloud within a software company might have all members of the QA department assigned to one project, so the company can track the resources used in testing while the project members can more easily isolate their efforts from other users of the same cloud. Per-project resource limits can be set. - You can configure CloudPlatform to allow any user to create a new project, or you can restrict that ability to just administrators. You can either add people directly to a project, or you have to send an invitation which the recipient must accept. - A user can be a member of any number of projects and can switch to a new Project View in the CloudPlatform UI to show only project-related information, such as project VMs, fellow project members, project-related alerts, and so on. + You can configure &PRODUCT; to allow any user to create a new project, or you can restrict that ability to just administrators. You can either add people directly to a project, or you have to send an invitation which the recipient must accept. + A user can be a member of any number of projects and can switch to a new Project View in the &PRODUCT; UI to show only project-related information, such as project VMs, fellow project members, project-related alerts, and so on.
Providing Network Services for Users - People using cloud infrastructure have a variety of needs and preferences when it comes to the networking services provided by the cloud. Provisioning physical and virtual networks has always been supported in CloudPlatform. As an administrator, you can do the following additional things to set up networking for your users: + People using cloud infrastructure have a variety of needs and preferences when it comes to the networking services provided by the cloud. Provisioning physical and virtual networks has always been supported in &PRODUCT;. As an administrator, you can do the following additional things to set up networking for your users: Set up several different providers (also known as network elements) for the same service on a single physical network. For example, you can provide both Cisco and Juniper firewalls. You can have multiple instances of the same service provider in a network; for example, more than one Juniper SRX device. Bundle different types of network services into network offerings. When creating a new VM, the user chooses one of the available network offerings, and that determines which network services the VM can use. A network offering is a named set of network services, such as DHCP, source NAT, load balancing, firewall, VPN, port forwarding, and specific network service providers, such as Juniper SRX for the firewall. You can add new network offerings as time goes on so end users can upgrade to a better class of service on their network. @@ -2273,7 +2288,7 @@ mysql> select id from `cloud`.`virtual_supervisor_module` where ipaddr="<vsm_ Many - In the Add Zone wizard, there is no step for configuring network traffic labels on the physical network(s). Workaround: Don’t enable the zone in the last step of the wizard. Enable the zone only after configuring traffic labels for each traffic type, on each physical network, on each hypervisor in the zone. Set up the labels on the hypervisor host, then configure matching labels through the CloudPlatform UI. + In the Add Zone wizard, there is no step for configuring network traffic labels on the physical network(s). Workaround: Don’t enable the zone in the last step of the wizard. Enable the zone only after configuring traffic labels for each traffic type, on each physical network, on each hypervisor in the zone. Set up the labels on the hypervisor host, then configure matching labels through the &PRODUCT; UI. @@ -2380,7 +2395,7 @@ mysql> select id from `cloud`.`virtual_supervisor_module` where ipaddr="<vsm_ deletePhysicalNetwork (Deletes a Physical Network.) listPhysicalNetworks (Lists physical networks) updatePhysicalNetwork (Updates a physical network) - listSupportedNetworkServices (Lists all network services provided by CloudPlatform or for the given Provider.) + listSupportedNetworkServices (Lists all network services provided by &PRODUCT; or for the given Provider.) addNetworkServiceProvider (Adds a network serviceProvider to a physical network) deleteNetworkServiceProvider (Deletes a Network Service Provider.) listNetworkServiceProviders (Lists network serviceproviders for a given physical network.) diff --git a/docs/en-US/remove-member-from-project.xml b/docs/en-US/remove-member-from-project.xml index 18e2f657b52..dcd3746158c 100644 --- a/docs/en-US/remove-member-from-project.xml +++ b/docs/en-US/remove-member-from-project.xml @@ -1,14 +1,33 @@ - %BOOK_ENTITIES; ]> + + +
Removing a Member From a Project When a member is removed from a project, the member’s resources continue to be owned by the project. The former project member cannot create any new resources within the project or use any of the project’s existing resources. - A member of a project can be removed by the project administrator, the domain administrator of the domain the project belongs to or of its parent domain, or the CloudPlatform root administrator. + A member of a project can be removed by the project administrator, the domain administrator of the domain the project belongs to or of its parent domain, or the &PRODUCT; root administrator. - Log in to the CloudPlatform UI. + Log in to the &PRODUCT; UI. In the left navigation, click Projects. In Select View, choose Projects. Click the name of the project. diff --git a/docs/en-US/removed-API-commands.xml b/docs/en-US/removed-API-commands.xml index 1c08717c0ce..51bb7cf4828 100644 --- a/docs/en-US/removed-API-commands.xml +++ b/docs/en-US/removed-API-commands.xml @@ -1,8 +1,32 @@ -
- Removed API commands - - createConfiguration (Adds configuration value) - configureSimulator (Configures simulator) - -
+ + +%BOOK_ENTITIES; +]> + + + +
+ Removed API commands + + createConfiguration (Adds configuration value) + configureSimulator (Configures simulator) + +
diff --git a/docs/en-US/removing-vsphere-hosts.xml b/docs/en-US/removing-vsphere-hosts.xml index 9366d5673e4..16830b7c17e 100644 --- a/docs/en-US/removing-vsphere-hosts.xml +++ b/docs/en-US/removing-vsphere-hosts.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Removing vSphere Hosts - To remove this type of host, first place it in maintenance mode, as described in . Then use CloudPlatform to remove the host. CloudPlatform will not direct commands to a host that has been removed using CloudPlatform. However, the host may still exist in the vCenter cluster. -
+ To remove this type of host, first place it in maintenance mode, as described in . Then use &PRODUCT; to remove the host. &PRODUCT; will not direct commands to a host that has been removed using &PRODUCT;. However, the host may still exist in the vCenter cluster. +
diff --git a/docs/en-US/removing-xenserver-kvm-hosts.xml b/docs/en-US/removing-xenserver-kvm-hosts.xml index 9d39e899113..c7043723ff6 100644 --- a/docs/en-US/removing-xenserver-kvm-hosts.xml +++ b/docs/en-US/removing-xenserver-kvm-hosts.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Removing XenServer and KVM Hosts A node cannot be removed from a cluster until it has been placed in maintenance mode. This will ensure that all of the VMs on it have been migrated to other Hosts. To remove a Host from the cloud: @@ -10,6 +29,5 @@ Place the node in maintenance mode. See . For KVM, stop the cloud-agent service. Use the UI option to remove the node.Then you may power down the Host, re-use its IP address, re-install it, etc - - +
diff --git a/docs/en-US/requirements-templates.xml b/docs/en-US/requirements-templates.xml index 5ea0943a038..f434dbe871c 100644 --- a/docs/en-US/requirements-templates.xml +++ b/docs/en-US/requirements-templates.xml @@ -1,12 +1,31 @@ - %BOOK_ENTITIES; ]> + + +
- Requirements for Templates - - For XenServer, install PV drivers / Xen tools on each template that you create. This will enable live migration and clean guest shutdown. - For vSphere, install VMware Tools on each template that you create. This will enable console view to work properly. + Requirements for Templates + + For XenServer, install PV drivers / Xen tools on each template that you create. This will enable live migration and clean guest shutdown. + For vSphere, install VMware Tools on each template that you create. This will enable console view to work properly.
diff --git a/docs/en-US/resizing-volumes.xml b/docs/en-US/resizing-volumes.xml index d3cf3147f74..471411df5fe 100644 --- a/docs/en-US/resizing-volumes.xml +++ b/docs/en-US/resizing-volumes.xml @@ -1,19 +1,38 @@ - %BOOK_ENTITIES; ]> -
- Resizing Volumes - CloudPlatform does not provide the ability to resize root disks or data disks; the disk size is fixed based on the template used to create the VM. However, the tool VHD Resizer), while not officially supported by Cloud.com or Citrix, might provide a workaround. To increase disk size with VHD Resizer: - - Get the VHD from the secondary storage. - Import it into VHD Resizer. - Resize the VHD. - Upload the new VHD. - Create a new VM. - Take a snapshot, then create a new template from that snapshot. - For more information, see How to Resize a Provisioning Server 5 Virtual Disk at the Citrix Knowledge Center - -
+ + + +
+ Resizing Volumes + &PRODUCT; does not provide the ability to resize root disks or data disks; the disk size is fixed based on the template used to create the VM. However, the tool VHD Resizer), while not officially supported by Cloud.com or Citrix, might provide a workaround. To increase disk size with VHD Resizer: + + Get the VHD from the secondary storage. + Import it into VHD Resizer. + Resize the VHD. + Upload the new VHD. + Create a new VM. + Take a snapshot, then create a new template from that snapshot. + For more information, see How to Resize a Provisioning Server 5 Virtual Disk at the Citrix Knowledge Center + +
diff --git a/docs/en-US/response-formats.xml b/docs/en-US/response-formats.xml index 171c4097e33..7b3f93ac636 100644 --- a/docs/en-US/response-formats.xml +++ b/docs/en-US/response-formats.xml @@ -1,32 +1,56 @@ -
- Response Formats: XML and JSON - CloudStack supports two formats as the response to an API call. The default response is XML. If you would like the response to be in JSON, add &response=json to the Command String. - Sample XML Response: - - <listipaddressesresponse> - <allocatedipaddress> - <ipaddress>192.168.10.141</ipaddress> - <allocated>2009-09-18T13:16:10-0700</allocated> - <zoneid>4</zoneid> - <zonename>WC</zonename> - <issourcenat>true</issourcenat> - </allocatedipaddress> - </listipaddressesresponse> - - Sample JSON Response: - - { "listipaddressesresponse" : - { "allocatedipaddress" : - [ - { - "ipaddress" : "192.168.10.141", - "allocated" : "2009-09-18T13:16:10-0700", - "zoneid" : "4", - "zonename" : "WC", - "issourcenat" : "true" - } - ] - } - } - -
\ No newline at end of file + + +%BOOK_ENTITIES; +]> + + + +
+ Response Formats: XML and JSON + CloudStack supports two formats as the response to an API call. The default response is XML. If you would like the response to be in JSON, add &response=json to the Command String. + Sample XML Response: + + <listipaddressesresponse> + <allocatedipaddress> + <ipaddress>192.168.10.141</ipaddress> + <allocated>2009-09-18T13:16:10-0700</allocated> + <zoneid>4</zoneid> + <zonename>WC</zonename> + <issourcenat>true</issourcenat> + </allocatedipaddress> + </listipaddressesresponse> + + Sample JSON Response: + + { "listipaddressesresponse" : + { "allocatedipaddress" : + [ + { + "ipaddress" : "192.168.10.141", + "allocated" : "2009-09-18T13:16:10-0700", + "zoneid" : "4", + "zonename" : "WC", + "issourcenat" : "true" + } + ] + } + } + +
diff --git a/docs/en-US/responses.xml b/docs/en-US/responses.xml index 7c70570ac38..9f70c871932 100644 --- a/docs/en-US/responses.xml +++ b/docs/en-US/responses.xml @@ -1,11 +1,30 @@ - %BOOK_ENTITIES; ]> + + +
- Responses - - - + Responses + + +
diff --git a/docs/en-US/roles.xml b/docs/en-US/roles.xml index 8e027278c24..473e37b77f9 100644 --- a/docs/en-US/roles.xml +++ b/docs/en-US/roles.xml @@ -1,16 +1,35 @@ - %BOOK_ENTITIES; ]> + + +
- Roles - - The CloudPlatform API supports three access roles: - - Root Admin. Access to all features of the cloud, including both virtual and physical resource management. - Domain Admin. Access to only the virtual resources of the clouds that belong to the administrator’s domain. - User. Access to only the features that allow management of the user’s virtual instances, storage, and network. - + Roles + + The CloudPlatform API supports three access roles: + + Root Admin. Access to all features of the cloud, including both virtual and physical resource management. + Domain Admin. Access to only the virtual resources of the clouds that belong to the administrator’s domain. + User. Access to only the features that allow management of the user’s virtual instances, storage, and network. +
diff --git a/docs/en-US/root-admin-ui-overview.xml b/docs/en-US/root-admin-ui-overview.xml index 54772660e55..f59aaea55ab 100644 --- a/docs/en-US/root-admin-ui-overview.xml +++ b/docs/en-US/root-admin-ui-overview.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
- Root Administrator's UI Overview - The &PRODUCT; UI helps the &PRODUCT; administrator provision, view, and manage the cloud infrastructure, domains, user accounts, projects, and configuration settings. The first time you start the UI after a fresh Management Server installation, you can choose to follow a guided tour to provision your cloud infrastructure. On subsequent logins, the dashboard of the logged-in user appears. The various links in this screen and the navigation bar on the left provide access to a variety of administrative functions. The root administrator can also use the UI to perform all the same tasks that are present in the end-user’s UI. + Root Administrator's UI Overview + The &PRODUCT; UI helps the &PRODUCT; administrator provision, view, and manage the cloud infrastructure, domains, user accounts, projects, and configuration settings. The first time you start the UI after a fresh Management Server installation, you can choose to follow a guided tour to provision your cloud infrastructure. On subsequent logins, the dashboard of the logged-in user appears. The various links in this screen and the navigation bar on the left provide access to a variety of administrative functions. The root administrator can also use the UI to perform all the same tasks that are present in the end-user’s UI.
diff --git a/docs/en-US/runtime-allocation-virtual-network-resources.xml b/docs/en-US/runtime-allocation-virtual-network-resources.xml index 25415744119..696ea9b9d6d 100644 --- a/docs/en-US/runtime-allocation-virtual-network-resources.xml +++ b/docs/en-US/runtime-allocation-virtual-network-resources.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Runtime Allocation of Virtual Network Resources - When you define a new virtual network, all your settings for that network are stored in CloudPlatform. The actual network resources are activated only when the first virtual machine starts in the network. When all virtual machines have left the virtual network, the network resources are garbage collected so they can be allocated again. This helps to conserve network resources.. + When you define a new virtual network, all your settings for that network are stored in &PRODUCT;. The actual network resources are activated only when the first virtual machine starts in the network. When all virtual machines have left the virtual network, the network resources are garbage collected so they can be allocated again. This helps to conserve network resources..
diff --git a/docs/en-US/runtime-behavior-of-primary-storage.xml b/docs/en-US/runtime-behavior-of-primary-storage.xml index a3740dbfad2..c6563907131 100644 --- a/docs/en-US/runtime-behavior-of-primary-storage.xml +++ b/docs/en-US/runtime-behavior-of-primary-storage.xml @@ -1,12 +1,30 @@ - %BOOK_ENTITIES; ]> -
- Runtime Behavior of Primary Storage - Root volumes are created automatically when a virtual machine is created. Root volumes are deleted when the VM is destroyed. Data volumes can be created and dynamically attached to VMs (although, when the Oracle VM hypervisor is used, the VM must be stopped before an additional volume can be attached). Data volumes are not deleted when VMs are destroyed. - Administrators should monitor the capacity of primary storage devices and add additional primary storage as needed. See the Advanced Installation Guide. - Administrators add primary storage to the system by creating a CloudPlatform storage pool. Each storage pool is associated with a cluster. -
+ + +
+ Runtime Behavior of Primary Storage + Root volumes are created automatically when a virtual machine is created. Root volumes are deleted when the VM is destroyed. Data volumes can be created and dynamically attached to VMs (although, when the Oracle VM hypervisor is used, the VM must be stopped before an additional volume can be attached). Data volumes are not deleted when VMs are destroyed. + Administrators should monitor the capacity of primary storage devices and add additional primary storage as needed. See the Advanced Installation Guide. + Administrators add primary storage to the system by creating a &PRODUCT; storage pool. Each storage pool is associated with a cluster. +
diff --git a/docs/en-US/scheduled-maintenance-maintenance-mode-hosts.xml b/docs/en-US/scheduled-maintenance-maintenance-mode-hosts.xml index 28769c76691..6364e8b0c78 100644 --- a/docs/en-US/scheduled-maintenance-maintenance-mode-hosts.xml +++ b/docs/en-US/scheduled-maintenance-maintenance-mode-hosts.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Scheduled Maintenance and Maintenance Mode for Hosts You can place a host into maintenance mode. When maintenance mode is activated, the host becomes unavailable to receive new guest VMs, and the guest VMs already running on the host are seamlessly migrated to another host not in maintenance mode. This migration uses live migration technology and does not interrupt the execution of the guest. -
+
diff --git a/docs/en-US/search-base.xml b/docs/en-US/search-base.xml index 3c0d1ef6e75..b8fc0920158 100644 --- a/docs/en-US/search-base.xml +++ b/docs/en-US/search-base.xml @@ -1,32 +1,51 @@ - %BOOK_ENTITIES; ]> + + +
- Search Base - An LDAP query is relative to a given node of the LDAP directory tree, called the search base. The search base is the distinguished name (DN) of a level of the directory tree below which all users can be found. The users can be in the immediate base directory or in some subdirectory. The search base may be equivalent to the organization, group, or domain name. The syntax for writing a DN varies depending on which LDAP server you are using. A full discussion of distinguished names is outside the scope of our documentation. The following table shows some examples of search bases to find users in the testing department.. - - - - - - LDAP Server - Example Search Base DN - - - - - ApacheDS - ou=testing,o=project - - - Active Directory - OU=testing, DC=company - - - - - - + Search Base +An LDAP query is relative to a given node of the LDAP directory tree, called the search base. The search base is the distinguished name (DN) of a level of the directory tree below which all users can be found. The users can be in the immediate base directory or in some subdirectory. The search base may be equivalent to the organization, group, or domain name. The syntax for writing a DN varies depending on which LDAP server you are using. A full discussion of distinguished names is outside the scope of our documentation. The following table shows some examples of search bases to find users in the testing department.. + + + + + + LDAP Server + Example Search Base DN + + + + + ApacheDS + ou=testing,o=project + + + Active Directory + OU=testing, DC=company + + + + + +
diff --git a/docs/en-US/search-user-bind-dn.xml b/docs/en-US/search-user-bind-dn.xml index a4c9d4b210f..a2d8b6a339c 100644 --- a/docs/en-US/search-user-bind-dn.xml +++ b/docs/en-US/search-user-bind-dn.xml @@ -1,28 +1,47 @@ - %BOOK_ENTITIES; ]> + + +
- Search User Bind DN - The bind DN is the user on the external LDAP server permitted to search the LDAP directory within the defined search base. When the DN is returned, the DN and passed password are used to authenticate the CloudPlatform user with an LDAP bind. A full discussion of bind DNs is outside the scope of our documentation. The following table shows some examples of bind DNs. - - - - - LDAP Server - Example Bind DN - - - - - ApacheDS - cn=Administrator,dc=testing,ou=project,ou=org - - - Active Directory - CN=Administrator, OU=testing, DC=company, DC=com - - - -
+ Search User Bind DN + The bind DN is the user on the external LDAP server permitted to search the LDAP directory within the defined search base. When the DN is returned, the DN and passed password are used to authenticate the &PRODUCT; user with an LDAP bind. A full discussion of bind DNs is outside the scope of our documentation. The following table shows some examples of bind DNs. + + + + + LDAP Server + Example Bind DN + + + + + ApacheDS + cn=Administrator,dc=testing,ou=project,ou=org + + + Active Directory + CN=Administrator, OU=testing, DC=company, DC=com + + + +
diff --git a/docs/en-US/secondary-storage-add.xml b/docs/en-US/secondary-storage-add.xml index b17b998dfe5..15e8c742657 100644 --- a/docs/en-US/secondary-storage-add.xml +++ b/docs/en-US/secondary-storage-add.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
- Adding Secondary Storage - TODO -
\ No newline at end of file + Adding Secondary Storage + TODO +
diff --git a/docs/en-US/secondary-storage-outage-and-data-loss.xml b/docs/en-US/secondary-storage-outage-and-data-loss.xml index f651310376a..42ab7d47188 100644 --- a/docs/en-US/secondary-storage-outage-and-data-loss.xml +++ b/docs/en-US/secondary-storage-outage-and-data-loss.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
Secondary Storage Outage and Data Loss For a Zone that has only one secondary storage server, a secondary storage outage will have feature level impact to the system but will not impact running guest VMs. It may become impossible to create a VM with the selected template for a user. A user may also not be able to save snapshots or examine/restore saved snapshots. These features will automatically be available when the secondary storage comes back online. - Secondary storage data loss will impact recently added user data including templates, snapshots, and ISO images. Secondary storage should be backed up periodically.Multiple secondary storage servers can be provisioned within each zone to increase the scalability of the system. -
+ Secondary storage data loss will impact recently added user data including templates, snapshots, and ISO images. Secondary storage should be backed up periodically. Multiple secondary storage servers can be provisioned within each zone to increase the scalability of the system. + diff --git a/docs/en-US/secondary-storage-vm.xml b/docs/en-US/secondary-storage-vm.xml index 40c8a279b7d..792644432d2 100644 --- a/docs/en-US/secondary-storage-vm.xml +++ b/docs/en-US/secondary-storage-vm.xml @@ -1,14 +1,32 @@ - %BOOK_ENTITIES; ]> -
- Secondary Storage VM - In addition to the hosts, CloudPlatform’s Secondary Storage VM mounts and writes to secondary storage. - Submissions to secondary storage go through the Secondary Storage VM. The Secondary Storage VM can retrieve templates and ISO images from URLs using a variety of protocols. - The secondary storage VM provides a background task that takes care of a variety of secondary storage activities: downloading a new template to a Zone, copying templates between Zones, and snapshot backups. - The administrator can log in to the secondary storage VM if needed. - -
+ + + +
+ Secondary Storage VM + In addition to the hosts, &PRODUCT;’s Secondary Storage VM mounts and writes to secondary storage. + Submissions to secondary storage go through the Secondary Storage VM. The Secondary Storage VM can retrieve templates and ISO images from URLs using a variety of protocols. + The secondary storage VM provides a background task that takes care of a variety of secondary storage activities: downloading a new template to a Zone, copying templates between Zones, and snapshot backups. + The administrator can log in to the secondary storage VM if needed. +
diff --git a/docs/en-US/secondary-storage.xml b/docs/en-US/secondary-storage.xml index 4d6191eb3bf..e755b56734d 100644 --- a/docs/en-US/secondary-storage.xml +++ b/docs/en-US/secondary-storage.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> -
- Secondary Storage - This section gives concepts and technical details about CloudPlatform secondary storage. For information about how to install and configure secondary storage through the CloudPlatform UI, see the Advanced Installation Guide. -
+ + + +
+ Secondary Storage + This section gives concepts and technical details about &PRODUCT; secondary storage. For information about how to install and configure secondary storage through the &PRODUCT; UI, see the Advanced Installation Guide. +
diff --git a/docs/en-US/security-groups.xml b/docs/en-US/security-groups.xml index 3c1ae91c5da..fdb4ee90a09 100644 --- a/docs/en-US/security-groups.xml +++ b/docs/en-US/security-groups.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
diff --git a/docs/en-US/send-projects-membership-invitation.xml b/docs/en-US/send-projects-membership-invitation.xml index 67abf33aee5..164235f2abe 100644 --- a/docs/en-US/send-projects-membership-invitation.xml +++ b/docs/en-US/send-projects-membership-invitation.xml @@ -1,13 +1,32 @@ - %BOOK_ENTITIES; ]> + + +
Sending Project Membership Invitations Use these steps to add a new member to a project if the invitations feature is enabled in the cloud as described in . If the invitations feature is not turned on, use the procedure in Adding Project Members From the UI. - Log in to the CloudPlatform UI. + Log in to the &PRODUCT; UI. In the left navigation, click Projects. In Select View, choose Projects. Click the name of the project you want to work with. @@ -15,10 +34,9 @@ In Add by, select one of the following: Account – The invitation will appear in the user’s Invitations tab in the Project View. See Using the Project View. - Email – The invitation will be sent to the user’s email address. Each emailed invitation includes a unique code called a token which the recipient will provide back to CloudPlatform when accepting the invitation. Email invitations will work only if the global parameters related to the SMTP server have been set. See . + Email – The invitation will be sent to the user’s email address. Each emailed invitation includes a unique code called a token which the recipient will provide back to &PRODUCT; when accepting the invitation. Email invitations will work only if the global parameters related to the SMTP server have been set. See . - Type the user name or email address of the new member you want to add, and click Invite. Type the CloudPlatform user name if you chose Account in the previous step. If you chose Email, type the email address. You can invite only people who have an account in this cloud within the same domain as the project. However, you can send the invitation to any email address. + Type the user name or email address of the new member you want to add, and click Invite. Type the &PRODUCT; user name if you chose Account in the previous step. If you chose Email, type the email address. You can invite only people who have an account in this cloud within the same domain as the project. However, you can send the invitation to any email address. To view and manage the invitations you have sent, return to this tab. When an invitation is accepted, the new member will appear in the project’s Accounts tab. -
- +
diff --git a/docs/en-US/service-offerings.xml b/docs/en-US/service-offerings.xml index 8af653bb789..5283c05afa7 100644 --- a/docs/en-US/service-offerings.xml +++ b/docs/en-US/service-offerings.xml @@ -1,12 +1,31 @@ - %BOOK_ENTITIES; ]> + + +
Service Offerings vCenter Maintenance Mode XenServer and Maintenance Mode vCenter Maintenance Mode XenServer and Maintenance Mode -
+ diff --git a/docs/en-US/set-database-buffer-pool-size.xml b/docs/en-US/set-database-buffer-pool-size.xml index 3fc439b1a8e..1c7503101ca 100644 --- a/docs/en-US/set-database-buffer-pool-size.xml +++ b/docs/en-US/set-database-buffer-pool-size.xml @@ -1,14 +1,33 @@ - %BOOK_ENTITIES; ]> + + +
Set Database Buffer Pool Size It is important to provide enough memory space for the MySQL database to cache data and indexes: Edit the Tomcat configuration file:/etc/my.cnf - 2. Insert the following line in the [mysqld] section, below the datadir line. Use a value that is appropriate for your situation. We recommend setting the buffer pool at 40% of RAM if MySQL is on the same server as the management server or 70% of RAM if MySQL has a dedicated server. The following example assumes a dedicated server with 1024M of RAM. + Insert the following line in the [mysqld] section, below the datadir line. Use a value that is appropriate for your situation. We recommend setting the buffer pool at 40% of RAM if MySQL is on the same server as the management server or 70% of RAM if MySQL has a dedicated server. The following example assumes a dedicated server with 1024M of RAM. innodb_buffer_pool_size=700M Restart the MySQL service.# service mysqld restart diff --git a/docs/en-US/set-monitor-total-vm-limits-per-host.xml b/docs/en-US/set-monitor-total-vm-limits-per-host.xml index 806ba334679..0cc247505af 100644 --- a/docs/en-US/set-monitor-total-vm-limits-per-host.xml +++ b/docs/en-US/set-monitor-total-vm-limits-per-host.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
Set and Monitor Total VM Limits per Host - The CloudPlatform administrator should monitor the total number of VM instances in each cluster, and disable allocation to the cluster if the total is approaching the maximum that the hypervisor can handle. Be sure to leave a safety margin to allow for the possibility of one or more hosts failing, which would increase the VM load on the other hosts as the VMs are automatically redeployed. Consult the documentation for your chosen hypervisor to find the maximum permitted number of VMs per host, then use CloudPlatform global configuration settings to set this as the default limit. Monitor the VM activity in each cluster at all times. Keep the total number of VMs below a safe level that allows for the occasional host failure. For example, if there are N hosts in the cluster, and you want to allow for one host in the cluster to be down at any given time, the total number of VM instances you can permit in the cluster is at most (N-1) * (per-host-limit). Once a cluster reaches this number of VMs, use the CloudPlatform UI to disable allocation of more VMs to the cluster. + The &PRODUCT; administrator should monitor the total number of VM instances in each cluster, and disable allocation to the cluster if the total is approaching the maximum that the hypervisor can handle. Be sure to leave a safety margin to allow for the possibility of one or more hosts failing, which would increase the VM load on the other hosts as the VMs are automatically redeployed. Consult the documentation for your chosen hypervisor to find the maximum permitted number of VMs per host, then use &PRODUCT; global configuration settings to set this as the default limit. Monitor the VM activity in each cluster at all times. Keep the total number of VMs below a safe level that allows for the occasional host failure. For example, if there are N hosts in the cluster, and you want to allow for one host in the cluster to be down at any given time, the total number of VM instances you can permit in the cluster is at most (N-1) * (per-host-limit). Once a cluster reaches this number of VMs, use the &PRODUCT; UI to disable allocation of more VMs to the cluster.
diff --git a/docs/en-US/set-projects-creator-permissions.xml b/docs/en-US/set-projects-creator-permissions.xml index bc0080253a9..1d9309f8837 100644 --- a/docs/en-US/set-projects-creator-permissions.xml +++ b/docs/en-US/set-projects-creator-permissions.xml @@ -1,13 +1,32 @@ - %BOOK_ENTITIES; ]> + + +
Setting Project Creator Permissions - You can configure CloudPlatform to allow any user to create a new project, or you can restrict that ability to just CloudPlatform administrators. + You can configure &PRODUCT; to allow any user to create a new project, or you can restrict that ability to just &PRODUCT; administrators. - Log in as administrator to the CloudPlatform UI. + Log in as administrator to the &PRODUCT; UI. In the left navigation, click Global Settings. In the search box, type allow.user.create.projects. Click the edit button to set the parameter. @@ -20,11 +39,9 @@ allow.user.create.projects - Set to true to allow end users to create projects. Set to false if you want only the CloudPlatform root administrator and domain administrators to create projects. - + Set to true to allow end users to create projects. Set to false if you want only the &PRODUCT; root administrator and domain administrators to create projects. Restart the Management Server.# service cloud-management restart -
- +
diff --git a/docs/en-US/set-resource-limits-for-projects.xml b/docs/en-US/set-resource-limits-for-projects.xml index f9b57a86ee3..2c331acde51 100644 --- a/docs/en-US/set-resource-limits-for-projects.xml +++ b/docs/en-US/set-resource-limits-for-projects.xml @@ -1,10 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Setting Resource Limits for Projects - The CloudPlatform administrator can set global default limits to control the amount of resources that can be owned by each project in the cloud. This serves to prevent uncontrolled usage of resources such as snapshots, IP addresses, and virtual machine instances. Domain administrators can override these resource limits for individual projects with their domains, as long as the new limits are below the global defaults set by the CloudPlatform root administrator. The root administrator can also set lower resource limits for any project in the cloud + The &PRODUCT; administrator can set global default limits to control the amount of resources that can be owned by each project in the cloud. This serves to prevent uncontrolled usage of resources such as snapshots, IP addresses, and virtual machine instances. Domain administrators can override these resource limits for individual projects with their domains, as long as the new limits are below the global defaults set by the &PRODUCT; root administrator. The root administrator can also set lower resource limits for any project in the cloud
- diff --git a/docs/en-US/set-up-invitations.xml b/docs/en-US/set-up-invitations.xml index bc7b21aed27..e6a22dba1af 100644 --- a/docs/en-US/set-up-invitations.xml +++ b/docs/en-US/set-up-invitations.xml @@ -1,13 +1,32 @@ - %BOOK_ENTITIES; ]> + + +
Setting Up Invitations - CloudPlatform can be set up either so that project administrators can add people directly to a project, or so that it is necessary to send an invitation which the recipient must accept. The invitation can be sent by email or through the user’s CloudPlatform account. If you want administrators to use invitations to add members to projects, turn on and set up the invitations feature in CloudPlatform.. + &PRODUCT; can be set up either so that project administrators can add people directly to a project, or so that it is necessary to send an invitation which the recipient must accept. The invitation can be sent by email or through the user’s &PRODUCT; account. If you want administrators to use invitations to add members to projects, turn on and set up the invitations feature in &PRODUCT;. - Log in as administrator to the CloudPlatform UI. + Log in as administrator to the &PRODUCT; UI. In the left navigation, click Global Settings. In the search box, type project and click the search button. In the search box, type project and click the search button. @@ -16,48 +35,39 @@ searchbutton.png: Searches projects - 5. In the search results, you will see a few other parameters you need to set to control how invitations behave. The table below shows global configuration parameters related to project invitations. Click the edit button to set each parameter + In the search results, you will see a few other parameters you need to set to control how invitations behave. The table below shows global configuration parameters related to project invitations. Click the edit button to set each parameter Configuration Parameters Description - - project.invite.required Set to true to turn on the invitations feature. - - project.email.sender The email address to show in the From field of invitation emails. - project.invite.timeout Amount of time to allow for a new member to respond to the invitation. - project.smtp.host Name of the host that acts as an email server to handle invitations. - project.smtp.password (Optional) Password required by the SMTP server. You must also set project.smtp.username and set project.smtp.useAuth to true. - project.smtp.port SMTP server’s listening port. - project.smtp.useAuth @@ -74,6 +84,4 @@ Restart the Management Server service cloud-management restart -
- diff --git a/docs/en-US/set-up-network-for-users.xml b/docs/en-US/set-up-network-for-users.xml index bc8902f5f24..4e2be48e312 100644 --- a/docs/en-US/set-up-network-for-users.xml +++ b/docs/en-US/set-up-network-for-users.xml @@ -1,11 +1,30 @@ - %BOOK_ENTITIES; ]> + + +
Setting Up Networking for Users - People using cloud infrastructure have a variety of needs and preferences when it comes to the networking services provided by the cloud. As a CloudPlatform administrator, you can do the following things to set up networking for your users: + People using cloud infrastructure have a variety of needs and preferences when it comes to the networking services provided by the cloud. As a &PRODUCT; administrator, you can do the following things to set up networking for your users: Set up physical networks in zones Set up several different providers for the same service on a single physical network (for example, both Cisco and Juniper firewalls) @@ -13,5 +32,4 @@ Add new network offerings as time goes on so end users can upgrade to a better class of service on their network Provide more ways for a network to be accessed by a user, such as through a project of which the user is a member -
diff --git a/docs/en-US/set-usage-limit.xml b/docs/en-US/set-usage-limit.xml index 350d5c43e1b..3ef528a690c 100644 --- a/docs/en-US/set-usage-limit.xml +++ b/docs/en-US/set-usage-limit.xml @@ -1,14 +1,33 @@ - %BOOK_ENTITIES; ]> + + +
Setting Usage Limits - CloudPlatform provides several administrator control points for capping resource usage by users. Some of these limits are global configuration parameters. Others are applied at the ROOT domain and may be overridden on a per-account basis. + &PRODUCT; provides several administrator control points for capping resource usage by users. Some of these limits are global configuration parameters. Others are applied at the ROOT domain and may be overridden on a per-account basis. Aggregate limits may be set on a per-domain basis. For example, you may limit a domain and all subdomains to the creation of 100 VMs. This section covers the following topics: Globally Configured Limits Default Account Resource Limits Per Domain Limits -
+ diff --git a/docs/en-US/shared-networks.xml b/docs/en-US/shared-networks.xml index 24e0252e1ea..d505fed97b1 100644 --- a/docs/en-US/shared-networks.xml +++ b/docs/en-US/shared-networks.xml @@ -1,11 +1,30 @@ - %BOOK_ENTITIES; ]> + + +
Shared Networks - A shared network can be accessed by virtual machines that belong to many different accounts. Network Isolation on shared networks is accomplished using techniques such as security groups (supported only in basic zones in CloudPlatform 3.0.3). + A shared network can be accessed by virtual machines that belong to many different accounts. Network Isolation on shared networks is accomplished using techniques such as security groups (supported only in basic zones in &PRODUCT; 3.0.3). Shared Networks are created by the administrator Shared Networks can be designated to a certain domain @@ -13,6 +32,4 @@ Shared Networks are isolated by security groups Public Network is a shared network that is not shown to the end users - -
diff --git a/docs/en-US/signing-api-requests.xml b/docs/en-US/signing-api-requests.xml index b71cd42d9e5..581b32a41ba 100644 --- a/docs/en-US/signing-api-requests.xml +++ b/docs/en-US/signing-api-requests.xml @@ -1,36 +1,60 @@ -
- Signing API Requests - Whether you access the CloudStack API with HTTP or HTTPS, it must still be signed so that CloudStack can verify the caller has been authenticated and authorized to execute the command. Make sure that you have both the API Key and Secret Key provided by the CloudStack administrator for your account before proceeding with the signing process. - To show how to sign a request, we will re-use the previous example. - http://http://localhost:8080/client/api?command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D - Breaking this down, we have several distinct parts to this URL. - - Base URL: This is the base URL to the CloudStack Management Server. - http://localhost:8080 - - API Path: This is the path to the API Servlet that processes the incoming requests. - /client/api? - - Command String: This part of the query string comprises of the command, its parameters, and the API Key that identifies the account. - As with all query string parameters of field-value pairs, the “field” component is case insensitive while all “value” values are case sensitive. - command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ - - Signature: This is the hashed signature of the Base URL that is generated using a combination of the user’s Secret Key and the HMAC SHA-1 hashing algorithm. - &signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D - - - Every API request has the format Base URL+API Path+Command String+Signature. - To generate the signature. - - For each field-value pair (as separated by a ‘&’) in the Command String, URL encode each value so that it can be safely sent via HTTP GET. - Make sure all spaces are encoded as “%20” rather than “+”. - - Lower case the entire Command String and sort it alphabetically via the field for each field-value pair. The result of this step would look like the following. - apikey=mivr6x7u6bn_sdahobpjnejpgest35exq-jb8cg20yi3yaxxcgpyuairmfi_ejtvwz0nukkjbpmy3y2bcikwfq&command=deployvirtualmachine&diskofferingid=1&serviceofferingid=1&templateid=2&zoneid=4 - - Take the sorted Command String and run it through the HMAC SHA-1 hashing algorithm (most programming languages offer a utility method to do this) with the user’s Secret Key. Base64 encode the resulting byte array in UTF-8 so that it can be safely transmitted via HTTP. The final string produced after Base64 encoding should be “Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D”. - By reconstructing the final URL in the format Base URL+API Path+Command String+Signature, the final URL should look like: - http://localhost:8080/client/api?command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D - - -
\ No newline at end of file + + +%BOOK_ENTITIES; +]> + + + +
+ Signing API Requests + Whether you access the CloudStack API with HTTP or HTTPS, it must still be signed so that CloudStack can verify the caller has been authenticated and authorized to execute the command. Make sure that you have both the API Key and Secret Key provided by the CloudStack administrator for your account before proceeding with the signing process. + To show how to sign a request, we will re-use the previous example. + http://http://localhost:8080/client/api?command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D + Breaking this down, we have several distinct parts to this URL. + + Base URL: This is the base URL to the CloudStack Management Server. + http://localhost:8080 + + API Path: This is the path to the API Servlet that processes the incoming requests. + /client/api? + + Command String: This part of the query string comprises of the command, its parameters, and the API Key that identifies the account. + As with all query string parameters of field-value pairs, the "field" component is case insensitive while all "value" values are case sensitive. + command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ + + Signature: This is the hashed signature of the Base URL that is generated using a combination of the user’s Secret Key and the HMAC SHA-1 hashing algorithm. + &signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D + + + Every API request has the format Base URL+API Path+Command String+Signature. + To generate the signature. + + For each field-value pair (as separated by a '&') in the Command String, URL encode each value so that it can be safely sent via HTTP GET. + Make sure all spaces are encoded as "%20" rather than "+". + + Lower case the entire Command String and sort it alphabetically via the field for each field-value pair. The result of this step would look like the following. + apikey=mivr6x7u6bn_sdahobpjnejpgest35exq-jb8cg20yi3yaxxcgpyuairmfi_ejtvwz0nukkjbpmy3y2bcikwfq&command=deployvirtualmachine&diskofferingid=1&serviceofferingid=1&templateid=2&zoneid=4 + + Take the sorted Command String and run it through the HMAC SHA-1 hashing algorithm (most programming languages offer a utility method to do this) with the user’s Secret Key. Base64 encode the resulting byte array in UTF-8 so that it can be safely transmitted via HTTP. The final string produced after Base64 encoding should be "Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D". + By reconstructing the final URL in the format Base URL+API Path+Command String+Signature, the final URL should look like: + http://localhost:8080/client/api?command=deployVirtualMachine&serviceOfferingId=1&diskOfferingId=1&templateId=2&zoneId=4&apiKey=miVr6X7u6bN_sdahOBpjNejPgEsT35eXq-jB8CG20YI3yaxXcgpyuaIRmFI_EJTVwZ0nUkkJbPmY3y2bciKwFQ&signature=Lxx1DM40AjcXU%2FcaiK8RAP0O1hU%3D + + +
diff --git a/docs/en-US/site-to-site-vpn.xml b/docs/en-US/site-to-site-vpn.xml index 2e29909f4ae..034fb42fdd8 100644 --- a/docs/en-US/site-to-site-vpn.xml +++ b/docs/en-US/site-to-site-vpn.xml @@ -1,14 +1,33 @@ - %BOOK_ENTITIES; ]> + + +
Site-to-Site VPN To add a Virtual Private Cloud (VPC): - Log in to the CloudPlatform UI as an administrator or end user. + Log in to the &PRODUCT; UI as an administrator or end user. In the left navigation, choose Network In the Select view, select site-to-site VPN. Click Add site-to-site VPN. Provide the following information: @@ -23,5 +42,4 @@ Click OK. -
diff --git a/docs/en-US/snapshot-restore.xml b/docs/en-US/snapshot-restore.xml index 2a63f1f1917..b2f60f4b1e9 100644 --- a/docs/en-US/snapshot-restore.xml +++ b/docs/en-US/snapshot-restore.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
- Snapshot Restore - There are two paths to restoring snapshots. Users can create a volume from the snapshot. The volume can then be mounted to a VM and files recovered as needed. Alternatively, a template may be created from the snapshot of a root disk. The user can then boot a VM from this template to effect recovery of the root disk. -
+ Snapshot Restore + There are two paths to restoring snapshots. Users can create a volume from the snapshot. The volume can then be mounted to a VM and files recovered as needed. Alternatively, a template may be created from the snapshot of a root disk. The user can then boot a VM from this template to effect recovery of the root disk. + diff --git a/docs/en-US/standard-events.xml b/docs/en-US/standard-events.xml index 290b8bc5625..b4a4c68a6cb 100644 --- a/docs/en-US/standard-events.xml +++ b/docs/en-US/standard-events.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Standard Events The events log records three types of standard events. @@ -17,6 +36,4 @@ ERROR. This event is generated when an operation has not been successfully performed - -
- + diff --git a/docs/en-US/static-nat.xml b/docs/en-US/static-nat.xml index ea7c7d8d565..ef9e2fc9167 100644 --- a/docs/en-US/static-nat.xml +++ b/docs/en-US/static-nat.xml @@ -1,9 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Static NAT - A static NAT rule maps a public IP address to the private IP address of a VM in order to allow Internet traffic into the VM. The public IP address always remains the same, which is why it is called “static” NAT. This section tells how to enable or disable static NAT for a particular IP address. + A static NAT rule maps a public IP address to the private IP address of a VM in order to allow Internet traffic into the VM. The public IP address always remains the same, which is why it is called "static" NAT. This section tells how to enable or disable static NAT for a particular IP address.
diff --git a/docs/en-US/sticky-session-policies-for-lb-rules.xml b/docs/en-US/sticky-session-policies-for-lb-rules.xml index a8c11c95ff5..a8acfa087d2 100644 --- a/docs/en-US/sticky-session-policies-for-lb-rules.xml +++ b/docs/en-US/sticky-session-policies-for-lb-rules.xml @@ -1,11 +1,30 @@ - %BOOK_ENTITIES; ]> + + +
- Sticky Session Policies for Load Balancer Rules - Sticky sessions are used in Web-based applications to ensure continued availability of information across the multiple requests in a user's session. For example, if a shopper is filling a cart, you need to remember what has been purchased so far. The concept of “stickiness” is also referred to as persistence or maintaining state. - Any load balancer rule defined in CloudPlatform can have a stickiness policy. The policy consists of a name, stickiness method, and parameters. The parameters are name-value pairs or flags, which are defined by the load balancer vendor. The stickiness method could be load balancer-generated cookie, application-generated cookie, or source-based. In the source-based method, the source IP address is used to identify the user and locate the user’s stored data. In the other methods, cookies are used. The cookie generated by the load balancer or application is included in request and response URLs to create persistence. The cookie name can be specified by the administrator or automatically generated. A variety of options are provided to control the exact behavior of cookies, such as how they are generated and whether they are cached. - For the most up to date list of available stickiness methods, see the CloudPlatform UI or call listNetworks and check the SupportedStickinessMethods capability. + Sticky Session Policies for Load Balancer Rules + Sticky sessions are used in Web-based applications to ensure continued availability of information across the multiple requests in a user's session. For example, if a shopper is filling a cart, you need to remember what has been purchased so far. The concept of "stickiness" is also referred to as persistence or maintaining state. + Any load balancer rule defined in &PRODUCT; can have a stickiness policy. The policy consists of a name, stickiness method, and parameters. The parameters are name-value pairs or flags, which are defined by the load balancer vendor. The stickiness method could be load balancer-generated cookie, application-generated cookie, or source-based. In the source-based method, the source IP address is used to identify the user and locate the user’s stored data. In the other methods, cookies are used. The cookie generated by the load balancer or application is included in request and response URLs to create persistence. The cookie name can be specified by the administrator or automatically generated. A variety of options are provided to control the exact behavior of cookies, such as how they are generated and whether they are cached. + For the most up to date list of available stickiness methods, see the &PRODUCT; UI or call listNetworks and check the SupportedStickinessMethods capability.
diff --git a/docs/en-US/stop-restart-management-server.xml b/docs/en-US/stop-restart-management-server.xml index 26d30eab340..2edc23332c0 100644 --- a/docs/en-US/stop-restart-management-server.xml +++ b/docs/en-US/stop-restart-management-server.xml @@ -1,12 +1,31 @@ - %BOOK_ENTITIES; ]> + + +
Stopping and Restarting the Management Server The root administrator will need to stop and restart the Management Server from time to time. - For example, after changing a global configuration parameter, a restart is required. If you have multiple Management Server nodes, restart all of them to put the new parameter value into effect consistently throughout the cloud.. + For example, after changing a global configuration parameter, a restart is required. If you have multiple Management Server nodes, restart all of them to put the new parameter value into effect consistently throughout the cloud. To stop the Management Server, issue the following command at the operating system prompt on the Management Server node: # service cloud-management stop To start the Management Server: diff --git a/docs/en-US/stopped-vm.xml b/docs/en-US/stopped-vm.xml index e6b8400c897..7024be7a0b2 100644 --- a/docs/en-US/stopped-vm.xml +++ b/docs/en-US/stopped-vm.xml @@ -1,12 +1,35 @@ -
- Stopped VM - CloudPlatform now supports creating a VM without starting it. You can determine whether the VM needs to be started as part of the VM deployment. A VM can now be deployed in two ways: create and start a VM (the default method); or create a VM and leave it in the stopped state. - A new request parameter, startVM, is introduced in the deployVm API to support the stopped VM feature. - The possible values are: - - true - The VM starts as a part of the VM deployment. - false - The VM is left in the stopped state at the end of the VM deployment. - - The default value is true. -
+ + +%BOOK_ENTITIES; +]> + + +
+ Stopped VM + &PRODUCT; now supports creating a VM without starting it. You can determine whether the VM needs to be started as part of the VM deployment. A VM can now be deployed in two ways: create and start a VM (the default method); or create a VM and leave it in the stopped state. + A new request parameter, startVM, is introduced in the deployVm API to support the stopped VM feature. + The possible values are: + + true - The VM starts as a part of the VM deployment. + false - The VM is left in the stopped state at the end of the VM deployment. + + The default value is true. +
diff --git a/docs/en-US/stopping-and-starting-vms.xml b/docs/en-US/stopping-and-starting-vms.xml index 20d0d952327..8b294af0b90 100644 --- a/docs/en-US/stopping-and-starting-vms.xml +++ b/docs/en-US/stopping-and-starting-vms.xml @@ -1,5 +1,28 @@ -
- Stopping and Starting VMs - Any user can access their own virtual machines. The administrator can access all VMs running in the cloud. -
+ + +%BOOK_ENTITIES; +]> + + +
+ Stopping and Starting VMs + Any user can access their own virtual machines. The administrator can access all VMs running in the cloud. +
diff --git a/docs/en-US/storage-tags.xml b/docs/en-US/storage-tags.xml index 3297c8d83c2..39b55a65fdd 100644 --- a/docs/en-US/storage-tags.xml +++ b/docs/en-US/storage-tags.xml @@ -1,11 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
- Storage Tags - Storage may be "tagged". A tag is a text string attribute associated with primary storage, a Disk Offering, or a Service Offering. Tags allow administrators to provide additional information about the storage. For example, that is a "SSD" or it is "slow". Tags are not interpreted by CloudPlatform. They are matched against tags placed on service and disk offerings. CloudPlatform requires all tags on service and disk offerings to exist on the primary storage before it allocates root or data disks on the primary storage. Service and disk offering tags are used to identify the requirements of the storage that those offerings have. For example, the high end service offering may require "fast" for its root disk volume. - The interaction between tags, allocation, and volume copying across clusters and pods can be complex. To simplify the situation, use the same set of tags on the primary storage for all clusters in a pod. Even if different devices are used to present those tags, the set of exposed tags can be the same. - -
+ Storage Tags + Storage may be "tagged". A tag is a text string attribute associated with primary storage, a Disk Offering, or a Service Offering. Tags allow administrators to provide additional information about the storage. For example, that is a "SSD" or it is "slow". Tags are not interpreted by &PRODUCT;. They are matched against tags placed on service and disk offerings. &PRODUCT; requires all tags on service and disk offerings to exist on the primary storage before it allocates root or data disks on the primary storage. Service and disk offering tags are used to identify the requirements of the storage that those offerings have. For example, the high end service offering may require "fast" for its root disk volume. + The interaction between tags, allocation, and volume copying across clusters and pods can be complex. To simplify the situation, use the same set of tags on the primary storage for all clusters in a pod. Even if different devices are used to present those tags, the set of exposed tags can be the same. +
diff --git a/docs/en-US/storage.xml b/docs/en-US/storage.xml index 45fa648db58..c4df50f6a8f 100644 --- a/docs/en-US/storage.xml +++ b/docs/en-US/storage.xml @@ -1,11 +1,30 @@ - %BOOK_ENTITIES; ]> -
- Deleting VMs - CloudPlatform defines two types of storage: primary and secondary. Primary storage can be accessed by either iSCSI or NFS. Additionally, direct attached storage may be used for primary storage. Secondary storage is always accessed using NFS. - There is no ephemeral storage in CloudPlatform. All volumes on all nodes are persistent -
+ + + +
+ Deleting VMs + &PRODUCT; defines two types of storage: primary and secondary. Primary storage can be accessed by either iSCSI or NFS. Additionally, direct attached storage may be used for primary storage. Secondary storage is always accessed using NFS. + There is no ephemeral storage in &PRODUCT;. All volumes on all nodes are persistent +
diff --git a/docs/en-US/suspend-project.xml b/docs/en-US/suspend-project.xml index 9ad1e622fc0..bfaa12a03d9 100644 --- a/docs/en-US/suspend-project.xml +++ b/docs/en-US/suspend-project.xml @@ -1,15 +1,34 @@ - %BOOK_ENTITIES; ]> + + +
Suspending or Deleting a Project When a project is suspended, it retains the resources it owns, but they can no longer be used. No new resources or members can be added to a suspended project. When a project is deleted, its resources are destroyed, and member accounts are removed from the project. The project’s status is shown as Disabled pending final deletion. - A project can be suspended or deleted by the project administrator, the domain administrator of the domain the project belongs to or of its parent domain, or the CloudPlatform root administrator. + A project can be suspended or deleted by the project administrator, the domain administrator of the domain the project belongs to or of its parent domain, or the &PRODUCT; root administrator. - Log in to the CloudPlatform UI. + Log in to the &PRODUCT; UI. In the left navigation, click Projects. In Select View, choose Projects. Click the name of the project. @@ -26,5 +45,4 @@ deletebutton.png: Removes a member -
- + diff --git a/docs/en-US/sys-reliability-and-ha.xml b/docs/en-US/sys-reliability-and-ha.xml index d8c4bbdf69c..bdb36d0fa46 100644 --- a/docs/en-US/sys-reliability-and-ha.xml +++ b/docs/en-US/sys-reliability-and-ha.xml @@ -1,12 +1,31 @@ - %BOOK_ENTITIES; ]> + + +
System Reliability and High Availability vCenter Maintenance Mode XenServer and Maintenance Mode vCenter Maintenance Mode XenServer and Maintenance Mode -
+ diff --git a/docs/en-US/sysprep-for-windows-server-2003R2.xml b/docs/en-US/sysprep-for-windows-server-2003R2.xml index bdde68e89b2..86e1667a1c5 100644 --- a/docs/en-US/sysprep-for-windows-server-2003R2.xml +++ b/docs/en-US/sysprep-for-windows-server-2003R2.xml @@ -1,39 +1,57 @@ - %BOOK_ENTITIES; ]> + + +
- Sysprep for Windows Server 2003 R2 - Earlier versions of Windows have a different sysprep tool. Follow these steps for Windows Server 2003 R2. - - Extract the content of \support\tools\deploy.cab on the Windows installation CD into a directory called c:\sysprep on the Windows 2003 R2 VM. - Run c:\sysprep\setupmgr.exe to create the sysprep.inf file. - - Select Create New to create a new Answer File. - Enter “Sysprep setup” for the Type of Setup. - Select the appropriate OS version and edition. - On the License Agreement screen, select “Yes fully automate the installation”. - Provide your name and organization. - Leave display settings at default. - Set the appropriate time zone. - Provide your product key. - Select an appropriate license mode for your deployment - Select “Automatically generate computer name”. - Type a default administrator password. If you enable the password reset feature, the users will not actually use this password. This password will be reset by the instance manager after the guest boots up. - Leave Network Components at “Typical Settings”. - Select the “WORKGROUP” option. - Leave Telephony options at default. - Select appropriate Regional Settings. - Select appropriate language settings. - Do not install printers. - Do not specify “Run Once commands”. - You need not specify an identification string. - Save the Answer File as c:\sysprep\sysprep.inf. - - - - Run the following command to sysprep the image:c:\sysprep\sysprep.exe -reseal -mini -activated - After this step the machine will automatically shut down - -
+ Sysprep for Windows Server 2003 R2 + Earlier versions of Windows have a different sysprep tool. Follow these steps for Windows Server 2003 R2. + + Extract the content of \support\tools\deploy.cab on the Windows installation CD into a directory called c:\sysprep on the Windows 2003 R2 VM. + Run c:\sysprep\setupmgr.exe to create the sysprep.inf file. + + Select Create New to create a new Answer File. + Enter “Sysprep setup” for the Type of Setup. + Select the appropriate OS version and edition. + On the License Agreement screen, select “Yes fully automate the installation”. + Provide your name and organization. + Leave display settings at default. + Set the appropriate time zone. + Provide your product key. + Select an appropriate license mode for your deployment + Select “Automatically generate computer name”. + Type a default administrator password. If you enable the password reset feature, the users will not actually use this password. This password will be reset by the instance manager after the guest boots up. + Leave Network Components at “Typical Settings”. + Select the “WORKGROUP” option. + Leave Telephony options at default. + Select appropriate Regional Settings. + Select appropriate language settings. + Do not install printers. + Do not specify “Run Once commands”. + You need not specify an identification string. + Save the Answer File as c:\sysprep\sysprep.inf. + + + Run the following command to sysprep the image:c:\sysprep\sysprep.exe -reseal -mini -activated + After this step the machine will automatically shut down + + diff --git a/docs/en-US/sysprep-windows-server-2008R2.xml b/docs/en-US/sysprep-windows-server-2008R2.xml index 37a2e1cefda..af36d15a2c1 100644 --- a/docs/en-US/sysprep-windows-server-2008R2.xml +++ b/docs/en-US/sysprep-windows-server-2008R2.xml @@ -1,12 +1,31 @@ - %BOOK_ENTITIES; ]> + + +
- System Preparation for Windows Server 2008 R2 - For Windows 2008 R2, you run Windows System Image Manager to create a custom sysprep response XML file. Windows System Image Manager is installed as part of the Windows Automated Installation Kit (AIK). Windows AIK can be downloaded from the Microsoft Download Center at the following location: - Microsoft Download Center. + System Preparation for Windows Server 2008 R2 + For Windows 2008 R2, you run Windows System Image Manager to create a custom sysprep response XML file. Windows System Image Manager is installed as part of the Windows Automated Installation Kit (AIK). Windows AIK can be downloaded from the Microsoft Download Center at the following location: + Microsoft Download Center. Use the following steps to run sysprep for Windows 2008 R2:The steps outlined here are derived from the excellent guide by Charity Shelbourne, originally published at Windows Server 2008 Sysprep Mini-Setup Download and install the Windows AIKWindows AIK should not be installed on the Windows 2008 R2 VM you just created. Windows AIK should not be part of the template you create. It is only used to create the sysprep answer file. @@ -44,8 +63,5 @@ cd c:\Windows\System32\sysprep sysprep.exe /oobe /generalize /shutdown The Windows 2008 R2 VM will automatically shut down after sysprep is complete. - - -
diff --git a/docs/en-US/system-reserved-ip-addresses.xml b/docs/en-US/system-reserved-ip-addresses.xml index aadd2d7d8f7..2f4922553fa 100644 --- a/docs/en-US/system-reserved-ip-addresses.xml +++ b/docs/en-US/system-reserved-ip-addresses.xml @@ -1,19 +1,38 @@ - %BOOK_ENTITIES; ]> + + +
System Reserved IP Addresses - In each zone, you need to configure a range of reserved IP addresses for the management network. This network carries communication between the CloudPlatform Management Server and various system VMs, such as Secondary Storage VMs, Console Proxy VMs, and DHCP. + In each zone, you need to configure a range of reserved IP addresses for the management network. This network carries communication between the &PRODUCT; Management Server and various system VMs, such as Secondary Storage VMs, Console Proxy VMs, and DHCP. The reserved IP addresses must be unique across the cloud. You cannot, for example, have a host in one zone which has the same private IP address as a host in another zone. The hosts in a pod are assigned private IP addresses. These are typically RFC1918 addresses. The Console Proxy and Secondary Storage system VMs are also allocated private IP addresses in the CIDR of the pod that they are created in. - Make sure computing servers and Management Servers use IP addresses outside of the System Reserved IP range. For example, suppose the System Reserved IP range starts at 192.168.154.2 and ends at 192.168.154.7. CloudPlatform can use .2 to .7 for System VMs. This leaves the rest of the pod CIDR, from .8 to .254, for the Management Server and hypervisor hosts. + Make sure computing servers and Management Servers use IP addresses outside of the System Reserved IP range. For example, suppose the System Reserved IP range starts at 192.168.154.2 and ends at 192.168.154.7. &PRODUCT; can use .2 to .7 for System VMs. This leaves the rest of the pod CIDR, from .8 to .254, for the Management Server and hypervisor hosts. In all zones: - Provide private IPs for the system in each pod and provision them in CloudPlatform. + Provide private IPs for the system in each pod and provision them in &PRODUCT;. For KVM and XenServer, the recommended number of private IPs per pod is one per host. If you expect a pod to grow, add enough private IPs now to accommodate the growth. In a zone that uses advanced networking: - For vSphere with advanced networking, we recommend provisioning enough private IPs for your total number of customers, plus enough for the required CloudPlatform System VMs. Typically, about 10 additional IPs are required for the System VMs. For more information about System VMs, see Working with System Virtual Machines in the Administrator's Guide. + For vSphere with advanced networking, we recommend provisioning enough private IPs for your total number of customers, plus enough for the required &PRODUCT; System VMs. Typically, about 10 additional IPs are required for the System VMs. For more information about System VMs, see Working with System Virtual Machines in the Administrator's Guide. When advanced networking is being used, the number of private IP addresses available in each pod varies depending on which hypervisor is running on the nodes in that pod. Citrix XenServer and KVM use link-local addresses, which in theory provide more than 65,000 private IP addresses within the address block. As the pod grows over time, this should be more than enough for any reasonable number of hosts as well as IP addresses for guest virtual routers. VMWare ESXi, by contrast uses any administrator-specified subnetting scheme, and the typical administrator provides only 255 IPs per pod. Since these are shared by physical machines, the guest virtual router, and other entities, it is possible to run out of private IPs when scaling up a pod whose nodes are running ESXi. To ensure adequate headroom to scale private IP space in an ESXi pod that uses advanced networking, use one or more of the following techniques: TODO diff --git a/docs/en-US/system-service-offerings.xml b/docs/en-US/system-service-offerings.xml index 92aff735111..75aa128d4c8 100644 --- a/docs/en-US/system-service-offerings.xml +++ b/docs/en-US/system-service-offerings.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
System Service Offerings - System service offerings provide a choice of CPU speed, number of CPUs, tags, and RAM size, just as other service offerings do. But rather than being used for virtual machine instances and exposed to users, system service offerings are used to change the default properties of virtual routers, console proxies, and other system VMs. System service offerings are visible only to the CloudPlatform root administrator. CloudPlatform provides default system service offerings. The CloudPlatform root administrator can create additional custom system service offerings. - When CloudPlatform creates a virtual router for a guest network, it uses default settings which are defined in the system service offering associated with the network offering. You can upgrade the capabilities of the virtual router by applying a new network offering that contains a different system service offering. All virtual routers in that network will begin using the settings from the new service offering. + System service offerings provide a choice of CPU speed, number of CPUs, tags, and RAM size, just as other service offerings do. But rather than being used for virtual machine instances and exposed to users, system service offerings are used to change the default properties of virtual routers, console proxies, and other system VMs. System service offerings are visible only to the &PRODUCT; root administrator. &PRODUCT; provides default system service offerings. The &PRODUCT; root administrator can create additional custom system service offerings. + When &PRODUCT; creates a virtual router for a guest network, it uses default settings which are defined in the system service offering associated with the network offering. You can upgrade the capabilities of the virtual router by applying a new network offering that contains a different system service offering. All virtual routers in that network will begin using the settings from the new service offering.
diff --git a/docs/en-US/system-vm-template.xml b/docs/en-US/system-vm-template.xml index e873ee1b1e5..a9477f3a61d 100644 --- a/docs/en-US/system-vm-template.xml +++ b/docs/en-US/system-vm-template.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
The System VM Template The System VMs come from a single template. The System VM has the following characteristics: @@ -15,5 +34,4 @@ Latest versions of HAProxy, iptables, IPsec, and Apache from debian repository ensures improved security and speed Latest version of JRE from Sun/Oracle ensures improved security and speed -
diff --git a/docs/en-US/template-iso-snapshot-usage-record-format.xml b/docs/en-US/template-iso-snapshot-usage-record-format.xml index d3ae8e1191a..3f34f362d70 100644 --- a/docs/en-US/template-iso-snapshot-usage-record-format.xml +++ b/docs/en-US/template-iso-snapshot-usage-record-format.xml @@ -1,18 +1,42 @@ + + +%BOOK_ENTITIES; +]> + + +
- Template, ISO, and Snapshot Usage Record Format - - account – name of the account - accountid – ID of the account - domainid – ID of the domain in which this account resides - zoneid – Zone where the usage occurred - description – A string describing what the usage record is tracking - usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) - usagetype – A number representing the usage type (see Usage Types) - rawusage – A number representing the actual usage in hours - usageid – The ID of the the template, ISO, or snapshot - offeringid – The ID of the disk offering - templateid – – Included only for templates (usage type 7). Source template ID. - size – Size of the template, ISO, or snapshot - startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record - -
\ No newline at end of file + Template, ISO, and Snapshot Usage Record Format + + account – name of the account + accountid – ID of the account + domainid – ID of the domain in which this account resides + zoneid – Zone where the usage occurred + description – A string describing what the usage record is tracking + usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for hours) + usagetype – A number representing the usage type (see Usage Types) + rawusage – A number representing the actual usage in hours + usageid – The ID of the the template, ISO, or snapshot + offeringid – The ID of the disk offering + templateid – – Included only for templates (usage type 7). Source template ID. + size – Size of the template, ISO, or snapshot + startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record + +
diff --git a/docs/en-US/templates.xml b/docs/en-US/templates.xml index a249ded15e5..faecf1b76dc 100644 --- a/docs/en-US/templates.xml +++ b/docs/en-US/templates.xml @@ -1,10 +1,29 @@ - %BOOK_ENTITIES; ]> + + +
- Templates - - -
+ Templates + + + diff --git a/docs/en-US/time-zones.xml b/docs/en-US/time-zones.xml index a886e5f5f46..d6d4bc75df1 100644 --- a/docs/en-US/time-zones.xml +++ b/docs/en-US/time-zones.xml @@ -1,114 +1,137 @@ -
- Time Zones - The following time zone identifiers are accepted by the CloudPlatform API. There are several places that have a time zone as a required or optional parameter. These include scheduling recurring snapshots, creating a user, and specifying the usage time zone in the Configuration table. . - - - - - - - - Etc/GMT+12 - Etc/GMT+11 - Pacific/Samoa - - - Pacific/Honolulu - US/Alaska - America/Los_Angeles - - - Mexico/BajaNorte - US/Arizona - US/Mountain - - - America/Chihuahua - America/Chicago - America/Costa_Rica - - - America/Mexico_City - Canada/Saskatchewan - America/Bogota - - - America/New_York - America/Caracas - America/Asuncion - - - America/Cuiaba - America/Halifax - America/La_Paz - - - America/Santiago - America/St_Johns - America/Araguaina - - - America/Argentina/Buenos_Aires - America/Cayenne - America/Godthab - - - America/Montevideo - Etc/GMT+2 - Atlantic/Azores - - - Atlantic/Cape_Verde - Africa/Casablanca - Etc/UTC - - - Atlantic/Reykjavik - Europe/London - CET - - - Europe/Bucharest - Africa/Johannesburg - Asia/Beirut - - - Africa/Cairo - Asia/Jerusalem - Europe/Minsk - - - Europe/Moscow - Africa/Nairobi - Asia/Karachi - - - Asia/Kolkata - Asia/Bangkok - Asia/Shanghai - - - Asia/Kuala_Lumpur - Australia/Perth - Asia/Taipei - - - Asia/Tokyo - Asia/Seoul - Australia/Adelaide - - - Australia/Darwin - Australia/Brisbane - Australia/Canberra - - - Pacific/Guam - Pacific/Auckland - - - - - -
+ + +%BOOK_ENTITIES; +]> + + +
+ Time Zones + The following time zone identifiers are accepted by the &PRODUCT; API. There are several places that have a time zone as a required or optional parameter. These include scheduling recurring snapshots, creating a user, and specifying the usage time zone in the Configuration table. . + + + + + + + + Etc/GMT+12 + Etc/GMT+11 + Pacific/Samoa + + + Pacific/Honolulu + US/Alaska + America/Los_Angeles + + + Mexico/BajaNorte + US/Arizona + US/Mountain + + + America/Chihuahua + America/Chicago + America/Costa_Rica + + + America/Mexico_City + Canada/Saskatchewan + America/Bogota + + + America/New_York + America/Caracas + America/Asuncion + + + America/Cuiaba + America/Halifax + America/La_Paz + + + America/Santiago + America/St_Johns + America/Araguaina + + + America/Argentina/Buenos_Aires + America/Cayenne + America/Godthab + + + America/Montevideo + Etc/GMT+2 + Atlantic/Azores + + + Atlantic/Cape_Verde + Africa/Casablanca + Etc/UTC + + + Atlantic/Reykjavik + Europe/London + CET + + + Europe/Bucharest + Africa/Johannesburg + Asia/Beirut + + + Africa/Cairo + Asia/Jerusalem + Europe/Minsk + + + Europe/Moscow + Africa/Nairobi + Asia/Karachi + + + Asia/Kolkata + Asia/Bangkok + Asia/Shanghai + + + Asia/Kuala_Lumpur + Australia/Perth + Asia/Taipei + + + Asia/Tokyo + Asia/Seoul + Australia/Adelaide + + + Australia/Darwin + Australia/Brisbane + Australia/Canberra + + + Pacific/Guam + Pacific/Auckland + + + + + +
diff --git a/docs/en-US/trial-installation.xml b/docs/en-US/trial-installation.xml index 9e3e33aee10..8270e579b17 100644 --- a/docs/en-US/trial-installation.xml +++ b/docs/en-US/trial-installation.xml @@ -1,10 +1,28 @@ - %BOOK_ENTITIES; ]> + + +
Trial Installation Coming soon.
- diff --git a/docs/en-US/troubleshooting-alerts.xml b/docs/en-US/troubleshooting-alerts.xml index 9127364bf15..0efeb81dd1e 100644 --- a/docs/en-US/troubleshooting-alerts.xml +++ b/docs/en-US/troubleshooting-alerts.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Alerts The following is the list of alert type numbers. @@ -35,5 +54,4 @@ LOCAL_STORAGE = 24; RESOURCE_LIMIT_EXCEEDED = 25; //Generated when the resource limit exceeds the limit. Currently used for recurring snapshots only -
- + diff --git a/docs/en-US/troubleshooting-dataloss-on-exported-primary-storage.xml b/docs/en-US/troubleshooting-dataloss-on-exported-primary-storage.xml index 677bcc33a4b..4a94f60fbd3 100644 --- a/docs/en-US/troubleshooting-dataloss-on-exported-primary-storage.xml +++ b/docs/en-US/troubleshooting-dataloss-on-exported-primary-storage.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Data Loss on Exported Primary Storage @@ -17,14 +36,10 @@ Solution When setting up LUN exports, restrict the range of IP addresses that are allowed access by specifying a subnet mask. For example: - echo “/export 192.168.1.0/24(rw,async,no_root_squash)” > /etc/exports + echo “/export 192.168.1.0/24(rw,async,no_root_squash)” > /etc/exports Adjust the above command to suit your deployment needs. More Information - See the export procedure in the "Secondary Storage" section of the CloudPlatform Installation Guide + See the export procedure in the "Secondary Storage" section of the &PRODUCT; Installation Guide - - -
- diff --git a/docs/en-US/troubleshooting-lb-rules-fails.xml b/docs/en-US/troubleshooting-lb-rules-fails.xml index 1808d06b26b..c507178e831 100644 --- a/docs/en-US/troubleshooting-lb-rules-fails.xml +++ b/docs/en-US/troubleshooting-lb-rules-fails.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Load balancer rules fail after changing network offering @@ -17,6 +36,4 @@ Solution Create a firewall rule on the virtual router for each of your existing load balancing rules so that they continue to function. -
- diff --git a/docs/en-US/troubleshooting-maintenance-mode-not-working-on-vCenter.xml b/docs/en-US/troubleshooting-maintenance-mode-not-working-on-vCenter.xml index 60d769fa299..c4bf37f6bbe 100644 --- a/docs/en-US/troubleshooting-maintenance-mode-not-working-on-vCenter.xml +++ b/docs/en-US/troubleshooting-maintenance-mode-not-working-on-vCenter.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Maintenance mode not working on vCenter @@ -21,6 +40,4 @@ More Information See -
- diff --git a/docs/en-US/troubleshooting-recover-lost-virtual-router.xml b/docs/en-US/troubleshooting-recover-lost-virtual-router.xml index f4699d85929..12a51501379 100644 --- a/docs/en-US/troubleshooting-recover-lost-virtual-router.xml +++ b/docs/en-US/troubleshooting-recover-lost-virtual-router.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Recovering a Lost Virtual Router @@ -24,8 +43,4 @@ Recreate the missing router by using the restartNetwork API with cleanup=false parameter. For more information about redundant router setup, see Creating a New Network Offering. For more information about the API syntax, see the API Reference at API Reference. - - -
- diff --git a/docs/en-US/troubleshooting-unable-to-deploy-vms.xml b/docs/en-US/troubleshooting-unable-to-deploy-vms.xml index f1432c4df54..412b9bfc0d8 100644 --- a/docs/en-US/troubleshooting-unable-to-deploy-vms.xml +++ b/docs/en-US/troubleshooting-unable-to-deploy-vms.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Unable to deploy VMs from uploaded vSphere template @@ -17,5 +36,4 @@ Solution Remove the ISO and re-upload the template. -
- + diff --git a/docs/en-US/troubleshooting-unable-to-power-on-vm.xml b/docs/en-US/troubleshooting-unable-to-power-on-vm.xml index ba114732354..e037eda08f1 100644 --- a/docs/en-US/troubleshooting-unable-to-power-on-vm.xml +++ b/docs/en-US/troubleshooting-unable-to-power-on-vm.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Unable to power on virtual machine on VMware @@ -12,7 +31,7 @@ Unable to open Swap File Unable to access a file since it is locked -  Unable to access Virtual machine configuration + Unable to access Virtual machine configuration Cause @@ -22,6 +41,5 @@ Solution See the following: - VMware Knowledge Base Article + VMware Knowledge Base Article
- diff --git a/docs/en-US/troubleshooting-working-with-server-logs.xml b/docs/en-US/troubleshooting-working-with-server-logs.xml index 9255b5ac2bd..1017bf57252 100644 --- a/docs/en-US/troubleshooting-working-with-server-logs.xml +++ b/docs/en-US/troubleshooting-working-with-server-logs.xml @@ -1,16 +1,35 @@ - %BOOK_ENTITIES; ]> + + +
Working with Server Logs - The CloudPlatform Management Server logs all web site, middle tier, and database activities for diagnostics purposes in /var/log/cloud/management/. The CloudPlatform logs a variety of error messages. We recommend this command to find the problematic output in the Management Server log:. + The &PRODUCT; Management Server logs all web site, middle tier, and database activities for diagnostics purposes in /var/log/cloud/management/. The &PRODUCT; logs a variety of error messages. We recommend this command to find the problematic output in the Management Server log:. When copying and pasting a command, be sure the command has pasted as a single line before executing. Some document viewers may introduce unwanted line breaks in copied text. grep -i -E 'exception|unable|fail|invalid|leak|warn|error' /var/log/cloud/management/management-server.log - The CloudPlatform processes requests with a Job ID. If you find an error in the logs and you are interested in debugging the issue you can grep for this job ID in the management server log. For example, suppose that you find the following ERROR message: + The &PRODUCT; processes requests with a Job ID. If you find an error in the logs and you are interested in debugging the issue you can grep for this job ID in the management server log. For example, suppose that you find the following ERROR message: 2010-10-04 13:49:32,595 ERROR [cloud.vm.UserVmManagerImpl] (Job-Executor-11:job-1076) Unable to find any host for [User|i-8-42-VM-untagged] @@ -18,6 +37,5 @@ grep "job-1076)" management-server.log - The CloudPlatform Agent Server logs its activities in /var/log/cloud/agent/. -
- + The &PRODUCT; Agent Server logs its activities in /var/log/cloud/agent/. + diff --git a/docs/en-US/troubleshooting.xml b/docs/en-US/troubleshooting.xml index c129dc912e1..f3dc7d37da3 100644 --- a/docs/en-US/troubleshooting.xml +++ b/docs/en-US/troubleshooting.xml @@ -1,18 +1,34 @@ - %BOOK_ENTITIES; ]> + + +
- IP Load Balancing - DNS and DHCP - VPN - Configuring VPN - Using VPN with Windows - Using VPN with Mac - Templates - Events - Templates - - + Alert Type Numbers + Data Loss on Exported Primary Storage + Load balancer rules fail after changing network offering + Maintenance mode not working on vCenter + Recovering a Lost Virtual Router + Unable to deploy VMs from uploaded vSphere template + Unable to power on virtual machine on VMware + Working with Server Logs
diff --git a/docs/en-US/tuning.xml b/docs/en-US/tuning.xml index 91b0f0cf15b..bcaaaa1afbe 100644 --- a/docs/en-US/tuning.xml +++ b/docs/en-US/tuning.xml @@ -1,8 +1,27 @@ - %BOOK_ENTITIES; ]> + + +
Tuning This section provides tips on how to improve the performance of your cloud. @@ -11,5 +30,4 @@ -
- + diff --git a/docs/en-US/ui.xml b/docs/en-US/ui.xml index d01f1d27397..bf0e521fc0e 100644 --- a/docs/en-US/ui.xml +++ b/docs/en-US/ui.xml @@ -4,6 +4,6 @@ %BOOK_ENTITIES; ]> - User Interface - + User Interface + diff --git a/docs/en-US/upgrade-virtual-router-with-service-offering.xml b/docs/en-US/upgrade-virtual-router-with-service-offering.xml index 72cb4336279..4114c79b213 100644 --- a/docs/en-US/upgrade-virtual-router-with-service-offering.xml +++ b/docs/en-US/upgrade-virtual-router-with-service-offering.xml @@ -9,7 +9,7 @@ Define your custom system service offering. See . In System VM Type, choose Domain Router. Associate the system service offering with a network offering. See - 3. Apply the network offering to the network where you want the virtual routers to use the new system service offering. If this is a new network, follow the steps in Adding an Additional Guest Network on page 66. To change the service offering for existing virtual routers, follow the steps in . + 3. Apply the network offering to the network where you want the virtual routers to use the new system service offering. If this is a new network, follow the steps in Adding an Additional Guest Network on page 66. To change the service offering for existing virtual routers, follow the steps in . diff --git a/docs/en-US/upload-existing-volume-to-vm.xml b/docs/en-US/upload-existing-volume-to-vm.xml index da6e157108d..fe96920e3a6 100644 --- a/docs/en-US/upload-existing-volume-to-vm.xml +++ b/docs/en-US/upload-existing-volume-to-vm.xml @@ -4,54 +4,54 @@ %BOOK_ENTITIES; ]>
- Uploading an Existing Volume to a Virtual Machine - Existing data can be made accessible to a virtual machine. This is called uploading a volume to the VM. For example, this is useful to upload data from a local file system and attach it to a VM. Root administrators, domain administrators, and end users can all upload existing volumes to VMs. - The upload is performed using HTTP. The uploaded volume is placed in the zone's secondary storage - You cannot upload a volume if the preconfigured volume limit has already been reached. The default limit for the cloud is set in the global configuration parameter max.account.volumes, but administrators can also set per-domain limits that are different from the global default. See Setting Usage Limits - To upload a volume: - - (Optional) Create an MD5 hash (checksum) of the disk image file that you are going to upload. After uploading the data disk, CloudPlatform will use this value to verify that no data corruption has occurred. - Log in to the CloudPlatform UI as an administrator or user - In the left navigation bar, click Storage. - Click Upload Volume. - Provide the following: - - Name and Description. Any desired name and a brief description that can be shown in the UI. - Availability Zone. Choose the zone where you want to store the volume. VMs running on hosts in this zone can attach the volume. - Format. Choose one of the following to indicate the disk image format of the volume. - - - - - - Hypervisor - Disk Image Format - - - - - XenServer - VHD - - - VMware - OVA - - - KVM - QCOW2 - - - OVM - RAW - - - - - URL. The secure HTTP or HTTPS URL that CloudPlatform can use to access your disk. The type of file at the URL must match the value chosen in Format. For example, if Format is VHD, the URL might look like the following: - http://yourFileServerIP/userdata/myDataDisk.vhd - MD5 checksum. (Optional) Use the hash that you created in step 1. - Wait until the status of the volume shows that the upload is complete. Click Instances - Volumes, find the name you specified in step 5, and make sure the status is Uploaded. - -
+ Uploading an Existing Volume to a Virtual Machine + Existing data can be made accessible to a virtual machine. This is called uploading a volume to the VM. For example, this is useful to upload data from a local file system and attach it to a VM. Root administrators, domain administrators, and end users can all upload existing volumes to VMs. + The upload is performed using HTTP. The uploaded volume is placed in the zone's secondary storage + You cannot upload a volume if the preconfigured volume limit has already been reached. The default limit for the cloud is set in the global configuration parameter max.account.volumes, but administrators can also set per-domain limits that are different from the global default. See Setting Usage Limits + To upload a volume: + + (Optional) Create an MD5 hash (checksum) of the disk image file that you are going to upload. After uploading the data disk, CloudPlatform will use this value to verify that no data corruption has occurred. + Log in to the CloudPlatform UI as an administrator or user + In the left navigation bar, click Storage. + Click Upload Volume. + Provide the following: + + Name and Description. Any desired name and a brief description that can be shown in the UI. + Availability Zone. Choose the zone where you want to store the volume. VMs running on hosts in this zone can attach the volume. + Format. Choose one of the following to indicate the disk image format of the volume. + + + + + + Hypervisor + Disk Image Format + + + + + XenServer + VHD + + + VMware + OVA + + + KVM + QCOW2 + + + OVM + RAW + + + + + URL. The secure HTTP or HTTPS URL that CloudPlatform can use to access your disk. The type of file at the URL must match the value chosen in Format. For example, if Format is VHD, the URL might look like the following: + http://yourFileServerIP/userdata/myDataDisk.vhd + MD5 checksum. (Optional) Use the hash that you created in step 1. + Wait until the status of the volume shows that the upload is complete. Click Instances - Volumes, find the name you specified in step 5, and make sure the status is Uploaded. + + diff --git a/docs/en-US/upload-template.xml b/docs/en-US/upload-template.xml index 2021b6b923f..798a4040cfb 100644 --- a/docs/en-US/upload-template.xml +++ b/docs/en-US/upload-template.xml @@ -4,41 +4,41 @@ %BOOK_ENTITIES; ]>
- Uploading Templates - If you are uploading a template that was created using vSphere Client, be sure the OVA file does not contain an ISO. If it does, the deployment of VMs from the template will fail. - Templates are uploaded based on a URL. HTTP is the supported access protocol. Templates are frequently large files. You can optionally gzip them to decrease upload times. - To upload a template: - - In the left navigation bar, click Templates. - Click Create Template. - Provide the following: - - Name and Display Text. These will be shown in the UI, so - choose something descriptive. - URL. The Management Server will download the file from the specified URL, such as http://my.web.server/filename.vhd.gz. - Zone. Choose the zone where you want the template to be available, or All Zones to make it available throughout CloudPlatform. - OS Type: This helps CloudPlatform and the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following: - - If the operating system of the stopped VM is listed, choose it. - If the OS type of the stopped VM is not listed, choose Other. - Generally you should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other. - - - Hypervisor - Format. The format of the template upload file, such as VHD - or OVA. - Password Enabled. Choose Yes if your template has the - CloudPlatform password change script installed. See Adding Password - Management to Your Templates - Extractable. Choose Yes if the template is available for extraction. If this option is selected, end users can - download a full image of a template. - Public. Choose Yes to make this template accessible to all - users of this CloudPlatform installation. The template will appear in the - Community Templates list. See - Featured. Choose Yes if you would like this template to be - more prominent for users to select. The template will appear in the Featured - Templates list. Only an administrator can make a template Featured. - - - + Uploading Templates + If you are uploading a template that was created using vSphere Client, be sure the OVA file does not contain an ISO. If it does, the deployment of VMs from the template will fail. + Templates are uploaded based on a URL. HTTP is the supported access protocol. Templates are frequently large files. You can optionally gzip them to decrease upload times. + To upload a template: + + In the left navigation bar, click Templates. + Click Create Template. + Provide the following: + + Name and Display Text. These will be shown in the UI, so + choose something descriptive. + URL. The Management Server will download the file from the specified URL, such as http://my.web.server/filename.vhd.gz. + Zone. Choose the zone where you want the template to be available, or All Zones to make it available throughout CloudPlatform. + OS Type: This helps CloudPlatform and the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following: + + If the operating system of the stopped VM is listed, choose it. + If the OS type of the stopped VM is not listed, choose Other. + Generally you should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other. + + + Hypervisor + Format. The format of the template upload file, such as VHD + or OVA. + Password Enabled. Choose Yes if your template has the + CloudPlatform password change script installed. See Adding Password + Management to Your Templates + Extractable. Choose Yes if the template is available for extraction. If this option is selected, end users can + download a full image of a template. + Public. Choose Yes to make this template accessible to all + users of this CloudPlatform installation. The template will appear in the + Community Templates list. See + Featured. Choose Yes if you would like this template to be + more prominent for users to select. The template will appear in the Featured + Templates list. Only an administrator can make a template Featured. + + +
diff --git a/docs/en-US/usage-record-format.xml b/docs/en-US/usage-record-format.xml index 21dd3263bba..5b32495a5b0 100644 --- a/docs/en-US/usage-record-format.xml +++ b/docs/en-US/usage-record-format.xml @@ -4,14 +4,14 @@ %BOOK_ENTITIES; ]>
- Usage Record Format - - - - - - - - + Usage Record Format + + + + + + + +
diff --git a/docs/en-US/usage-types.xml b/docs/en-US/usage-types.xml index 868d3312243..c2a3ea7e9ed 100644 --- a/docs/en-US/usage-types.xml +++ b/docs/en-US/usage-types.xml @@ -4,98 +4,98 @@ %BOOK_ENTITIES; ]>
- Usage Types - The following table shows all usage types. - - - - - - - - Type ID - Type Name - Description - - - - - 1 - RUNNING_VM - Tracks the total running time of a VM per usage record period. If the VM is upgraded during the usage period, you will get a separate Usage Record for the new upgraded VM. - - - 2 - ALLOCATED_VM - Tracks the total time the VM has been created to the time when it has been destroyed. This usage type is also useful in determining usage for specific templates such as Windows-based templates. - - - - 3 - IP_ADDRESS - Tracks the public IP address owned by the account. - - - - 4 - NETWORK_BYTES_SENT - Tracks the total number of bytes sent by all the VMs for an account. Cloud.com does not currently track network traffic per VM. - - - - 5 - NETWORK_BYTES_RECEIVED - Tracks the total number of bytes received by all the VMs for an account. Cloud.com does not currently track network traffic per VM. - - - - 6 - VOLUME - Tracks the total time a disk volume has been created to the time when it has been destroyed. - - - - 7 - TEMPLATE - Tracks the total time a template (either created from a snapshot or uploaded to the cloud) has been created to the time it has been destroyed. The size of the template is also returned. - - - - 8 - ISO - Tracks the total time an ISO has been uploaded to the time it has been removed from the cloud. The size of the ISO is also returned. - - - - 9 - SNAPSHOT - Tracks the total time from when a snapshot has been created to the time it have been destroyed. - - - - 11 - LOAD_BALANCER_POLICY - Tracks the total time a load balancer policy has been created to the time it has been removed. Cloud.com does not track whether a VM has been assigned to a policy. - - - - 12 - PORT_FORWARDING_RULE - Tracks the time from when a port forwarding rule was created until the time it was removed. - - - - 13 - NETWORK_OFFERING - The time from when a network offering was assigned to a VM until it is removed. - - - - 14 - VPN_USERS - The time from when a VPN user is created until it is removed. - - - - -
+ Usage Types + The following table shows all usage types. + + + + + + + + Type ID + Type Name + Description + + + + + 1 + RUNNING_VM + Tracks the total running time of a VM per usage record period. If the VM is upgraded during the usage period, you will get a separate Usage Record for the new upgraded VM. + + + 2 + ALLOCATED_VM + Tracks the total time the VM has been created to the time when it has been destroyed. This usage type is also useful in determining usage for specific templates such as Windows-based templates. + + + + 3 + IP_ADDRESS + Tracks the public IP address owned by the account. + + + + 4 + NETWORK_BYTES_SENT + Tracks the total number of bytes sent by all the VMs for an account. Cloud.com does not currently track network traffic per VM. + + + + 5 + NETWORK_BYTES_RECEIVED + Tracks the total number of bytes received by all the VMs for an account. Cloud.com does not currently track network traffic per VM. + + + + 6 + VOLUME + Tracks the total time a disk volume has been created to the time when it has been destroyed. + + + + 7 + TEMPLATE + Tracks the total time a template (either created from a snapshot or uploaded to the cloud) has been created to the time it has been destroyed. The size of the template is also returned. + + + + 8 + ISO + Tracks the total time an ISO has been uploaded to the time it has been removed from the cloud. The size of the ISO is also returned. + + + + 9 + SNAPSHOT + Tracks the total time from when a snapshot has been created to the time it have been destroyed. + + + + 11 + LOAD_BALANCER_POLICY + Tracks the total time a load balancer policy has been created to the time it has been removed. Cloud.com does not track whether a VM has been assigned to a policy. + + + + 12 + PORT_FORWARDING_RULE + Tracks the time from when a port forwarding rule was created until the time it was removed. + + + + 13 + NETWORK_OFFERING + The time from when a network offering was assigned to a VM until it is removed. + + + + 14 + VPN_USERS + The time from when a VPN user is created until it is removed. + + + + + diff --git a/docs/en-US/user-services-overview.xml b/docs/en-US/user-services-overview.xml index 3c2459074d3..7e7650791e7 100644 --- a/docs/en-US/user-services-overview.xml +++ b/docs/en-US/user-services-overview.xml @@ -1,41 +1,41 @@
- User Services Overview - In addition to the physical and logical infrastructure of your cloud, and the CloudPlatform software and servers, you also need a layer of user services so that people can actually make use of the cloud. This means not just a user UI, but a set of options and resources that users can choose from, such as templates for creating virtual machines, disk storage, and more. If you are running a commercial service, you will be keeping track of what services and resources users are consuming and charging them for that usage. Even if you do not charge anything for people to use your cloud – say, if the users are strictly internal to your organization, or just friends who are sharing your cloud – you can still keep track of what services they use and how much of them. -
- Service Offerings, Disk Offerings, Network Offerings, and Templates - A user creating a new instance can make a variety of choices about its characteristics and capabilities. CloudPlatform provides several ways to present users with choices when creating a new instance: - - Service Offerings, defined by the CloudPlatform administrator, provide a choice of CPU speed, number of CPUs, RAM size, tags on the root disk, and other choices. See Creating a New Compute Offering. - Disk Offerings, defined by the CloudPlatform administrator, provide a choice of disk size for primary data storage. See Creating a New Disk Offering. - Network Offerings, defined by the CloudPlatform administrator, describe the feature set that is available to end users from the virtual router or external networking devices on a given guest network. See Network Offerings. -  Templates, defined by the CloudPlatform administrator or by any CloudPlatform user, are the base OS images that the user can choose from when creating a new instance. For example, CloudPlatform includes CentOS as a template. See Working with Templates. - - In addition to these choices that are provided for users, there is another type of service offering which is available only to the CloudPlatform root administrator, and is used for configuring virtual infrastructure resources. For more information, see Upgrading a Virtual Router with System Service Offerings. -
-
- Accounts, Users, and Domains - An account typically represents a customer of the service provider or a department in a large organization. Multiple users can exist in an account. Users are like aliases in the account. Users in the same account are not isolated from each other, but they are isolated from users in other accounts. Most installations need not surface the notion of users; they just have one user per account. - Accounts are grouped by domains. Domains usually contain accounts that have some logical relationship to each other and a set of delegated administrators with some authority over the domain and its subdomains. For example, a service provider with several resellers could create a domain for each reseller. - Administrators are accounts with special privileges in the system. There may be multiple administrators in the system. Administrators can create or delete other administrators, and change the password for any user in the system. Root administrators have complete access to the system, including managing templates, service offerings, customer care administrators, and domains. Domain administrators can perform administrative operations for users who belong to that domain. Domain administrators do not have visibility into physical servers or other domains. -
-
- Using an LDAP Server for User Authentication - You can use an external LDAP server such as Microsoft Active Directory or ApacheDS to authenticate CloudPlatform end-users. Just map CloudPlatform accounts to the corresponding LDAP accounts using a query filter. The query filter is written using the query syntax of the particular LDAP server, and can include special wildcard characters provided by CloudPlatform for matching common values such as the user’s email address and name. CloudPlatform will search the external LDAP directory tree starting at a specified base directory and return the distinguished name (DN) and password of the matching user. This information along with the given password is used to authenticate the user. - To set up LDAP authentication in CloudPlatform, call the CloudPlatform API command ldapConfig and provide the following: - - Hostname or IP address and listening port of the LDAP server - Base directory and query filter - Search user DN credentials, which give CloudPlatform permission to search on the LDAP server - SSL keystore and password, if SSL is used - -
- Example LDAP Configuration Commands - To understand the examples in this section, you need to know the basic concepts behind calling the CloudPlatform API, which are explained in the Developer’s Guide. - The following shows an example invocation of ldapConfig with an ApacheDS LDAP server. - http://127.0.0.1:8080/client/api?command=ldapConfig&hostname=127.0.0.1&searchbase=ou%3Dtesting%2Co%3Dproject&queryfilter=%28%26%28uid%3D%25u%29%29&binddn=cn%3DJohn+Singh%2Cou%3Dtesting%2Co%project&bindpass=secret&port=10389&ssl=true&truststore=C%3A%2Fcompany%2Finfo%2Ftrusted.ks&truststorepass=secret&response=json&apiKey=YourAPIKey&signature=YourSignatureHash - - The command must be URL-encoded. Here is the same example without the URL encoding: - + User Services Overview + In addition to the physical and logical infrastructure of your cloud, and the CloudPlatform software and servers, you also need a layer of user services so that people can actually make use of the cloud. This means not just a user UI, but a set of options and resources that users can choose from, such as templates for creating virtual machines, disk storage, and more. If you are running a commercial service, you will be keeping track of what services and resources users are consuming and charging them for that usage. Even if you do not charge anything for people to use your cloud – say, if the users are strictly internal to your organization, or just friends who are sharing your cloud – you can still keep track of what services they use and how much of them. +
+ Service Offerings, Disk Offerings, Network Offerings, and Templates + A user creating a new instance can make a variety of choices about its characteristics and capabilities. CloudPlatform provides several ways to present users with choices when creating a new instance: + + Service Offerings, defined by the CloudPlatform administrator, provide a choice of CPU speed, number of CPUs, RAM size, tags on the root disk, and other choices. See Creating a New Compute Offering. + Disk Offerings, defined by the CloudPlatform administrator, provide a choice of disk size for primary data storage. See Creating a New Disk Offering. + Network Offerings, defined by the CloudPlatform administrator, describe the feature set that is available to end users from the virtual router or external networking devices on a given guest network. See Network Offerings. +  Templates, defined by the CloudPlatform administrator or by any CloudPlatform user, are the base OS images that the user can choose from when creating a new instance. For example, CloudPlatform includes CentOS as a template. See Working with Templates. + + In addition to these choices that are provided for users, there is another type of service offering which is available only to the CloudPlatform root administrator, and is used for configuring virtual infrastructure resources. For more information, see Upgrading a Virtual Router with System Service Offerings. +
+
+ Accounts, Users, and Domains + An account typically represents a customer of the service provider or a department in a large organization. Multiple users can exist in an account. Users are like aliases in the account. Users in the same account are not isolated from each other, but they are isolated from users in other accounts. Most installations need not surface the notion of users; they just have one user per account. + Accounts are grouped by domains. Domains usually contain accounts that have some logical relationship to each other and a set of delegated administrators with some authority over the domain and its subdomains. For example, a service provider with several resellers could create a domain for each reseller. + Administrators are accounts with special privileges in the system. There may be multiple administrators in the system. Administrators can create or delete other administrators, and change the password for any user in the system. Root administrators have complete access to the system, including managing templates, service offerings, customer care administrators, and domains. Domain administrators can perform administrative operations for users who belong to that domain. Domain administrators do not have visibility into physical servers or other domains. +
+
+ Using an LDAP Server for User Authentication + You can use an external LDAP server such as Microsoft Active Directory or ApacheDS to authenticate CloudPlatform end-users. Just map CloudPlatform accounts to the corresponding LDAP accounts using a query filter. The query filter is written using the query syntax of the particular LDAP server, and can include special wildcard characters provided by CloudPlatform for matching common values such as the user’s email address and name. CloudPlatform will search the external LDAP directory tree starting at a specified base directory and return the distinguished name (DN) and password of the matching user. This information along with the given password is used to authenticate the user. + To set up LDAP authentication in CloudPlatform, call the CloudPlatform API command ldapConfig and provide the following: + + Hostname or IP address and listening port of the LDAP server + Base directory and query filter + Search user DN credentials, which give CloudPlatform permission to search on the LDAP server + SSL keystore and password, if SSL is used + +
+ Example LDAP Configuration Commands + To understand the examples in this section, you need to know the basic concepts behind calling the CloudPlatform API, which are explained in the Developer’s Guide. + The following shows an example invocation of ldapConfig with an ApacheDS LDAP server. + http://127.0.0.1:8080/client/api?command=ldapConfig&hostname=127.0.0.1&searchbase=ou%3Dtesting%2Co%3Dproject&queryfilter=%28%26%28uid%3D%25u%29%29&binddn=cn%3DJohn+Singh%2Cou%3Dtesting%2Co%project&bindpass=secret&port=10389&ssl=true&truststore=C%3A%2Fcompany%2Finfo%2Ftrusted.ks&truststorepass=secret&response=json&apiKey=YourAPIKey&signature=YourSignatureHash + + The command must be URL-encoded. Here is the same example without the URL encoding: + http://127.0.0.1:8080/client/api?command=ldapConfig &hostname=127.0.0.1 &searchbase=ou=testing,o=project @@ -49,29 +49,29 @@ http://127.0.0.1:8080/client/api?command=ldapConfig &response=json &apiKey=YourAPIKey &signature=YourSignatureHash - - The following shows a similar command for Active Directory. Here, the search base is the testing group within a company, and the users are matched up based on email address. - http://10.147.29.101:8080/client/api?command=ldapConfig&hostname=10.147.28.250&searchbase=OU%3Dtesting%2CDC%3Dcompany&queryfilter=%28%26%28mail%3D%25e%29%29&binddn=CN%3DAdministrator%2COU%3Dtesting%2CDC%3Dcompany&bindpass=1111_aaaa&port=389&response=json&apiKey=YourAPIKey&signature=YourSignatureHash - - The next few sections explain some of the concepts you will need to know when filling out the ldapConfig parameters. -
-
- Search Base - Coming soon: TODO -
-
- Query Filter - Coming soon: TODO -
-
- Search User Bind DN - Coming soon: TODO -
-
- SSL Keystore Path and Password - Coming soon: TODO -
- -
+
+ The following shows a similar command for Active Directory. Here, the search base is the testing group within a company, and the users are matched up based on email address. + http://10.147.29.101:8080/client/api?command=ldapConfig&hostname=10.147.28.250&searchbase=OU%3Dtesting%2CDC%3Dcompany&queryfilter=%28%26%28mail%3D%25e%29%29&binddn=CN%3DAdministrator%2COU%3Dtesting%2CDC%3Dcompany&bindpass=1111_aaaa&port=389&response=json&apiKey=YourAPIKey&signature=YourSignatureHash + + The next few sections explain some of the concepts you will need to know when filling out the ldapConfig parameters. +
+
+ Search Base + Coming soon: TODO +
+
+ Query Filter + Coming soon: TODO +
+
+ Search User Bind DN + Coming soon: TODO +
+
+ SSL Keystore Path and Password + Coming soon: TODO +
+ +
diff --git a/docs/en-US/using-multiple-guest-networks.xml b/docs/en-US/using-multiple-guest-networks.xml index 1ff0804acea..8d3588a6705 100644 --- a/docs/en-US/using-multiple-guest-networks.xml +++ b/docs/en-US/using-multiple-guest-networks.xml @@ -4,9 +4,9 @@ %BOOK_ENTITIES; ]>
- Using Multiple Guest Networks - In zones that use advanced networking, additional networks for guest traffic may be added at any time after the initial installation. You can also customize the domain name associated with the network by specifying a DNS suffix for each network. - A VM's networks are defined at VM creation time. A VM cannot add or remove networks after it has been created, although the user can go into the guest and remove the IP address from the NIC on a particular network. - Each VM has just one default network. The virtual router's DHCP reply will set the guest's default gateway as that for the default network. Multiple non-default networks may be added to a guest in addition to the single, required default network. The administrator can control which networks are available as the default network. - Additional networks can either be available to all accounts or be assigned to a specific account. Networks that are available to all accounts are zone-wide. Any user with access to the zone can create a VM with access to that network. These zone-wide networks provide little or no isolation between guests. Networks that are assigned to a specific account provide strong isolation. + Using Multiple Guest Networks + In zones that use advanced networking, additional networks for guest traffic may be added at any time after the initial installation. You can also customize the domain name associated with the network by specifying a DNS suffix for each network. + A VM's networks are defined at VM creation time. A VM cannot add or remove networks after it has been created, although the user can go into the guest and remove the IP address from the NIC on a particular network. + Each VM has just one default network. The virtual router's DHCP reply will set the guest's default gateway as that for the default network. Multiple non-default networks may be added to a guest in addition to the single, required default network. The administrator can control which networks are available as the default network. + Additional networks can either be available to all accounts or be assigned to a specific account. Networks that are available to all accounts are zone-wide. Any user with access to the zone can create a VM with access to that network. These zone-wide networks provide little or no isolation between guests. Networks that are assigned to a specific account provide strong isolation.
diff --git a/docs/en-US/using-netscaler-load-balancers.xml b/docs/en-US/using-netscaler-load-balancers.xml index 61fb6fa30bc..0003c362d3e 100644 --- a/docs/en-US/using-netscaler-load-balancers.xml +++ b/docs/en-US/using-netscaler-load-balancers.xml @@ -38,5 +38,5 @@ - - + + diff --git a/docs/en-US/using-swift-for-secondary-storage.xml b/docs/en-US/using-swift-for-secondary-storage.xml index a3b873be532..bdeba0d98d8 100644 --- a/docs/en-US/using-swift-for-secondary-storage.xml +++ b/docs/en-US/using-swift-for-secondary-storage.xml @@ -4,8 +4,8 @@ %BOOK_ENTITIES; ]>
- Using Swift for Secondary Storage - CloudPlatform supports OpenStack Object Storage ( Swift) for secondary storage. When using Swift, you configure Swift storage for the entire CloudPlatform, then set up NFS secondary storage for each zone as usual. The NFS storage in each zone acts as a staging area through which all templates and other secondary storage data pass before being forwarded to Swift. The Swift storage acts as a cloud-wide resource, making templates and other data available to any zone in the cloud. There is no hierarchy in the Swift storage, just one Swift container per storage object. Any secondary storage in the whole cloud can pull a container from Swift at need. It is not necessary to copy templates and snapshots from one zone to another, as would be required when using zone NFS alone. Everything is available everywhere - Swift storage must be set up before you add NFS secondary storage to zones. This is accomplished through some additional configuration steps on a fresh Management Server installation, before you add the first zone. The procedure is described in Adding a Zone in the Advanced Installation Guide. -
+ Using Swift for Secondary Storage + CloudPlatform supports OpenStack Object Storage ( Swift) for secondary storage. When using Swift, you configure Swift storage for the entire CloudPlatform, then set up NFS secondary storage for each zone as usual. The NFS storage in each zone acts as a staging area through which all templates and other secondary storage data pass before being forwarded to Swift. The Swift storage acts as a cloud-wide resource, making templates and other data available to any zone in the cloud. There is no hierarchy in the Swift storage, just one Swift container per storage object. Any secondary storage in the whole cloud can pull a container from Swift at need. It is not necessary to copy templates and snapshots from one zone to another, as would be required when using zone NFS alone. Everything is available everywhere + Swift storage must be set up before you add NFS secondary storage to zones. This is accomplished through some additional configuration steps on a fresh Management Server installation, before you add the first zone. The procedure is described in Adding a Zone in the Advanced Installation Guide. + diff --git a/docs/en-US/using-vpn-with-mac.xml b/docs/en-US/using-vpn-with-mac.xml index 0104d854fe3..e6412f5660e 100644 --- a/docs/en-US/using-vpn-with-mac.xml +++ b/docs/en-US/using-vpn-with-mac.xml @@ -4,6 +4,6 @@ %BOOK_ENTITIES; ]>
- Using VPN with Mac OS X - In Mac OS X, in Network Preferences – Advanced, make sure Send all traffic over VPN connection is not checked. -
+ Using VPN with Mac OS X + In Mac OS X, in Network Preferences – Advanced, make sure Send all traffic over VPN connection is not checked. + diff --git a/docs/en-US/using-vpn-with-windows.xml b/docs/en-US/using-vpn-with-windows.xml index 77389f9e674..a1b6f417c1f 100644 --- a/docs/en-US/using-vpn-with-windows.xml +++ b/docs/en-US/using-vpn-with-windows.xml @@ -4,20 +4,20 @@ %BOOK_ENTITIES; ]>
- Using VPN with Windows - The procedure to use VPN varies by Windows version. Generally, the user must edit the VPN properties and make sure that the default route is not the VPN. The following steps are for Windows L2TP clients on Windows Vista. The commands should be similar for other Windows versions. - - Log in to the CloudPlatform UI and click on the source NAT IP for the account. The VPN tab should display the IPsec preshared key. Make a note of this and the source NAT IP. The UI also lists one or more users and their passwords. Choose one of these users, or, if none exists, add a user and password. - On the Windows box, go to Control Panel, then select Network and Sharing center. Click Setup a connection or network. - In the next dialog, select No, create a new connection. - In the next dialog, select Use my Internet Connection (VPN). - In the next dialog, enter the source NAT IP from step 1 and give the connection a name. Check Don't connect now. - In the next dialog, enter the user name and password selected in step 1. - Click Create. - Go back to the Control Panel and click Network Connections to see the new connection. The connection is not active yet. - Right-click the new connection and select Properties. In the Properties dialog, select the Networking tab. - In Type of VPN, choose L2TP IPsec VPN, then click IPsec settings. Select Use preshared key. Enter the preshared key from Step 1. - The connection is ready for activation. Go back to Control Panel -> Network Connections and double-click the created connection. - Enter the user name and password from Step 1. - + Using VPN with Windows + The procedure to use VPN varies by Windows version. Generally, the user must edit the VPN properties and make sure that the default route is not the VPN. The following steps are for Windows L2TP clients on Windows Vista. The commands should be similar for other Windows versions. + + Log in to the CloudPlatform UI and click on the source NAT IP for the account. The VPN tab should display the IPsec preshared key. Make a note of this and the source NAT IP. The UI also lists one or more users and their passwords. Choose one of these users, or, if none exists, add a user and password. + On the Windows box, go to Control Panel, then select Network and Sharing center. Click Setup a connection or network. + In the next dialog, select No, create a new connection. + In the next dialog, select Use my Internet Connection (VPN). + In the next dialog, enter the source NAT IP from step 1 and give the connection a name. Check Don't connect now. + In the next dialog, enter the user name and password selected in step 1. + Click Create. + Go back to the Control Panel and click Network Connections to see the new connection. The connection is not active yet. + Right-click the new connection and select Properties. In the Properties dialog, select the Networking tab. + In Type of VPN, choose L2TP IPsec VPN, then click IPsec settings. Select Use preshared key. Enter the preshared key from Step 1. + The connection is ready for activation. Go back to Control Panel -> Network Connections and double-click the created connection. + Enter the user name and password from Step 1. +
diff --git a/docs/en-US/virtual-machine-usage-record-format.xml b/docs/en-US/virtual-machine-usage-record-format.xml index 9df22f04b46..5fe75c9e5e8 100644 --- a/docs/en-US/virtual-machine-usage-record-format.xml +++ b/docs/en-US/virtual-machine-usage-record-format.xml @@ -1,22 +1,22 @@
- Virtual Machine Usage Record Format - For running and allocated virtual machine usage, the following fields exist in a usage record: - - account – name of the account - accountid – ID of the account - domainid – ID of the domain in which this account resides - zoneid – Zone where the usage occurred - description – A string describing what the usage record is tracking - usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for VM running time) - usagetype – A number representing the usage type (see Usage Types) - rawusage – A number representing the actual usage in hours - virtualMachineId – The ID of the virtual machine - name – The name of the virtual machine - offeringid – The ID of the service offering - templateid – The ID of the template or the ID of the parent template. The parent template value is present when the current template was created from a volume. - usageid – Virtual machine - type – Hypervisor - startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record - + Virtual Machine Usage Record Format + For running and allocated virtual machine usage, the following fields exist in a usage record: + + account – name of the account + accountid – ID of the account + domainid – ID of the domain in which this account resides + zoneid – Zone where the usage occurred + description – A string describing what the usage record is tracking + usage – String representation of the usage, including the units of usage (e.g. 'Hrs' for VM running time) + usagetype – A number representing the usage type (see Usage Types) + rawusage – A number representing the actual usage in hours + virtualMachineId – The ID of the virtual machine + name – The name of the virtual machine + offeringid – The ID of the service offering + templateid – The ID of the template or the ID of the parent template. The parent template value is present when the current template was created from a volume. + usageid – Virtual machine + type – Hypervisor + startdate, enddate – The range of time for which the usage is aggregated; see Dates in the Usage Record +
diff --git a/docs/en-US/vm-lifecycle.xml b/docs/en-US/vm-lifecycle.xml index 83e1845a89d..3499c4b8c2f 100644 --- a/docs/en-US/vm-lifecycle.xml +++ b/docs/en-US/vm-lifecycle.xml @@ -1,20 +1,20 @@
- VM Lifecycle - Virtual machines can be in the following states: - - - - - basic-deployment.png: Basic two-machine CloudStack deployment - - Once a virtual machine is destroyed, it cannot be recovered. All the resources used by the virtual machine will be reclaimed by the system. This includes the virtual machine’s IP address. - A stop will attempt to gracefully shut down the operating system, which typically involves terminating all the running applications. If the operation system cannot be stopped, it will be forcefully terminated. This has the same effect as pulling the power cord to a physical machine. - A reboot is a stop followed by a start. - CloudPlatform preserves the state of the virtual machine hard disk until the machine is destroyed. - A running virtual machine may fail because of hardware or network issues. A failed virtual machine is in the down state. - The system places the virtual machine into the down state if it does not receive the heartbeat from the hypervisor for three minutes. - The user can manually restart the virtual machine from the down state. - The system will start the virtual machine from the down state automatically if the virtual machine is marked as HA-enabled. - + VM Lifecycle + Virtual machines can be in the following states: + + + + + basic-deployment.png: Basic two-machine CloudStack deployment + + Once a virtual machine is destroyed, it cannot be recovered. All the resources used by the virtual machine will be reclaimed by the system. This includes the virtual machine’s IP address. + A stop will attempt to gracefully shut down the operating system, which typically involves terminating all the running applications. If the operation system cannot be stopped, it will be forcefully terminated. This has the same effect as pulling the power cord to a physical machine. + A reboot is a stop followed by a start. + CloudPlatform preserves the state of the virtual machine hard disk until the machine is destroyed. + A running virtual machine may fail because of hardware or network issues. A failed virtual machine is in the down state. + The system places the virtual machine into the down state if it does not receive the heartbeat from the hypervisor for three minutes. + The user can manually restart the virtual machine from the down state. + The system will start the virtual machine from the down state automatically if the virtual machine is marked as HA-enabled. +
diff --git a/docs/en-US/vm-storage-migration.xml b/docs/en-US/vm-storage-migration.xml index fdbbba067eb..885be2ca6db 100644 --- a/docs/en-US/vm-storage-migration.xml +++ b/docs/en-US/vm-storage-migration.xml @@ -5,11 +5,11 @@ ]>
VM Storage Migration - Supported in XenServer, KVM, and VMware. + Supported in XenServer, KVM, and VMware. This procedure is different from moving disk volumes from one VM to another. See Detaching and Moving Volumes . - You can migrate a virtual machine’s root disk volume or any additional data disk volume from one storage pool to another in the same zone. - You can use the storage migration feature to achieve some commonly desired administration goals, such as balancing the load on storage pools and increasing the reliability of virtual machines by moving them away from any storage pool that is experiencing issues. + You can migrate a virtual machine’s root disk volume or any additional data disk volume from one storage pool to another in the same zone. + You can use the storage migration feature to achieve some commonly desired administration goals, such as balancing the load on storage pools and increasing the reliability of virtual machines by moving them away from any storage pool that is experiencing issues. -
+ diff --git a/docs/en-US/volume-deletion-garbage-collection.xml b/docs/en-US/volume-deletion-garbage-collection.xml index 9f50ac57309..80ab0d186d6 100644 --- a/docs/en-US/volume-deletion-garbage-collection.xml +++ b/docs/en-US/volume-deletion-garbage-collection.xml @@ -4,14 +4,14 @@ %BOOK_ENTITIES; ]>
- Volume Deletion and Garbage Collection - The deletion of a volume does not delete the snapshots that have been created from the volume - When a VM is destroyed, data disk volumes that are attached to the VM are not deleted. - Volumes are permanently destroyed using a garbage collection process. The global configuration variables expunge.delay and expunge.interval determine when the physical deletion of volumes will occur. - - expunge.delay: determines how old the volume must be before it is destroyed, in seconds - expunge.interval: determines how often to run the garbage collection check - - Administrators should adjust these values depending on site policies around data retention. -
+ Volume Deletion and Garbage Collection + The deletion of a volume does not delete the snapshots that have been created from the volume + When a VM is destroyed, data disk volumes that are attached to the VM are not deleted. + Volumes are permanently destroyed using a garbage collection process. The global configuration variables expunge.delay and expunge.interval determine when the physical deletion of volumes will occur. + + expunge.delay: determines how old the volume must be before it is destroyed, in seconds + expunge.interval: determines how often to run the garbage collection check + + Administrators should adjust these values depending on site policies around data retention. + diff --git a/docs/en-US/volume-status.xml b/docs/en-US/volume-status.xml index 88f3717dd0c..a0ec10212b7 100644 --- a/docs/en-US/volume-status.xml +++ b/docs/en-US/volume-status.xml @@ -4,7 +4,7 @@ %BOOK_ENTITIES; ]>
- Volume Status - When a snapshot operation is triggered by means of a recurring snapshot policy, a snapshot is skipped if a volume has remained inactive since its last snapshot was taken. A volume is considered to be inactive if it is either detached or attached to a VM that is not running. CloudPlatform ensures that at least one snapshot is taken since the volume last became inactive. - When a snapshot is taken manually, a snapshot is always created regardless of whether a volume has been active or not. -
+ Volume Status + When a snapshot operation is triggered by means of a recurring snapshot policy, a snapshot is skipped if a volume has remained inactive since its last snapshot was taken. A volume is considered to be inactive if it is either detached or attached to a VM that is not running. CloudPlatform ensures that at least one snapshot is taken since the volume last became inactive. + When a snapshot is taken manually, a snapshot is always created regardless of whether a volume has been active or not. + diff --git a/docs/en-US/vpn.xml b/docs/en-US/vpn.xml index 31b7a64dfc4..0eafa94707f 100644 --- a/docs/en-US/vpn.xml +++ b/docs/en-US/vpn.xml @@ -4,19 +4,19 @@ %BOOK_ENTITIES; ]>
- VPN - CloudPlatform account owners can create virtual private networks (VPN) to access their virtual machines. If the guest network is instantiated from a network offering that offers the Remote Access VPN service, the virtual router (based on the System VM) is used to provide the service. CloudPlatform provides a L2TP-over-IPsec-based remote access VPN service to guest virtual networks. Since each network gets its own virtual router, VPNs are not shared across the networks. VPN clients native to Windows, Mac OS X and iOS can be used to connect to the guest networks. The account owner can create and manage users for their VPN. CloudPlatform does not use its account database for this purpose but uses a separate table. The VPN user database is shared across all the VPNs created by the account owner. All VPN users get access to all VPNs created by the account owner. - Make sure that not all traffic goes through the VPN. That is, the route installed by the VPN should be only for the guest network and not for all traffic. - - Road Warrior / Remote Access. Users want to be able to - connect securely from a home or office to a private network in the cloud. Typically, - the IP address of the connecting client is dynamic and cannot be preconfigured on - the VPN server. - Site to Site. In this scenario, two private subnets are - connected over the public Internet with a secure VPN tunnel. The cloud user’s subnet - (for example, an office network) is connected through a gateway to the network in - the cloud. The address of the user’s gateway must be preconfigured on the VPN server - in the cloud. Note that although L2TP-over-IPsec can be used to set up Site-to-Site - VPNs, this is not the primary intent of this feature. - + VPN + CloudPlatform account owners can create virtual private networks (VPN) to access their virtual machines. If the guest network is instantiated from a network offering that offers the Remote Access VPN service, the virtual router (based on the System VM) is used to provide the service. CloudPlatform provides a L2TP-over-IPsec-based remote access VPN service to guest virtual networks. Since each network gets its own virtual router, VPNs are not shared across the networks. VPN clients native to Windows, Mac OS X and iOS can be used to connect to the guest networks. The account owner can create and manage users for their VPN. CloudPlatform does not use its account database for this purpose but uses a separate table. The VPN user database is shared across all the VPNs created by the account owner. All VPN users get access to all VPNs created by the account owner. + Make sure that not all traffic goes through the VPN. That is, the route installed by the VPN should be only for the guest network and not for all traffic. + + Road Warrior / Remote Access. Users want to be able to + connect securely from a home or office to a private network in the cloud. Typically, + the IP address of the connecting client is dynamic and cannot be preconfigured on + the VPN server. + Site to Site. In this scenario, two private subnets are + connected over the public Internet with a secure VPN tunnel. The cloud user’s subnet + (for example, an office network) is connected through a gateway to the network in + the cloud. The address of the user’s gateway must be preconfigured on the VPN server + in the cloud. Note that although L2TP-over-IPsec can be used to set up Site-to-Site + VPNs, this is not the primary intent of this feature. +
diff --git a/docs/en-US/whatis.xml b/docs/en-US/whatis.xml index 89348c52fb6..d89d8742561 100644 --- a/docs/en-US/whatis.xml +++ b/docs/en-US/whatis.xml @@ -4,23 +4,23 @@ %BOOK_ENTITIES; ]>
- What Is &PRODUCT;? - - &PRODUCT; is an open source software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. &PRODUCT; manages the network, storage, and compute nodes that make up a cloud infrastructure. Use &PRODUCT; to deploy, manage, and configure cloud computing environments. - - Typical users are service providers and enterprises. With &PRODUCT;, you can: - - - Set up an on-demand, elastic cloud computing service. Service providers can sell self service virtual machine instances, storage volumes, and networking configurations over the Internet. - - - Set up an on-premise private cloud for use by employees. Rather than managing virtual machines in the same way as physical machines, with &PRODUCT; an enterprise can offer self-service virtual machines to users without involving IT departments. - - - - - - - 1000-foot-view.png: Overview of &PRODUCT; - + What Is &PRODUCT;? + + &PRODUCT; is an open source software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. &PRODUCT; manages the network, storage, and compute nodes that make up a cloud infrastructure. Use &PRODUCT; to deploy, manage, and configure cloud computing environments. + + Typical users are service providers and enterprises. With &PRODUCT;, you can: + + + Set up an on-demand, elastic cloud computing service. Service providers can sell self service virtual machine instances, storage volumes, and networking configurations over the Internet. + + + Set up an on-premise private cloud for use by employees. Rather than managing virtual machines in the same way as physical machines, with &PRODUCT; an enterprise can offer self-service virtual machines to users without involving IT departments. + + + + + + + 1000-foot-view.png: Overview of &PRODUCT; +
\ No newline at end of file diff --git a/docs/en-US/whats-in-this-adminguide.xml b/docs/en-US/whats-in-this-adminguide.xml index 94129a4d340..e34c17fc1eb 100644 --- a/docs/en-US/whats-in-this-adminguide.xml +++ b/docs/en-US/whats-in-this-adminguide.xml @@ -1,7 +1,7 @@
- Who Should Read This - If you have already installed CloudPlatform or you want to learn more about the ongoing - operation and maintenance of a CloudPlatform-powered cloud, read this documentation. It - will help you start using, configuring, and managing the ongoing operation of your cloud. -
+ Who Should Read This + If you have already installed CloudPlatform or you want to learn more about the ongoing + operation and maintenance of a CloudPlatform-powered cloud, read this documentation. It + will help you start using, configuring, and managing the ongoing operation of your cloud. + diff --git a/docs/en-US/who-should-read-installation.xml b/docs/en-US/who-should-read-installation.xml index 013781119b7..a4b5e18c266 100644 --- a/docs/en-US/who-should-read-installation.xml +++ b/docs/en-US/who-should-read-installation.xml @@ -4,12 +4,12 @@ %BOOK_ENTITIES; ]>
- Who Should Read This - - For those who have already gone through a design phase and planned a more sophisticated deployment, - or those who are ready to start scaling up a trial installation. - With the following procedures, you can start using the more powerful features of &PRODUCT;, - such as advanced VLAN networking, high availability, additional network elements such as load balancers and firewalls, - and support for multiple hypervisors including Citrix XenServer, KVM, and VMware vSphere. - + Who Should Read This + + For those who have already gone through a design phase and planned a more sophisticated deployment, + or those who are ready to start scaling up a trial installation. + With the following procedures, you can start using the more powerful features of &PRODUCT;, + such as advanced VLAN networking, high availability, additional network elements such as load balancers and firewalls, + and support for multiple hypervisors including Citrix XenServer, KVM, and VMware vSphere. +
\ No newline at end of file diff --git a/docs/en-US/windows-installation.xml b/docs/en-US/windows-installation.xml index 46044bc6585..9958c96da1b 100644 --- a/docs/en-US/windows-installation.xml +++ b/docs/en-US/windows-installation.xml @@ -4,6 +4,6 @@ %BOOK_ENTITIES; ]>
- Windows OS Installation - Download the installer, CloudInstanceManager.msi, from Download page and run the installer in the newly created Windows VM. + Windows OS Installation + Download the installer, CloudInstanceManager.msi, from Download page and run the installer in the newly created Windows VM.
diff --git a/docs/en-US/working-with-iso.xml b/docs/en-US/working-with-iso.xml index 8b6f345a8fa..9f1dc238e1d 100644 --- a/docs/en-US/working-with-iso.xml +++ b/docs/en-US/working-with-iso.xml @@ -4,11 +4,11 @@ %BOOK_ENTITIES; ]>
- Working with ISOs - CloudPlatform supports ISOs and their attachment to guest VMs. An ISO is a read-only file that has an ISO/CD-ROM style file system. Users can upload their own ISOs and mount them on their guest VMs. - ISOs are uploaded based on a URL. HTTP is the supported protocol. Once the ISO is available via HTTP specify an upload URL such as http://my.web.server/filename.iso. - ISOs may be public or private, like templates.ISOs are not hypervisor-specific. That is, a guest on vSphere can mount the exact same image that a guest on KVM can mount. - ISO images may be stored in the system and made available with a privacy level similar to templates. ISO images are classified as either bootable or not bootable. A bootable ISO image is one that contains an OS image. CloudPlatform allows a user to boot a guest VM off of an ISO image. Users can also attach ISO images to guest VMs. For example, this enables installing PV drivers into Windows. ISO images are not hypervisor-specific. + Working with ISOs + CloudPlatform supports ISOs and their attachment to guest VMs. An ISO is a read-only file that has an ISO/CD-ROM style file system. Users can upload their own ISOs and mount them on their guest VMs. + ISOs are uploaded based on a URL. HTTP is the supported protocol. Once the ISO is available via HTTP specify an upload URL such as http://my.web.server/filename.iso. + ISOs may be public or private, like templates.ISOs are not hypervisor-specific. That is, a guest on vSphere can mount the exact same image that a guest on KVM can mount. + ISO images may be stored in the system and made available with a privacy level similar to templates. ISO images are classified as either bootable or not bootable. A bootable ISO image is one that contains an OS image. CloudPlatform allows a user to boot a guest VM off of an ISO image. Users can also attach ISO images to guest VMs. For example, this enables installing PV drivers into Windows. ISO images are not hypervisor-specific. - +
diff --git a/docs/en-US/working-with-snapshots.xml b/docs/en-US/working-with-snapshots.xml index 1987b2318bd..fa7602cacb1 100644 --- a/docs/en-US/working-with-snapshots.xml +++ b/docs/en-US/working-with-snapshots.xml @@ -4,12 +4,12 @@ %BOOK_ENTITIES; ]>
- Working with Snapshots - (Supported for the following hypervisors: XenServer, - VMware vSphere, and KVM) - CloudPlatform supports snapshots of disk volumes. Snapshots are a point-in-time capture of virtual machine disks. Memory and CPU states are not captured. If you are using the Oracle VM hypervisor, you can not take snapshots, since OVM does not support them. - Snapshots may be taken for volumes, including both root and data disks (except when the Oracle VM hypervisor is used, which does not support snapshots). The administrator places a limit on the number of stored snapshots per user. Users can create new volumes from the snapshot for recovery of particular files and they can create templates from snapshots to boot from a restored disk. - Users can create snapshots manually or by setting up automatic recurring snapshot policies. Users can also create disk volumes from snapshots, which may be attached to a VM like any other disk volume. Snapshots of both root disks and data disks are supported. However, CloudPlatform does not currently support booting a VM from a recovered root disk. A disk recovered from snapshot of a root disk is treated as a regular data disk; the data on recovered disk can be accessed by attaching the disk to a VM. - A completed snapshot is copied from primary storage to secondary storage, where it is stored until deleted or purged by newer snapshot. -
+ Working with Snapshots + (Supported for the following hypervisors: XenServer, + VMware vSphere, and KVM) + CloudPlatform supports snapshots of disk volumes. Snapshots are a point-in-time capture of virtual machine disks. Memory and CPU states are not captured. If you are using the Oracle VM hypervisor, you can not take snapshots, since OVM does not support them. + Snapshots may be taken for volumes, including both root and data disks (except when the Oracle VM hypervisor is used, which does not support snapshots). The administrator places a limit on the number of stored snapshots per user. Users can create new volumes from the snapshot for recovery of particular files and they can create templates from snapshots to boot from a restored disk. + Users can create snapshots manually or by setting up automatic recurring snapshot policies. Users can also create disk volumes from snapshots, which may be attached to a VM like any other disk volume. Snapshots of both root disks and data disks are supported. However, CloudPlatform does not currently support booting a VM from a recovered root disk. A disk recovered from snapshot of a root disk is treated as a regular data disk; the data on recovered disk can be accessed by attaching the disk to a VM. + A completed snapshot is copied from primary storage to secondary storage, where it is stored until deleted or purged by newer snapshot. + diff --git a/docs/en-US/working-with-templates.xml b/docs/en-US/working-with-templates.xml index 6073f7b91e7..f54e3175b4b 100644 --- a/docs/en-US/working-with-templates.xml +++ b/docs/en-US/working-with-templates.xml @@ -4,10 +4,10 @@ %BOOK_ENTITIES; ]>
- Working with Templates - A template is a reusable configuration for virtual machines. When users launch VMs, they can choose from a list of templates in CloudPlatform. - Specifically, a template is a virtual disk image that includes one of a variety of operating systems, optional additional software such as office applications, and settings such as access control to determine who can use the template. Each template is associated with a particular type of hypervisor, which is specified when the template is added to CloudPlatform. - CloudPlatform ships with a default template. In order to present more choices to users, CloudPlatform administrators and users can create templates and add them to CloudPlatform. + Working with Templates + A template is a reusable configuration for virtual machines. When users launch VMs, they can choose from a list of templates in CloudPlatform. + Specifically, a template is a virtual disk image that includes one of a variety of operating systems, optional additional software such as office applications, and settings such as access control to determine who can use the template. Each template is associated with a particular type of hypervisor, which is specified when the template is added to CloudPlatform. + CloudPlatform ships with a default template. In order to present more choices to users, CloudPlatform administrators and users can create templates and add them to CloudPlatform. @@ -22,4 +22,4 @@ -
+ diff --git a/docs/en-US/working-with-usage-data.xml b/docs/en-US/working-with-usage-data.xml index 09a89df38f8..006b54bad57 100644 --- a/docs/en-US/working-with-usage-data.xml +++ b/docs/en-US/working-with-usage-data.xml @@ -8,7 +8,7 @@ The Usage Server provides aggregated usage records which you can use to create billing integration for the CloudStack platform. The Usage Server works by taking data from the events log and creating summary usage records that you can access using the listUsageRecords API call. The usage records show the amount of resources, such as VM run time or template storage space, consumed by guest instances. In the special case of bare metal instances, no template storage resources are consumed, but records showing zero usage are still included in the Usage Server's output. The Usage Server runs at least once per day. It can be configured to run multiple times per day. Its behavior is controlled by configuration settings as described in the CloudStack Administration Guide. - + diff --git a/docs/en-US/working-with-volumes.xml b/docs/en-US/working-with-volumes.xml index 56106723ecb..90990511f71 100644 --- a/docs/en-US/working-with-volumes.xml +++ b/docs/en-US/working-with-volumes.xml @@ -4,9 +4,9 @@ %BOOK_ENTITIES; ]>
- Using Swift for Secondary Storage - A volume provides storage to a guest VM. The volume can provide for a root disk or an additional data disk. CloudPlatform supports additional volumes for guest VMs. - Volumes are created for a specific hypervisor type. A volume that has been attached to guest using one hypervisor type (e.g, XenServer) may not be attached to a guest that is using another hypervisor type (e.g. vSphere, Oracle VM, KVM). This is because the different hypervisors use different disk image formats. - CloudPlatform defines a volume as a unit of storage available to a guest VM. Volumes are either root disks or data disks. The root disk has “/” in the file system and is usually the boot device. Data disks provide for additional storage (e.g. As “/opt” or “D:”). Every guest VM has a root disk, and VMs can also optionally have a data disk. End users can mount multiple data disks to guest VMs. Users choose data disks from the disk offerings created by administrators. The user can create a template from a volume as well; this is the standard procedure for private template creation. Volumes are hypervisor-specific: a volume from one hypervisor type may not be used on a guest of another hypervisor type. -
+ Using Swift for Secondary Storage + A volume provides storage to a guest VM. The volume can provide for a root disk or an additional data disk. CloudPlatform supports additional volumes for guest VMs. + Volumes are created for a specific hypervisor type. A volume that has been attached to guest using one hypervisor type (e.g, XenServer) may not be attached to a guest that is using another hypervisor type (e.g. vSphere, Oracle VM, KVM). This is because the different hypervisors use different disk image formats. + CloudPlatform defines a volume as a unit of storage available to a guest VM. Volumes are either root disks or data disks. The root disk has “/” in the file system and is usually the boot device. Data disks provide for additional storage (e.g. As “/opt” or “D:”). Every guest VM has a root disk, and VMs can also optionally have a data disk. End users can mount multiple data disks to guest VMs. Users choose data disks from the disk offerings created by administrators. The user can create a template from a volume as well; this is the standard procedure for private template creation. Volumes are hypervisor-specific: a volume from one hypervisor type may not be used on a guest of another hypervisor type. + diff --git a/docs/en-US/zone-add.xml b/docs/en-US/zone-add.xml index 7d68375dfab..547722c72d9 100644 --- a/docs/en-US/zone-add.xml +++ b/docs/en-US/zone-add.xml @@ -4,7 +4,7 @@ %BOOK_ENTITIES; ]>
- Adding a Zone + Adding a Zone These steps assume you have already logged in to the CloudPlatform UI. See . (Optional) If you are going to use Swift for cloud-wide secondary storage, you need to add it before you add zones. diff --git a/docs/publican-cloudstack/en-US/Feedback.xml b/docs/publican-cloudstack/en-US/Feedback.xml index 5236b0f8309..c3166012ec9 100644 --- a/docs/publican-cloudstack/en-US/Feedback.xml +++ b/docs/publican-cloudstack/en-US/Feedback.xml @@ -2,25 +2,25 @@
- We Need Feedback! - - feedback1 - contact information for this brand + We Need Feedback! + + feedback1 + contact information for this brand - - - If you find a typographical error in this manual, or if you + + + If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a bug: http://bugs.cloudstack.org against the component Doc - - - If you have a suggestion for improving the documentation, try to be as + + + If you have a suggestion for improving the documentation, try to be as specific as possible when describing it. If you have found an error, please include the section number and some of the surrounding text so we can find it easily. - +
diff --git a/docs/runbook/en-US/Author_Group.xml b/docs/runbook/en-US/Author_Group.xml index 65080cf74fb..ba9e651f876 100644 --- a/docs/runbook/en-US/Author_Group.xml +++ b/docs/runbook/en-US/Author_Group.xml @@ -24,9 +24,9 @@ - - Apache - CloudStack - + + Apache + CloudStack + diff --git a/docs/runbook/en-US/Book_Info.xml b/docs/runbook/en-US/Book_Info.xml index 8e06d62b258..ec591446856 100644 --- a/docs/runbook/en-US/Book_Info.xml +++ b/docs/runbook/en-US/Book_Info.xml @@ -24,29 +24,29 @@ - Runbook - Prescriptive instructions for deploying Apache CloudStack - Apache CloudStack - 3.0.2 - 0 - 0 - - - These runbooks are designed to provide a strict environment to guarantee + Runbook + Prescriptive instructions for deploying Apache CloudStack + Apache CloudStack + 3.0.2 + 0 + 0 + + + These runbooks are designed to provide a strict environment to guarantee a higher degree of success in initial deployments of Apache CloudStack. All of the elements of the environment will be provided to you. Apache CloudStack is capable of much more complex configurations, but they are beyond the scope of this document. - - - - - - - - - - - + + + + + + + + + + + diff --git a/docs/runbook/en-US/Chapter.xml b/docs/runbook/en-US/Chapter.xml index 30894e7814b..4adf63c207a 100644 --- a/docs/runbook/en-US/Chapter.xml +++ b/docs/runbook/en-US/Chapter.xml @@ -34,7 +34,7 @@ This is a test paragraph in a section
- +
Test Section 2 diff --git a/docs/runbook/en-US/Environment.xml b/docs/runbook/en-US/Environment.xml index 99161d9cb69..781e05de182 100644 --- a/docs/runbook/en-US/Environment.xml +++ b/docs/runbook/en-US/Environment.xml @@ -65,14 +65,14 @@ ONBOOT="no" Unfortunately, this configuration will not permit you to connect to the network, and is also unsuitable for our purposes with CloudStack. We want to - configure that file so that it specifies the IP address, netmask, etc., as shown - in the following example: + configure that file so that it specifies the IP address, netmask, etc., as shown + in the following example: Hardware Addresses - You should not use the hardware address (aka MAC address) from our example - for your configuration. It is network interface specific, so you should keep the - address already provided in the HWADDR directive. + You should not use the hardware address (aka MAC address) from our example + for your configuration. It is network interface specific, so you should keep the + address already provided in the HWADDR directive. @@ -135,7 +135,7 @@ DNS2=8.8.4.4 To ensure that it remains in that state we need to configure the file /etc/selinux/config to reflect the permissive state, - as shown in this example: + as shown in this example: # This file controls the state of SELinux on the system. diff --git a/docs/runbook/en-US/Management.xml b/docs/runbook/en-US/Management.xml index d95108e2ee1..0df2bf118f9 100644 --- a/docs/runbook/en-US/Management.xml +++ b/docs/runbook/en-US/Management.xml @@ -60,14 +60,14 @@ binlog-format = 'ROW'
- +
Extraction - The next step is to extract the contents of the CloudStack tarball - (mentioned in ) you - downloaded previously. To extract the contents of this tarball use - the following command: + The next step is to extract the contents of the CloudStack tarball + (mentioned in ) you + downloaded previously. To extract the contents of this tarball use + the following command: # tar -xzvf CloudStack-oss-3.0.2-1-rhel6.2.tar.gz diff --git a/docs/runbook/en-US/Overview.xml b/docs/runbook/en-US/Overview.xml index 9b64f05e9c5..f69798fdb67 100644 --- a/docs/runbook/en-US/Overview.xml +++ b/docs/runbook/en-US/Overview.xml @@ -26,17 +26,17 @@ Overview - Infrastructure-as-a-Service (IaaS) clouds can be a complex thing to build, - and by definition they have a plethora of options, which often lead to confusion - for even experienced admins who are newcomers to building cloud platforms. - The goal for this runbook is to provide a straightforward set of instructions - to get you up and running with CloudStack with a minimum amount of trouble. + Infrastructure-as-a-Service (IaaS) clouds can be a complex thing to build, + and by definition they have a plethora of options, which often lead to confusion + for even experienced admins who are newcomers to building cloud platforms. + The goal for this runbook is to provide a straightforward set of instructions + to get you up and running with CloudStack with a minimum amount of trouble.
What exactly are we building? - This runbook will focus on building a CloudStack cloud using KVM with - CentOS 6.2 with NFS storage on a flat layer-2 network utilizing + This runbook will focus on building a CloudStack cloud using KVM with + CentOS 6.2 with NFS storage on a flat layer-2 network utilizing layer-3 network isolation (aka Security Groups), and doing it all on a single piece of hardware. @@ -60,7 +60,7 @@ software. Finally we'll spend a good deal of time configuring the entire cloud in the CloudStack web interface. -
+
Prerequisites @@ -81,8 +81,8 @@ - A /24 network with the gateway being at xxx.xxx.xxx.1, no DHCP should be on this network and - none of the computers running CloudStack may have a dynamic address. + A /24 network with the gateway being at xxx.xxx.xxx.1, no DHCP should be on this network and + none of the computers running CloudStack may have a dynamic address. diff --git a/docs/runbook/en-US/Preface.xml b/docs/runbook/en-US/Preface.xml index 3d26d43d8c5..7a622674443 100644 --- a/docs/runbook/en-US/Preface.xml +++ b/docs/runbook/en-US/Preface.xml @@ -24,10 +24,10 @@ - Preface - - - - + Preface + + + + diff --git a/docs/runbook/en-US/Revision_History.xml b/docs/runbook/en-US/Revision_History.xml index dba81ca7a73..4aecafd1d66 100644 --- a/docs/runbook/en-US/Revision_History.xml +++ b/docs/runbook/en-US/Revision_History.xml @@ -24,19 +24,19 @@ - Revision History - - - - 0-0 - Mon Jun 25 2012 - - - Initial creation of book by publican - - - - - + Revision History + + + + 0-0 + Mon Jun 25 2012 + + + Initial creation of book by publican + + + + + diff --git a/docs/runbook/en-US/Runbook.xml b/docs/runbook/en-US/Runbook.xml index 667956bbf7e..11f195ca828 100644 --- a/docs/runbook/en-US/Runbook.xml +++ b/docs/runbook/en-US/Runbook.xml @@ -24,14 +24,14 @@ - - - + + + - - + + diff --git a/docs/runbook/en-US/kvm.xml b/docs/runbook/en-US/kvm.xml index 6f9fdad705a..03119496a2c 100644 --- a/docs/runbook/en-US/kvm.xml +++ b/docs/runbook/en-US/kvm.xml @@ -66,7 +66,7 @@ any additional hosts will need for you to complete the above steps.
- +
Installation diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java new file mode 100644 index 00000000000..cf4de095cf7 --- /dev/null +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java @@ -0,0 +1,197 @@ +/* + * 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. + */ + +package com.cloud.hypervisor.kvm.resource; + +import com.cloud.agent.api.to.NicTO; +import com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource; +import com.cloud.exception.InternalErrorException; +import com.cloud.network.Networks; +import com.cloud.utils.NumbersUtil; +import com.cloud.utils.net.NetUtils; +import com.cloud.utils.script.OutputInterpreter; +import com.cloud.utils.script.Script; +import org.apache.log4j.Logger; +import org.libvirt.LibvirtException; + +import javax.naming.ConfigurationException; +import java.net.URI; +import java.util.Map; + +public class BridgeVifDriver extends VifDriverBase { + + private static final Logger s_logger = Logger + .getLogger(BridgeVifDriver.class); + private int _timeout; + private String _modifyVlanPath; + + @Override + public void configure(Map params) throws ConfigurationException { + + super.configure(params); + + // Set the domr scripts directory + params.put("domr.scripts.dir", "scripts/network/domr/kvm"); + + + String networkScriptsDir = (String) params.get("network.scripts.dir"); + if (networkScriptsDir == null) { + networkScriptsDir = "scripts/vm/network/vnet"; + } + + String value = (String) params.get("scripts.timeout"); + _timeout = NumbersUtil.parseInt(value, 30 * 60) * 1000; + + _modifyVlanPath = Script.findScript(networkScriptsDir, "modifyvlan.sh"); + if (_modifyVlanPath == null) { + throw new ConfigurationException("Unable to find modifyvlan.sh"); + } + + try { + createControlNetwork(); + } catch (LibvirtException e) { + throw new ConfigurationException(e.getMessage()); + } + } + + @Override + public LibvirtVMDef.InterfaceDef plug(NicTO nic, String guestOsType) + throws InternalErrorException, LibvirtException { + + if (s_logger.isDebugEnabled()) { + s_logger.debug("nic=" + nic); + } + + LibvirtVMDef.InterfaceDef intf = new LibvirtVMDef.InterfaceDef(); + + String vlanId = null; + if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan) { + URI broadcastUri = nic.getBroadcastUri(); + vlanId = broadcastUri.getHost(); + } + if (nic.getType() == Networks.TrafficType.Guest) { + if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan + && !vlanId.equalsIgnoreCase("untagged")) { + String brName = createVlanBr(vlanId, _pifs.get("private")); + intf.defBridgeNet(brName, null, nic.getMac(), getGuestNicModel(guestOsType)); + } else { + intf.defBridgeNet(_bridges.get("guest"), null, nic.getMac(), getGuestNicModel(guestOsType)); + } + } else if (nic.getType() == Networks.TrafficType.Control) { + /* Make sure the network is still there */ + createControlNetwork(); + intf.defBridgeNet(_bridges.get("linklocal"), null, nic.getMac(), getGuestNicModel(guestOsType)); + } else if (nic.getType() == Networks.TrafficType.Public) { + if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan + && !vlanId.equalsIgnoreCase("untagged")) { + String brName = createVlanBr(vlanId, _pifs.get("public")); + intf.defBridgeNet(brName, null, nic.getMac(), getGuestNicModel(guestOsType)); + } else { + intf.defBridgeNet(_bridges.get("public"), null, nic.getMac(), getGuestNicModel(guestOsType)); + } + } else if (nic.getType() == Networks.TrafficType.Management) { + intf.defBridgeNet(_bridges.get("private"), null, nic.getMac(), getGuestNicModel(guestOsType)); + } else if (nic.getType() == Networks.TrafficType.Storage) { + String storageBrName = nic.getName() == null ? _bridges.get("private") + : nic.getName(); + intf.defBridgeNet(storageBrName, null, nic.getMac(), getGuestNicModel(guestOsType)); + } + return intf; + } + + @Override + public void unplug(LibvirtVMDef.InterfaceDef iface) { + // Nothing needed as libvirt cleans up tap interface from bridge. + } + + private String setVnetBrName(String vnetId) { + return "cloudVirBr" + vnetId; + } + + private String createVlanBr(String vlanId, String nic) + throws InternalErrorException { + String brName = setVnetBrName(vlanId); + createVnet(vlanId, nic); + return brName; + } + + private void createVnet(String vnetId, String pif) + throws InternalErrorException { + final Script command = new Script(_modifyVlanPath, _timeout, s_logger); + command.add("-v", vnetId); + command.add("-p", pif); + command.add("-o", "add"); + + final String result = command.execute(); + if (result != null) { + throw new InternalErrorException("Failed to create vnet " + vnetId + + ": " + result); + } + } + + private void createControlNetwork() throws LibvirtException { + createControlNetwork(_bridges.get("linklocal")); + } + + private void deletExitingLinkLocalRoutTable(String linkLocalBr) { + Script command = new Script("/bin/bash", _timeout); + command.add("-c"); + command.add("ip route | grep " + NetUtils.getLinkLocalCIDR()); + OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser(); + String result = command.execute(parser); + boolean foundLinkLocalBr = false; + if (result == null && parser.getLines() != null) { + String[] lines = parser.getLines().split("\\n"); + for (String line : lines) { + String[] tokens = line.split(" "); + if (!tokens[2].equalsIgnoreCase(linkLocalBr)) { + Script.runSimpleBashScript("ip route del " + NetUtils.getLinkLocalCIDR()); + } else { + foundLinkLocalBr = true; + } + } + } + if (!foundLinkLocalBr) { + Script.runSimpleBashScript("ifconfig " + linkLocalBr + " 169.254.0.1;" + "ip route add " + + NetUtils.getLinkLocalCIDR() + " dev " + linkLocalBr + " src " + NetUtils.getLinkLocalGateway()); + } + } + + private void createControlNetwork(String privBrName) { + deletExitingLinkLocalRoutTable(privBrName); + if (!isBridgeExists(privBrName)) { + Script.runSimpleBashScript("brctl addbr " + privBrName + "; ifconfig " + privBrName + " up; ifconfig " + + privBrName + " 169.254.0.1", _timeout); + } + + } + + private boolean isBridgeExists(String bridgeName) { + Script command = new Script("/bin/sh", _timeout); + command.add("-c"); + command.add("brctl show|grep " + bridgeName); + final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser(); + String result = command.execute(parser); + if (result != null || parser.getLine() == null) { + return false; + } else { + return true; + } + } +} diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index e2bb597e230..8b876cf7d0c 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -25,6 +25,7 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.lang.reflect.InvocationTargetException; import java.net.InetAddress; import java.net.URI; import java.net.URISyntaxException; @@ -261,6 +262,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements private String _mountPoint = "/mnt"; StorageLayer _storage; private KVMStoragePoolManager _storagePoolMgr; + private VifDriver _vifDriver; private static final class KeyValueInterpreter extends OutputInterpreter { private final Map map = new HashMap(); @@ -314,7 +316,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements private boolean _can_bridge_firewall; protected String _localStoragePath; protected String _localStorageUUID; - private Pair _pifs; + private Map _pifs = new HashMap(); + private Map> hostNetInfo = new HashMap>(); private final Map _vmStats = new ConcurrentHashMap(); protected boolean _disconnected = true; @@ -679,26 +682,21 @@ public class LibvirtComputingResource extends ServerResourceBase implements } } - try { - createControlNetwork(); - } catch (LibvirtException e) { - throw new ConfigurationException(e.getMessage()); - } - - _pifs = getPifs(); - if (_pifs.first() == null) { + getPifs(); + if (_pifs.get("private") == null) { s_logger.debug("Failed to get private nic name"); throw new ConfigurationException("Failed to get private nic name"); } - if (_pifs.second() == null) { + if (_pifs.get("public") == null) { s_logger.debug("Failed to get public nic name"); throw new ConfigurationException("Failed to get public nic name"); } - s_logger.debug("Found pif: " + _pifs.first() + " on " + _privBridgeName - + ", pif: " + _pifs.second() + " on " + _publicBridgeName); + s_logger.debug("Found pif: " + _pifs.get("private") + " on " + _privBridgeName + + ", pif: " + _pifs.get("public") + " on " + _publicBridgeName); - _can_bridge_firewall = can_bridge_firewall(_pifs.second()); + + _can_bridge_firewall = can_bridge_firewall(_pifs.get("public")); _localGateway = Script .runSimpleBashScript("ip route |grep default|awk '{print $3}'"); @@ -716,7 +714,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements if (_migrateSpeed == -1) { //get guest network device speed _migrateSpeed = 0; - String speed = Script.runSimpleBashScript("ethtool " + _pifs.second() + " |grep Speed | cut -d \\ -f 2"); + String speed = Script.runSimpleBashScript("ethtool " + _pifs.get("public") + " |grep Speed | cut -d \\ -f 2"); if (speed != null) { String[] tokens = speed.split("M"); if (tokens.length == 2) { @@ -725,16 +723,47 @@ public class LibvirtComputingResource extends ServerResourceBase implements } catch (Exception e) { } - s_logger.debug("device " + _pifs.second() + " has speed: " + String.valueOf(_migrateSpeed)); + s_logger.debug("device " + _pifs.get("public") + " has speed: " + String.valueOf(_migrateSpeed)); } } params.put("vm.migrate.speed", String.valueOf(_migrateSpeed)); } + Map bridges = new HashMap(); + bridges.put("linklocal", _linkLocalBridgeName); + bridges.put("public", _publicBridgeName); + bridges.put("private", _privBridgeName); + bridges.put("guest", _guestBridgeName); + + params.put("libvirt.host.bridges", (Object) bridges); + params.put("libvirt.host.pifs", (Object) _pifs); + + // Load the vif driver + String vifDriverName = (String) params.get("libvirt.vif.driver"); + if (vifDriverName == null) { + s_logger.info("No libvirt.vif.driver specififed. Defaults to BridgeVifDriver."); + vifDriverName = "com.cloud.hypervisor.kvm.resource.BridgeVifDriver"; + } + + params.put("libvirt.computing.resource", (Object) this); + + try { + Class clazz = Class.forName(vifDriverName); + _vifDriver = (VifDriver) clazz.newInstance(); + _vifDriver.configure(params); + } catch (ClassNotFoundException e) { + throw new ConfigurationException("Unable to find class for libvirt.vif.driver " + e); + } catch (InstantiationException e) { + throw new ConfigurationException("Unable to instantiate class for libvirt.vif.driver " + e); + } catch (Exception e) { + throw new ConfigurationException("Failed to initialize libvirt.vif.driver " + e); + } + + return true; } - private Pair getPifs() { + private void getPifs() { /* get pifs from bridge */ String pubPif = null; String privPif = null; @@ -759,7 +788,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements + privPif + " | awk {'print $2'}"); } } - return new Pair(privPif, pubPif); + _pifs.put("private", privPif); + _pifs.put("public", pubPif); } private boolean checkNetwork(String networkName) { @@ -1201,9 +1231,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements nicTO.setBroadcastUri(BroadcastDomainType.Vlan.toUri(vlanId)); } - InterfaceDef nic = createVif(nicTO, InterfaceDef.nicModel.VIRTIO); Domain vm = getDomain(conn, vmName); - vm.attachDevice(nic.toString()); + vm.attachDevice(_vifDriver.plug(nicTO, "Other PV").toString()); } public Answer execute(IpAssocCommand cmd) { @@ -2091,25 +2120,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements try { Connect conn = LibvirtConnection.getConnection(); for (NicTO nic : nics) { - String vlanId = null; - if (nic.getBroadcastType() == BroadcastDomainType.Vlan) { - URI broadcastUri = nic.getBroadcastUri(); - vlanId = broadcastUri.getHost(); - } - if (nic.getType() == TrafficType.Guest) { - if (nic.getBroadcastType() == BroadcastDomainType.Vlan - && !vlanId.equalsIgnoreCase("untagged")) { - createVlanBr(vlanId, _pifs.first()); - } - } else if (nic.getType() == TrafficType.Control) { - /* Make sure the network is still there */ - createControlNetwork(); - } else if (nic.getType() == TrafficType.Public) { - if (nic.getBroadcastType() == BroadcastDomainType.Vlan - && !vlanId.equalsIgnoreCase("untagged")) { - createVlanBr(vlanId, _pifs.second()); - } - } + _vifDriver.plug(nic, null); } /* setup disks, e.g for iso */ @@ -2134,20 +2145,6 @@ public class LibvirtComputingResource extends ServerResourceBase implements } } - public void createVnet(String vnetId, String pif) - throws InternalErrorException { - final Script command = new Script(_modifyVlanPath, _timeout, s_logger); - command.add("-v", vnetId); - command.add("-p", pif); - command.add("-o", "add"); - - final String result = command.execute(); - if (result != null) { - throw new InternalErrorException("Failed to create vnet " + vnetId - + ": " + result); - } - } - private Answer execute(CheckHealthCommand cmd) { return new CheckHealthAnswer(cmd, true); } @@ -2335,6 +2332,11 @@ public class LibvirtComputingResource extends ServerResourceBase implements } } + List ifaces = getInterfaces(conn, vmName); + for(InterfaceDef iface: ifaces){ + _vifDriver.unplug(iface); + } + final String result2 = cleanupVnet(conn, cmd.getVnet()); if (result != null && result2 != null) { @@ -2640,14 +2642,22 @@ public class LibvirtComputingResource extends ServerResourceBase implements disk.defNetworkBasedDisk(physicalDisk.getPath().replace("rbd:", ""), pool.getSourceHost(), pool.getSourcePort(), pool.getAuthUserName(), pool.getUuid(), devId, diskBusType, diskProtocol.RBD); - } else if (volume.getType() == Volume.Type.DATADISK) { - disk.defFileBasedDisk(physicalDisk.getPath(), devId, DiskDef.diskBus.VIRTIO, DiskDef.diskFmtType.QCOW2); + } else if (pool.getType() == StoragePoolType.CLVM) { + disk.defBlockBasedDisk(physicalDisk.getPath(), devId, + diskBusType); + } else { + if (volume.getType() == Volume.Type.DATADISK) { + disk.defFileBasedDisk(physicalDisk.getPath(), devId, + DiskDef.diskBus.VIRTIO, + DiskDef.diskFmtType.QCOW2); } else { disk.defFileBasedDisk(physicalDisk.getPath(), devId, diskBusType, DiskDef.diskFmtType.QCOW2); } } + } + vm.getDevices().addDevice(disk); } @@ -2708,57 +2718,10 @@ public class LibvirtComputingResource extends ServerResourceBase implements patchSystemVm(bootArgs, datadiskPath, vmName); } - private String createVlanBr(String vlanId, String nic) - throws InternalErrorException { - String brName = setVnetBrName(vlanId); - createVnet(vlanId, nic); - return brName; - } - - private InterfaceDef createVif(NicTO nic, InterfaceDef.nicModel model) throws InternalErrorException, LibvirtException { - InterfaceDef intf = new InterfaceDef(); - - String vlanId = null; - if (nic.getBroadcastType() == BroadcastDomainType.Vlan) { - URI broadcastUri = nic.getBroadcastUri(); - vlanId = broadcastUri.getHost(); - } - - if (nic.getType() == TrafficType.Guest) { - if (nic.getBroadcastType() == BroadcastDomainType.Vlan - && !vlanId.equalsIgnoreCase("untagged")) { - String brName = createVlanBr(vlanId, _pifs.first()); - intf.defBridgeNet(brName, null, nic.getMac(), model); - } else { - intf.defBridgeNet(_guestBridgeName, null, nic.getMac(), model); - } - } else if (nic.getType() == TrafficType.Control) { - /* Make sure the network is still there */ - createControlNetwork(); - intf.defBridgeNet(_linkLocalBridgeName, null, nic.getMac(), model); - } else if (nic.getType() == TrafficType.Public) { - if (nic.getBroadcastType() == BroadcastDomainType.Vlan - && !vlanId.equalsIgnoreCase("untagged")) { - String brName = createVlanBr(vlanId, _pifs.second()); - intf.defBridgeNet(brName, null, nic.getMac(), model); - } else { - intf.defBridgeNet(_publicBridgeName, null, nic.getMac(), model); - } - } else if (nic.getType() == TrafficType.Management) { - intf.defBridgeNet(_privBridgeName, null, nic.getMac(), model); - } else if (nic.getType() == TrafficType.Storage) { - String storageBrName = nic.getName() == null ? _privBridgeName - : nic.getName(); - intf.defBridgeNet(storageBrName, null, nic.getMac(), model); - } - - return intf; - } - private void createVif(LibvirtVMDef vm, NicTO nic) throws InternalErrorException, LibvirtException { vm.getDevices().addDevice( - createVif(nic, getGuestNicModel(vm.getGuestOSType()))); + _vifDriver.plug(nic, vm.getGuestOSType()).toString()); } protected CheckSshAnswer execute(CheckSshCommand cmd) { @@ -3607,7 +3570,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements } } - private boolean isGuestPVEnabled(String guestOS) { + boolean isGuestPVEnabled(String guestOS) { if (guestOS == null) { return false; } @@ -3659,10 +3622,6 @@ public class LibvirtComputingResource extends ServerResourceBase implements } } - private String setVnetBrName(String vnetId) { - return "cloudVirBr" + vnetId; - } - private String getVnetIdFromBrName(String vnetBrName) { return vnetBrName.replaceAll("cloudVirBr", ""); } @@ -4067,10 +4026,6 @@ public class LibvirtComputingResource extends ServerResourceBase implements return new Pair(rx, tx); } - private void createControlNetwork() throws LibvirtException { - _virtRouterResource.createControlNetwork(_linkLocalBridgeName); - } - private Answer execute(NetworkRulesSystemVmCommand cmd) { boolean success = false; Connect conn; diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/VifDriver.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/VifDriver.java new file mode 100644 index 00000000000..c3083b297dd --- /dev/null +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/VifDriver.java @@ -0,0 +1,39 @@ +/* + * 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. + */ + +package com.cloud.hypervisor.kvm.resource; + +import com.cloud.agent.api.to.NicTO; +import com.cloud.exception.InternalErrorException; +import org.libvirt.LibvirtException; + +import javax.naming.ConfigurationException; +import java.util.Map; + +public interface VifDriver { + + public void configure(Map params) + throws ConfigurationException; + + public LibvirtVMDef.InterfaceDef plug(NicTO nic, String guestOsType) + throws InternalErrorException, LibvirtException; + + public void unplug(LibvirtVMDef.InterfaceDef iface); + +} diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/VifDriverBase.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/VifDriverBase.java new file mode 100644 index 00000000000..0694e620b1b --- /dev/null +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/VifDriverBase.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.cloud.hypervisor.kvm.resource; + +import com.cloud.agent.api.to.NicTO; +import com.cloud.exception.InternalErrorException; +import org.libvirt.LibvirtException; + +import javax.naming.ConfigurationException; +import java.util.Map; + +public abstract class VifDriverBase implements VifDriver { + + protected LibvirtComputingResource _libvirtComputingResource; + protected Map _pifs; + protected Map _bridges; + + @Override + public void configure(Map params) + throws ConfigurationException { + _libvirtComputingResource = (LibvirtComputingResource) params.get("libvirt.computing.resource"); + _bridges = (Map) params.get("libvirt.host.bridges"); + _pifs = (Map) params.get("libvirt.host.pifs"); + } + + public abstract LibvirtVMDef.InterfaceDef plug(NicTO nic, String guestOsType) throws InternalErrorException, + LibvirtException; + + public abstract void unplug(LibvirtVMDef.InterfaceDef iface); + + protected LibvirtVMDef.InterfaceDef.nicModel getGuestNicModel(String guestOSType) { + if (_libvirtComputingResource.isGuestPVEnabled(guestOSType)) { + return LibvirtVMDef.InterfaceDef.nicModel.VIRTIO; + } else { + return LibvirtVMDef.InterfaceDef.nicModel.E1000; + } + } +} diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java index 491f7724ea3..751da837cf4 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java @@ -78,6 +78,10 @@ public class KVMStoragePoolManager { if (destPool.getType() == StoragePoolType.RBD) { return this._storageAdaptor.createDiskFromTemplate(template, name, KVMPhysicalDisk.PhysicalDiskFormat.RAW, template.getSize(), destPool); + } else if (destPool.getType() == StoragePoolType.CLVM) { + return this._storageAdaptor.createDiskFromTemplate(template, name, + KVMPhysicalDisk.PhysicalDiskFormat.RAW, template.getSize(), + destPool); } else { return this._storageAdaptor.createDiskFromTemplate(template, name, KVMPhysicalDisk.PhysicalDiskFormat.QCOW2, diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java index 85c64ba06ac..9f62ee8514d 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java @@ -462,6 +462,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { type = StoragePoolType.Filesystem; } else if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.RBD) { type = StoragePoolType.RBD; + } else if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.LOGICAL) { + type = StoragePoolType.CLVM; } LibvirtStoragePool pool = new LibvirtStoragePool(uuid, storage.getName(), @@ -551,6 +553,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { sp = CreateSharedStoragePool(conn, name, host, path); } else if (type == StoragePoolType.RBD) { sp = createRBDStoragePool(conn, name, host, port, userInfo, path); + } else if (type == StoragePoolType.CLVM) { + sp = createCLVMStoragePool(conn, name, host, path); } } @@ -685,9 +689,15 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { if (destPool.getType() != StoragePoolType.RBD) { disk = destPool.createPhysicalDisk(newUuid, format, template.getVirtualSize()); - Script.runSimpleBashScript("qemu-img create -f " - + template.getFormat() + " -b " + template.getPath() + " " - + disk.getPath()); + if (format == PhysicalDiskFormat.QCOW2) { + Script.runSimpleBashScript("qemu-img create -f " + + template.getFormat() + " -b " + template.getPath() + " " + + disk.getPath()); + } else if (format == PhysicalDiskFormat.RAW) { + Script.runSimpleBashScript("qemu-img convert -f " + + template.getFormat() + " -O raw " + template.getPath() + + " " + disk.getPath()); + } } else { disk = new KVMPhysicalDisk(destPool.getSourceDir() + "/" + newUuid, newUuid, destPool); disk.setFormat(format); diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java index bc428e1273c..32f8ce99d9c 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStoragePool.java @@ -88,7 +88,11 @@ public class LibvirtStoragePool implements KVMStoragePool { @Override public PhysicalDiskFormat getDefaultFormat() { - return PhysicalDiskFormat.QCOW2; + if (getStoragePoolType() == StoragePoolType.CLVM) { + return PhysicalDiskFormat.RAW; + } else { + return PhysicalDiskFormat.QCOW2; + } } @Override diff --git a/scripts/storage/qcow2/managesnapshot.sh b/scripts/storage/qcow2/managesnapshot.sh index a305ba83a98..29b7081290d 100755 --- a/scripts/storage/qcow2/managesnapshot.sh +++ b/scripts/storage/qcow2/managesnapshot.sh @@ -6,9 +6,9 @@ # 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 @@ -16,16 +16,16 @@ # specific language governing permissions and limitations # under the License. - + # $Id: managesnapshot.sh 11601 2010-08-11 17:26:15Z kris $ $HeadURL: svn://svn.lab.vmops.com/repos/branches/2.1.refactor/java/scripts/storage/qcow2/managesnapshot.sh $ -# managesnapshot.sh -- manage snapshots for a single disk (create, destroy, rollback) +# managesnapshot.sh -- manage snapshots for a single disk (create, destroy, rollback, backup) usage() { printf "Usage: %s: -c -n \n" $(basename $0) >&2 printf "Usage: %s: -d -n \n" $(basename $0) >&2 printf "Usage: %s: -r -n \n" $(basename $0) >&2 - printf "Usage: %s: -b -n -p \n" $(basename $0) >&2 + printf "Usage: %s: -b -n -p -t \n" $(basename $0) >&2 exit 2 } @@ -40,21 +40,69 @@ then fi fi +is_lv() { + # Must be a block device + if [ -b "${1}" ]; then + # But not a volume group or physical volume + lvm vgs "${1}" > /dev/null 2>&1 && return 1 + # And a logical volume + lvm lvs "${1}" > /dev/null 2>&1 && return 0 + fi + return 1 +} + +get_vg() { + lvm lvs --noheadings --unbuffered --separator=/ "${1}" | cut -d '/' -f 2 +} + +get_lv() { + lvm lvs --noheadings --unbuffered --separator=/ "${1}" | cut -d '/' -f 1 +} + +double_hyphens() { + echo ${1} | sed -e "s/-/--/g" +} + create_snapshot() { local disk=$1 local snapshotname="$2" local failed=0 - if [ -f "${disk}" ]; then + if [ ${dmsnapshot} = "yes" ] && is_lv ${disk}; then + local lv=`get_lv ${disk}` + local vg=`get_vg ${disk}` + local lv_dm=`double_hyphens ${lv}` + local vg_dm=`double_hyphens ${vg}` + local lvdevice=/dev/mapper/${vg_dm}-${lv_dm} + local lv_bytes=`blockdev --getsize64 ${lvdevice}` + local lv_sectors=`blockdev --getsz ${lvdevice}` + + lvm lvcreate --size ${lv_bytes}b --name "${snapshotname}-cow" ${vg} >&2 || return 2 + dmsetup suspend ${vg_dm}-${lv_dm} >&2 + if dmsetup info -c --noheadings -o name ${vg_dm}-${lv_dm}-real > /dev/null 2>&1; then + echo "0 ${lv_sectors} snapshot ${lvdevice}-real /dev/mapper/${vg_dm}-${snapshotname}--cow p 64" | \ + dmsetup create "${vg_dm}-${snapshotname}" >&2 || ( destroy_snapshot ${disk} "${snapshotname}"; return 2 ) + dmsetup resume "${vg_dm}-${snapshotname}" >&2 || ( destroy_snapshot ${disk} "${snapshotname}"; return 2 ) + else + dmsetup table ${vg_dm}-${lv_dm} | dmsetup create ${vg_dm}-${lv_dm}-real >&2 || ( destroy_snapshot ${disk} "${snapshotname}"; return 2 ) + dmsetup resume ${vg_dm}-${lv_dm}-real >&2 || ( destroy_snapshot ${disk} "${snapshotname}"; return 2 ) + echo "0 ${lv_sectors} snapshot ${lvdevice}-real /dev/mapper/${vg_dm}-${snapshotname}--cow p 64" | \ + dmsetup create "${vg_dm}-${snapshotname}" >&2 || ( destroy_snapshot ${disk} "${snapshotname}"; return 2 ) + echo "0 ${lv_sectors} snapshot-origin ${lvdevice}-real" | \ + dmsetup load ${vg_dm}-${lv_dm} >&2 || ( destroy_snapshot ${disk} "${snapshotname}"; return 2 ) + dmsetup resume "${vg_dm}-${snapshotname}" >&2 || ( destroy_snapshot ${disk} "${snapshotname}"; return 2 ) + fi + dmsetup resume "${vg_dm}-${lv_dm}" >&2 + elif [ -f "${disk}" ]; then $qemu_img snapshot -c "$snapshotname" $disk - + if [ $? -gt 0 ] then failed=2 printf "***Failed to create snapshot $snapshotname for path $disk\n" >&2 $qemu_img snapshot -d "$snapshotname" $disk - + if [ $? -gt 0 ] then printf "***Failed to delete snapshot $snapshotname for path $disk\n" >&2 @@ -65,26 +113,46 @@ create_snapshot() { printf "***Failed to create snapshot $snapshotname, undefined type $disk\n" >&2 fi - return $failed + return $failed } destroy_snapshot() { local disk=$1 - local snapshotname=$2 + local snapshotname="$2" local failed=0 - if [ -f $disk ]; then + if is_lv ${disk}; then + local lv=`get_lv ${disk}` + local vg=`get_vg ${disk}` + local lv_dm=`double_hyphens ${lv}` + local vg_dm=`double_hyphens ${vg}` + if [ -e /dev/mapper/${vg_dm}-${lv_dm}-real ]; then + local dm_refcount=`dmsetup info -c --noheadings -o open ${vg_dm}-${lv_dm}-real` + if [ ${dm_refcount} -le 2 ]; then + dmsetup suspend ${vg_dm}-${lv_dm} >&2 + dmsetup table ${vg_dm}-${lv_dm}-real | dmsetup load ${vg_dm}-${lv_dm} >&2 + dmsetup resume ${vg_dm}-${lv_dm} + dmsetup remove "${vg_dm}-${snapshotname}" + dmsetup remove ${vg_dm}-${lv_dm}-real + else + dmsetup remove "${vg_dm}-${snapshotname}" + fi + else + dmsetup remove "${vg_dm}-${snapshotname}" + fi + lvm lvremove -f "${vg}/${snapshotname}-cow" + elif [ -f $disk ]; then $qemu_img snapshot -d "$snapshotname" $disk if [ $? -gt 0 ] then failed=2 printf "Failed to delete snapshot $snapshotname for path $disk\n" >&2 - fi + fi else failed=3 printf "***Failed to delete snapshot $snapshotname, undefined type $disk\n" >&2 fi - return $failed + return $failed } rollback_snapshot() { @@ -93,18 +161,19 @@ rollback_snapshot() { local failed=0 $qemu_img snapshot -a $snapshotname $disk - + if [ $? -gt 0 ] then printf "***Failed to apply snapshot $snapshotname for path $disk\n" >&2 failed=1 fi - - return $failed + + return $failed } + backup_snapshot() { local disk=$1 - local snapshotname=$2 + local snapshotname="$2" local destPath=$3 local destName=$4 @@ -113,24 +182,37 @@ backup_snapshot() { mkdir -p $destPath >& /dev/null if [ $? -gt 0 ] then - printf "Failed to create $destPath" >&2 + printf "Failed to create $destPath\n" >&2 return 3 fi fi - if [ -f ${disk} ]; then - # Does the snapshot exist? + if [ ${dmsnapshot} = "yes" ] && is_lv ${disk}; then + local vg=`get_vg ${disk}` + local vg_dm=`double_hyphens ${vg}` + local scriptdir=`dirname ${0}` + + if ! dmsetup info -c --noheadings -o name ${vg_dm}-${snapshotname} > /dev/null 2>&1; then + printf "Disk ${disk} has no snapshot called ${snapshotname}.\n" >&2 + return 1 + fi + + ${qemu_img} convert -f raw -O qcow2 "/dev/mapper/${vg_dm}-${snapshotname}" "${destPath}/${destName}" || \ + ( printf "${qemu_img} failed to create backup of snapshot ${snapshotname} for disk ${disk} to ${destPath}.\n" >&2; return 2 ) + + elif [ -f ${disk} ]; then + # Does the snapshot exist? $qemu_img snapshot -l $disk|grep -w "$snapshotname" >& /dev/null if [ $? -gt 0 ] then - printf "there is no $snapshotname on disk $disk" >&2 + printf "there is no $snapshotname on disk $disk\n" >&2 return 1 fi $qemu_img convert -f qcow2 -O qcow2 -s $snapshotname $disk $destPath/$destName >& /dev/null if [ $? -gt 0 ] then - printf "Failed to backup $snapshotname for disk $disk to $destPath" >&2 + printf "Failed to backup $snapshotname for disk $disk to $destPath\n" >&2 return 2 fi else @@ -150,6 +232,8 @@ pathval= snapshot= tmplName= deleteDir= +dmsnapshot=no +dmrollback=no while getopts 'c:d:r:n:b:p:t:f' OPTION do @@ -180,6 +264,13 @@ do esac done +if modprobe dm-snapshot; then + dmsnapshot=yes + dmsetup targets | grep -q "^snapshot-merge" && dmrollback=yes +fi + +[ -z "${snapshot}" ] && usage + [ -b "$pathval" ] && snapshot=`echo "${snapshot}" | md5sum -t | awk '{ print $1 }'` if [ "$cflag" == "1" ] @@ -192,6 +283,7 @@ then exit $? elif [ "$bflag" == "1" ] then + [ -z "${destPath}" -o -z "${tmplName}" ] && usage backup_snapshot $pathval $snapshot $destPath $tmplName exit $? elif [ "$rflag" == "1" ] diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 0e9fac77bb4..eb9f9d5cec5 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1323,6 +1323,8 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag pool = new StoragePoolVO(StoragePoolType.Filesystem, "localhost", 0, hostPath); } else if (scheme.equalsIgnoreCase("sharedMountPoint")) { pool = new StoragePoolVO(StoragePoolType.SharedMountPoint, storageHost, 0, hostPath); + } else if (scheme.equalsIgnoreCase("clvm")) { + pool = new StoragePoolVO(StoragePoolType.CLVM, storageHost, 0, hostPath.replaceFirst("/", "")); } else if (scheme.equalsIgnoreCase("rbd")) { if (port == -1) { port = 6789; @@ -1626,7 +1628,7 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag s_logger.debug("creating pool " + pool.getName() + " on host " + hostId); if (pool.getPoolType() != StoragePoolType.NetworkFilesystem && pool.getPoolType() != StoragePoolType.Filesystem && pool.getPoolType() != StoragePoolType.IscsiLUN && pool.getPoolType() != StoragePoolType.Iscsi && pool.getPoolType() != StoragePoolType.VMFS && pool.getPoolType() != StoragePoolType.SharedMountPoint - && pool.getPoolType() != StoragePoolType.PreSetup && pool.getPoolType() != StoragePoolType.OCFS2 && pool.getPoolType() != StoragePoolType.RBD) { + && pool.getPoolType() != StoragePoolType.PreSetup && pool.getPoolType() != StoragePoolType.OCFS2 && pool.getPoolType() != StoragePoolType.RBD && pool.getPoolType() != StoragePoolType.CLVM) { s_logger.warn(" Doesn't support storage pool type " + pool.getPoolType()); return false; } diff --git a/ui/scripts/system.js b/ui/scripts/system.js index 8864f0461b2..015f491eafb 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -1337,8 +1337,14 @@ guestGateway: { label: 'label.guest.gateway' }, guestNetmask: { label: 'label.guest.netmask' }, - guestStartIp: { label: 'label.guest.start.ip' }, - guestEndIp: { label: 'label.guest.end.ip' }, + guestStartIp: { + label: 'label.guest.start.ip', + validation: { required: true } + }, + guestEndIp: { + label: 'label.guest.end.ip', + validation: { required: true } + }, networkdomain: { label: 'label.network.domain' } } }, @@ -8065,6 +8071,7 @@ items.push({id: "nfs", description: "nfs"}); items.push({id: "SharedMountPoint", description: "SharedMountPoint"}); items.push({id: "rbd", description: "RBD"}); + items.push({id: "clvm", description: "CLVM"}); args.response.success({data: items}); } else if(selectedClusterObj.hypervisortype == "XenServer") { diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js index 0ad0cc4b381..c3a2b4e013d 100644 --- a/ui/scripts/zoneWizard.js +++ b/ui/scripts/zoneWizard.js @@ -967,6 +967,7 @@ var items = []; items.push({id: "nfs", description: "nfs"}); items.push({id: "SharedMountPoint", description: "SharedMountPoint"}); + items.push({id: "clvm", description: "CLVM"}); args.response.success({data: items}); } else if(selectedClusterObj.hypervisortype == "XenServer") {