首页 文章

如何使用Minio作为BindFS挂载的前端

提问于
浏览
1

简介

我正在使用Ubuntu 16.04,并试图运行一个带有桶的Minio实例,其内容通过BindFS挂载公开 . 我的后端目录结构如下所示:

ubuntu@ubuntu:~$ ll minio_test_dir/
total 20
drwxrwxr-x  5 ubuntu ubuntu 4096 Oct  7 14:02 ./
drwxr-xr-x 33 ubuntu ubuntu 4096 Oct  7 14:01 ../
drwxrwxr-x  2 ubuntu ubuntu 4096 Oct  7 14:02 backend/
drwx------  3 ubuntu ubuntu 4096 Oct  7 14:02 .minio-test/
drwxrwxr-x  2 ubuntu ubuntu 4096 Oct  7 14:02 minio-test-storage/

其中 backend 代表我的远程存储,只是一个普通的目录:

ubuntu@ubuntu:~$ ll minio_test_dir/backend/
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Oct  7 14:02 ./
drwxrwxr-x 5 ubuntu ubuntu 4096 Oct  7 14:02 ../

我使用以下命令启动Minio:

ubuntu@ubuntu:~/minio_test_dir$ ~/minio -C ./.minio-test server --address ":9002" minio-test-storage

Endpoint:  http://192.168.0.107:9002  http://127.0.0.1:9002  http://10.0.3.1:9002
AccessKey: 9DSOXCX63U3CGOJ3LWO3 
SecretKey: pEGNthXl5sQLz2L10dX63bBNBMB2SXSpd4CDj44A 
Region:    us-east-1
SqsARNs: 

Browser Access:
   http://192.168.0.107:9002  http://127.0.0.1:9002  http://10.0.3.1:9002

Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
   $ mc config host add myminio http://192.168.0.107:9002 9DSOXCX63U3CGOJ3LWO3 pEGNthXl5sQLz2L10dX63bBNBMB2SXSpd4CDj44A

Object API (Amazon S3 compatible):
   Go:         https://docs.minio.io/docs/golang-client-quickstart-guide
   Java:       https://docs.minio.io/docs/java-client-quickstart-guide
   Python:     https://docs.minio.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide

我现在可以很高兴访问http://192.168.0.107:9002的Minio浏览器,使用提供的凭据登录,创建存储桶并上传文件:

ubuntu@ubuntu:~/minio_test_dir$ tree minio-test-storage/
minio-test-storage/
└── test.bucket
    ├── aaa.txt
    └── bbb.txt

1 directory, 2 files

如果我使用BindFS将我的Minio存储桶连接到我的后端存储,那么:

ubuntu@ubuntu:~/minio_test_dir$ bindfs backend/ minio-test-storage/test.bucket/

命令成功,我可以在_2371922中看到:

bindfs /home/ubuntu/minio_test_dir/minio-test-storage/test.bucket fuse.bindfs rw,nosuid,nodev,relatime,user_id=1000,group_id=1000,default_permissions,allow_other 0 0

请注意,在 /etc/fuse.conf 中,我有 user_allow_other 取消注释 .

问题

一旦安装了BindFS,我就无法再通过Minio浏览器上传文件了 . 打开Javascript控制台,我看到以下错误:

PUT http://192.168.0.107:9002/minio/upload/test.bucket/test-upload.txt 500 (Internal Server Error)

在“网络”选项卡中收到以下响应:

We encountered an internal error, please try again.

我真的不知道如何诊断这个 . 如果我尝试手动创建文件,例如通过 touchecho > 然后按预期工作 . 我已经看了很多,试图弄清楚如何从Minio看到日志并且空出来了 . 我注意到我的 .minio-test 目录包含一个 config.json 文件,其中包含以下看似有希望的片段:

"logger": {
            "console": {
                    "enable": true,
                    "level": "fatal"
            },
            "file": {
                    "enable": false,
                    "fileName": "",
                    "level": ""
            },
            "syslog": {
                    "enable": false,
                    "address": "",
                    "level": ""
            }
    }

但据我所知,我无法获得任何这些选项来实际输出任何日志 . 我确实发现this bug report声称已经修复,但问题似乎仍然存在 .

任何帮助,将不胜感激 .

1 回答

  • 2

    minio-test-storagetest.bucket 应该属于同一个FS设备,当您使用bindfs时, test.bucket 的FS的设备号会发生变化,因为 minio-test-storage FS到 test.bucket FS等文件的操作失败 .

    你能做的是: ln -s backend minio-test-storage/test.bucket

    这会创建 test.bucket 作为 backend 目录的符号链接,为您创建所需的效果 .

相关问题