一、单节点部署
注意:minio存储需要单独挂载数据盘
minio下载
Linux下载地址:
https://min.io/download#/linux
或者wget https://dl.min.io/server/minio/release/linux-amd64/minio
1:服务器创建minio部署包存放目录
mkdir -p /home/minio/data
2:通过sftp将下载好的minio文件上传到/home/minio/data中
3:执行以下命令进行赋权和创建用户和密码
chmod +x minio //给予权限
export MINIO_ACCESS_KEY=minioadmin //创建账号
export MINIO_SECRET_KEY=minioadmin //创建密码
4:启动MINIO
nohup ./minio server --address :9000 --console-address :9001 /home/minio/data > /home/minio/data/minio.log &
5:查看MINO的状态
ps -ef|grep minio
二、集群部署minio
1:根据单节点部署方式,分别在两台机器上(192.168.181.20和192.168.181.21)
只需要把启动脚本更改成一下命令,两个节点上的启动命令是一样的
启动脚本配置:vim minio-start.sh
set MINIO_ROOT_USER=minioadmin #用户
set MINIO_ROOT_PASSWORD=minioadmin #密码
nohup ./minio server --address :9000 --console-address :9001 http://192.168.181.20/data/app/minio/data/data1
http://192.168.181.20/data/app/minio/data/data2 \
http://192.168.181.21/data/app/minio/data/data1
http://192.168.181.21/data/app/minio/data/data2 > /data/app/minio/minio.log 2>&1 &
2:配置nginx代理
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream minio {
# 这里配置你集群的ip地址,该端口是sdk接口
server 192.168.181.20:9000;
server 192.168.181.21:9000;
}
upstream console {
ip_hash;
# 这里配置集群的ip地址,该端口是控制台端口
server 192.168.181.20:9001;
server 192.168.181.21:9001;
}
# minio sdk接口
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;
}
}
# minio 控制台
server {
listen 9001;
listen [::]:9001;
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;
}
}
}
三、minio数据迁移
1:下载迁移工具:
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
2:对解压工具解压、赋权
unzip rclone-current-linux-amd64.zip
chmod 755 rclone-v1.61.1-linux-amd64/rclone
3:编辑迁移工具配置文件vim /root/.config/rclone/rclone.conf(文件夹和目录没有的可以手动创建,也可以执行rclone config生成配置文件)
cat /root/.config/rclone/rclone.conf
[minio-old]
type = s3 #不可更改
env_auth = false
provider = Minio
access_key_id = minioadmin #旧minio的控制台用户名
secret_access_key = minioadmin #旧minio的控制台密码
region =
endpoint = http://192.168.190.130:9000 #旧minio的API地址
[minio-new]
type = s3
env_auth = false
provider = Minio
access_key_id = minioadmin #新minio的控制台用户名
secret_access_key = minioadmin #新minio的控制台密码
region =
endpoint = http://192.168.190.129:9000 #新minio的API地址
4:旧minio数据迁移到新minio里面
1:指定桶迁移
rclone sync minio-old:test minio-new:test #minio-old和minio-new为迁移配置问文件里的name test为旧minio的桶
2.全部桶迁移
rclone sync minio-old: minio-new:
5:旧minio数据迁移到本地 (执行迁移的时候回清掉要存放数据的目录,确保存放迁移数据的目录为空)
1:指定桶迁移
rclone sync minio-old:test /data/test #minio-old和minio-new为迁移配置问文件里的name test为旧minio的桶
2.全部桶迁移
rclone sync minio-old: /data/
6:旧minio本地数据迁移到新minio里面
1:指定桶迁移
rclone sync /data/ minio-old:test #minio-old和minio-new为迁移配置问文件里的name test为旧minio的桶
2.全部桶迁移
rclone sync /data/ minio-old:
7:常用命令
rclone config - 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
rclone copy - 将文件从源复制到目的地址,跳过已复制完成的。
rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。
rclone move - 将源数据移动到目的地址。
rclone delete - 删除指定路径下的文件内容。
rclone purge - 清空指定路径下所有文件数据。
rclone mkdir - 创建一个新目录。
rclone rmdir - 删除空目录。
rclone check - 检查源和目的地址数据是否匹配。
rclone ls - 列出指定路径下所有的文件以及文件大小和路径。
rclone lsd - 列出指定路径下所有的目录/容器/桶。
rclone lsl - 列出指定路径下所有文件以及修改时间、文件大小和路径。
rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。
rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。
rclone size - 获取指定路径下,文件内容的总大小。.
rclone version - 查看当前版本。
rclone cleanup - 清空remote。
rclone dedupe - 交互式查找重复文件,进行删除/重命名操作。