A few questions

24 views
Skip to first unread message

Sam Lewis

unread,
Jan 21, 2019, 11:57:47 PM1/21/19
to Mender List mender.io
Hi - we are considering using Mender as a means of OTA updates for our embedded Linux based IoT product and had a few questions that we were hoping to get clarification on. Any help would be very much appreciated and apologies if any of these questions are covered in the documentation, I had a search through but couldn't find it.
  1.  The design of our system is that we have a large number (~50) devices on a LAN, connected to the internet via a single gateway.

    All devices are running the same image, so we would like to minimize the amount of internet bandwidth needed for OTA updates.

    Is it possible to put the artifact somewhere on the LAN and then tell the devices from either hosted mender or a self hosted mender to get the update from the LAN? Rather than needing each device to separately download the update from the internet?
  2. Is it possible to run Mender server run on ARM? Specifically, on a Raspberry Pi? Or does it only work on x86?
  3. How do people usually store device specific configuration? On a separate partition that isn't touched in the OTA updates?
Thanks again, appreciate any advice/feedback.

Sam

Dell Green

unread,
Jan 22, 2019, 2:17:01 AM1/22/19
to men...@lists.mender.io
Hi Sam,

For question 1, would a proxy server not solve it for you?



From: Sam Lewis
Sent: Tuesday 22 January, 04:57
Subject: [mender] A few questions
To: Mender List mender.io


Hi - we are considering using Mender as a means of OTA updates for our embedded Linux based IoT product and had a few questions that we were hoping to get clarification on. Any help would be very much appreciated and apologies if any of these questions are covered in the documentation, I had a search through but couldn't find it.  The design of our system is that we have a large number (~50) devices on a LAN, connected to the internet via a single gateway.

All devices are running the same image, so we would like to minimize the amount of internet bandwidth needed for OTA updates.

Is it possible to put the artifact somewhere on the LAN and then tell the devices from either hosted mender or a self hosted mender to get the update from the LAN? Rather than needing each device to separately download the update from the internet?Is it possible to run Mender server run on ARM? Specifically, on a Raspberry Pi? Or does it only work on x86?How do people usually store device specific configuration? On a separate partition that isn't touched in the OTA updates?
Thanks again, appreciate any advice/feedback.

Sam

--
You received this message because you are subscribed to the Google Groups "Mender List mender.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mender+un...@lists.mender.io.
To post to this group, send email to men...@lists.mender.io.

Mirza Krak

unread,
Jan 22, 2019, 3:34:39 AM1/22/19
to Mender List mender.io
On Tue, Jan 22, 2019 at 5:57 AM Sam Lewis <sam.vr...@gmail.com> wrote:
Hi -

Hello Sam,
 
we are considering using Mender as a means of OTA updates for our embedded Linux based IoT product and had a few questions that we were hoping to get clarification on. Any help would be very much appreciated and apologies if any of these questions are covered in the documentation, I had a search through but couldn't find it.

I will try to answer your questions.
 
  1.  The design of our system is that we have a large number (~50) devices on a LAN, connected to the internet via a single gateway.

    All devices are running the same image, so we would like to minimize the amount of internet bandwidth needed for OTA updates.

    Is it possible to put the artifact somewhere on the LAN and then tell the devices from either hosted mender or a self hosted mender to get the update from the LAN? Rather than needing each device to separately download the update from the internet?
We are aware of your use-case but we have do not yet have any optimization in Mender to "cache" artifacts locally.

One option could be to run a Mender server on each site (on the gateway). You can control the servers using the API`s, e.g uploading the artifacts and creating deployments to all devices.

It might possible to setup using a proxy/cache but this is really not my area :).
 
  1. Is it possible to run Mender server run on ARM? Specifically, on a Raspberry Pi? Or does it only work on x86?
Interesting. Can not say that this is something that we have tried, but technically it would be possible since the Mender backend is written in golang, which means we have the portability. 

But our integration [1] repository is based on pre-built docker containers which I am pretty sure only contain x86_64 only binaries. So you would need to rebuild the containers with e.g armhf.

This also assumes that all the docker containers that we base on support e.g armhf.
 
  1. How do people usually store device specific configuration? On a separate partition that isn't touched in the OTA updates?
Yes, this is correct. The mender client even requires a "separate partition" where it can store state while performing an update.

--
Mirza Krak | Embedded Solutions Architect | https://mender.io

 Northern.tech AS | @northerntechHQ




Sam Lewis

unread,
Jan 22, 2019, 5:29:57 PM1/22/19
to men...@lists.mender.io
Intrigued about this - do you mean something like http://www.squid-cache.org/ running on the Gateway that would cache the downloaded artifact file once one of the devices had downloaded it?

It does add a little complexity to my gateway (I'd like it as dumb as possible) but it is something I hadn't considered, is worth looking into. Thanks for the suggestion!

Sam Lewis

unread,
Jan 22, 2019, 5:33:40 PM1/22/19
to men...@lists.mender.io
Thanks - I was considering running a Mender server per deployment (it's why I asked if Mender server could be run on ARM!) but it does add a bit of complexity - now I have a gateway per deployment that I need to manage OTA updates for as well. I think it'd be simpler if I could run the server in the cloud.

I would definitely appreciate a feature in the future that would allow a Mender server to point clients to an external location to download artifacts from, if this is technically possible. I suppose there's a bunch of security issues that might come with that but the feature would make my life a lot easier! :)

Mika Tuupola

unread,
Jan 23, 2019, 2:00:43 AM1/23/19
to men...@lists.mender.io

> On 22 Jan 2019, at 06:57, Sam Lewis <sam.vr...@gmail.com> wrote:
>
> • How do people usually store device specific configuration? On a separate partition that isn't touched in the OTA updates?

I store a device specific config in /boot/config.txt. On startup there are number of systemd services which use the config file on boot up to do stuff like change hostname etc.


Mika Tuupola
https://appelsiini.net/



Dell Green

unread,
Jan 23, 2019, 2:04:23 AM1/23/19
to men...@lists.mender.io
Yes I have used squid in the past. I think https caching of downloads requires some extra configuration, but doable according to online documentation.

From: Sam Lewis <sam.vr...@gmail.com>
Sent: Tuesday, January 22, 2019 10:29:44 PM
To: men...@lists.mender.io
Subject: Re: [mender] A few questions
 

Mirza Krak

unread,
Jan 23, 2019, 2:18:24 AM1/23/19
to Mender List mender.io
On Tue, Jan 22, 2019 at 11:33 PM Sam Lewis <sam.vr...@gmail.com> wrote:
Thanks - I was considering running a Mender server per deployment (it's why I asked if Mender server could be run on ARM!) but it does add a bit of complexity - now I have a gateway per deployment that I need to manage OTA updates for as well. I think it'd be simpler if I could run the server in the cloud.

I would definitely appreciate a feature in the future that would allow a Mender server to point clients to an external location to download artifacts from, if this is technically possible. I suppose there's a bunch of security issues that might come with that but the feature would make my life a lot easier! :)

In a sense this is already how the server works today. The Mender client does not download Mender Artifacts directly from the Mender server, but upon a deployment in progress the client will receive an signed URL from which it can download the artifact. The Mender Artifacts are typically stored in local MINIO instance or AWS S3, depending on server setup.

But in your case I guess you would like different URL`s pointing to different storage locations depending on which site the device is on, and this not yet in place :).

Reply all
Reply to author
Forward
0 new messages