https://docs.qq.com/doc/DT09OeFhFS2JndURm?no_promotion=1 问题
1、参考文献
【Linux】安装minio_minio安装linux-优快云博客
自己使用的版本
minio.RELEASE.2021-11-24T23-19-33Z 可以不用挂在物理磁盘
1、linux
cat /etc/redhat-release # 查看 AlmaLinux 版本
uname -m 查看架构
grep “physical id” /proc/cpuinfo | sort -u | wc -l 查看内核数量
grep MemTotal /proc/meminfo | awk ‘{print $2/1024 " MB"}’ 查看总内存
lsblk 磁盘的大小
2、创建
sudo mkdir -p /usr/minio/{bin,data1,data2,data3,data4}
sudo chmod -R 775 /usr/minio
sudo chmod +x /usr/minio/bin/minio
chown -R root:root /usr/minio/data*
chmod -R 755 /usr/minio/data* # 放宽权限确保可读写
防火墙放开端口
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --permanent --add-port=9001/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all 查看防火墙放开的端口
查看服务运行的日志
sudo journalctl -u minio -f
时钟同步
ntpstat 查看时间的同步
处理服务
sudo systemctl stop minio
sudo systemctl daemon-reload (服务配置文件有修改,需要重载)
sudo systemctl start minio
sudo systemctl status minio
SELinux 限制 放开
SELinux 限制(仅限 RHEL/CentOS):
临时关闭# 修复上下文
sudo setenforce 0
sudo restorecon -Rv /usr/minio/data*
查看目录实际占用空间
sudo du -sh /usr/minio/data*
MinIO 运行用户(ps aux | grep minio)
测试端口是否监听
netstat -tulnp | grep minio
tcp6 0 0 :::9000 ::😗 LISTEN 353517/minio.RELEAS
tcp6 0 0 :::9001 ::😗 LISTEN 353517/minio.RELEAS
创建挂载点目录
sudo mkdir -p /mnt/minio-bind/data{1…4}
绑定挂载(使 /usr/minio/dataX 看起来像独立设备)
for i in {1…4}; do
sudo mount --bind /usr/minio/datai/mnt/minio−bind/datai /mnt/minio-bind/datai/mnt/minio−bind/datai
done
持久化挂载(重启后仍然生效)
for i in {1…4}; do
echo “/usr/minio/datai/mnt/minio−bind/datai /mnt/minio-bind/datai/mnt/minio−bind/datai none bind 0 0” | sudo tee -a /etc/fstab
done
当前的部署
1、minio的bin和drives路径配置
/usr/minio/
drwxr-xr-x. 2 root root 48 Apr 2 14:43 bin
drwxr-xr-x. 4 root root 42 Apr 2 14:51 data1
drwxr-xr-x. 4 root root 42 Apr 2 14:51 data2
drwxr-xr-x. 4 root root 42 Apr 2 14:51 data3
drwxr-xr-x. 4 root root 42 Apr 2 14:51 data4
-rwxr-xr-x. 1 root root 188 Apr 1 20:19 minio.env
minio.env:
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
MINIO_OPTS=“–compat --address :9000 --console-address :9001”
MINIO_VOLUMES=“http://10.171.3.{22…25}/mnt/minio-bind/data{1…4}”
2、mnt/minio-bind/ 模拟挂在
3、drwxr-xr-x. 4 root root 42 Apr 2 14:51 data1
4、drwxr-xr-x. 4 root root 42 Apr 2 14:51 data2
5、drwxr-xr-x. 4 root root 42 Apr 2 14:51 data3
6、drwxr-xr-x. 4 root root 42 Apr 2 14:51 data4
3、服务配置
/etc/systemd/system/minio.service
[Unit]
Description=MinIO Object Storage
After=network.target
[Service]
Type=simple
EnvironmentFile=/usr/minio/minio.env
ExecStart=/usr/minio/bin/minio.RELEASE.2021-11-24T23-19-33Z server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
RestartSec=5s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
4、当前状态:
/usr/minio/data1 只是根目录下的普通目录,不是独立挂载点
MinIO 在分布式模式下要求每个存储路径最好是 独立物理磁盘的挂载点
风险提示:
所有数据将存储在根分区,可能导致:
磁盘 I/O 竞争
单点故障(如果根分区损坏,所有数据丢失)
无法利用 MinIO 的分布式存储优势
5、处理方式
绑定挂载(使 /usr/minio/dataX 看起来像独立设备)
for i in {1…4}; do
sudo mount --bind /usr/minio/datai/mnt/minio−bind/datai /mnt/minio-bind/datai/mnt/minio−bind/datai
done
持久化挂载(重启后仍然生效)
for i in {1…4}; do
echo “/usr/minio/datai/mnt/minio−bind/datai /mnt/minio-bind/datai/mnt/minio−bind/datai none bind 0 0” | sudo tee -a /etc/fstab
done
#设置开机重启
服务文件里面添加这两个
‘#’ 让systemd总是重启这个服务
Restart=always
‘#’ 禁用超时逻辑,等待进程停止
TimeoutStopSec=infinity
执行
sudo systemctl enable minio.service
生产的权限
- 添加富规则
假设指定的 IP 是 192.168.1.100,使用以下命令添加富规则,允许该 IP 访问 9000 和 9001 端口:
bash
sudo firewall-cmd --zone=public --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port port=“9000” protocol=“tcp” accept’
sudo firewall-cmd --zone=public --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port port=“9001” protocol=“tcp” accept’
如果有多个 IP 需要添加,可以重复上述命令,把 source address 替换成相应的 IP 地址。
2. 移除原有的端口开放规则
因为之前开放了所有 IP 对 9000 和 9001 端口的访问权限,为了确保只有指定 IP 能访问,需要移除这些规则:
bash
sudo firewall-cmd --zone=public --permanent --remove-port=9000/tcp
sudo firewall-cmd --zone=public --permanent --remove-port=9001/tcp
-
重新加载防火墙规则
执行以下命令使配置生效:
bash
sudo firewall-cmd --reload -
查看防火墙规则
可以使用以下命令查看当前防火墙规则,确认配置是否正确:
bash
sudo firewall-cmd --zone=public --list-all