Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu 如何使用Minio作为BindFS挂载的前端 介绍_Ubuntu_Amazon S3_Ubuntu 16.04_Fuse_Minio - Fatal编程技术网

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

Ubuntu 如何使用Minio作为BindFS挂载的前端 介绍,ubuntu,amazon-s3,ubuntu-16.04,fuse,minio,Ubuntu,Amazon S3,Ubuntu 16.04,Fuse,Minio,我正在使用Ubuntu16.04,并试图运行一个Minio实例,其中的bucket内容通过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

我正在使用Ubuntu16.04,并试图运行一个Minio实例,其中的bucket内容通过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
我现在可以很高兴地访问Minio浏览器,使用提供的凭据登录,创建bucket,并上载文件:

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

1 directory, 2 files
如果我使用BindFS将Minio bucket连接到后端存储,那么:

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\u allow\u 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.
我真的不知道如何诊断这个。如果我尝试手动创建文件,例如通过
触摸
回音>
创建文件,则此操作将按预期工作。我已经四处寻找,试图找出如何从Minio中查看日志,但结果却是空的。我注意到我的
.minio test
目录包含一个
config.json
文件,其中包含以下看起来很有希望的代码片段:

"logger": {
            "console": {
                    "enable": true,
                    "level": "fatal"
            },
            "file": {
                    "enable": false,
                    "fileName": "",
                    "level": ""
            },
            "syslog": {
                    "enable": false,
                    "address": "",
                    "level": ""
            }
    }
但据我所知,我无法获得任何这些选项来实际输出任何日志。我确实找到了哪些声明已经修复,但问题似乎仍然存在


任何帮助都将不胜感激。

minio test storage
test。bucket
应位于同一FS设备上,当您使用bindfs时,
test.bucket
的FS的设备号会发生变化,这是因为
minio test storage
FS到
test.bucket
FS的文件的
rename
等操作失败

您可以做的是:
ln-s后端minio测试存储/测试.bucket


这将创建
test.bucket
作为指向
后端
目录的符号链接,从而为您创建所需的效果。

谢谢您的回答!星期一早上我可以试试这个,到时我再报告。谢谢你的回答。不幸的是,出于我的目的,我需要能够使用BindFS。我尝试了一个设置,通过BindFS将
后端
链接到一个新的
后端虚拟
目录,然后按照您的建议将
后端虚拟
连接到
minio test storage/test.bucket
,通过
ln-s backend minio test storage/test.bucket
。不幸的是,我收到了与以前相同的错误消息。我已经用S3Server而不是Minio运行了一个快速测试,我的用例看起来运行得很好,不需要使用符号链接。好的,导出目录和bucket目录应该在同一个设备上,Minio才能工作。发生的是有一个名为
.minio.sys
的目录,在将上载的对象重命名到实际位置之前,会将其临时放置在目录中。如果
.minio.sys
位于与
bucket
目录不同的设备上,则此重命名将失败。是的,我对此进行了多次尝试,并意识到情况就是这样。有办法解决这个问题吗?我知道在Linux中,如果重命名失败,
mv
命令会返回到执行复制/删除操作,这解释了为什么我能够在
.minio.sys/tmp
test.bucket
之间手动移动东西。我在这里运气不好吗?@RobGwynn Jones你可以在提供这个所谓的链接作为参考时提出一个问题,但基本上对此无能为力。但是如果你能在这个问题上解释你想要达到的目标,也许我们可以找到解决办法。