Using AWS EFS as the shared file system for master/slave broker pair

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Using AWS EFS as the shared file system for master/slave broker pair

avmpt
I would like to use EFS as the shared file system when I set up a
master/slave broker pair. What changes would I need to make to the
persistence adapter to use the mounted EFS path?

When I have
<persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>

Would I need to change it to the path where EFS is mounted? Are there any
additional changes required? My activemq brokers are both docker containers
so I'm not sure how exactly this would affect my setup. Thanks!




--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

thall
There are a number of docker images for activemq, you will need to follow the documentation for that docker image.  
Make sure your docker image is using the latest version of activemq.
You are going to need to change the data directory to be under the efs mount, and you are going to have to configure a pluggable storage locker as well.
https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers <https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers>
https://activemq.apache.org/pluggable-storage-lockers.html

-Tom

> On Jul 18, 2018, at 3:47 PM, avmpt <[hidden email]> wrote:
>
> I would like to use EFS as the shared file system when I set up a
> master/slave broker pair. What changes would I need to make to the
> persistence adapter to use the mounted EFS path?
>
> When I have
> <persistenceAdapter>
>            <kahaDB directory="${activemq.data}/kahadb"/>
> </persistenceAdapter>
>
> Would I need to change it to the path where EFS is mounted? Are there any
> additional changes required? My activemq brokers are both docker containers
> so I'm not sure how exactly this would affect my setup. Thanks!
>
>
>
>
> --
> Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html

Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

Tim Bain
Also look at https://issues.apache.org/jira/browse/AMQ-6441, including the
discussion in the comments.

Tim

On Wed, Jul 18, 2018, 5:04 PM Tom Hall <[hidden email]> wrote:

> There are a number of docker images for activemq, you will need to follow
> the documentation for that docker image.
> Make sure your docker image is using the latest version of activemq.
> You are going to need to change the data directory to be under the efs
> mount, and you are going to have to configure a pluggable storage locker as
> well.
>
> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers
> <
> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers
> >
> https://activemq.apache.org/pluggable-storage-lockers.html
>
> -Tom
>
> > On Jul 18, 2018, at 3:47 PM, avmpt <[hidden email]> wrote:
> >
> > I would like to use EFS as the shared file system when I set up a
> > master/slave broker pair. What changes would I need to make to the
> > persistence adapter to use the mounted EFS path?
> >
> > When I have
> > <persistenceAdapter>
> >            <kahaDB directory="${activemq.data}/kahadb"/>
> > </persistenceAdapter>
> >
> > Would I need to change it to the path where EFS is mounted? Are there any
> > additional changes required? My activemq brokers are both docker
> containers
> > so I'm not sure how exactly this would affect my setup. Thanks!
> >
> >
> >
> >
> > --
> > Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

avmpt
In reply to this post by thall
I am using a custom docker image rather than any of the ones available
online. The config uses a base os image and then has the following activemq
settings:
-------------------------------------------------------

ENV ACTIVEMQ_VERSION 5.14.3
ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION

ENV ACTIVEMQ_HOME /opt/activemq

RUN tdnf -y install tar gzip

RUN set -x && \
    mkdir -p /opt && \
    curl -s -S
https://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ-bin.tar.gz
| tar xvz -C /opt && \
    ln -s /opt/$ACTIVEMQ $ACTIVEMQ_HOME && \
    useradd -r -M -d $ACTIVEMQ_HOME activemq

RUN chmod 764 $ACTIVEMQ_HOME
COPY activemq.xml $ACTIVEMQ_HOME/conf/
WORKDIR $ACTIVEMQ_HOME

CMD ["/bin/sh", "-c", "bin/activemq console"]

-------------------------------------------------------

For this version of AMQ (5.14.3) would it still be possible to setup the EFS
without pluggable storage lockers? Also can you elaborate about changing the
data directory to being under the efs mount? I'm not sure I understand that
part. Thanks!


thall wrote

> There are a number of docker images for activemq, you will need to follow
> the documentation for that docker image.  
> Make sure your docker image is using the latest version of activemq.
> You are going to need to change the data directory to be under the efs
> mount, and you are going to have to configure a pluggable storage locker
> as well.
> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers
> &lt;https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers&gt;
> https://activemq.apache.org/pluggable-storage-lockers.html
>
> -Tom
>
>> On Jul 18, 2018, at 3:47 PM, avmpt &lt;

> patelakash@

> &gt; wrote:
>>
>> I would like to use EFS as the shared file system when I set up a
>> master/slave broker pair. What changes would I need to make to the
>> persistence adapter to use the mounted EFS path?
>>
>> When I have
>>
> <persistenceAdapter>
>>            
> <kahaDB directory="${activemq.data}/kahadb"/>
>>
> </persistenceAdapter>
>>
>> Would I need to change it to the path where EFS is mounted? Are there any
>> additional changes required? My activemq brokers are both docker
>> containers
>> so I'm not sure how exactly this would affect my setup. Thanks!
>>
>>
>>
>>
>> --
>> Sent from:
>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html





--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

Tim Bain
The bug I linked to, which addresses the fact that EFS is so large that the
ActiveMQ code believes it has a negative size, was fixed in 5.15.0, so I
would expect 5.14.3 not to work. But YMMV if EFS is reporting a different
amount of free space today than it did when that bug was submitted.

Tim

On Fri, Jul 20, 2018, 2:22 PM avmpt <[hidden email]> wrote:

> I am using a custom docker image rather than any of the ones available
> online. The config uses a base os image and then has the following activemq
> settings:
> -------------------------------------------------------
>
> ENV ACTIVEMQ_VERSION 5.14.3
> ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION
>
> ENV ACTIVEMQ_HOME /opt/activemq
>
> RUN tdnf -y install tar gzip
>
> RUN set -x && \
>     mkdir -p /opt && \
>     curl -s -S
>
> https://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ-bin.tar.gz
> | tar xvz -C /opt && \
>     ln -s /opt/$ACTIVEMQ $ACTIVEMQ_HOME && \
>     useradd -r -M -d $ACTIVEMQ_HOME activemq
>
> RUN chmod 764 $ACTIVEMQ_HOME
> COPY activemq.xml $ACTIVEMQ_HOME/conf/
> WORKDIR $ACTIVEMQ_HOME
>
> CMD ["/bin/sh", "-c", "bin/activemq console"]
>
> -------------------------------------------------------
>
> For this version of AMQ (5.14.3) would it still be possible to setup the
> EFS
> without pluggable storage lockers? Also can you elaborate about changing
> the
> data directory to being under the efs mount? I'm not sure I understand that
> part. Thanks!
>
>
> thall wrote
> > There are a number of docker images for activemq, you will need to follow
> > the documentation for that docker image.
> > Make sure your docker image is using the latest version of activemq.
> > You are going to need to change the data directory to be under the efs
> > mount, and you are going to have to configure a pluggable storage locker
> > as well.
> >
> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers
> > &lt;
> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers&gt
> ;
> > https://activemq.apache.org/pluggable-storage-lockers.html
> >
> > -Tom
> >
> >> On Jul 18, 2018, at 3:47 PM, avmpt &lt;
>
> > patelakash@
>
> > &gt; wrote:
> >>
> >> I would like to use EFS as the shared file system when I set up a
> >> master/slave broker pair. What changes would I need to make to the
> >> persistence adapter to use the mounted EFS path?
> >>
> >> When I have
> >>
> > <persistenceAdapter>
> >>
> > <kahaDB directory="${activemq.data}/kahadb"/>
> >>
> > </persistenceAdapter>
> >>
> >> Would I need to change it to the path where EFS is mounted? Are there
> any
> >> additional changes required? My activemq brokers are both docker
> >> containers
> >> so I'm not sure how exactly this would affect my setup. Thanks!
> >>
> >>
> >>
> >>
> >> --
> >> Sent from:
> >> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>
>
>
>
>
> --
> Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>
Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

Tim Bain
I forgot to answer your other question.

That just means that you have to configure the path for the KahaDB data
directory (in activemq.xml) to be a path under your EFS mount.

Tim

On Sat, Jul 21, 2018, 7:17 AM Tim Bain <[hidden email]> wrote:

> The bug I linked to, which addresses the fact that EFS is so large that
> the ActiveMQ code believes it has a negative size, was fixed in 5.15.0, so
> I would expect 5.14.3 not to work. But YMMV if EFS is reporting a different
> amount of free space today than it did when that bug was submitted.
>
> Tim
>
> On Fri, Jul 20, 2018, 2:22 PM avmpt <[hidden email]> wrote:
>
>> I am using a custom docker image rather than any of the ones available
>> online. The config uses a base os image and then has the following
>> activemq
>> settings:
>> -------------------------------------------------------
>>
>> ENV ACTIVEMQ_VERSION 5.14.3
>> ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION
>>
>> ENV ACTIVEMQ_HOME /opt/activemq
>>
>> RUN tdnf -y install tar gzip
>>
>> RUN set -x && \
>>     mkdir -p /opt && \
>>     curl -s -S
>>
>> https://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ-bin.tar.gz
>> | tar xvz -C /opt && \
>>     ln -s /opt/$ACTIVEMQ $ACTIVEMQ_HOME && \
>>     useradd -r -M -d $ACTIVEMQ_HOME activemq
>>
>> RUN chmod 764 $ACTIVEMQ_HOME
>> COPY activemq.xml $ACTIVEMQ_HOME/conf/
>> WORKDIR $ACTIVEMQ_HOME
>>
>> CMD ["/bin/sh", "-c", "bin/activemq console"]
>>
>> -------------------------------------------------------
>>
>> For this version of AMQ (5.14.3) would it still be possible to setup the
>> EFS
>> without pluggable storage lockers? Also can you elaborate about changing
>> the
>> data directory to being under the efs mount? I'm not sure I understand
>> that
>> part. Thanks!
>>
>>
>> thall wrote
>> > There are a number of docker images for activemq, you will need to
>> follow
>> > the documentation for that docker image.
>> > Make sure your docker image is using the latest version of activemq.
>> > You are going to need to change the data directory to be under the efs
>> > mount, and you are going to have to configure a pluggable storage locker
>> > as well.
>> >
>> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers
>> > &lt;
>> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers&gt
>> ;
>> > https://activemq.apache.org/pluggable-storage-lockers.html
>> >
>> > -Tom
>> >
>> >> On Jul 18, 2018, at 3:47 PM, avmpt &lt;
>>
>> > patelakash@
>>
>> > &gt; wrote:
>> >>
>> >> I would like to use EFS as the shared file system when I set up a
>> >> master/slave broker pair. What changes would I need to make to the
>> >> persistence adapter to use the mounted EFS path?
>> >>
>> >> When I have
>> >>
>> > <persistenceAdapter>
>> >>
>> > <kahaDB directory="${activemq.data}/kahadb"/>
>> >>
>> > </persistenceAdapter>
>> >>
>> >> Would I need to change it to the path where EFS is mounted? Are there
>> any
>> >> additional changes required? My activemq brokers are both docker
>> >> containers
>> >> so I'm not sure how exactly this would affect my setup. Thanks!
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Sent from:
>> >> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>
>>
>>
>>
>>
>> --
>> Sent from:
>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

Tim Bain
Third reply, hopefully this is the last thing I missed.

If pluggable lockers are required in order to use EFS, they would be
required irrespective of which version of ActiveMQ you use. However, the
EFS FAQ says that EFS supports NFS 4.1 locking semantics, which sounds to
me like pluggable lockers would not be required. But I've not tested that,
so it would be great if you could let us know how it works when you test
your setup.

Thanks,
Tim

On Sat, Jul 21, 2018, 7:19 AM Tim Bain <[hidden email]> wrote:

> I forgot to answer your other question.
>
> That just means that you have to configure the path for the KahaDB data
> directory (in activemq.xml) to be a path under your EFS mount.
>
> Tim
>
> On Sat, Jul 21, 2018, 7:17 AM Tim Bain <[hidden email]> wrote:
>
>> The bug I linked to, which addresses the fact that EFS is so large that
>> the ActiveMQ code believes it has a negative size, was fixed in 5.15.0, so
>> I would expect 5.14.3 not to work. But YMMV if EFS is reporting a different
>> amount of free space today than it did when that bug was submitted.
>>
>> Tim
>>
>> On Fri, Jul 20, 2018, 2:22 PM avmpt <[hidden email]> wrote:
>>
>>> I am using a custom docker image rather than any of the ones available
>>> online. The config uses a base os image and then has the following
>>> activemq
>>> settings:
>>> -------------------------------------------------------
>>>
>>> ENV ACTIVEMQ_VERSION 5.14.3
>>> ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION
>>>
>>> ENV ACTIVEMQ_HOME /opt/activemq
>>>
>>> RUN tdnf -y install tar gzip
>>>
>>> RUN set -x && \
>>>     mkdir -p /opt && \
>>>     curl -s -S
>>>
>>> https://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ-bin.tar.gz
>>> | tar xvz -C /opt && \
>>>     ln -s /opt/$ACTIVEMQ $ACTIVEMQ_HOME && \
>>>     useradd -r -M -d $ACTIVEMQ_HOME activemq
>>>
>>> RUN chmod 764 $ACTIVEMQ_HOME
>>> COPY activemq.xml $ACTIVEMQ_HOME/conf/
>>> WORKDIR $ACTIVEMQ_HOME
>>>
>>> CMD ["/bin/sh", "-c", "bin/activemq console"]
>>>
>>> -------------------------------------------------------
>>>
>>> For this version of AMQ (5.14.3) would it still be possible to setup the
>>> EFS
>>> without pluggable storage lockers? Also can you elaborate about changing
>>> the
>>> data directory to being under the efs mount? I'm not sure I understand
>>> that
>>> part. Thanks!
>>>
>>>
>>> thall wrote
>>> > There are a number of docker images for activemq, you will need to
>>> follow
>>> > the documentation for that docker image.
>>> > Make sure your docker image is using the latest version of activemq.
>>> > You are going to need to change the data directory to be under the efs
>>> > mount, and you are going to have to configure a pluggable storage
>>> locker
>>> > as well.
>>> >
>>> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers
>>> > &lt;
>>> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers&gt
>>> ;
>>> > https://activemq.apache.org/pluggable-storage-lockers.html
>>> >
>>> > -Tom
>>> >
>>> >> On Jul 18, 2018, at 3:47 PM, avmpt &lt;
>>>
>>> > patelakash@
>>>
>>> > &gt; wrote:
>>> >>
>>> >> I would like to use EFS as the shared file system when I set up a
>>> >> master/slave broker pair. What changes would I need to make to the
>>> >> persistence adapter to use the mounted EFS path?
>>> >>
>>> >> When I have
>>> >>
>>> > <persistenceAdapter>
>>> >>
>>> > <kahaDB directory="${activemq.data}/kahadb"/>
>>> >>
>>> > </persistenceAdapter>
>>> >>
>>> >> Would I need to change it to the path where EFS is mounted? Are there
>>> any
>>> >> additional changes required? My activemq brokers are both docker
>>> >> containers
>>> >> so I'm not sure how exactly this would affect my setup. Thanks!
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Sent from:
>>> >> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Sent from:
>>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

thall
When I implemented AMQ on EFS, EFS only had optimistic locking so the pluggable locker was needed.  I can no longer find reference to it, and AWS has made significant changes to EFS locking  so it may not be necessary anymore.
Thanks,
-Tom

> On Jul 21, 2018, at 6:25 AM, Tim Bain <[hidden email]> wrote:
>
> Third reply, hopefully this is the last thing I missed.
>
> If pluggable lockers are required in order to use EFS, they would be
> required irrespective of which version of ActiveMQ you use. However, the
> EFS FAQ says that EFS supports NFS 4.1 locking semantics, which sounds to
> me like pluggable lockers would not be required. But I've not tested that,
> so it would be great if you could let us know how it works when you test
> your setup.
>
> Thanks,
> Tim
>
> On Sat, Jul 21, 2018, 7:19 AM Tim Bain <[hidden email]> wrote:
>
>> I forgot to answer your other question.
>>
>> That just means that you have to configure the path for the KahaDB data
>> directory (in activemq.xml) to be a path under your EFS mount.
>>
>> Tim
>>
>> On Sat, Jul 21, 2018, 7:17 AM Tim Bain <[hidden email]> wrote:
>>
>>> The bug I linked to, which addresses the fact that EFS is so large that
>>> the ActiveMQ code believes it has a negative size, was fixed in 5.15.0, so
>>> I would expect 5.14.3 not to work. But YMMV if EFS is reporting a different
>>> amount of free space today than it did when that bug was submitted.
>>>
>>> Tim
>>>
>>> On Fri, Jul 20, 2018, 2:22 PM avmpt <[hidden email]> wrote:
>>>
>>>> I am using a custom docker image rather than any of the ones available
>>>> online. The config uses a base os image and then has the following
>>>> activemq
>>>> settings:
>>>> -------------------------------------------------------
>>>>
>>>> ENV ACTIVEMQ_VERSION 5.14.3
>>>> ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION
>>>>
>>>> ENV ACTIVEMQ_HOME /opt/activemq
>>>>
>>>> RUN tdnf -y install tar gzip
>>>>
>>>> RUN set -x && \
>>>>    mkdir -p /opt && \
>>>>    curl -s -S
>>>>
>>>> https://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ-bin.tar.gz
>>>> | tar xvz -C /opt && \
>>>>    ln -s /opt/$ACTIVEMQ $ACTIVEMQ_HOME && \
>>>>    useradd -r -M -d $ACTIVEMQ_HOME activemq
>>>>
>>>> RUN chmod 764 $ACTIVEMQ_HOME
>>>> COPY activemq.xml $ACTIVEMQ_HOME/conf/
>>>> WORKDIR $ACTIVEMQ_HOME
>>>>
>>>> CMD ["/bin/sh", "-c", "bin/activemq console"]
>>>>
>>>> -------------------------------------------------------
>>>>
>>>> For this version of AMQ (5.14.3) would it still be possible to setup the
>>>> EFS
>>>> without pluggable storage lockers? Also can you elaborate about changing
>>>> the
>>>> data directory to being under the efs mount? I'm not sure I understand
>>>> that
>>>> part. Thanks!
>>>>
>>>>
>>>> thall wrote
>>>>> There are a number of docker images for activemq, you will need to
>>>> follow
>>>>> the documentation for that docker image.
>>>>> Make sure your docker image is using the latest version of activemq.
>>>>> You are going to need to change the data directory to be under the efs
>>>>> mount, and you are going to have to configure a pluggable storage
>>>> locker
>>>>> as well.
>>>>>
>>>> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers
>>>>> &lt;
>>>> https://cwiki.apache.org/confluence/display/ACTIVEMQ/Pluggable+storage+lockers&gt
>>>> ;
>>>>> https://activemq.apache.org/pluggable-storage-lockers.html
>>>>>
>>>>> -Tom
>>>>>
>>>>>> On Jul 18, 2018, at 3:47 PM, avmpt &lt;
>>>>
>>>>> patelakash@
>>>>
>>>>> &gt; wrote:
>>>>>>
>>>>>> I would like to use EFS as the shared file system when I set up a
>>>>>> master/slave broker pair. What changes would I need to make to the
>>>>>> persistence adapter to use the mounted EFS path?
>>>>>>
>>>>>> When I have
>>>>>>
>>>>> <persistenceAdapter>
>>>>>>
>>>>> <kahaDB directory="${activemq.data}/kahadb"/>
>>>>>>
>>>>> </persistenceAdapter>
>>>>>>
>>>>>> Would I need to change it to the path where EFS is mounted? Are there
>>>> any
>>>>>> additional changes required? My activemq brokers are both docker
>>>>>> containers
>>>>>> so I'm not sure how exactly this would affect my setup. Thanks!
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sent from:
>>>>>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sent from:
>>>> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>>>>
>>>

Reply | Threaded
Open this post in threaded view
|

Re: Using AWS EFS as the shared file system for master/slave broker pair

trevdyck
In reply to this post by avmpt
Did you consider using Amazon MQ? This is standard ActiveMQ with all the
infrastructure managed for you.

https://aws.amazon.com/amazon-mq/




--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html