murakumo Cloud Controller

21
murakumo Cloud Controller shin5ok original first version 2012.08

Transcript of murakumo Cloud Controller

Page 1: murakumo Cloud Controller

murakumo Cloud Controller

shin5okoriginal first version 201208

Whatrsquos murakumo

murakumo is IaaS Cloud controller api orchestrator

to manage VirtualMachine Storage and Network with Web api collection Command line tools

Supported Linux KVM

murakumo is running as core software in a DataCenter with OpenSource Liscense

Why did I try

2012 summer We started investigation for building IaaS service But we couldnrsquot find any software what meet our

requirements

We tried OpenStack(Diablo) but it has too many bugs so we had given up using it

try creating if nothing to study that as OpenSource

Who should use the murakumo

Who want to understand the detail of Cloud architecture

Who not need support various HyperVisor

Who want to fix bugs and improve software by oneselves (or think should do so)

Who like Perl much than Python(Openstack) or Java(Cloudstack)

Who use CentOS better than Ubuntu

Demo

My requirements

As a System OperatorWe can do all operation with CLI(Command Line)

Operations Configurations should be automation as much as possible There is not wrong status between actual system and management databases Auto configuration Auto rollback if it has error

The Design should be Simple so Operation members can understand system structure Other feature(like HA) is as extra function you can create them with api that provided from murakumo

As a Servive Provider

As a DeveloperWe can use all functions with Web api Easy to develop UI and management tools

We can understand grasp all codes 100 can resolve troubles and can create new features Easy to debug too

It can be small start and can be extended as desired

My requirements

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 2: murakumo Cloud Controller

Whatrsquos murakumo

murakumo is IaaS Cloud controller api orchestrator

to manage VirtualMachine Storage and Network with Web api collection Command line tools

Supported Linux KVM

murakumo is running as core software in a DataCenter with OpenSource Liscense

Why did I try

2012 summer We started investigation for building IaaS service But we couldnrsquot find any software what meet our

requirements

We tried OpenStack(Diablo) but it has too many bugs so we had given up using it

try creating if nothing to study that as OpenSource

Who should use the murakumo

Who want to understand the detail of Cloud architecture

Who not need support various HyperVisor

Who want to fix bugs and improve software by oneselves (or think should do so)

Who like Perl much than Python(Openstack) or Java(Cloudstack)

Who use CentOS better than Ubuntu

Demo

My requirements

As a System OperatorWe can do all operation with CLI(Command Line)

Operations Configurations should be automation as much as possible There is not wrong status between actual system and management databases Auto configuration Auto rollback if it has error

The Design should be Simple so Operation members can understand system structure Other feature(like HA) is as extra function you can create them with api that provided from murakumo

As a Servive Provider

As a DeveloperWe can use all functions with Web api Easy to develop UI and management tools

We can understand grasp all codes 100 can resolve troubles and can create new features Easy to debug too

It can be small start and can be extended as desired

My requirements

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 3: murakumo Cloud Controller

Why did I try

2012 summer We started investigation for building IaaS service But we couldnrsquot find any software what meet our

requirements

We tried OpenStack(Diablo) but it has too many bugs so we had given up using it

try creating if nothing to study that as OpenSource

Who should use the murakumo

Who want to understand the detail of Cloud architecture

Who not need support various HyperVisor

Who want to fix bugs and improve software by oneselves (or think should do so)

Who like Perl much than Python(Openstack) or Java(Cloudstack)

Who use CentOS better than Ubuntu

Demo

My requirements

As a System OperatorWe can do all operation with CLI(Command Line)

Operations Configurations should be automation as much as possible There is not wrong status between actual system and management databases Auto configuration Auto rollback if it has error

The Design should be Simple so Operation members can understand system structure Other feature(like HA) is as extra function you can create them with api that provided from murakumo

As a Servive Provider

As a DeveloperWe can use all functions with Web api Easy to develop UI and management tools

We can understand grasp all codes 100 can resolve troubles and can create new features Easy to debug too

It can be small start and can be extended as desired

My requirements

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 4: murakumo Cloud Controller

Who should use the murakumo

Who want to understand the detail of Cloud architecture

Who not need support various HyperVisor

Who want to fix bugs and improve software by oneselves (or think should do so)

Who like Perl much than Python(Openstack) or Java(Cloudstack)

Who use CentOS better than Ubuntu

Demo

My requirements

As a System OperatorWe can do all operation with CLI(Command Line)

Operations Configurations should be automation as much as possible There is not wrong status between actual system and management databases Auto configuration Auto rollback if it has error

The Design should be Simple so Operation members can understand system structure Other feature(like HA) is as extra function you can create them with api that provided from murakumo

As a Servive Provider

As a DeveloperWe can use all functions with Web api Easy to develop UI and management tools

We can understand grasp all codes 100 can resolve troubles and can create new features Easy to debug too

It can be small start and can be extended as desired

My requirements

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 5: murakumo Cloud Controller

Demo

My requirements

As a System OperatorWe can do all operation with CLI(Command Line)

Operations Configurations should be automation as much as possible There is not wrong status between actual system and management databases Auto configuration Auto rollback if it has error

The Design should be Simple so Operation members can understand system structure Other feature(like HA) is as extra function you can create them with api that provided from murakumo

As a Servive Provider

As a DeveloperWe can use all functions with Web api Easy to develop UI and management tools

We can understand grasp all codes 100 can resolve troubles and can create new features Easy to debug too

It can be small start and can be extended as desired

My requirements

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 6: murakumo Cloud Controller

My requirements

As a System OperatorWe can do all operation with CLI(Command Line)

Operations Configurations should be automation as much as possible There is not wrong status between actual system and management databases Auto configuration Auto rollback if it has error

The Design should be Simple so Operation members can understand system structure Other feature(like HA) is as extra function you can create them with api that provided from murakumo

As a Servive Provider

As a DeveloperWe can use all functions with Web api Easy to develop UI and management tools

We can understand grasp all codes 100 can resolve troubles and can create new features Easy to debug too

It can be small start and can be extended as desired

My requirements

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 7: murakumo Cloud Controller

As a Servive Provider

As a DeveloperWe can use all functions with Web api Easy to develop UI and management tools

We can understand grasp all codes 100 can resolve troubles and can create new features Easy to debug too

It can be small start and can be extended as desired

My requirements

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 8: murakumo Cloud Controller

Technical SpecificationController murakumo

Node murakumo_node

Lang Perl514

Lang Modules CatalystDBIxClass LogLog4PerlDataUUID etc

CatalystSysVirt ParallelPrefork etc

Web Server NginxStarman HTTPServerPSGI

JobQueue - TheSchwartz

Database MySQL51~ SQLite(for Job)

Require package (for RedHat) python-virtinst Libvirtlibguestfs

Postfix(for api retry queue)Verified OS RedHat Linux(CentOS6Scientific Linux6)

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 9: murakumo Cloud Controller

Feature of system structureThin Controller Rich Agent Autonomously working node agent JobQueue processing heavy works asynchronously Auto detect and configure the require storage network(VLANBridge) configurations Hard to be mismatch VirtualMachinersquos status and management data in database Loose couple component If some component is stopping it does not affect VirtualMachines Controller and node communicate each other with web api on HTTP so they are stateless so they are strong to failure Do not use Libvirt as much as possible because itrsquos not simple to use completely

Simple set up murakumo setup takes just about 10 minutes Easy Maintenance

Available your knowhow to scale up scale out You can use your WEB+DB knowhow to extend your cloud system

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 10: murakumo Cloud Controller

murakumo Component Relationship

api client13(cli web browser)

node13node13job

api13

storage agent

MTA

node13apimodel

Controller

Node

Storage

DB

httphttps

httphttps

httphttps

httphttps

libvirtd

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 11: murakumo Cloud Controller

VirtualMachine Operation with Web API Create VirtualMachine Modify structure VirtualMachine CPUmemory assign Multi-disk(on Multi-storage)Multi-network(VLAN) Changing iso online Multi-IP assign Support para-virtual(virtio) mode Support Bridge type VirtualMachine Changing disk cache mode at booting Clone VirtualMachine Auto Configuration for network and hostname on Linux(with libguestfs) BootStopForce stop VirtualMachine LiveMigration HA(experimental)

Resource Management per Project and All by SuperUser

VirtualMachine share Template You can set up some VirtualMachine for template and share them

murakumo function 1

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 12: murakumo Cloud Controller

Management Nodes(Physical Hosts) status resource Auto select nodes that boot VirtualMachine they are selected with every resource parameters

Multi-network(VLAN) Management IP address assignment

Combine Multi-storage For example first disk in main storage secondary disk in backup storage

Storage Agent for flexible management Auto select storage assignment with storage load(iowait) available capacity

Fast Cloning

Config forbidden API

murakumo function 2

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 13: murakumo Cloud Controller

murakumo CLI 32 subcommand(a point of 20128)

Subcommand example Get list of defined VirtualMachines $ murakumo vps-define-list

Clone a VirtualMachine (Auto configure network) $ murakumo vps-template-clone yen gt --uuid d0050b3a-849e-4fdd-bd47-858bc9c17abe yen gt --name mail-server001 --vlan-id 2001 --set-network eth0 --assign-ip

Modify VirtualMachine structure(cpu number to 6 memory assign to 8GB) $ murakumo vps-define-modify yen gt --uuid daeb61fb-7390-49a1-9639-5b1858298723 yen gt --cpu-number 6 --memory 8192000

LiveMigration a VirtualMachine $ murakumo vps-migration --uuid daeb61fb-7390-49a1-9639-5b1858298723yen gt --dst-node node005

Get list of instances on all projects(Require SuperUser) $ murakumo vps-list-all

murakumo function 3

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 14: murakumo Cloud Controller

CLI output exampleList of instances

Detail of a defined VirtualMachine

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 15: murakumo Cloud Controller

CLI (DebugMode) output exampleYou can get API request and response(ex list of nodes)

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 16: murakumo Cloud Controller

API example List of defined VirtualMachinesRequest GET httpsAPI_HOSTPORTPROJECT_IDvpsdefinelistkey=API_KEY

authed 1 is_admin 1 data [ update_time 2013-06-27 154652 memory 1024000 regist_time 2013-06-25 164653 cpu_number 1 name centos6-minimum tag uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 (省略) update_time 2013-06-27 155108 memory 1024000 regist_time 2013-06-27 155040 cpu_number 1 name nat tag uuid e1687a5a-def5-11e2-b984-4aee677a1317 ] tag project_id COMMON message result 1

Response body

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 17: murakumo Cloud Controller

Request POST httpsAPI_HOSTPORTPROJECT_IDvpsdefinecloneTEMPLATE_UUIDkey=API_KEY Request body set_network eth0 name clone-vps001 assign_ip 1 vlan_id 4001

Response body job_uuid 588edb82-e25d-11e2-a59e-1bce677a1317 uuid 66f332aa-dd6b-11e2-a3a2-6390677a1317 node murakumo-node0013000 message authed 1 is_admin 1 project_id COMMON result 1

Processing as async job you can ask API the result with job_uuid

httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388API Docs(under the construction)

API example Clone a VirtualMachine

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 18: murakumo Cloud Controller

murakumo system requirementsController(API) server to install murakumo Having one or more NIC As controller virtualServer is also ok but not under murakumo management

Node to install murakumo_node Physical server with virtualization support cpu Having two or more NIC (Recommend) more than 10Gbps support for storage network

Storage NFS support storage(Multi-Storage available at the same time) If you want to use Storage Agent You have to build storage with Linux(or other Unix)

Network Switchfor GlobalPrivate network VLAN supported

Network Switch for management common L2 switch

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 19: murakumo Cloud Controller

Service Network Switch(VLAN support)

murakumo Controller murakumo_node murakumo_nodeNFS

Storage

Storage Switch

Management Network Switch

vps vps vps vps

vps vps vps vps

Global 1 Global 2

murakumo general configuration

Storage Management

Storage Switch

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 20: murakumo Cloud Controller

Service Network Switch

Private Network Switch

Management Network Switch

murakumo extended configuration

Service Network Switch

DB DB

Controller

Storage

Management

Storage

Management

Storage

Storage

ospf

vrrp

Controller

Node Server Groups

Storage Network Switch

Replication

vip Redundant with

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time

Page 21: murakumo Cloud Controller

Resource

Source codes httpsgithubcomshin5okmurakumo httpsgithubcomshin5okmurakumo_node httpsgithubcomshin5okmurakumo_storage_agent

Documents httpsgithubcomshin5okmurakumowikiapiE38389E382ADE383A5E383A1E383B3E38388

Thank you for your time