Skip to main content
CloudFerry
==========

[![Build Status](https://travis-ci.org/Mirantis/CloudFerry.svg?branch=master)](https://travis-ci.org/Mirantis/CloudFerry)
[![Coverage Status](https://coveralls.io/repos/github/Mirantis/CloudFerry/badge.svg?branch=master)](https://coveralls.io/github/Mirantis/CloudFerry?branch=master)

# Overview

CloudFerry is a tool for resources and workloads migration between two
OpenStack clouds.


# Supported OpenStack Releases

- Grizzly
- Icehouse
- Juno


# Objects Supported for Migration

## Keystone

- Tenants
- User roles

## Neutron

- Networks
* Private
* Public
* Shared
- Subnets
- Ports
- Floating IPs
- Security groups
- Routers
- LBaaS objects
- Quotas

## Glance

- Images

## Cinder

- Volumes
- Quotas

## Nova

- VMs
- VM's ephemeral storage
- Flavors
- User quotas
- Tenant quotas
- Key pairs

# User documentation

End-user documentation is available in `docs` folder, to compile in HTML run:

```
sphinx-build docs/ sphinx-build
```

# Requirements

- Connection to source and destination clouds through external (public)
network from host with CloudFerry.
- Valid private ssh-key for both clouds which will be using by CloudFerry for
data transferring.
- Admin keystone access (typically admin access point lives on 35357 port).
- sudo/root access on compute and controller nodes.
- Openstack MySQL DB write access.
- Credentials of global cloud admin for both clouds.
- All the Python requirements are listed in requirements.txt.


# Installation

CloudFerry can be installed as docker container or it can be installed as a
python package by pip.

## Installation with pip

1. Make sure you have non-python packages installed in your system
(following for Ubuntu):
```
sudo apt-get install libffi-dev libssl-dev libxml2-dev \
libxslt1-dev python-pip python-dev git -y
```

2. Install virtualenv version 15.0.3
```
sudo pip install virtualenv==15.0.3
```

3. Install cloudferry with pip:
```
virtualenv .venv
source .venv/bin/activate
pip install git+git://github.com/MirantisWorkloadMobility/CloudFerry.git
```

## Installation with docker

### Building the docker container
```
docker build --build-arg cf_commit_or_branch=origin/master -t <username>/cf-in-docker .
```

### Start container
```
docker run -it <username>/cf-in-docker
```

### Saving and loading the container files
```
docker save --output=/path/to/save/CloudFerry.img <username>/cf-in-docker
docker load --input=/path/to/save/CloudFerry.img
```

# Usage

## Overview

CloudFerry tool is used by running python `cloudferry` executable from the
command line.

All available commands can be viewed with:
```
# see list of available commands
cloudferry list
```

## Configuration

Sample config can be generated with
```
oslo-config-generator --namespace cloudferry
```

Configuration process is quite complex and mostly manual try-and-see-if-works
process.

## Whole cloud migration

Make sure you have `migrate_whole_cloud` option in `migrate` section of config
is set to `True`.

Use `migrate` command with config file specified:

```
cloudferry migrate <config file>
```

## Migrating specific instances

In order to migrate specific VMs, one should use filters. This is done through
modifying filters file (`configs/filter.yaml` by default).

Edit `configs/filter.yaml`:

```
instances:
id:
- 7c53a6ab-0149-4232-80b3-b2d7ce02995a
- f0fea76a-0a7d-4c25-ab9e-f048dbc7365d
```

Run migration as usual:
```
cloudferry migrate configuration.ini --debug
```

## Playground

See QUICKSTART.md for the quickest way of running your first successful migration.

Metadata

Release files for CloudFerry 1.55.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for CloudFerry 1.55.2
File Size Uploaded
CloudFerry-1.55.2.tar.gz 22.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for CloudFerry 1.55.2
File Interpreter ABI Platform
CloudFerry-1.55.2-py2-none-any.whl Python 2 none any Details

Total release size: 45.4 MB

Release files / CloudFerry-1.55.2.tar.gz

Download URL CloudFerry-1.55.2.tar.gz
Size 22.9 MB
Tags Source
SHA-256 checksum
How to use checksums
73f2b6409ce008f85031c7b3d19ecacdd311c6567b3041e36dd3925eb56454a2
BLAKE2b-256 checksum
How to use checksums
b083f2d258be2ce6e1ebd6c2ca8a4b4c57fb3645fae3093670870e0d1a82ae5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / CloudFerry-1.55.2-py2-none-any.whl

Download URL CloudFerry-1.55.2-py2-none-any.whl
Size 22.5 MB
Tags Python 2
SHA-256 checksum
How to use checksums
dd96ecc923e817e53cc3b9985231e2e06c0a3057f27e7eb7a2c3fa15bbadc2e1
BLAKE2b-256 checksum
How to use checksums
b6aacdd0b05df829f94995da0c1a0acc66dbbd03f8ffb4932667b255ebf12966
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.55.3

This release

1.55.2 This release

2 release files

1.54.0

1 release file

1.53.0

1 release file

1.52.0

1 release file

1.51.0

1 release file

1.50.0

1 release file

1.49.0

1 release file

1.48.0

1 release file

1.47.0

1 release file

1.46.0

1 release file

1.45.0

1 release file

1.44.0

1 release file

1.42.0

1 release file

1.41.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page