MinIO 文件服务器简单搭建
MinIO 分布式文件服务器本地安装Minio是一个对象存储服务器,在项目中可以用来存储文件,替代本地存储或者ftp存储的功能。docker 安装docker run --name minio -d -p 9000:9000 -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=12345678 -v /data:/dataminio/minio server
MinIO 文件服务器简单搭建
本地安装
Minio是一个对象存储服务器,在项目中可以用来存储文件,替代本地存储或者ftp存储的功能。
docker 安装
docker run --name minio -d -p 9000:9000 -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=12345678 -v /data:/data minio/minio server /data
linux 安装
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
在minio二进制文件位置
前台运行:
./minio server /data
后台运行:
./minio server /data >minilog.conf &
单机启动脚本
/opt/minio/minio 是你的minio 程序全路径
/opt/minio/file_img 是你要保存文件的路径
#!/bin/bash
export MINIO_ACCESS_KEY=Minio
export MINIO_SECRET_KEY=Test123456
nohup /opt/minio/minio server --address 0.0.0.0:9089 /opt/minio/file_img > /opt/minio/minio.log 2>&1 &
分布式集群
特别注意:minio分布式部署最少四个节点,也就是四台服务,因为minio特性 你的可用节点不能小于N/2
也就是说你如果使用四个节点(服务,不是硬盘哈)的话停掉两个节点之后,服务依然可用,当停掉三个后服务挂了,
如果你使用两个节点的话,挂掉一个服务直接凉,所以两个节点的没意义。 _
你可以先运行一下 run.sh 脚本看看是否正常
如果提示:-bash: ./run.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录 错误
使用 sed -i ‘s/\r$//’ run.sh 文件内容转码
脚本文件如果是从本地上传的linux 服务器的,注意文件编码,可以单独运行一下.sh文件试一下是否没有错误。
------------------- 》原文链接:https://www.centoscn.vip/1480.html
环境
[root@minio1 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
服务器
192.168.1.138
192.168.1.139
目录
本集群由2台服务器构成(官方推荐集群最小4台服务器),每个服务器上挂载两个磁盘目录,最小数据挂载点为4个
数据存储目录(两台机器都创建)
[root@minio1 ~]# mkdir -p /home/data1
[root@minio1 ~]# mkdir -p /home/data2
[root@minio2 ~]# mkdir -p /home/data1
[root@minio2 ~]# mkdir -p /home/data2
启动脚本目录
[root@minio1 ~]# mkdir -p /opt/minio
[root@minio2 ~]# mkdir -p /opt/minio
集群配置文件目录
[root@minio1 ~]# mkdir -p /etc/minio
[root@minio2 ~]# mkdir -p /etc/minio
编写集群启动脚本(所有节点配置文件相同)
[root@minio1 ~]# cat /opt/minio/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=Minio
export MINIO_SECRET_KEY=Test123456
/opt/minio/minio server --config-dir /etc/minio \
http://192.168.1.138/home/data1 http://192.168.1.138/home/data2 \
http://192.168.1.139/home/data1 http://192.168.1.139/home/data2 \
节点2
[root@minio2 ~]# cat /opt/minio/run.sh
这里是启动脚本
#!/bin/bash
export MINIO_ACCESS_KEY=Minio
export MINIO_SECRET_KEY=Test123456
/opt/minio/minio server --config-dir /etc/minio \
http://192.168.1.138/home/data1 http://192.168.1.138/home/data2 \
http://192.168.1.139/home/data1 http://192.168.1.139/home/data2 \
其中,“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败,“–config-dir”指定集群配置文件目录
编写服务脚本(所有节点)
[root@minio1 ~]# cat /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/opt/minio/
ExecStart=/opt/minio/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
节点2
[root@minio2 ~]# vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/opt/minio/
ExecStart=/opt/minio/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
添加脚本权限
[root@minio1 ~]# chmod +x /usr/lib/systemd/system/minio.service
[root@minio2 ~]# chmod +x /usr/lib/systemd/system/minio.service
启动测试
将minio上传到/opt/minio目录下并赋予权限
[root@minio1 ~]# cd /opt/minio/
//这里是直接服务器wget 下载 也可以官网直接下载二进制文件 拷贝进去直接就可以使用
[root@minio1 minio]# wget https://dl.minio.io/server/minio/release/linux-amd64/minio
[root@minio1 minio]# chmod +x minio
[root@minio1 minio]# chmod +x /opt/minio/run.sh
节点2
[root@minio2 ~]# cd /opt/minio/
[root@minio2 minio]# wget https://dl.minio.io/server/minio/release/linux-amd64/minio
[root@minio2 minio]# chmod +x minio
[root@minio2 minio]# chmod +x /opt/minio/run.sh
启动
[root@minio1 minio]# systemctl daemon-reload
[root@minio1 minio]# systemctl start minio
[root@minio1 minio]# systemctl enable minio
Created symlink from /etc/systemd/system/multi-user.target.wants/minio.service to /usr/lib/systemd/system/minio.service.
节点2
[root@minio2 minio]# systemctl daemon-reload
[root@minio2 minio]# systemctl start minio
[root@minio2 minio]# systemctl enable minio
Created symlink from /etc/systemd/system/multi-user.target.wants/minio.service to /usr/lib/systemd/system/minio.service.
测试
浏览器输入集群任意节点地址+9000端口,即可访问minio,用户名密码为前面设置的“MINIO_ACCESS_KEY”和“MINIO_SECRET_KEY”,可创建“bucket”并上传文件测试
http://192.168.1.138:9000/minio/login
创建完成之后在第一个minio所做的操作会自动同步到第二个minio上。
官方api文档上的全都是旧的,没卵用。
关于minio 文件服务器 java 的使用 请参见:https://blog.csdn.net/weixin_42563880/article/details/109490020
nginx 负载均衡配置:
upstream minio_server{
server 192.168.95.132:9000 weight=10;
server 192.168.95.131:9000 weight=5;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
client_max_body_size 20M;
charset utf-8;
location / {
proxy_set_header Host $http_host;
client_body_buffer_size 10M;
client_max_body_size 10G;
proxy_buffers 1024 4k;
proxy_read_timeout 300;
proxy_pass http://minio_server;
}
./nginx 启动nginx
systemctl 基本用法
1、启动服务
systemctl start *.service
2、停止服务
systemctl stop *.service
3、重启服务
systemctl restart *.service
脚本
一台服务器部署多个端口,模拟分布式脚本
#!/bin/bash
RUNNING_USER=root
MINIO_HOME=/opt/minio
MINIO_HOST=192.168.146.128
#accesskey and secretkey
ACCESS_KEY=minio
SECRET_KEY=minio123
for i in {01..04}; do
START_CMD="MINIO_ACCESS_KEY=${ACCESS_KEY} MINIO_SECRET_KEY=${SECRET_KEY} nohup ${MINIO_HOME}/minio server --address "${MINIO_HOST}:90${i}" http://${MINIO_HOST}:9001/opt/min-data1 http://${MINIO_HOST}:9002/opt/min-data2 http://${MINIO_HOST}:9003/opt/min-data3 http://${MINIO_HOST}:9004/opt/min-data4 > ${MINIO_HOME}/minio-90${i}.log 2>&1 &"
su - ${RUNNING_USER} -c "${START_CMD}"
done
两台服务器每条部署多个端口 模拟分布式部署
#!/bin/bash
RUNNING_USER=root
MINIO_HOME=/opt/minio
MINIO_HOST=192.168.146.130
MINIO_HOST2=192.168.146.131
#accesskey and secretkey
ACCESS_KEY=minio
SECRET_KEY=minio123
for i in {01..02}; do
START_CMD="MINIO_ACCESS_KEY=${ACCESS_KEY} MINIO_SECRET_KEY=${SECRET_KEY} nohup ${MINIO_HOME}/minio server --address "${MINIO_HOST2}:90${i}" http://${MINIO_HOST}:9001/opt/min-data1 http://${MINIO_HOST}:9002/opt/min-data2 http://${MINIO_HOST2}:9001/opt/min-data1 http://${MINIO_HOST2}:9002/opt/min-data2 > ${MINIO_HOME}/minio-90${i}.log 2>&1 &"
su - ${RUNNING_USER} -c "${START_CMD}"
done
更多推荐
所有评论(0)