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/

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

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/

命令成功,我可以看到/proc/mounts

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.

我真的不知道如何诊断这个。如果我尝试手动创建一个文件,例如通过touchorecho >然后这将按预期工作。我已经四处寻找,试图弄清楚如何从 Minio 中查看日志,但结果却是空的。我注意到我的.minio-test目录包含一个config.json文件,其中包含以下看起来很有希望的片段:

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

但据我所知,我无法获得任何这些选项来实际输出任何日志。我确实发现了这个声称已修复的错误报告,但问题似乎仍然存在。

任何帮助,将不胜感激。

4

1 回答 1

2

minio-test-storage并且test.bucket应该在同一个 FS 设备上,当您使用 bindfs 时,会test.bucket更改 FS 的设备号,因为从FS 到FSrename的文件操作会失败。minio-test-storagetest.bucket

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

这将创建test.bucketbackend目录的符号链接,为您创建所需的效果。

于 2016-10-07T14:56:09.593 回答