Minio搭建

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

1.安装

1.基于docker安装

docker search minio
docker pull minio/minio
docker run -p 9000:9000 minio/minio server /data

docker 启服务时指定挂在目录和登陆的用户名和密码

 

docker run -p 9000:9000 --name minio1
-e "MINIO_ACCESS_KEY=admin"
-e "MINIO_SECRET_KEY=12345678"
-v /Users/xiyou/my_minio/data:/data
-v /Users/xiyou/my_minio/config:/root/.minio
minio/minio server /data
服务启动之后可通过http://127.0.0.1:9000访问

2.基于linux平台搭建

下载地址

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /xiyou/my_minio/data

后台运行:nohup ./minio server /xiyou/my_minio/data > /xiyou/my_minio/data/minio.log 2>&1 &

3.单机版数据备份与恢复

将data数据目录拷贝至新服务器即可重启服务,恢复数据。
具体实施如下:
使用两个linux服务器作测试
node1: 10.211.55.5
node2: 10.211.55.8
步骤1: 在node2上采用linux单机版启动minio服务后,创建两个bucket,分别为bucket1和bucket2,在bucket中上传文件;
步骤2: 停止node2上的minio服务;
步骤3: 将node2上的my_minio文件夹整个拷贝至node1;
scp -r ./my_minio [email protected]:/xiyou/
步骤4: 在node1重新启服务

 

 

2.集群搭建

1.集群服务器配置及启动

既然单机的minio可以采用异结点备份的方式恢复数据,为什么还要使用Distributed MinIO?
数据保护/高可用/限制/一致性

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

注意

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

搭建的是4个结点的集群
示例: 启动分布式Minio实例,4个节点,每节点1块盘

搭建命令:
mkdir -p /xiyou/software
cd /xiyou/software
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo MINIO_ACCESS_KEY=minio MINIO_SECRET_KEY=minio123 ./minio server http://10.211.55.5/minio_data http://10.211.55.8/minio_data http://10.211.55.9/minio_data http://10.211.55.10/minio_data
注解:./minio为minio文件路径,minio_data是自定义的minio的文件的存放路径 可采取nohup 加& 进行后台启动

 

 

2.脚本方式启动

启动脚本

mkdir -p /opt/minio
vim /opt/minio/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=minio123
/xiyou/software/minio server http://10.211.55.5/minio_data \
                       http://10.211.55.8/minio_data\
                       http://10.211.55.9/minio_data\
                       http://10.211.55.10/minio_data

服务脚本

 

vim /usr/lib/systemd/system/minio.service
# vim  /etc/systemd/system/minio.service #ubuntu下的启动脚本
---------------------------------------------------------------------------------------
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/xiyou/software/
ExecStart=/opt/minio/run.sh

Restart=on-failure
RestartSec=5

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
--------------------------------------------------------------------------------------
chmod +x /usr/lib/systemd/system/minio.service #centos的启动脚本
# chmod +x /etc/systemd/system/minio.service #ubuntu的启动脚本

#参考minio.service配置: https://github.com/minio/minio-service/blob/master/linux-systemd/minio.service

服务启动

 

chmod +x /opt/minio/run.sh
systemctl daemon-reload #刷新配置
systemctl enable minio
systemctl start minio
systemctl status minio

 

 

3.nginx配置

1.nginx安装

##我的os是centos7
#Install the prerequisites:
sudo yum install yum-utils

vim /etc/yum.repos.d/nginx.repo
#with the following contents:
-----------------------------------------------------------------------------------------
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
---------------------------------------------------------------------------------------
sudo yum install nginx

在Centos中安装Nginx

2.nginx配置

 

#安装好nginx之后就可以启动nginx
systemctl start nginx
#查看下端口监听
netstat -lntup|grep 80
#查看下nginx.conf文件的配置
cat /etc/nginx/nginx.conf
----------------------------------------------------------------------------------
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;

    #include /etc/nginx/conf.d/*.conf;
    upstream minio_servers {
    ip_hash;
    server 10.211.55.5:9000;
    server 10.211.55.8:9000;
    server 10.211.55.9:9000;
    server 10.211.55.10:9000;
    }
    server {
    listen 80;
        server_name minio.dev.com;

    location / {
        proxy_set_header Host $host;
        proxy_pass       http://minio_servers;
        proxy_redirect  off;
    #proxy_set_header X-Real-IP $remote_addr;
    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #client_body_buffer_size 10M;           #缓冲区代理缓冲请求的最大字节数
    #client_max_body_size 10G;         #客户端最大文件上传大小为10G
    #proxy_buffers 1024 4k;
    #proxy_read_timeout 300;
    #proxy_next_upstream error timeout http_404;
    }
}
}
--------------------------------------------------------------------------------
#location 内的注释的字段,建议可以在查看后根据需求修改
#可参考 https://docs.min.io/cn/setup-nginx-proxy-with-minio.html
#https://www.nginx.com/blog/enterprise-grade-cloud-storage-nginx-plus-minio/

 

4.MinIO Client

1.安装mc

cd /xiyou/software/
wget https://dl.minio.io/client/mc/release/linux-amd64/mc

 

 

2.使用mc

chmod +x mc
./mc config host add mcminio http://10.211.55.8:9000 minio minio123
mc ls mcminio
./mc mb mcminio/third

 

 

5.遇到的问题

1.node结点的ntp时间设置

node结点的ntp时间设置,别怪我没提醒你
设置系统时间为中国时区并启用NTP同步
yum install ntp //安装ntp服务
systemctl enable ntpd //开机启动服务
systemctl start ntpd //启动服务
timedatectl set-timezone Asia/Shanghai //更改时区
timedatectl set-ntp yes //启用ntp同步
ntpq -p //同步时间
参考https://www.cnblogs.com/tangxiaosheng/p/4986375.html

 

 

2.Allow port access for Firewalls

iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
service iptables restart
参考:https://github.com/minio/minio

 

 

3.解决网页“打转转”问题

ifconfig ens4 mtu 1450
这跟系统的MTU设置有关,默认一般会设置为1500,有的系统也会设置为1450。集群中的MTU值一定要保持一致,如果是有多张网卡的,也可以把多张网卡的MTU值设置一致。

 

 

参考

https://github.com/minio/minio/blob/master/README_zh_CN.md

https://github.com/minio/minio

https://www.jianshu.com/p/bfde2495aa94

 

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
Theme Argon
本网站自 2020-12-24 12:00:00 起已运行