基于MinIO打造高可靠分布式“本地”文件系统

MinIO是一款高性能的对象存储服务,而S3协议是由亚马逊Web服务(AWS)制定的一种标准协议,用于云存储服务之间的数据交换。MinIO与S3协议的关系在于,MinIO实现了S3协议的接口,这意味着用户可以使用与AWS S3相同的API来与MinIO进行交互。因此,MinIO能够与支持S3协议的各种工具和应用程序兼容,为用户提供一个与AWS S3高度兼容的存储解决方案。

基于S3协议的对象存储服务具有以下优势:首先,它提供了高度可扩展的存储解决方案,能够容纳海量数据,并且易于水平扩展。其次,S3协议的对象存储支持restful API,便于应用集成。此外,它还具备高可用性和持久性,确保数据安全可靠。最后,基于S3协议的对象存储服务成本较低,用户只需按实际使用量付费,无需前期投资大量硬件设备。


Linux 安装步骤
Minio 下载文件安装
1、下载地址

powershell 复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/minio

2、修改文件执行权限

powershell 复制代码
chmod +x minio

3、启动,随机端口启动

powershell 复制代码
./minio server /data/miniodata
# 或者指定密码执行
MINIO_ACCESS_KEY=myminioadmin MINIO_SECRET_KEY=myminioadmin ./minio server /data/miniodata
# 指定密码,配置文件地址,数据存放地址启动
MINIO_ACCESS_KEY=myminioadmin MINIO_SECRET_KEY=myminioadmin ./minio server --config-dir /config/minio/config /data/miniodata

注意:以上启动方式端口是随机的,需要开放随机端口才可以访问

4、指定端口启动

控制台监听端口是动态生成的,可以通过--console-address ":port"指定静态端口

powershell 复制代码
./minio server --console-address ":9000" /data/miniodata

5、防火墙查看

powershell 复制代码
# 查看防火墙状态1
systemctl status firewalld 或者 systemctl status firewalld.service
# 查看防火墙状态2
firewall-cmd --state
# 开启/关闭/重启防火墙
systemctl start/stop/restart firewalld

# firewall防火墙,查询端口是否开放
firewall-cmd --query-port=9000/tcp
# 开放9000端口
firewall-cmd --permanent --add-port=9000/tcp
# 移除端口
firewall-cmd --permanent --remove-port=9000/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 查看防火墙所有端口
firewall-cmd --zone=public --list-ports

6、后台启动,指定输出日志文件

powershell 复制代码
nohup ./minio server /data/miniodata --config-dir /config/minio/config --console-address ":80" --address ":9000" > /data/miniodata/minio.log 2>&1 &

7、修改密码,执行完修改密码命令,在执行第6步

powershell 复制代码
export MINIO_ACCESS_KEY=admin 
export MINIO_SECRET_KEY=admin123

补充说明

powershell 复制代码
# 数据存放地址
/data/miniodata
# minio 配置放地址
--config-dir /config/minio/config
# 浏览器访问暴露端口
--console-address ":80"
# 内网访问地址端口
--address ":9000"
# 日志存放地址
/data/miniodata/minio.log

S3FS是一个开源的文件系统,它允许用户将Amazon S3(Simple Storage Service)存储桶挂载到本地文件系统中,使得用户可以像操作本地文件一样读写S3中的数据,无需改变现有的应用程序代码或工具。通过S3FS,用户能够在不牺牲S3的持久性和可用性的同时,享受到无缝的文件存储体验。

powershell 复制代码
# 安装启用 EPEL 仓库
yum install epel-release -y
# 安装 s3fs
yum install s3fs-fuse -y
# 查看 s3fs 版本,确定是否成功安装
s3fs --version
powershell 复制代码
cat > /etc/passwd-s3fs <<-'EOF'
root:12345678
EOF
chmod 600 /etc/passwd-s3fs
mkdir -p /mnt/volumes
s3fs volumes /mnt/volumes -o passwd_file=/etc/passwd-s3fs -o url=http://192.168.31.230:9000 -o use_path_request_style
powershell 复制代码
[root@localhost s3fs-fuse]# cat > /etc/passwd-s3fs <<-'EOF'
> root:12345678
> EOF
[root@localhost s3fs-fuse]# chmod 600 /etc/passwd-s3fs
[root@localhost s3fs-fuse]# mkdir -p /mnt/volumes
[root@localhost s3fs-fuse]# s3fs volumes /mnt/volumes -o passwd_file=/etc/passwd-s3fs -o url=http://192.168.31.230:9000 -o use_path_request_style
[root@localhost s3fs-fuse]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 7.8G     0  7.8G    0% /dev
tmpfs                    7.8G     0  7.8G    0% /dev/shm
tmpfs                    7.8G   12M  7.8G    1% /run
tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root   37G   20G   18G   53% /
/dev/sda1               1014M  152M  863M   15% /boot
overlay                   37G   20G   18G   53% /var/lib/docker/overlay2/fed98c3a97bc3e29e555d9fb1694fe2caf9b7a9da8ae12b5dd0c056a671ce7e5/merged
overlay                   37G   20G   18G   53% /var/lib/docker/overlay2/1fbde6ceca8835769d17ee70757842fce2fb74f2af5c0fea0dc3f5788915d305/merged
tmpfs                    1.6G     0  1.6G    0% /run/user/0
overlay                   37G   20G   18G   53% /var/lib/docker/overlay2/d5d5bfb9250d988dd0b65e7053acb7049a20dcea364508918a3d78f34485ed1b/merged
s3fs                      64P     0   64P    0% /mnt/volumes
powershell 复制代码
[root@localhost s3fs-fuse]# cd /mnt/volumes/
[root@localhost volumes]# cat > index.html <<-'EOF'
> ABC
> EOF

卸载挂载目录

powershell 复制代码
yum remove s3fs-fuse -y
powershell 复制代码
umount /mnt/volumes
#强制卸载
umount /mnt/volumes

调试挂载信息,排查异常

powershell 复制代码
# 在挂载命令后增加几个参数 -d -f -o f2 -o curldbg 即可
# -d:启用调试模式。该选项会输出更详细的调试信息,用于故障排除和调试目的。
# -f:以前台模式运行。通常,s3fs 在后台运行并将挂载的 S3 存储桶映射到本地目录。使用 -f 选项,s3fs 将在前台运行,并将输出信息打印到终端。
# -o f2:指定文件系统选项 "f2"。这个选项是 s3fs 的一个特殊选项,用于启用 FUSE 文件系统的第二代实现。它可用于提供更高的性能和可靠性。
# -o curldbg:启用 cURL 调试输出。cURL 是 s3fs 使用的底层工具之一,用于与 S3 存储桶进行通信。启用 -o curldbg 选项会输出关于 cURL 请求和响应的详细调试信息,用于诊断和分析与 S3 存储桶的通信问题。
s3fs s3-bucket /mnt/minio/s3-bucket -o passwd_file=/etc/passwd-s3fs -o url=http://192.168.198.144:9000 -o use_path_request_style -d -f -o f2 -o curldbg


开机启动自动挂载

powershell 复制代码
# 编辑配置文件
vi /etc/fstab
# 查看配置文件
cat /etc/fstab
相关推荐
躺不平的理查德6 小时前
General Spark Operations(Spark 基础操作)
大数据·分布式·spark
talle20216 小时前
Zeppelin在spark环境导出dataframe
大数据·分布式·spark
渣渣盟7 小时前
大数据开发环境的安装,配置(Hadoop)
大数据·hadoop·分布式
Angindem7 小时前
SpringClound 微服务分布式Nacos学习笔记
分布式·学习·微服务
龙仔72516 小时前
离线安装rabbitmq全流程
分布式·rabbitmq·ruby
〆、风神18 小时前
Spring Boot 整合 Lock4j + Redisson 实现分布式锁实战
spring boot·分布式·后端
胡萝卜糊了Ohh19 小时前
kafka
分布式·kafka
桑榆080621 小时前
Spark-Streaming核心编程
大数据·分布式·spark
nbsaas-boot1 天前
分布式微服务架构,数据库连接池设计策略
分布式·微服务·架构