s3fs挂载minio集群到本地目录

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


1. 前言

MinIO 是一款高性能的对象存储,与 Amazon S3 云存储服务兼容,并且号称是世界上最快的对象存储服务器。

近期,因业务需求,需要将minio集群挂载到k8s的worker节点本地目录,往里写数据,并且每个节点都能共享这些数据。示意图如下:

2. minio集群和负载搭建

minio集群及负载均衡搭建:两种MinIO分布式集群部署方式

搭建好后,在minio的Bucktes中创建一个名为“test”的bucket,用于挂载到客户端去,可创建几个测试文件查看挂载效果。

3. 客户端安装及挂载

3.1 客户端安装(在每一台k8s worker节点操作)

# yum install -y s3fs-fuse
# echo "admin:admin@minio" > $HOME/.passwd-s3fs  #minio的账号:密码
# chmod 600 $HOME/.passwd-s3fs
# mkdir /miniodata  #创建挂载点

ps:$HOME/.passwd-s3fs文件中,admin是minio的账号;admin@minio是minio的密码。就是在两种MinIO分布式集群部署方式中搭建minio集群run.sh中配置的环境变量参数。

3.2 客户端挂载(在每一台k8s worker节点操作)

# s3fs -o passwd_file=$HOME/.passwd-s3fs -o url=http://10.98.66.66:9000 -o allow_other -o nonempty -o no_check_certificate -o use_path_request_style -o umask=000 test /miniodata

挂载命令中参数解说(参数根据实际调整):

# url=http://10.98.66.66:9000:是两种MinIO分布式集群部署方式中负载均衡的IP和端口,如果在nginx的配置文件中servername用的是域名,url就换成域名;

# allow_other: 允许其它用户操作;

# nonempty:如果挂载点下有文件/目录,s3fs(挂载命令)无法挂载到挂载点目录(会报错:s3fs: MOUNTPOINT directory /miniodata is not empty. if you are sure this is safe, can use the 'nonempty' mount option.),可以使用该参数,指定非空挂载,挂载后,挂载点下原来的文件会被覆盖;

# no_check_certificate:不检测证书;

# use_path_request_style:是对还不支持 virtual-host 请求风格的对象存储而提供的参数,指定该参数会使用传统的 API 调用风格。阿里云 OSS 和七牛对象存储可能不需指定该参数。;

# umask=000:给定挂载目录权限为777;

# test:上一部分在minio创建的bucket;

# /miniodata:客户端创建的挂载点;

3.3 挂载验证

执行完挂载命令后,已经可以看到已经挂载成功了,test下的测试文件也能看到

查看/miniodata目录下的文件,和minio集群的test桶下文件一样,整个挂载就完成了:

 相关文章推荐:

对象存储MinIO的简介与部署

两种MinIO分布式集群部署方式

自定义一个对象【minio】

记录一次跨越16个月的minio版本升级与数据迁移

MinIO集群怎么接入Prometheus监控?(上)

MinIO集群怎么接入Prometheus监控?(下)