minio部署及数据迁移

一、单节点部署

注意: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 - 交互式查找重复文件,进行删除/重命名操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值