Discussion:
[drbd-mc] DRBD MC 0.9.2 / Pacemaker GUI
Rasto Levrinc
2011-04-29 08:31:44 UTC
Permalink
Hi,

This is the next DRBD MC release 0.9.2. DRBD MC is DRBD, Pacemaker and
cluster virtual manager GUI.

In this release the parts of the GUI that enable to setup a live VM
migration were enhanced and fixed. The virtual manager works now in a
cluster as promised.

Another nice feature, that someone can combine with the previous, is the
possibility to create LVs, resize them, snapshot them etc.

Just think about it...
LVM -> DRBD -> HB/Corosync+Pacemaker -> VMs -> live migration, it comes
all together. Now, there's an idea for the next video. :)

You can get DRBD MC here:
http://oss.linbit.com/drbd-mc/
http://oss.linbit.com/drbd-mc/DMC-0.9.2.jar
http://oss.linbit.com/drbd-mc/drbd-mc-0.9.2.tar.gz

1. You don't need Java on the cluster servers only on your desktop.
2. Download the DMC-0.9.2.jar file.
3. Make sure you use SUN Java not the OpenJDK 1.6.
4. Start it: java -jar DMC-0.9.2.jar
5. It connects to the cluster via SSH.
6. If you use it without DRBD, you have to click "Skip" button on couple of
places.

DRBD MC is compatible with Heartbeat 2.1.3 to the Pacemaker 1.1.5 with
Corosync or Heartbeat and DRBD 8.

The most important changes:
* divert existing drbd.ko for squeeze Linbit packages
* show host menu tooltips in DRBD view
* enable load DRBD menu, if it is not loaded
* change default application size
* Java style cleanup
* LV Resize plugin
* LV Create plugin
* LV Snapshot plugin
* fix remove button not working in new VM hardware
* fix apply button being disabled sometimes by mistake
* fix removing of a group, that has resources with constraints
* don't edit global drbd config if there are no resources
* fix some menu items showing twice
* make applying of changes smoother
* add operation timeouts dynamically
* add scientific linux version detection
* add README file
* add scripts/ directory
* fix saving of modified info in a cluster with VMs
* change directory structure
* fix changing of parameters in VM GUI in a cluster
* add junit framework
* fix modifying of VM options
* fix plugin subdirectories
* add --id-dsa, --id-rsa and --known-hosts options
* make block device editable
* fix min max checking in DRBD config
* fix updating of DRBD view
* store the same UUID on both nodes
* use machine="pc" instead of "pc-0.12" for now
* fix saving of new VMs not working on all hosts
* add allow-migrate option
* fix ptest not showing group services
* fix opensuse installation
* enable fine-grained sudo, don't make everything in bash -c
* change "fenced" to "fencing..."
* add annotations
* better VM input error handling
* show if a node was fenced
* remove superfluous warnings with libvirt 0.8.*
* better stacktrace for failed commands
* show pending status
* don't exit on errors when parsing
* why-a-field-is-disabled interface
* on_poweroff option
* Add CPU match fields in VM GUI

Rasto Levrinc
--
: Dipl-Ing Rastislav Levrinc
: DRBD MC http://oss.linbit.com/drbd-mc/
: DRBD/HA support and consulting http://www.linbit.com/
DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.
Caspar Smit
2011-04-29 09:44:31 UTC
Permalink
Hi Rasto,

Great update! Thanks for this.

1. Could you explain how to try the LVM plugins? I saw beta versions of them
on the drbd-mc website a while ago but now they are removed again.

2. enable fine-grained sudo, don't make everything in bash -c

I'm using sudo too, can you explain what changed here? I don't need
/bin/bash anymore in /etc/sudoers now, what commands are needed in
/etc/sudoers?

Kind regards,

Caspar Smit

2011/4/29 Rasto Levrinc <rasto.levrinc at linbit.com>
Post by Rasto Levrinc
Hi,
This is the next DRBD MC release 0.9.2. DRBD MC is DRBD, Pacemaker and
cluster virtual manager GUI.
In this release the parts of the GUI that enable to setup a live VM
migration were enhanced and fixed. The virtual manager works now in a
cluster as promised.
Another nice feature, that someone can combine with the previous, is the
possibility to create LVs, resize them, snapshot them etc.
Just think about it...
LVM -> DRBD -> HB/Corosync+Pacemaker -> VMs -> live migration, it comes
all together. Now, there's an idea for the next video. :)
http://oss.linbit.com/drbd-mc/
http://oss.linbit.com/drbd-mc/DMC-0.9.2.jar
http://oss.linbit.com/drbd-mc/drbd-mc-0.9.2.tar.gz
1. You don't need Java on the cluster servers only on your desktop.
2. Download the DMC-0.9.2.jar file.
3. Make sure you use SUN Java not the OpenJDK 1.6.
4. Start it: java -jar DMC-0.9.2.jar
5. It connects to the cluster via SSH.
6. If you use it without DRBD, you have to click "Skip" button on couple of
places.
DRBD MC is compatible with Heartbeat 2.1.3 to the Pacemaker 1.1.5 with
Corosync or Heartbeat and DRBD 8.
* divert existing drbd.ko for squeeze Linbit packages
* show host menu tooltips in DRBD view
* enable load DRBD menu, if it is not loaded
* change default application size
* Java style cleanup
* LV Resize plugin
* LV Create plugin
* LV Snapshot plugin
* fix remove button not working in new VM hardware
* fix apply button being disabled sometimes by mistake
* fix removing of a group, that has resources with constraints
* don't edit global drbd config if there are no resources
* fix some menu items showing twice
* make applying of changes smoother
* add operation timeouts dynamically
* add scientific linux version detection
* add README file
* add scripts/ directory
* fix saving of modified info in a cluster with VMs
* change directory structure
* fix changing of parameters in VM GUI in a cluster
* add junit framework
* fix modifying of VM options
* fix plugin subdirectories
* add --id-dsa, --id-rsa and --known-hosts options
* make block device editable
* fix min max checking in DRBD config
* fix updating of DRBD view
* store the same UUID on both nodes
* use machine="pc" instead of "pc-0.12" for now
* fix saving of new VMs not working on all hosts
* add allow-migrate option
* fix ptest not showing group services
* fix opensuse installation
* enable fine-grained sudo, don't make everything in bash -c
* change "fenced" to "fencing..."
* add annotations
* better VM input error handling
* show if a node was fenced
* remove superfluous warnings with libvirt 0.8.*
* better stacktrace for failed commands
* show pending status
* don't exit on errors when parsing
* why-a-field-is-disabled interface
* on_poweroff option
* Add CPU match fields in VM GUI
Rasto Levrinc
--
: Dipl-Ing Rastislav Levrinc
: DRBD MC http://oss.linbit.com/drbd-mc/
: DRBD/HA support and consulting http://www.linbit.com/
DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.
_______________________________________________
drbd-mc mailing list
drbd-mc at lists.linbit.com
http://lists.linbit.com/mailman/listinfo/drbd-mc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linbit.com/pipermail/drbd-mc/attachments/20110429/894cc303/attachment.htm>
Rasto Levrinc
2011-05-02 09:01:13 UTC
Permalink
Post by Caspar Smit
Hi Rasto,
Great update! Thanks for this.
1. Could you explain how to try the LVM plugins? I saw beta versions of
them on the drbd-mc website a while ago but now they are removed again.
Hi,

the precompiled LVM plugins are available for LINBIT customers, so
sales at linbit.com :)
Post by Caspar Smit
2. enable fine-grained sudo, don't make everything in bash -c
I'm using sudo too, can you explain what changed here? I don't need
/bin/bash anymore in /etc/sudoers now, what commands are needed in
/etc/sudoers?
Quick list of the commands for DRBD and Pacemaker is here:

rasto ALL=SETENV: /usr/local/bin/drbd-gui-helper-*, /bin/true,
/sbin/drbdadm, /usr/sbin/cibadmin, /usr/sbin/crm_resource,
/usr/sbin/crm_attribute, /usr/sbin/ptest

Well /bin/true only till the next release. :) With that you can administer
everything, except of changes that require writing to config files, like
ha.cf, corosync.conf or drbd.conf. The ptest overview doesn't work, but I
am working on it.

In theory the config files could be written to if they'd have appropriate
permissions, but it'd also require some changes in the DRBD:MC. Let me
know if you or somebody else want to use it that way.

Rasto
--
: Dipl-Ing Rastislav Levrinc
: DRBD MC http://oss.linbit.com/drbd-mc/
: DRBD MC http://www.drbd.org/mc/management-console/
: DRBD/HA support and consulting http://www.linbit.com/
DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.
Michael
2011-05-23 20:38:13 UTC
Permalink
RE: drbd-mc 0.9.2

Hi all,

Just tried to use 0.9.2

After connection to cluster - it is generate java error when opening
"cluster manager" -> " services"
Is that bug? How to report more info from that?

All other feauters ( drbd , VM ) shows OK. but no services....


The error:
AppError.Text
release: 0.9.2
java: Sun Microsystems Inc. 1.6.0_24

uncaught exception
java.lang.NullPointerException
null
edu.uci.ics.jung.visualization.renderers.BasicEdgeRenderer.drawSimpleEdge(BasicEdgeRenderer.java:116)
edu.uci.ics.jung.visualization.renderers.BasicEdgeRenderer.paintEdge(BasicEdgeRenderer.java:62)
edu.uci.ics.jung.visualization.renderers.BasicRenderer.renderEdge(BasicRenderer.java:78)
edu.uci.ics.jung.visualization.renderers.BasicRenderer.render(BasicRenderer.java:38)
edu.uci.ics.jung.visualization.BasicVisualizationServer.renderGraph(BasicVisualizationServer.java:367)
edu.uci.ics.jung.visualization.BasicVisualizationServer.paintComponent(BasicVisualizationServer.java:321)
javax.swing.JComponent.paint(JComponent.java:1029)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
javax.swing.RepaintManager.paint(RepaintManager.java:1224)
javax.swing.JComponent._paintImmediately(JComponent.java:5072)
javax.swing.JComponent.paintImmediately(JComponent.java:4882)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:785)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
java.awt.EventQueue.access$000(EventQueue.java:85)
java.awt.EventQueue$1.run(EventQueue.java:603)
java.awt.EventQueue$1.run(EventQueue.java:601)
java.security.AccessController.doPrivileged(Native Method)
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linbit.com/pipermail/drbd-mc/attachments/20110524/b5a3b591/attachment.htm>
Rasto Levrinc
2011-05-24 13:10:19 UTC
Permalink
Post by Michael
Just tried to use 0.9.2
After connection to cluster - it is generate java error when opening
"cluster manager" -> " services"
Is that bug? How to report more info from that?
Something like that (with the same stacktrace) was fixed recently, but it
was very unlikely to happen. If this is something that happens all the
time for you, your config would help to track it down. Either output from
"crm configure show", or cibadmin -Q

Thanks,

Rasto
Post by Michael
All other feauters ( drbd , VM ) shows OK. but no services....
AppError.Text
release: 0.9.2
java: Sun Microsystems Inc. 1.6.0_24
uncaught exception java.lang.NullPointerException null
edu.uci.ics.jung.visualization.renderers.BasicEdgeRenderer.drawSimpleEdge
(BasicEdgeRenderer.java:116)
edu.uci.ics.jung.visualization.renderers.BasicEdgeRenderer.paintEdge(Basic
EdgeRenderer.java:62)
edu.uci.ics.jung.visualization.renderers.BasicRenderer.renderEdge(BasicRen
derer.java:78)
edu.uci.ics.jung.visualization.renderers.BasicRenderer.render(BasicRendere
r.java:38)
edu.uci.ics.jung.visualization.BasicVisualizationServer.renderGraph(BasicV
isualizationServer.java:367)
edu.uci.ics.jung.visualization.BasicVisualizationServer.paintComponent(Bas
icVisualizationServer.java:321)
javax.swing.JComponent.paint(JComponent.java:1029)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JSplitPane.paintChildren(JSplitPane.java:1030)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
javax.swing.JComponent.paintChildren(JComponent.java:862)
javax.swing.JComponent.paint(JComponent.java:1038)
javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.ja
va:278)
javax.swing.RepaintManager.paint(RepaintManager.java:1224)
javax.swing.JComponent._paintImmediately(JComponent.java:5072)
javax.swing.JComponent.paintImmediately(JComponent.java:4882)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:785)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEvent
QueueUtilities.java:125)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
java.awt.EventQueue.access$000(EventQueue.java:85)
java.awt.EventQueue$1.run(EventQueue.java:603)
java.awt.EventQueue$1.run(EventQueue.java:601)
java.security.AccessController.doPrivileged(Native Method)
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessContro
lContext.java:87)
java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.ja
va:269)
184)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.ja
va:174)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
_______________________________________________
drbd-mc mailing list drbd-mc at lists.linbit.com
http://lists.linbit.com/mailman/listinfo/drbd-mc
--
: Dipl-Ing Rastislav Levrinc
: DRBD MC http://oss.linbit.com/drbd-mc/
: DRBD MC http://www.drbd.org/mc/management-console/
: DRBD/HA support and consulting http://www.linbit.com/
DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.
Loading...