Code Monkey home page Code Monkey logo

cloudferry's Introduction

CloudFerry

CloudFerry is a tool for resources and workloads migration between OpenStack clouds. First of all CloudFerry tool migrates cloud resources as tenants, users (preserving their passwords or generating new ones), roles, flavors and after that, it transfers virtual workloads as instances with their own data (instance image, root disk data, ephemeral drives, attached volumes) and network settings.

CloudFerry was tested on Openstack releases from Grizzly to Ice-House. It supports migration process for clouds using any iSCSI-like mechanism for volumes or Ceph as a backend for Cinder&Glance services, including case with Nova - Ephemeral volumes in Ceph. Supported cases are listed below. Tool supports any iscsi-like mechanism for Cinder backend as for Cinder service with LVM backend:

    1. Source - Cinder (LVM), Glance (file) --> Destination - Cinder (LVM), Glance (file)
    1. Source - Cinder & Glance (Ceph) --> Destination - Cinder (LVM), Glance (file)
    1. Source - Cinder & Glance (Ceph) and Nova ephemeral volumes (Ceph) --> Destination - Cinder (LVM), Glance (file)
    1. Source - Cinder (LVM), Glance (file) --> Destination - Cinder & Glance (Ceph)
    1. Source - Cinder (LVM), Glance (file) --> Destination - Cinder & Glance (Ceph) and Nova ephemeral volumes (Ceph)
    1. Source - Cinder & Glance (Ceph) --> Destination - Cinder & Glance (Ceph)
    1. Source - Cinder & Glance (Ceph) and Nova ephemeral volumes (Ceph) --> Destination - Cinder & Glance (Ceph) and Nova ephemeral volumes (Ceph)

Also CloudFerry can migrate instances, which were booted from bootable volumes with the same storage backends as in previous listed cases.

CloudFerry uses External network as a transfer network, so you need to have a connectivity from host where you want to execute the tool (transition zone) to both clouds through external network. CloudFerry can migrate instances from clouds with nova-network or quantum/neutron to new cloud with neutron network service. Also the tool can transfer instances in to the fixed networks with the same CIDR (they will be found automatically) or list new networks for instances in config.yaml file in overwrite section.

Cloudferry also allow keep ip addresses of instances and transfer security groups (with rules) with automatic detection of network manager on source and destination clouds (neutron, quantum or nova).

All functions are configured in yaml file, you can see the examples in configs directory. At the moment config file does not support default values so you need to set up all settings manually. Please note, that if any valuable setting appeared to be missing in config file, process will crash. Default settings is planned to implement in nearest future.

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.
  • Credentials of global cloud admin for both clouds.
  • python-dev
  • Fabric ver.>= 1.8.2
  • python-novaclient
  • python-cinderclient
  • python-glanceclient
  • python-keystoneclient
  • python-neutronclient (python-quantumclient)*
  • ipaddr
  • sqlalchemy

* If you know which network managers are used on your clouds you can install only f.e. python-neutronclient, if you are not we recommend to install both packages.

Usage

fab migrate:configs/config_iscsi_to_iscsi.yaml - to start process of migration: migrate - command for tool “to start migration process” configs/config_iscsi_to_iscsi.yaml - path to config file fab migrate:configs/config_iscsi_to_iscsi.yaml,name_instance=<name_instance> - to start migration process of one given instance with the name <name_instance>

Config description (see file config_description.txt)

cloudferry's People

Contributors

asvechnikov avatar miarmak avatar mirrorcoder avatar openstackmigration avatar toha10 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.