From Fedora Project Wiki
(initial development of feature page)
No edit summary
Line 28: Line 28:
* Targeted release: [[Releases/16 | Fedora 16 ]]  
* Targeted release: [[Releases/16 | Fedora 16 ]]  
* Last updated: (May 26, 2011)
* Last updated: (May 26, 2011)
* Percentage of completion: 20%
* Percentage of completion: 75%


<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
Line 34: Line 34:
== Detailed Description ==
== Detailed Description ==
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
The software provides a cli which allows:
The software provides a user interface shell called pcloudsh which provides:
Create a VM from a template.
* Create deployables including:
Launch deployable on local machine.
  * Create a JEOS image of F14, F15, F16, RHEL6
Kill/restart applications if failure detected.
  * Create an assembly of F14, F15, F16, RHEL6
Kill/restart assembly if failure detected.
  * Add assemblies to a deployable
Kill/restart deployable if failure detected.
  * Add managed resources to an assembly
Notification of failures of any of the objects in the system.
  * Launch a deployable, including all of its assembly images
  * Provides user interface feedback when an application or assembly fails and describe which corrective actions are taken.
 
The software provides daemons and init scripts which provide the high availability of the deployables configured in the system:
* Kill/restart applications if a failure is detected.
* Kill and restart assemblies if an assembly failure is detected.


== Benefit to Fedora ==
== Benefit to Fedora ==
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
This brings high availability of the deployable/assembly VM model to the system single node.  In future versions we intend to integrate with other cloud management systems.
This feature provides a preview of high availability for cloud environments using a building block that is reusable in other cloud management systems.  This feature provides only single node deployable high availability, but for F17 we plan to integrate with other distributed cloud management tools such as Aeolus.
== Scope ==
== Scope ==
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
This is a standalone package but has several dependencies on other parts of Fedora 16.
This is a standalone package but has several dependencies on other parts of Fedora 16.  We are in good shape relatng to dependencies, however, systemd is not LSB compliant currently resulting in our software not being able to provide high availability for F15 or Rawhide guests.
 
We are nearing code completion for the single node case and have some basic packaging done.


== How To Test ==
== How To Test ==
Binaries have not been named, as such this section is TODO.
yum install pacemaker-cloud
chkconfig pacemaker-cloud on
service pacemaker-cloud start
 
We have a test suite that can be run which provides automated validation the software functions properly.
 
Manually the following operations can be done:
root# pcloudsh
pcloudsh# jeos_create F14 x86_64
pcloudsh# assembly_create assy1 F14 x86_64
pcloudsh# assembly_clone assy1 assy2
pcloudsh# assembly_clone assy1 assy3
pcloudsh# assembly_resource_add httpd httpd assy1
pcloudsh# assembly_resource_add httpd httpd assy2
pcloudsh# assembly_resource_add httpd httpd assy3
pcloudsh# deployable_create dep1
pcloudsh# deployable_assembly_add dep1 assy1
pcloudsh# deployable_assembly_add dep1 assy2
pcloudsh# deployable_assembly_add dep1 assy3
pcloudsh# deployable_start dep1
 
Keep pcloudsh running and in another shell:


yum install pacemaker-cloud
* verify application restart works properly:
Launch the cli shell
  * login to one of the assemblies and killall -9 httpd
create deployables via the cli shell
  * verify that httpd is restarted via pacemaker-cloud
Launch deployables via the cli shell
* verify deployable restart works properly:
Kill individual applications and expect the cli to print the application failure.
  * Open the virtual machine manager GUI
Kill individual assemblies and expect the cli to print the assembly failure.
  * Use the force off functionality on an assembly
After an application is killed, validate that the application is restarted.
  * The virtual machine manager should display that the assembly is restarted
After an assembly is killed, validate that the assembly and it's applications are running again.
  * Login to the restarted virtual machine and verify httpd was restarted properly


== User Experience ==
== User Experience ==
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
There are no user experience changes.
The audience will notice a shell with comands which can be used to create and launch deployables.


== Dependencies ==
== Dependencies ==
Line 72: Line 100:
libxml2
libxml2
libqb
libqb
pacemaker-libs
pacemaker-libs and its many dependencies
qmf
qmf
libxslt
libxslt
qpid-cpp-server
qpid-cpp-client
python-qpid-qmf


Needs packaging in Fedora rawhide:
Needs packaging in Fedora rawhide:
oz
oz (currently under review)
 
Dependency with broken functionality:
systemd - systemd guests don't work properly because systemd is not LSB compliant.  F14 and RHEL6 guests will work properly, but without bug fixing in systemd, F15 and F16 are nonfunctional.


== Contingency Plan ==
== Contingency Plan ==
Line 92: Line 126:
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
*
*
The fact that systemd guests are non-funtional with regards to this feature may need release notes.


== Comments and Discussion ==
== Comments and Discussion ==

Revision as of 17:06, 4 July 2011

Important.png
Comments and Explanations
The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "edit" link.
Copy the source to a new page before making changes! DO NOT EDIT THIS TEMPLATE FOR YOUR FEATURE.
Important.png
Set a Page Watch
Make sure you click watch on your new page so that you are notified of changes to it by others, including the Feature Wrangler
Note.png
All sections of this template are required for review by FESCo. If any sections are empty it will not be reviewed



pacemaker-cloud

Summary

The pacemaker-cloud project demonstrates the current community work in providing application service high availability in a cloud environment.


Owner

  • Email: <sdake@redhat.com>

Current status

  • Targeted release: Fedora 16
  • Last updated: (May 26, 2011)
  • Percentage of completion: 75%


Detailed Description

The software provides a user interface shell called pcloudsh which provides:

  • Create deployables including:
 * Create a JEOS image of F14, F15, F16, RHEL6
 * Create an assembly of F14, F15, F16, RHEL6
 * Add assemblies to a deployable
 * Add managed resources to an assembly
 * Launch a deployable, including all of its assembly images
 * Provides user interface feedback when an application or assembly fails and describe which corrective actions are taken.

The software provides daemons and init scripts which provide the high availability of the deployables configured in the system:

  • Kill/restart applications if a failure is detected.
  • Kill and restart assemblies if an assembly failure is detected.

Benefit to Fedora

This feature provides a preview of high availability for cloud environments using a building block that is reusable in other cloud management systems. This feature provides only single node deployable high availability, but for F17 we plan to integrate with other distributed cloud management tools such as Aeolus.

Scope

This is a standalone package but has several dependencies on other parts of Fedora 16. We are in good shape relatng to dependencies, however, systemd is not LSB compliant currently resulting in our software not being able to provide high availability for F15 or Rawhide guests.

We are nearing code completion for the single node case and have some basic packaging done.

How To Test

yum install pacemaker-cloud chkconfig pacemaker-cloud on service pacemaker-cloud start

We have a test suite that can be run which provides automated validation the software functions properly.

Manually the following operations can be done: root# pcloudsh pcloudsh# jeos_create F14 x86_64 pcloudsh# assembly_create assy1 F14 x86_64 pcloudsh# assembly_clone assy1 assy2 pcloudsh# assembly_clone assy1 assy3 pcloudsh# assembly_resource_add httpd httpd assy1 pcloudsh# assembly_resource_add httpd httpd assy2 pcloudsh# assembly_resource_add httpd httpd assy3 pcloudsh# deployable_create dep1 pcloudsh# deployable_assembly_add dep1 assy1 pcloudsh# deployable_assembly_add dep1 assy2 pcloudsh# deployable_assembly_add dep1 assy3 pcloudsh# deployable_start dep1

Keep pcloudsh running and in another shell:

  • verify application restart works properly:
 * login to one of the assemblies and killall -9 httpd
 * verify that httpd is restarted via pacemaker-cloud
  • verify deployable restart works properly:
  * Open the virtual machine manager GUI
  * Use the force off functionality on an assembly
  * The virtual machine manager should display that the assembly is restarted
  * Login to the restarted virtual machine and verify httpd was restarted properly

User Experience

The audience will notice a shell with comands which can be used to create and launch deployables.

Dependencies

Previously packaged in Fedora rawhide: glib2 dbus-glib libxml2 libqb pacemaker-libs and its many dependencies qmf libxslt qpid-cpp-server qpid-cpp-client python-qpid-qmf

Needs packaging in Fedora rawhide: oz (currently under review)

Dependency with broken functionality: systemd - systemd guests don't work properly because systemd is not LSB compliant. F14 and RHEL6 guests will work properly, but without bug fixing in systemd, F15 and F16 are nonfunctional.

Contingency Plan

If this feature is not ready by deadline, it can moved to a later Fedora version.

Documentation

https://github.com/pacemaker-cloud/pacemaker-cloud

Release Notes

The fact that systemd guests are non-funtional with regards to this feature may need release notes.

Comments and Discussion