MinIO 文件服务器简单搭建

以你之姓@ 2022-12-20 02:53 682阅读 0赞

MinIO 文件服务器简单搭建

本地安装

  1. Minio是一个对象存储服务器,在项目中可以用来存储文件,替代本地存储或者ftp存储的功能。
  2. docker 安装
  3. 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
  4. linux 安装
  5. wget https://dl.min.io/server/minio/release/linux-amd64/minio
  6. chmod +x minio
  7. minio二进制文件位置
  8. 前台运行:
  9. ./minio server /data
  10. 后台运行:
  11. ./minio server /data >minilog.conf &

单机启动脚本

/opt/minio/minio 是你的minio 程序全路径
/opt/minio/file_img 是你要保存文件的路径

  1. #!/bin/bash
  2. export MINIO_ACCESS_KEY=Minio
  3. export MINIO_SECRET_KEY=Test123456
  4. 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

  1. 环境
  2. [root@minio1 ~]# cat /etc/redhat-release
  3. CentOS Linux release 7.3.1611 (Core)
  4. 服务器
  5. 192.168.1.138
  6. 192.168.1.139
  7. 目录
  8. 本集群由2台服务器构成(官方推荐集群最小4台服务器),每个服务器上挂载两个磁盘目录,最小数据挂载点为4
  9. 数据存储目录(两台机器都创建)
  10. [root@minio1 ~]# mkdir -p /home/data1
  11. [root@minio1 ~]# mkdir -p /home/data2
  12. [root@minio2 ~]# mkdir -p /home/data1
  13. [root@minio2 ~]# mkdir -p /home/data2
  14. 启动脚本目录
  15. [root@minio1 ~]# mkdir -p /opt/minio
  16. [root@minio2 ~]# mkdir -p /opt/minio
  17. 集群配置文件目录
  18. [root@minio1 ~]# mkdir -p /etc/minio
  19. [root@minio2 ~]# mkdir -p /etc/minio
  20. 编写集群启动脚本(所有节点配置文件相同)
  21. [root@minio1 ~]# cat /opt/minio/run.sh
  22. #!/bin/bash
  23. export MINIO_ACCESS_KEY=Minio
  24. export MINIO_SECRET_KEY=Test123456
  25. /opt/minio/minio server --config-dir /etc/minio \
  26. http://192.168.1.138/home/data1 http://192.168.1.138/home/data2 \
  27. http://192.168.1.139/home/data1 http://192.168.1.139/home/data2 \
  28. 节点2
  29. [root@minio2 ~]# cat /opt/minio/run.sh
  30. 这里是启动脚本
  31. #!/bin/bash
  32. export MINIO_ACCESS_KEY=Minio
  33. export MINIO_SECRET_KEY=Test123456
  34. /opt/minio/minio server --config-dir /etc/minio \
  35. http://192.168.1.138/home/data1 http://192.168.1.138/home/data2 \
  36. http://192.168.1.139/home/data1 http://192.168.1.139/home/data2 \
  37. 其中,“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败,“–config-dir”指定集群配置文件目录
  38. 编写服务脚本(所有节点)
  39. [root@minio1 ~]# cat /usr/lib/systemd/system/minio.service
  40. [Unit]
  41. Description=Minio service
  42. Documentation=https://docs.minio.io/
  43. [Service]
  44. WorkingDirectory=/opt/minio/
  45. ExecStart=/opt/minio/run.sh
  46. Restart=on-failure
  47. RestartSec=5
  48. [Install]
  49. WantedBy=multi-user.target
  50. 节点2
  51. [root@minio2 ~]# vim /usr/lib/systemd/system/minio.service
  52. [Unit]
  53. Description=Minio service
  54. Documentation=https://docs.minio.io/
  55. [Service]
  56. WorkingDirectory=/opt/minio/
  57. ExecStart=/opt/minio/run.sh
  58. Restart=on-failure
  59. RestartSec=5
  60. [Install]
  61. WantedBy=multi-user.target
  62. 添加脚本权限
  63. [root@minio1 ~]# chmod +x /usr/lib/systemd/system/minio.service
  64. [root@minio2 ~]# chmod +x /usr/lib/systemd/system/minio.service
  65. 启动测试
  66. minio上传到/opt/minio目录下并赋予权限
  67. [root@minio1 ~]# cd /opt/minio/
  68. //这里是直接服务器wget 下载 也可以官网直接下载二进制文件 拷贝进去直接就可以使用
  69. [root@minio1 minio]# wget https://dl.minio.io/server/minio/release/linux-amd64/minio
  70. [root@minio1 minio]# chmod +x minio
  71. [root@minio1 minio]# chmod +x /opt/minio/run.sh
  72. 节点2
  73. [root@minio2 ~]# cd /opt/minio/
  74. [root@minio2 minio]# wget https://dl.minio.io/server/minio/release/linux-amd64/minio
  75. [root@minio2 minio]# chmod +x minio
  76. [root@minio2 minio]# chmod +x /opt/minio/run.sh
  77. 启动
  78. [root@minio1 minio]# systemctl daemon-reload
  79. [root@minio1 minio]# systemctl start minio
  80. [root@minio1 minio]# systemctl enable minio
  81. Created symlink from /etc/systemd/system/multi-user.target.wants/minio.service to /usr/lib/systemd/system/minio.service.
  82. 节点2
  83. [root@minio2 minio]# systemctl daemon-reload
  84. [root@minio2 minio]# systemctl start minio
  85. [root@minio2 minio]# systemctl enable minio
  86. Created symlink from /etc/systemd/system/multi-user.target.wants/minio.service to /usr/lib/systemd/system/minio.service.
  87. 测试
  88. 浏览器输入集群任意节点地址+9000端口,即可访问minio,用户名密码为前面设置的“MINIO_ACCESS_KEY”和“MINIO_SECRET_KEY”,可创建“bucket”并上传文件测试
  89. http://192.168.1.138:9000/minio/login

创建完成之后在第一个minio所做的操作会自动同步到第二个minio上。

官方api文档上的全都是旧的,没卵用。
关于minio 文件服务器 java 的使用 请参见:https://blog.csdn.net/weixin\_42563880/article/details/109490020

nginx 负载均衡配置:

  1. upstream minio_server{
  2. server 192.168.95.132:9000 weight=10;
  3. server 192.168.95.131:9000 weight=5;
  4. }
  5. server {
  6. listen 80;
  7. server_name localhost;
  8. #charset koi8-r;
  9. #access_log logs/host.access.log main;
  10. client_max_body_size 20M;
  11. charset utf-8;
  12. location / {
  13. proxy_set_header Host $http_host;
  14. client_body_buffer_size 10M;
  15. client_max_body_size 10G;
  16. proxy_buffers 1024 4k;
  17. proxy_read_timeout 300;
  18. proxy_pass http://minio_server;
  19. }

./nginx 启动nginx

systemctl 基本用法

  1. 1、启动服务
  2. systemctl start *.service
  3. 2、停止服务
  4. systemctl stop *.service
  5. 3、重启服务
  6. systemctl restart *.service

脚本

一台服务器部署多个端口,模拟分布式脚本

  1. #!/bin/bash
  2. RUNNING_USER=root
  3. MINIO_HOME=/opt/minio
  4. MINIO_HOST=192.168.146.128
  5. #accesskey and secretkey
  6. ACCESS_KEY=minio
  7. SECRET_KEY=minio123
  8. for i in { 01..04}; do
  9. 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 &"
  10. su - ${ RUNNING_USER} -c "${START_CMD}"
  11. done

两台服务器每条部署多个端口 模拟分布式部署

  1. #!/bin/bash
  2. RUNNING_USER=root
  3. MINIO_HOME=/opt/minio
  4. MINIO_HOST=192.168.146.130
  5. MINIO_HOST2=192.168.146.131
  6. #accesskey and secretkey
  7. ACCESS_KEY=minio
  8. SECRET_KEY=minio123
  9. for i in { 01..02}; do
  10. 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 &"
  11. su - ${ RUNNING_USER} -c "${START_CMD}"
  12. done

发表评论

表情:
评论列表 (有 0 条评论,682人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker MinIO

    MinIO简介 MinIO 是一个非常轻量的服务,基于Go语言的高性能对象存储服务,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜