百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

二、minio安装、使用

bigegpt 2024-08-11 14:15 9 浏览

1、linux下单机部署

①、基于centos7

操作系统

CPU架构

地址

GUN/Linux

64-bit Intel

http://dl.minio.org.cn/server/minio/release/linux-amd64/mini

o

//在安装minio的目录下执行下载命令
wget -q http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
//地址似乎变了
wget https://dl.min.io/server/minio/release/linux-amd64/minio
//赋予下载后的minio文件可执行的权限
chmod +x minio
//启动minio server 服务,指定数据存储目录 /mnt/data
./minio server /mnt/data

执行完成之后会有如下界面,使用Console后的路径即可访问客户端,API则需要访问API后面的路径,红色的提示意思是客户端的端口是动态的,也可以设置为静态的。同时也会有默认账号密码的提示

默认用户名密码minioadmin:minioadmin,修改默认用户名密码可以使用:

//设置账号
export MINIO_ROOT_USER=admin
//设置密码
export MINIO_ROOT_PASSWORD=12345678
//ubuntu系统可能要这样设置
sudo MINIO_ROOT_USER=minio MINIO_ROOT_PASSWORD=minio#2022@ ./minio server /mnt/data --console-address ":9011"

默认的配置目录是${HOME}/.minio,可以通过--config-dir命令自定义配置目录:

./minio server --config-dir /mnt/config /mnt/data

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

./minio server --console-address ":50000" /mnt/data

修改密码和设置静态端口后

设置完成后就可以登录客户端进行操作了

单机情况下,上传成功的文件就会出现在我们指定的文件夹中,并且是源文件,没有纠删码EC的概念的,存在单点故障问题

②、基于docker

docker中是有minio的镜像的,如果不拉取的话可以直接运行命令,会自动拉取镜像

docker run -d -p 9000:9000 -p 9001:9001 --name minio \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=12345678" \
//挂载,把宿主机的/opt/minio/data 映射到容器的/data
-v /opt/run/data:/data \
-v /opt//minio/config:/root/.minio \
// /data应该是容器内的目录
minio/minio server --console-address ":9001" /data

也可以先pull下来,在运行,都可以的

git pull minio/minio

③、使用docker,在多个盘中启动minio服务

docker run -d -p 9000:9000 -p 9001:9001 --name minio \
-v /opt/minio/data1:/data1 \
-v /opt/minio/data2:/data2 \
-v /opt/minio/data3:/data3 \
-v /opt/minio/data4:/data4 \
-v /opt/minio/data5:/data5 \
-v /opt/minio/data6:/data6 \
minio/minio server /data{1...8} --console-address ":9001"

2、linux下运行分布式minio

①、前提

启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。

  • 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。新版本使用MINIO_ROOT_USER&MINIO_ROOT_PASSWORD。
  • 分布式Minio使用的磁盘里必须是干净的,里面没有数据。
  • 下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。
  • 分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
  • 在Windows下运行分布式Minio处于实验阶段,请悠着点使用

②、运行

八个节点,每个节点一块盘

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server http://192.168.175.131/opt/minio/data \
http://192.168.175.132/opt/minio/data \
http://192.168.175.133/opt/minio/data \
http://192.168.175.134/opt/minio/data \
http://192.168.175.135/opt/minio/data \
http://192.168.175.136/opt/minio/data \
http://192.168.175.137/opt/minio/data \
http://192.168.175.138/opt/minio/data \

两个节点,每个节点四块盘

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server http://192.168.175.131/opt/minio/data1 \
http://192.168.175.131/opt/minio/data2 \
http://192.168.175.131/opt/minio/data3 \
http://192.168.175.131/opt/minio/data4 \
http://192.168.175.132/opt/minio/data1 \
http://192.168.175.132/opt/minio/data2 \
http://192.168.175.132/opt/minio/data3 \
http://192.168.175.132/opt/minio/data4 \

通过脚本的方式启动

或者

每个节点都执行一遍即可

3、使用Docker Compose部署minio

https://docs.min.io/docs/deploy-minio-on-docker-compose.html

要在Docker Compose上部署分布式MinIO,请下载docker-compose.yamlnginx.conf到你当前的工 作目录。

docker-compose pull
docker-compose up

4、扩展现有的分布式集群

例如我们是通过区的方式启动MinIO集群,命令行如下:

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server http://host{1...32}/export{1...32}

MinIO支持通过命令,指定新的集群来扩展现有集群(纠删码模式),命令行如下:

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server http://host{1...32}/export{1...32}
http://host{33...64}/export{1...32}

现在整个集群就扩展了1024个磁盘,总磁盘变为2048个,新的对象上传请求会自动分配到最少使用的集群上。通过以上扩展策略,您就可以按需扩展您的集群。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响。如上命令中,我们可以把原来的集群看做一个区,新增集群看做另一个区,新对象按每个区域中的可用空间比例放置在区域中。在每个区域内,基于确定性哈希算法确定位置。

说明: 您添加的每个区域必须具有与原始区域相同的磁盘数量(纠删码集)大小,以便维持相同的 数据冗余SLA。 例如,第一个区有8个磁盘,您可以将集群扩展为16个、32个或1024个磁盘的区域,您只需确保部署的SLA是原始区域的倍数即可。

5、基于ngnix实现loadbalancer负载均衡

upstream minio {
server 192.168.3.14:9001;
server 192.168.3.14:9002;
server 192.168.3.14:9003;
server 192.168.3.14:9004;
}
upstream console {
ip_hash;
server 192.168.3.14:50001;
server 192.168.3.14:50002;
server 192.168.3.14:50003;
server 192.168.3.14:50004;
}
server {
listen 9000;
listen [::]:9000;
server_name localhost;
# To allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# To disable buffering
proxy_buffering off;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://minio;
}
}
server {
listen 50000; listen [::]:50000; server_name localhost; # To allow special characters in headers ignore_invalid_headers off; # Allow any size file to be uploaded. # Set to a value such as 1000m; to restrict file size to a specific value client_max_body_size 0; # To disable buffering proxy_buffering off; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-NginX-Proxy true; proxy_connect_timeout 300; # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 proxy_http_version 1.1; proxy_set_header Connection ""; chunked_transfer_encoding off; proxy_pass http://console; } }

6、minio配置开机自启

①、创建minio.conf配置文件,写入要配置的内容

eg:

如果需要其他配置可自行添加

MINIO_VOLUMES="/opt/minio/data"
MINIO_OPTS="--console-address :9011"
MINIO_ROOT_USER="minio"
MINIO_ROOT_PASSWORD="Yh#@2022"

②、创建/opt/minio/data数据本地挂载文件

也可以创建到其他位置

③、添加自启动系统配置文件minio.service

切换到/etc/systemd/system目录下

创建minio.servicee文件

写入如下内容

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
#minio文件具体位置
AssertFileIsExecutable=/opt/minio/minio
[Service]
# User and group 用户 组
User=root
Group=root
#创建的配置文件 minio.conf
EnvironmentFile=/opt/minio/minio.conf
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target

④、自启相关命令

#将服务设置为每次开机启动
systemctl enable minio.service
#重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载
systemctl daemon-reload
#启动服务
systemctl start minio
#停止服务
systemctl stop minio
#重启服务
systemctl restrat minio
#查看服务状态
systemctl status minio.service


部分取自图灵课堂

相关推荐

5分钟搭建公网https网页文件服务器,免费权威TLS证书

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习前言本文主要讲解如何快速搭建一个https网页文件服务器,并免费申请权威机构颁发的tls证...

nginx负载均衡配置(nginx负载均衡配置两个程序副本)

Nginx是什么没有听过Nginx?那么一定听过它的“同行”Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(UniformResources...

19《Nginx 入门教程》Nginx综合实践

今天我们将基于Nginx完成两个比较有用的场景,但是用到的Nginx的配置非常简单。内部Yum源搭建内部Pip源搭建1.实验环境ceph1centos7.6内网ip:172.16....

Nginx性能调优与优化指南(nginx优化配置大全)

Nginx性能调优需要结合服务器硬件资源、业务场景和负载特征进行针对性优化。以下是一些关键优化方向和具体配置示例:一、Nginx配置优化1.进程与连接数优化nginxworker_process...

C++后端开发必须彻底搞懂Nginx,从原理到实战(高级篇)

本文为Nginx实操高级篇。通过配置Nginx配置文件,实现正向代理、反向代理、负载均衡、Nginx缓存、动静分离和高可用Nginx6种功能,并对Nginx的原理作进一步的解析。当需...

【Nginx】史上最全的Nginx配置详解

Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里,http块又包括http全局块和server块。Nginx是非常重要的负载均衡中间件,被广泛应用于大型...

【Nginx】Nginx 4种常见配置实例(nginx基本配置与参数说明)

本文主要介绍nginx4种常见的配置实例。Nginx实现反向代理;Nginx实现负载均衡;Nginx实现动静分离;Nginx实现高可用集群;Nginx4种常见配置实例如下:一、Nginx反向代理配...

使用nginx+allure管理自动化测试报告

allure在自动化测试中经常用来生成漂亮的报告,但是网上及官网上给出的例子都仅仅是针对单个测试用例文件的形式介绍的,实际使用中,自动化测试往往需要包含不止一个产品或项目,本文介绍如何使用nginx+...

nginx配置文件详解(nginx配置文件详解高清版)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

SpringCloud Eureka-服务注册与发现

1.Eureka介绍1.1学习Eureka前的说明目前主流的服务注册&发现的组件是Nacos,但是Eureka作为老牌经典的服务注册&发现技术还是有必要学习一下,原因:(1)一些早期的分布式微服...

微服务 Spring Cloud 实战 Eureka+Gateway+Feign+Hystrix

前言我所在项目组刚接到一个微服务改造需求,技术选型为SpringCloud,具体需求是把部分项目使用SpringCloud技术进行重构。本篇文章中介绍了Eureka、Gateway、Fe...

深度剖析 Spring Cloud Eureka 底层实现原理

你作为一名互联网大厂后端技术开发人员,在构建分布式系统时,是不是常常为服务的注册与发现而头疼?你是否好奇,像SpringCloudEureka这样被广泛使用的组件,它的底层实现原理到底是怎样的...

热爱生活,喜欢折腾。(很热爱生活)

原文是stackoverflow的一则高票回答,原文链接可能之前也有人翻译过,但是刚好自己也有疑惑,所以搬运一下,个人水平有限所以可能翻译存在误差,欢迎指正(如侵删)。尽管classmethod和st...

GDB调试的高级技巧(详细描述gdb调试程序的全过程)

GDB是我们平时调试c/c++程序的利器,查起复杂的bug问题,比打印大法要好得多,但是也不得不说,gdb在默认情况下用起来并不是很好用,最近学习到几个高级点的技巧,分享下:一美化打印先上个例子...

Arduino 实例(二十三)Arduino 给Python 编译器发送信息

1首先Python需要安装Pyserial库,在命令提示符中输入pipintallpyserial若是遇到提示‘pip‘不是内部或外部命令,也不是可运行的程序或批处理文件,则需要设置环境变...