我正在使用Ubuntu 16.04,并试图运行一个带有存储桶的内容通过BindFS挂载公开的存储桶的Minio实例。我的后端目录结构如下所示:
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/
命令成功,我可以在/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.
我真的不知道如何诊断这个。如果我尝试手动创建文件,例如通过touch
或echo >
然后按预期工作。我已经看了很多,试图弄清楚如何从Minio看到日志并且空出来了。我注意到我的.minio-test
目录包含一个config.json
文件,其中包含以下有希望的代码片段:
"logger": {
"console": {
"enable": true,
"level": "fatal"
},
"file": {
"enable": false,
"fileName": "",
"level": ""
},
"syslog": {
"enable": false,
"address": "",
"level": ""
}
}
但据我所知,我无法获得任何这些选项来实际输出任何日志。我确实找到了声称已修复的this bug report,但问题似乎仍然存在。
任何帮助都将不胜感激。
答案 0 :(得分:2)
minio-test-storage
和test.bucket
应该属于同一个FS设备,当您使用bindfs时,test.bucket
的FS的设备号会因rename
之类的操作而发生变化从minio-test-storage
FS到test.bucket
FS的文件失败。
你能做的是:
ln -s backend minio-test-storage/test.bucket
这会创建test.bucket
作为backend
目录的符号链接,为您创建所需的效果。