gluster / glusterfs

Gluster Filesystem : Build your distributed storage in minutes
https://www.gluster.org
GNU General Public License v2.0
4.64k stars 1.08k forks source link

Debian arm64 repo lacks releases after glusterfs 6 #1301

Closed Legogris closed 1 year ago

Legogris commented 4 years ago

Starting with 7.0, there are no arm64 packages in the PPA for glusterfs: https://download.gluster.org/pub/gluster/glusterfs/7/LATEST/Debian/10/arm64/apt/

Sheetalpamecha commented 4 years ago

Hi, The packages missing only for 7.0 and 7.6. The rest releases contains arm64 packages.

This is a known issue. Due to recent hardware failure in machines, we are unable to build packages for arm64. There is mail sent to community back in may - https://lists.gluster.org/pipermail/gluster-users/2020-May/038223.html

If you have resources and would like to volunteer in building packages, we are happy to help and can guide you through the process.

rhenwood-arm commented 4 years ago

Hi @Sheetalpamecha,

Thanks for this update - I'll send you a message to see if I can help with resources.

russbrenner commented 4 years ago

I realise that this is a lazy question but the payoff is I may be able to help if I can understand what resources are required.

Are we talking arm64 native cores, virtualised, containerised? Disk/ram/network requirements?

gloomytrousers commented 3 years ago

I note from the release schedule that once v9 is released in December, v7.5 (the latest build available for arm64) will be EOL. Is this issue likely to be resolved by then? There are a lot of people running GlusterFS on Raspberry Pi (myself included!) and is would be good if we can remain on a maintained version.

gloomytrousers commented 3 years ago

Hi @Sheetalpamecha. Is there any update here? There are two possible offers of help above, and maybe I can make that 3 if I can understand what's required - the docs I've found aren't clear on how to build debian packages, just RPMs. Thanks!

nheine commented 3 years ago

@gloomytrousers what version of GlusterFS do you run on Raspberry Pi. the armhf packages are only version 5.5-3 Is there a repository for latest versions of GlusterFS on Rapsberry Pi?

Legogris commented 3 years ago

@gloomytrousers what version of GlusterFS do you run on Raspberry Pi. the armhf packages are only version 5.5-3 Is there a repository for latest versions of GlusterFS on Rapsberry Pi?

32-bit hasn't been supported in a long, long time by now. If you run 64 bit linux kernel and userspace you usually have it in distro repos.

nheine commented 3 years ago

@gloomytrousers what version of GlusterFS do you run on Raspberry Pi. the armhf packages are only version 5.5-3 Is there a repository for latest versions of GlusterFS on Rapsberry Pi?

32-bit hasn't been supported in a long, long time by now. If you run 64 bit linux kernel and userspace you usually have it in distro repos.

I figured raspbian testing sources have armhf gluster 8.3-1 included

gloomytrousers commented 3 years ago

@gloomytrousers what version of GlusterFS do you run on Raspberry Pi. the armhf packages are only version 5.5-3 Is there a repository for latest versions of GlusterFS on Rapsberry Pi?

@nheine there are packages for arm64 up to v7.5 on https://download.gluster.org/pub/gluster/glusterfs/.

EnochPrime commented 3 years ago

If you have resources and would like to volunteer in building packages, we are happy to help and can guide you through the process.

What hardware is required to build the arm64 packages?

amarts commented 3 years ago

I do arm64 builds on docker buildx (just in github actions) for kadalu images.

dleonarski commented 3 years ago

Hi,

I did some exercises and my conclusions are:

1. RPI4 (Raspberry PI OS, Buster, patched, still 32bit) doesn't pass 'make' for 10dev, 9.1 and 9.0. For all branches it quits with the same error:

make[5]: Entering directory '/home/pi/glusterfs-v9.0/rpc/rpc-transport/socket/src' CC socket.lo In file included from ../../../../libglusterfs/src/glusterfs/dict.h:18, from ../../../../rpc/rpc-lib/src/rpc-transport.h:59, from socket.h:25, from socket.c:11: ../../../../libglusterfs/src/glusterfs/common-utils.h:33:44: error: missing binary operator before token "("

define __BITS_PER_LONG (CHAR_BIT * (sizeof(long)))

........................................................^ make[5]: *** [Makefile:557: socket.lo] Error 1

However, it passes 8.4 :-) Whether it 'works' or not I don't know yet.

Details:

uname -a: Linux mars 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux os-release: PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"

2. My "Renegade" (https://www.armbian.com/renegade/) passes phase of 'make' in case of both dev10 and 9.1. Details below:

uname -a: Linux pluton 5.10.21-rockchip64 #21.02.3 SMP PREEMPT Mon Mar 8 01:05:08 UTC 2021 aarch64 GNU/Linux os-release: PRETTY_NAME="Armbian 21.02.3 Buster"

Bests, Dariusz

stale[bot] commented 2 years ago

Thank you for your contributions. Noticed that this issue is not having any activity in last ~6 months! We are marking this issue as stale because it has not had recent activity. It will be closed in 2 weeks if no one responds with a comment here.

gloomytrousers commented 2 years ago

Still required please!

jwbrase commented 2 years ago

The "missing binary operator" error above is due to trying to define a macro using "sizeof", which the compiler understands, but the preprocessor doesn't (so you can't use sizeof in a macro). The line before checks if BITS_PER_LONG is defined, so if BITS_PER_LONG is already defined, it compiles, otherwise it fails. If I replace the "sizeof(long)" with "4" (not a general solution, as sizeof(long) isn't guaranteed to be 4, but for compilation on 32-bit arm it will be), then it fails later on with:

In file included from event.c:19:0: glusterfs/gf-event.h:140:0: error: unterminated argument list invoking macro "__gf_static_assert"

endif / _GF_EVENTH /

^ In file included from event.c:20:0: glusterfs/timespec.h:21:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘void’ void ^ event.c: In function ‘gf_event_pool_new’: event.c:34:5: error: invalid use of undefined type ‘struct event_ops’ event_pool = event_ops_epoll.new(count, eventthreadcount); ^ event.c:37:19: error: dereferencing pointer to incomplete type ‘struct event_pool’ event_pool->ops = &event_ops_epoll; ^ event.c:45:9: error: invalid use of undefined type ‘struct event_ops’ event_pool = event_ops_poll.new(count, eventthreadcount); ^ event.c: In function ‘poller_destroy_handler’: event.c:171:21: error: dereferencing pointer to incomplete type ‘struct event_destroy_data’ readfd = destroy->readfd; ^ event.c:180:5: error: implicit declaration of function ‘gf_event_handled’ [-Werror=implicit-function-declaration] gf_event_handled(destroy->pool, fd, idx, gen); ^ event.c: In function ‘gf_event_dispatch_destroy’: event.c:206:12: error: variable ‘data’ has initializer but incomplete type struct event_destroy_data data = { ^ event.c:207:9: warning: excess elements in struct initializer 0, ^ event.c:207:9: note: (near initialization for ‘data’) event.c:206:31: error: storage size of ‘data’ isn’t known struct event_destroy_data data = { ^ cc1: some warnings being treated as errors Makefile:1069: recipe for target 'libglusterfs_la-event.lo' failed

This is on a Pi2 running Ubuntu 16.04.

Really in my case all it comes down to is that I'm in need of a machine to act as a thin arbiter, and the Pi in question happens to be better suited to the role than anything else available (mostly in that it's serving a role that already has it up 24/7). The trouble getting gluster compiled means I'll probably find something else to install it on, but just as a bit of feedback, even if the architecture options for the main gluster packages are going to be limited, it might pay to have a separate package specifically for the thin-arbiter use case with broader availability: As far as I understand, a big part of the point of a TA is that it places minimal demands on the arbiter, so it's the part of the whole system that people are most likely to try to run on a potato.

EDIT: How dependent is gluster on everything involved running the same version? This is mostly a learning exercise for me, there's nothing critical being stored. Could the thin arbiter be running a few versions back from the main cluster?

stale[bot] commented 1 year ago

Thank you for your contributions. Noticed that this issue is not having any activity in last ~6 months! We are marking this issue as stale because it has not had recent activity. It will be closed in 2 weeks if no one responds with a comment here.

vtcifer commented 1 year ago

Thank you for your contributions. Noticed that this issue is not having any activity in last ~6 months! We are marking this issue as stale because it has not had recent activity. It will be closed in 2 weeks if no one responds with a comment here.

As debian is the source repo for raspberry-pi and they're arm, I imagine there is still a desire for this (myself included).

I've done some limited testing and using buildx with emulation seems to work. It did take just shy of 3 hours (like 2:40) to build 10.3 on a spare system I have running. I imagine https://github.com/gluster/glusterfs/issues/1301#issuecomment-775885796 is probably a valid solution?

stale[bot] commented 1 year ago

Closing this issue as there was no update since my last update on issue. If this is an issue which is still valid, feel free to open it.

mann1x commented 6 months ago

Hi @Sheetalpamecha What would be needed to support the arm64 builds?