MinIO 是全球领先的对象存储先锋,目前在全世界有数百万的用户. 在标准硬件上,读/写速度上高达 183 GB / 秒 和 171 GB / 秒。对象存储可以充当主存储层,以处理 Spark、Presto、TensorFlow、H2O.ai 等各种复杂工作负载以及成为 Hadoop HDFS 的替代品。MinIO 用作云原生应用程序的主要存储,与传统对象存储相比,云原生应用程序需要更高的吞吐量和更低的延迟。
下面介绍在 Linux 与 Windows 平台搭建 MinIO 服务的具体步骤。
一、编译安装
1. 文件下载
这里我选择的安装路径:/home/minio,根据你的喜好自行选择。
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio      # 下载文件
chmod +x minio              # 赋予文件权限
2. 服务启动
新版本的 MinIO 在启动时必须指定控制台端口,否则将外网将无法访问。
./minio/minio server ./mimio/data --console-adress ":9001"     # 启动,并重定向到9001
nohup /home/minio/minio server --console-address 0.0.0.0:9001 /home/minio/data > /home/minio/data/minio.log 2>&1 &      # 设置后台运行
3. 端口开放
需要提前开放 9001 防火墙端口,然后即可通过 IP:9000 访问控制台了。
firewall-cmd --add-port=9001/tcp --zone=public --permanent       # 永久开放9001端口
firewall-cmd --reload        # 重载配置生效
4. 密码修改
(1) 配置修改
修改密码的话直接修改 config.json 文件中对应的 value 值即可,完成后保存后重启服务即可。
cd ./minio/data/.minio.sys/config/
vi config.json       
[{"key":"access_key","value":"user_name"},{"key":"secret_key","value":"password"}]
(2) 服务重启
修改之后重启 MinIO 服务即可,我暂时没找到直接的重启命令,所有我采取最粗暴的方式直接关闭 MinIO 的进程再手动启动。
lsof -i:9000                # 查看对应进程获取PID
kill -9 [PID]               # 关闭进程
nohup /home/minio/minio server --console-address 0.0.0.0:9001 /home/minio/data > /home/minio/data/minio.log 2>&1 &      # 重新运行
二、Docker安装
1. Docker下载
在部署之前需要先安装 Docker 服务。
yum -y install docker           # 安装docker
systemctl start docker          # 启动docker
2. 旧版安装
(1) 镜像拉取
通过 docker pull 拉取指定版本 MinIO 镜像版本。
docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z       # 拉取minio版本
(2) 服务启动
如果出现 xxx is not a valid repository/tag 说明的 Docker 版本太低不支持大写键入,需要手动进行更新。
docker run -d  --name minio -p 9000:9000\
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /usr/local/minio/data:/data \
-v /usr/local/minio/config:/root/.minio \
minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
(3) Docker更新
在执行 curl -fsSL https://get.docker.com/ | sh 可能会提示超时,多试几次就可以了。
rpm -qa|grep docker                          # 查看 docker 相关源文件
yum -y remove <xxx>                          # 删除上一步查询的文件包
curl -fsSL https://get.docker.com/ | sh      # 安装最新版本
3. 新版安装
这新版本中引入众多特性,如桶内允许嵌套桶等等。
(1) 镜像拉取
同样拉取 MinIO 镜像,未指定版本默认拉取最新版本。
docker pull minio/minio       # 拉取镜像
(2) 启动服务
控制台服务使用 50000 端口访问, API 接口使用 9000 端口访问,数据存储于: /usr/local/minio/data,配置文件位于:/usr/local/minio/config。
docker run -d --name minio \
--privileged=true \
-p 9000:9000 \
-p 50000:50000 \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
-v /usr/local/minio/data:/data \
-v /usr/local/minio/config:/root/.minio \
minio/minio server /data \
--console-address ":50000" --address ":9000"
三、Windows安装
1. 前台启动
(1) 文件下载
进入官网进行下载,只需下载服务端即可。
https://min.io/download
(2) 启动配置
将下载 minio.exe 文件指定位置,我这里放在 D:\Develop\MinIO 目录下。在该目录下新建 start.bat 文件,其中 D:\Develop\MinIO\date 表示 MinIO 后续数据存放位置。
# bat 文件内容
minio.exe server D:\Develop\MinIO\date
(3) 服务启动
双击启动 bat 文件即可,控制台会自动显示访问地址以及默认的登录账号。
2. 后台运行
后台启动的话就无需前台一直开着命令行窗口,更便捷。
(1) WinSW下载
后台服务需要用到 WinSW ,官网下载地址如下:
https://github.com/winsw/winsw/releases
(2) 配置文件
XML 文件必须和 MinIOServer 文件名一致,将 MinIOServer.xml 文件和 MinIOServer.exe 置于 minio.exe 同级目录。
<service>
    <id>MinIOServer</id>
    <name>MinIOServer</name>
    <description>minio文件存储服务器</description>
    <!-- 环境配置 -->
    <env name="HOME" value="%BASE%"/>
    <executable>%BASE%\minio.exe</executable>
    <arguments>server "%BASE%\data"</arguments>
    <!-- 日志配置 -->
    <logpath>%BASE%\logs</logpath>
    <log mode="roll-by-size-time">
        <sizeThreshold>10240</sizeThreshold>
        <pattern>yyyyMMdd</pattern>
        <autoRollAtTime>00:00:00</autoRollAtTime>
        <zipOlderThanNumDays>5</zipOlderThanNumDays>
        <zipDateFormat>yyyyMMdd</zipDateFormat>
    </log>
</service>
(3) 启动
在该目录下新建命令窗口,输入:MinIOServer.exe install,然后在 Windows 服务中找到 MinIOServer 服务启动即可。
服务访问路径:localhost:9000,默认账号密码:minioadmin, minioadmin,若要关闭 MinIO 服务直接关闭 MinIOServer 服务即可。
(4) 修改密码
进入目录 minio\data\.minio.sys\config,修改 config.json 文件中的信息即可。
[{"key":"access_key","value":"username"},{"key":"secret_key","value":"password"}]