<div dir="ltr"><div>&quot;<i><span style="font-size:12.8px">Coincidentally, I am about to announce enhanced container support in</span></i><br></div><span style="font-size:12.8px"><i>pacemaker. I should have a post with more details later today or tomorrow.</i></span>&quot;<div><br></div><div>Ken: Where you able to get to it?</div><div><br></div><div>-Thanks</div><div>Nikhil</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 23, 2017 at 7:35 PM, Ken Gaillot <span dir="ltr">&lt;<a href="mailto:kgaillot@redhat.com" target="_blank">kgaillot@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 03/22/2017 11:08 PM, Nikhil Utane wrote:<br>
&gt; I simplified when I called it as a service. Essentially it is a complete<br>
&gt; system.<br>
&gt; It is an LTE eNB solution. It provides LTE service (service A) and now<br>
&gt; we need to provide redundancy for another different but related service<br>
&gt; (service B). The catch being, the LTE redundancy solution will be tied<br>
&gt; to one operator whereas the other service can span across multiple<br>
&gt; operators. Therefore ideally we want two completely independent clusters<br>
&gt; since different set of nodes will form the two clusters.<br>
&gt; Now what I am thinking is, to run additional instance of Pacemaker +<br>
&gt; Corosync in a container which can then notify the service B on host<br>
&gt; machine to start or stop it&#39;s service. That way my CIB file will be<br>
&gt; independent and I can run corosync on different interfaces.<br>
&gt;<br>
&gt; Workable right?<br>
&gt;<br>
&gt; -Regards<br>
&gt; Nikhil<br>
<br>
</span>It&#39;s not well-tested, but in theory it should work, as long as the<br>
container is privileged.<br>
<br>
I still think virtualizing the services would be more resilient. It<br>
makes sense to have a single determination of quorum and fencing for the<br>
same real hosts. I&#39;d think of it like a cloud provider -- the cloud<br>
instances are segregated by customer, but the underlying hosts are the same.<br>
<br>
You could configure your cluster as asymmetric, and enable each VM only<br>
on the nodes it&#39;s allowed on, so you get the two separate &quot;clusters&quot;<br>
that way. You could set up the VMs as guest nodes if you want to monitor<br>
and manage multiple services within them. If your services require<br>
hardware access that&#39;s not easily passed to a VM, containerizing the<br>
services might be a better option.<br>
<span class=""><br>
&gt; On Wed, Mar 22, 2017 at 8:06 PM, Ken Gaillot &lt;<a href="mailto:kgaillot@redhat.com">kgaillot@redhat.com</a><br>
</span><span class="">&gt; &lt;mailto:<a href="mailto:kgaillot@redhat.com">kgaillot@redhat.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     On 03/22/2017 05:23 AM, Nikhil Utane wrote:<br>
&gt;     &gt; Hi Ulrich,<br>
&gt;     &gt;<br>
&gt;     &gt; It&#39;s not an option unfortunately.<br>
&gt;     &gt; Our product runs on a specialized hardware and provides both the<br>
&gt;     &gt; services (A &amp; B) that I am referring to. Hence I cannot have service A<br>
&gt;     &gt; running on some nodes as cluster A and service B running on other nodes<br>
&gt;     &gt; as cluster B.<br>
&gt;     &gt; The two services HAVE to run on same node. The catch being service A and<br>
&gt;     &gt; service B have to be independent of each other.<br>
&gt;     &gt;<br>
&gt;     &gt; Hence looking at Container option since we are using that for some other<br>
&gt;     &gt; product (but not for Pacemaker/Corosync).<br>
&gt;     &gt;<br>
&gt;     &gt; -Regards<br>
&gt;     &gt; Nikhil<br>
&gt;<br>
&gt;     Instead of containerizing pacemaker, why don&#39;t you containerize or<br>
&gt;     virtualize the services, and have pacemaker manage the containers/VMs?<br>
&gt;<br>
&gt;     Coincidentally, I am about to announce enhanced container support in<br>
&gt;     pacemaker. I should have a post with more details later today or<br>
&gt;     tomorrow.<br>
&gt;<br>
&gt;     &gt;<br>
&gt;     &gt; On Wed, Mar 22, 2017 at 12:41 PM, Ulrich Windl<br>
&gt;     &gt; &lt;<a href="mailto:Ulrich.Windl@rz.uni-regensburg.de">Ulrich.Windl@rz.uni-<wbr>regensburg.de</a><br>
&gt;     &lt;mailto:<a href="mailto:Ulrich.Windl@rz.uni-regensburg.de">Ulrich.Windl@rz.uni-<wbr>regensburg.de</a>&gt;<br>
</span>&gt;     &gt; &lt;mailto:<a href="mailto:Ulrich.Windl@rz.uni-regensburg.de">Ulrich.Windl@rz.uni-<wbr>regensburg.de</a><br>
<span class="">&gt;     &lt;mailto:<a href="mailto:Ulrich.Windl@rz.uni-regensburg.de">Ulrich.Windl@rz.uni-<wbr>regensburg.de</a>&gt;&gt;&gt; wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;     &gt;&gt;&gt; Nikhil Utane &lt;<a href="mailto:nikhil.subscribed@gmail.com">nikhil.subscribed@gmail.com</a> &lt;mailto:<a href="mailto:nikhil.subscribed@gmail.com">nikhil.subscribed@<wbr>gmail.com</a>&gt;<br>
</span>&gt;     &gt;     &lt;mailto:<a href="mailto:nikhil.subscribed@gmail.com">nikhil.subscribed@<wbr>gmail.com</a><br>
<span class="">&gt;     &lt;mailto:<a href="mailto:nikhil.subscribed@gmail.com">nikhil.subscribed@<wbr>gmail.com</a>&gt;&gt;&gt; schrieb am 22.03.2017 um 07:48 in<br>
&gt;     &gt;     Nachricht<br>
&gt;     &gt;<br>
&gt;      &lt;CAGNWmJV05-YG+f9VNG0Deu-<wbr>2xo7Lp+kRQPOn9sWYy7Jz=<a href="mailto:0gNag@mail.gmail.com">0gNag@<wbr>mail.gmail.com</a><br>
&gt;     &lt;mailto:<a href="mailto:0gNag@mail.gmail.com">0gNag@mail.gmail.com</a>&gt;<br>
</span>&gt;     &gt;     &lt;mailto:<a href="mailto:0gNag@mail.gmail.com">0gNag@mail.gmail.com</a> &lt;mailto:<a href="mailto:0gNag@mail.gmail.com">0gNag@mail.gmail.com</a>&gt;&gt;<wbr>&gt;:<br>
<div class="HOEnZb"><div class="h5">&gt;     &gt;     &gt; Hi All,<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt; First of all, let me thank everyone here for providing<br>
&gt;     excellent support<br>
&gt;     &gt;     &gt; from the time I started evaluating this tool about a year<br>
&gt;     ago. It has<br>
&gt;     &gt;     &gt; helped me to make a timely and good quality release of our<br>
&gt;     Redundancy<br>
&gt;     &gt;     &gt; solution using Pacemaker &amp; Corosync. (Three cheers :))<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt; Now for our next release we have a slightly different ask.<br>
&gt;     &gt;     &gt; We want to provide Redundancy to two different types of<br>
&gt;     services (we can<br>
&gt;     &gt;     &gt; call them Service A and Service B) such that all cluster<br>
&gt;     communication for<br>
&gt;     &gt;     &gt; Service A happens on one network/interface (say VLAN A) and<br>
&gt;     for service B<br>
&gt;     &gt;     &gt; happens on a different network/interface (say VLAN B).<br>
&gt;     Moreover we do not<br>
&gt;     &gt;     &gt; want the details of Service A (resource attributes etc) to<br>
&gt;     be seen by<br>
&gt;     &gt;     &gt; Service B and vice-versa.<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt; So essentially we want to be able to run two independent<br>
&gt;     clusters. From<br>
&gt;     &gt;     &gt; what I gathered, we cannot run multiple instances of<br>
&gt;     Pacemaker and Corosync<br>
&gt;     &gt;     &gt; on same node. I was thinking if we can use Containers and<br>
&gt;     run two isolated<br>
&gt;     &gt;<br>
&gt;     &gt;     You conclude from two services that should not see each other that<br>
&gt;     &gt;     you need to instances of pacemaker on one node. Why?<br>
&gt;     &gt;     If you want true separation, drop the VLANs, make real<br>
&gt;     networks and<br>
&gt;     &gt;     two independent clusters.<br>
&gt;     &gt;     Even if two pacemeaker on one node would work, you habe the<br>
&gt;     problem<br>
&gt;     &gt;     of fencing, where at least one pacemaker instance will always be<br>
&gt;     &gt;     surprised badly if fencing takes place. I cannot imaging you<br>
&gt;     want that!<br>
&gt;     &gt;<br>
&gt;     &gt;     &gt; instances of Pacemaker + Corosync on same node.<br>
&gt;     &gt;     &gt; As per <a href="https://github.com/davidvossel/pacemaker_docker" rel="noreferrer" target="_blank">https://github.com/<wbr>davidvossel/pacemaker_docker</a><br>
&gt;     &lt;<a href="https://github.com/davidvossel/pacemaker_docker" rel="noreferrer" target="_blank">https://github.com/<wbr>davidvossel/pacemaker_docker</a>&gt;<br>
&gt;     &gt;     &lt;<a href="https://github.com/davidvossel/pacemaker_docker" rel="noreferrer" target="_blank">https://github.com/<wbr>davidvossel/pacemaker_docker</a><br>
&gt;     &lt;<a href="https://github.com/davidvossel/pacemaker_docker" rel="noreferrer" target="_blank">https://github.com/<wbr>davidvossel/pacemaker_docker</a>&gt;&gt; it looks do-able.<br>
&gt;     &gt;     &gt; I wanted to get an opinion on this forum before I can commit<br>
&gt;     that it can be<br>
&gt;     &gt;     &gt; done.<br>
&gt;     &gt;<br>
&gt;     &gt;     Why are you designing it more complicated as necessary?<br>
&gt;     &gt;<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt; Please share your views if you have already done this and if<br>
&gt;     there are any<br>
&gt;     &gt;     &gt; known challenges that I should be familiar with.<br>
&gt;     &gt;     &gt;<br>
&gt;     &gt;     &gt; -Thanks<br>
&gt;     &gt;     &gt; Nikhil<br>
</div></div></blockquote></div><br></div>