General API information

The information in this section is relevant to all operations of the API. For details about specific operations, see the API reference.

The Rackspace Cloud Backup API is implemented using a RESTful web service interface. Like other Rackspace Cloud services, this service shares a common token-based authentication system that allows seamless access between products and services.

📘

Note :All requests to authenticate against and operate the service are performed using SSL over HTTP (HTTPS) on TCP port 443. For authentication instructions, see Authenticate to the Rackspace Cloud.


Service access endpoints

The Rackspace Cloud Backup API service is a regionalized service. It allows the caller to select the region into which a load balancer is provisioned.

The following table lists the Rackspace Cloud Backup endpoints that are available for each region.

👍

Tip :To help you decide which regionalized endpoint to use, read about special considerations for choosing a region.

Regionalized service endpoints

RegionEndpoint
Dallas/Ft. Worth (DFW)https://dfw.backup.api.rackspacecloud.com/v1.0/123456/
Chicago (ORD)https://ord.backup.api.rackspacecloud.com/v1.0/123456/
London (LON)https://lon.backup.api.rackspacecloud.com/v1.0/123456/
Hong Kong (HKG)https://hkg.backup.api.rackspacecloud.com/v1.0/123456/
Northern Virginia (IAD)https://iad.backup.api.rackspacecloud.com/v1.0/123456/
Sydney (SYD)https://syd.backup.api.rackspacecloud.com/v1.0/123456/

Replace the sample account ID number (which is also called the tenant ID), 123456, with your actual account number that is returned as part of the authentication response. The account number is located after the final slash (/) in the publicURL field.

The service catalog returned in the authentication response specifies the correct service access endpoint for your account to use for accessing Rackspace Cloud Backup. Use the service type (rax:backup) to locate the correct endpoint in the service catalog. For an example of the service catalog, see authentication response example.

📘

Note :The Cloud Backup API runs with or without the specification of the account ID number in the endpoint. However, the examples in this guide include the account number in the request URIs.


Service version

The Rackspace Cloud Backup version defines the contract and build information for the API.

Contract version

The contract version denotes the data model and behavior that the API supports. The contract version is included in all request URIs. Different contract versions of the API might be available at any given time and are not guaranteed to be compatible with one another.

Example request URI

https://dfw.backup.api.rackspacecloud.com/v1.0/1234/

List API version

You can list which API versions are available for your account by using the list versions request.

Issue a GET request to the root endpoint for a service. In the request, truncate the version and everything to the right of it.

Example list versions request

GET HTTP/1.1
Host: https://dfw.backup.api.rackspacecloud.com/

This operation does not require a request body.

Normal Response Codes: 200, 203

Error Response Codes: 400, 413, 500, 503


Request and response types

The Rackspace Cloud Backup API supports only the JSON data serialization format.

The request format is specified using the Content-Type: application/json header and is required for operations that have a request body.

You can specify the response format in requests by using the Accept header or by adding a .json extension to the request URI. If no response format is specified, JSON is the default.

Response formats

FormatAccept headerQuery extensionDefault
JSONapplication/json.jsonYes

Limits

All accounts, by default, have a preconfigured set of thresholds, or limits, to manage capacity and prevent abuse of the system.

The following table lists the limits for Cloud Backup.

Table: Limits for Cloud Backup

NameDescription
Maximum number of backup configurations per agentThe number of backup configurations per agent is limited only by the maximum JSON document size for the agent configuration. (The agent configuration contains all of the configuration information specific to an agent.) Currently, the maximum JSON document size is 1 MB for the total document.
Maximum number of exclusions and inclusions per backup configurationThe maximum number of exclusions and inclusions per backup configuration is limited only by the maximum JSON document size for the agent configuration. (The agent configuration contains all of the configuration information specific to an agent.) Currently, the maximum JSON document size is 1 MB for the total document.
Maximum length of file paths in the configurationThe maximum length of file paths in the configuration is limited first by the maximum JSON document size of the agent configuration (see the preceding limit) and then by the operating system (OS) limitations. See the documentation for your OS for the exact maximum size of file paths on your OS.
Maximum backup upload speedsThe maximum upload speed of a backup is currently 2 MB per second but that speed depends on multiple factors including Cloud Files server load, network bandwidth, number of CPUs, noisy neighbors, duplicate blocks, and similar items. These factors can reduce the upload speed of a backup by varying amounts. However, duplicate or existing blocks actually increase the speed because uploads are not necessary for those blocks.
CPU usage limitsDuring an operation like a backup or restore, CPU usage limits are 95 percent by default.
Simultaneous uploadsSimultaneous uploads are based on available CPUs. If a server has one or two CPUs, the agent uses one CPU for its work. If a server has three or four CPUs, the agent uses two CPUs. If a server has five or six CPUs, the agent uses three CPUs. If the server has more than six CPUs, the agent uses no more than four CPUs.
Disk space limits for the cache driveThe disk space of the cache drive is where the agent stores log and database files, as well as temporary files. Currently, if this drive has less than 100 MB free space, Cloud Backup throttles logging and posts a message to the logs. Currently, the total size of the rollover logs is set to 10 files at 500 MB by default, but you can edit the log4cxx.xml file to change this value on a per-machine basis.
Really Simple Events (RSE) throttling levelsRSE communicates with the agent. RSE throttling levels control the traffic to RSE and are defined based on the state of the agent: Idle—once every 30 seconds, Active—once every 2 seconds, and Realtime— continuous.


Response codes

Cloud Backup returns an HTTP code that denotes the type of response.

  • Successful response codes are returned only if all configured providers were successful in processing the request.
  • When an error occurs, the Rackspace Cloud Backup Service returns a fault object containing an HTTP error response code that denotes the type of error. In the body of the response, the system returns additional information about the fault.

This API uses standard HTTP 1.1 response codes.

The following table lists possible responses with their associated codes and descriptions.

Table: Response codes for Cloud Backup

ResponseAssociated response codeDescription
OK200The request has succeeded.
Created201The request has been fulfilled and a resource was created.
Accepted202The request has been accepted for processing.
No Content204The request has been fulfilled but does not return a representation (that is, the response is empty).
Bad Request400There was one or more errors in the user request.
Unauthorized401The supplied token is not authorized to access the resources, either it’s expired or invalid.
Forbidden403Access to the requested resource was denied.
Not Found404A requested resource was not found.
Instance Fault500This is a generic server error and the message contains the reason for the error. This error could wrap several error messages and is a catch all.
Not Implemented501The requested method or resource is not implemented.
Service Unavailable503The Rackspace Cloud Backup Service is not

The symptoms and solutions for some frequently encountered issues follow.

Backups get corrupted

  • Does your server have a backup agent and did you clone it to create a new backup system? This means that two backup agents exist with the same credentials writing to the same vault.
  • Solution: Ensure the agent on the cloned backup server is re-registered before any backups are run.

Backups get network error

  • Solution: Make sure that your backup server has a connection to both service net and public net. If it is on an isolated network, the backup agent is able to function properly.

Backups sometimes fail

  • This is most commonly caused by either a failure to communicate with Cloud Files, running out of disk space, or a failure to communicate with Cloud Backup.
  • Sometimes the agent might fail to backup a particular file because of a permissions error. Either the file is in use when the agent attempts to save it or the file in question cannot be read by the agent. Consider permissions when hunting for the root cause of a backup failure.
  • Solution: Make sure that you’re running the latest agent release. After that, attempt to determine the cause of the error, and try the backup or restore again if it is an intermittent error.

Backup or Restore is slow

  • If your backup or restore is encrypted, it can be especially slow. Encryption comes at a cost.
  • If your system uses Cloud Block Storage as the storage medium, this is known to introduce some slowdowns. Consider whether the benefits of using Cloud Block Storage outweigh the need for faster backups/restores.
  • Solution: Make sure that you’re running the latest agent release. After that, attempt to determine the cause of the error, and try the backup or restore again if it is an intermittent error. We’re always working on making backup more robust.

Role-based access control (RBAC)

Role-based access control (RBAC) restricts access to the capabilities of Rackspace Cloud services, including the Rackspace Cloud Backup API, to authorized users only. RBAC enables Rackspace Cloud customers to specify users have access to which Rackspace Cloud Backup API service capabilities, based on roles defined by Rackspace. The permissions to perform certain operations in Rackspace Cloud Backup API (create, read, update, delete) are assigned to specific roles. The account owner user assigns these roles, either global (multiproduct) or product-specific (for example, Rackspace Cloud Backup), to account users.

Assigning roles to account users

The account owner (identity:user-admin) can create account users on the account and then assign roles to those users. The roles grant the account users specific permissions for accessing the capabilities of the Rackspace Cloud Backup service. Each account has only one account owner, and that role is assigned by default to any Rackspace Cloud account when the account is created.

See the Identity API guide for information about how to perform the following tasks:

📘

Note :The account owner (identity:user-admin) role cannot hold any additional roles because it already has full access to all capabilities.

Roles available for Rackspace Cloud Backup

The following table describes the roles that can be used to access the Rackspace Cloud Backup API.

Role nameRole permissions
cloudbackup:adminThis role provides Create, Read, Update, and Delete permissions in Rackspace Cloud Backup, where access is granted.
cloudbackup:creatorThis role provides Create, Read, and Update permissions in Rackspace Cloud Backup, where access is granted.
cloudbackup:observerThis role provides Read permission in Rackspace Cloud Backup, where access is granted.

Multiproduct global roles and permissions

Additionally, two multiproduct roles apply to all products. Users with multiproduct roles inherit access to products when those products become RBAC-enabled. The following table describes these roles and their permissions.

Multiproduct roles and permissions

Role nameRole permissions
adminThis role provides Create, Read, Update, and Delete permissions in all products, where access is granted.
observerThis role provides Read permission in all products, where access is granted.

Resolving conflicts between RBAC multiproduct and product-specific roles

The account owner can set roles for both multiproduct and Rackspace Cloud Backup scope, and it is important to understand how any potential conflicts between these roles are resolved. When two roles appear to conflict, the role that provides the more extensive permissions takes precedence. Therefore, admin roles take precedence over observer and creator roles, because admin roles provide more permissions.

The following table shows two examples of how potential conflicts between user roles in the Control Panel are resolved.

Permission configurationControl Panel permission viewControl Panel admin capabilities
User is assigned the following roles: multiproduct observer and Rackspace Cloud Backup adminAppears that the user has only the multiproduct observer roleUser can perform admin functions for Rackspace Cloud Backup only. The user has the observer role for the rest of the products.
User is assigned to the following roles: multiproduct admin and Rackspace Cloud Backup observerAppears that the user has only the multiprodcut admin roleUser can perform admin functions for all of the products. The Rackspace Cloud Backup observer role is ignored.

RBAC permissions cross-reference to Rackspace Cloud Backup API operations

API operations for Rackspace Cloud Backup may or may not be available to all roles. To see which operations are permitted to invoke which calls, review the Permissions Matrix for Role-Based Access Control (RBAC).