linux安装minio
沙福林 2024-04-29 17:25:09
linux
安装教程
minio
MinIO 是一款高性能、可扩展且开源的对象存储服务,专为云原生环境设计。
# linux安装
# 1. 下载
# 下载minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
# 下载mc, 用于管理minio
wget https://dl.min.io/client/mc/release/linux-amd64/mc
1
2
3
4
2
3
4
# 2. 创建安装目录
# 创建基础目录
mkdir -p /usr/local/minio/{bin,data,logs}
# 移动文件到软件安装目录
mv minio /usr/local/minio/bin
mv mc /usr/local/minio/bin
# 添加可执行权限
cd /usr/local/minio/bin
chmod +x mc
chmod +x minio
# 添加环境变量
echo 'export PATH=\\$PATH:/usr/local/minio/bin' >> ~/.bashrc
# 刷新环境变量
source ~/.bashrc
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 3. 创建启动脚本
注意:address指的是接口服务访问的端口,默认为9000
console-address指的是管理面的端口,默认为9001
# 创建启动脚本
cat > /usr/local/minio/bin/minio.sh << EOF
#!/bin/bash
export MINIO_DIR=/usr/local/minio
# 账号密码
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD="admin@minio2024"
# 存储目录
export MINIO_VOLUME=/usr/local/minio/data
# 后台启动服务
\${MINIO_DIR}/bin/minio server \${MINIO_VOLUME} \\
--config-dir \${MINIO_DIR}/conf \\
--address :12081 \\
--console-address :12080 > \${MINIO_DIR}/logs/minio.log &
EOF
# 添加可执行权限
chmod +x /usr/local/minio/bin/minio.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 4. 启动服务
# 启动服务
minio.sh
# 查看服务状态
ps -ef | grep minio
# 停止服务
ps -ef|grep minio | grep -v grep | awk '{print $2}' | xargs kill -15
1
2
3
4
5
6
2
3
4
5
6
# 5. 验证
浏览器访问:
http://ip:12080 admin/admin@minio2024
# 6.迁移数据(可选)
# 6.1 下载迁移工具rclone
# 切换到合适的目录
cd /usr/local/minio/bin
# 下载
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
# 解压
unzip rclone-current-linux-amd64.zip
1
2
3
4
5
6
2
3
4
5
6
# 6.2 配置rclone配置文件
12081为address对应端口号,一般默认为9000,下方脚本若有问题不能正常执行,则删除所有备注项即可
# 创建配置文件
mkdir -p /root/.config/rclone
# 编辑配置文件
cat > /root/.config/rclone/rclone.conf << EOF
[minio-old]
type = s3 #不可更改
env_auth = false
provider = Minio
access_key_id = admin #旧minio的控制台用户名
secret_access_key = admin@minio2024 #旧minio的控制台密码
region =
endpoint = http://192.168.190.130:12081 #旧minio的API地址
[minio-new]
type = s3
env_auth = false
provider = Minio
access_key_id = admin #新minio的控制台用户名
secret_access_key = admin@minio2024 #新minio的控制台密码
region =
endpoint = http://192.168.190.129:12081 #新minio的API地址
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 6.3 迁移数据
注意:新minio的桶名称和文件名称要与旧minio的桶名称一致,要自己提前创建好桶
- 旧minio数据迁移到新minio里面
# 1:指定桶迁移
#minio-old和minio-new为迁移配置问文件里的name,test为旧minio的桶
rclone sync minio-old:test minio-new:test
# 2.全部桶迁移
rclone sync minio-old: minio-new:
1
2
3
4
5
2
3
4
5
- 旧minio数据迁移到本地 (执行迁移的时候回清掉要存放数据的目录,确保存放迁移数据的目录为空)
# 1:指定桶迁移
#minio-old和minio-new为迁移配置问文件里的name test为旧minio的桶
rclone sync minio-old:test /data/test
# 2.全部桶迁移
rclone sync minio-old: /data/
1
2
3
4
5
2
3
4
5
- 旧minio本地数据迁移到新minio里面
# 1:指定桶迁移
#minio-old和minio-new为迁移配置问文件里的name test为旧minio的桶
rclone sync /data/ minio-old:test
# 2.全部桶迁移
rclone sync /data/ minio-old:
1
2
3
4
5
2
3
4
5
# 7.迁移数据,巨好用
主要使用mc命令
# 添加资源-本地,mc config host add 资源名 地址 用户名或accessKey 密码或accessSecret
mc config host add minio1 http://127.0.0.1:12081 admin admin@minio2024
# 添加资源-阿里云
mc config host add oss1 https://xxx.oss-cn-beijing.aliyuncs.com [accessKey] [accessSecret]
# 查看已配置的minio
cat /root/.mc/config.json
# 从MinIO复制到本地文件系统, mc cp --recursive 资源名/桶名 "/本地文件地址"
mc cp --recursive minio1/jms "/temp/path"
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 常用命令
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 - 交互式查找重复文件,进行删除/重命名操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 参考文档
# nginx配置(可忽略)
如果要对外暴露,但又不想开放太多端口,可以使用nginx做转发,做到一个端口,多个服务。
注意:域名解析要提前添加泛域名解析记录
nginx追加配置:
# http块添加
map $http_upgrade $connection_upgrade {
default keep-alive; #默认为keep-alive 可以支持 一般http请求
'websocket' upgrade; #如果为websocket 则为 upgrade 可升级的。
}
# minio服务
upstream minio_s3 {
least_conn;
server 127.0.0.1:12081; # 这里的地址是你刚才查询出来的容器地址 + 端口号(minio服务是9000)
}
# minio控制台
upstream minio_console {
server 127.0.0.1:12080; # 这里的地址是你刚才查询出来的容器地址 + 端口号(控制台是9090)
}
server {
listen 80;
server_name minio.youdomain.com; # 写你的域名
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_pass http://minio_console;
}
# minio-api地址
location /minio-api/ {
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;
proxy_http_version 1.1;
proxy_set_header Connection $connection_upgrade;
chunked_transfer_encoding off;
proxy_pass http://minio_s3/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 验证,通过域名访问minio
- 通过 http://minio.youdomain.com 访问minio管理端,
- 通过 http://minio.youdomain.com/minio-api/ 访问minio api
例如创建了一个bucket:test,权限设置为public,并上传了一个文件1.txt,
通过 http://minio.youdomain.com/minio-api/test/1.txt 即可访问文件