Closed michael1589 closed 1 year ago
@michael1589 Thanks for reporting the issue, does it happen consistently? any information in fuse.out? could be some fuse dependencies issue
@LuQQiu
[root@alluxio-fuse-wzvx9 logs]# cat fuse.out
umount: /data/alluxio: not mounted
[root@alluxio-fuse-wzvx9 alluxio-2.9.1-SNAPSHOT-noUI-noHelm]# ls -lh /data/
ls: cannot access /data/alluxio: Input/output error
total 0
d????????? ? ? ? ? ? alluxio
drwxr-xr-x 2 root root 50 Mar 23 03:08 alluxio-domain
drwxr-xr-x 2 root root 6 Mar 13 07:58 clickhouse1
drwxr-xr-x 2 root root 6 Mar 13 07:58 clickhouse2
drwxr-xr-x 2 root root 6 Mar 13 07:58 clickhouse3
drwxr-xr-x 2 root root 6 Mar 13 07:58 efk-es1
drwxr-xr-x 2 root root 6 Mar 13 07:58 efk-es2
drwxr-xr-x 2 root root 6 Mar 13 07:58 efk-es3
drwxr-xr-x 3 root root 22 Mar 13 08:28 k8s
drwxr-xr-x 2 root root 6 Mar 13 07:58 kafka1
drwxr-xr-x 2 root root 6 Mar 13 07:58 kafka2
drwxrwsr-x 3 root root 24 Mar 13 08:40 kafka3
drwxr-xr-x 6 root root 66 Mar 13 08:13 minio1
drwxr-xr-x 2 root root 6 Mar 13 07:58 minio2
drwxr-xr-x 6 root root 66 Mar 20 07:32 minio3
drwxr-xr-x 2 root root 6 Mar 13 07:58 minio4
drwxr-xr-x 2 root root 6 Mar 13 07:58 minio5
drwxr-xr-x 6 root root 66 Mar 20 07:32 minio6
drwxr-xr-x 2 root root 6 Mar 13 07:58 zk1
drwxr-xr-x 2 root root 6 Mar 13 07:58 zk2
drwxrwsr-x 4 root root 30 Mar 13 08:39 zk3
drwxr-xr-x 2 root root 6 Mar 13 07:58 {alluxio-domain}
[root@alluxio-fuse-wzvx9 alluxio-2.9.1-SNAPSHOT-noUI-noHelm]# ls
LICENSE assembly bin client conf integration lib libexec logs underFSStorage
[root@alluxio-fuse-wzvx9 alluxio-2.9.1-SNAPSHOT-noUI-noHelm]# ./integration/fuse/bin/alluxio-fuse stat
pid mount_point alluxio_path
39103 /data/alluxio /
[root@alluxio-fuse-wzvx9 alluxio-2.9.1-SNAPSHOT-noUI-noHelm]# cd /data/alluxio
bash: cd: /data/alluxio: Input/output error
@LuQQiu Here's my compile procedure:
And at last I used https://github.com/Alluxio/alluxio/blob/release-2.9.0/integration/docker/Dockerfile as my dockerfile to generate alluxio image(Of course modified the alluxio-extractor stage).
Is this method OK to get alluxio image? And does alluxio support hybrid deploy with x86-64 and aarch64? Have you guys ever used libfuse.so on aarch64 before? The .so was generated here: https://github.com/alluxio/libfuse/tree/fuse_2_9_5_customize_multi_threads
I think the key is dynamic library here: https://github.com/Alluxio/alluxio/tree/master/integration/jnifuse/native/src/main/resources. There're only x86-64 version here. I have no idea why mine fails currently. They are recompiled on a aarch64 machine.
I also suggest that It's a good way to just keep libjnifuse code in the git repo instead of putting libjnifuse.so/libjnifuse3.so/libjnifuse.dylib in the repo. Doing this would be very convenient for cross compile. Need to make sure those dynamic libraries just generate in the integration/jnifuse/native/src/main/resources directory.
Yeah @michael1589 the current libfuse.so and libfuse3.so is pre-built in x86-64 and need recompile as the process you mention. Yeah it must has much better way of dealing with those dependencies e.g. dynamically build when needed.
For tarball & docker image, probably also need platform specific one, may be with a flag @ssz1997 any idea here?
@michael1589 Thanks for doing all the experiments. To answer your question, we don't fully support running Alluxio on ARM. We don't have the exact full picture but there're certain functionalities not working, for example, web UI.
Just to make sure, you ended up having two Alluxio images, one for ARM, one for x86-64, correct? I believe everything including Alluxio, libjnifuse, and libfuse must be compiled in different architectures? Otherwise I don't see any problem of your way getting the images.
@ssz1997 Yes, I built two Alluxio images, one for ARM64, one for x86-64. I have to build Alluxio, libjnifuse, and libfuse separately on ARM64 and x86-64 exactly as you said. I skipped webUI when compiling Alluxio on arm64. And changed a header file to fix the error when compiling Alluxio/libfuse fuse_2_9_5_customize_multi_threads branch.
@HelloHorizon FYI this issue is about running Alluxio Fuse on ARM
@ssz1997 @michael1589 we are not officially support ARM
@ssz1997 Very thanks for your kindly reply! I'll close this issue
@michael1589
@LuQQiu Here's my compile procedure:
- I compile libjnifuse on a aarch64 machine in a docker container, whose image was built from https://github.com/Alluxio/alluxio/blob/release-2.9.0/dev/jenkins/Dockerfile-jdk8. I saw fuse3, libfuse3-dev and libfuse-dev in that image.
- I replaced libjnifuse.so and libjnifuse3.so in this place: https://github.com/Alluxio/alluxio/blob/release-2.9.0/integration/jnifuse/native/src/main/resources/ as soon as get them from the above stage.
- Then I compile alluxio separately to get a tar-ball(on x86-64/aarch64 machines) Make sure x86-64 tar-ball uses libjnifuse.so/libjnifuse3.so originally in git repo and aarch64 tar-ball uses previously built libjnifuse.so and libjnifuse3.so
- And at last I used https://github.com/Alluxio/alluxio/blob/release-2.9.0/integration/docker/Dockerfile as my dockerfile to generate alluxio image(Of course modified the alluxio-extractor stage).
Is this method OK to get alluxio image? And does alluxio support hybrid deploy with x86-64 and aarch64? Have you guys ever used libfuse.so on aarch64 before? The .so was generated here: https://github.com/alluxio/libfuse/tree/fuse_2_9_5_customize_multi_threads
hi, i have some questions i'd like to ask.
Alluxio Version: Alluxio release-2.9.0(branch) Alluxio version: 2.9.1-SNAPSHOT-7ce08597a431686ebc0c2d45c2d152963179624e
Describe the bug I use 3 nodes k8s cluster to deploy alluxio cluster(1 alluxio master/3 alluxio worker/3 alluxio fuse). Those nodes contains 2 x86-64 machine and the other is aarch64. Alluxio fuse in x86-64 works fine but fails in aarch64. It seems that mount successfully but can not access.
To Reproduce Compile release-2.9.0 separately in amd64 and arm64, build the Dockerfile under integration/docker(modify alluxio-extractor stage by the arch)
Run command in a alluxio fuse pod:
The output is:
Expected behavior Both x86-64 and aarch64 can work.