Synology 安装使用 MinIO

本教程是将MinIO开源软件直接部署到NAS中直接使用。

以下是minio的官方配置指南:
http://www.minio.org.cn/

警告

底层的修改是非常危险的操作,如果底层修改错误仅能通过重装 DSM 系统以恢复正常的使用。
请在操作前确保自己熟悉linux命令以及命令行操作,如果在操作过程中发生数据缺少或丢失,本教程概不负责。

兼容性

理论上所有X86 cpu架构的NAS都可以使用。

测试主机:
DS 1621+
系统版本
DSM 7.0.1

旧MinIO版本:
1.15.3
新MinIO版本:
8.0.0

下载 MinIO

1.15.3 版本

链接:
https://pan.baidu.com/s/1EbdXsHdJ1ZLBT_ctdPvTBg
提取码:
bukn

8.0.0 版本

链接:
https://pan.baidu.com/s/1KU5o9KR-jHTsqW3QA8wLPw
提取码:
de68

安装并配置 MinIO 服务(1.15.3)

准备环境

1.建立共享文件夹 miniopackage 用于存放 MinIO 主程序和配置文件

如果所在位置为存储空间2请将之后系统配置中的所有volume1修改为volume2

2.建立共享文件夹 miniodata 用于存放 MinIO

如果所在位置为存储空间2请将之后系统配置中的所有volume1修改为volume2

上传应用及配置文件

1.上传压缩包 minio1.15.zip 到NAS共享文件夹miniopackage中

2.解压缩压缩包

安装 MinIO

登录 NAS 的 ssh 并切换到 root 用户

调整 MinIO 系统注册文件

1.赋予 minio.service 权限

chmod 644 minio.service
chown root:root minio.service

2.检查&调整 minio.service 内容

cat minio.service

3.放置配置文件

mv minio.service /etc/systemd/system/

调整 MinIO 配置文件

1.调整 minio.conf 权限

chmod 755 minio.conf

2.检查&调整 minio.conf 内容

调整 MinIO 应用程序

调整 minio 权限
后续如果minio有版本更新直接替换该主程序即可

chmod 755 minio

启动使用 MinIO

systemctl start minio

接下来就可以网页登录使用了:

配置自动启动:

systemctl enable minio

安装并配置 MinIO 服务(8.0.0)

准备环境

1.建立共享文件夹 miniopackage 用于存放 MinIO 主程序和配置文件

如果所在位置为存储空间2请将之后系统配置中的所有volume1修改为volume2

2.建立共享文件夹 miniodata 用于存放 MinIO

如果所在位置为存储空间2请将之后系统配置中的所有volume1修改为volume2

上传应用及配置文件

1.上传压缩包 minio8.0.zip 到NAS共享文件夹miniopackage中

2.解压缩压缩包

安装 MinIO

登录 NAS 的 ssh 并切换到 root 用户

调整 MinIO 系统注册文件

1.赋予 minio.service 权限

chmod 644 minio.service
chown root:root minio.service

2.检查&调整 minio.service 内容

cat minio.service

3.放置配置文件

mv minio.service /etc/systemd/system/

调整 MinIO 配置文件

1.调整 minio.conf 权限

chmod 755 minio.conf

2.检查&调整 minio.conf 内容
请注意,密码过短或者过于简单会导致minio启动失败。

调整 MinIO 应用程序

调整 minio 权限

chmod 755 minio

启动使用 MinIO

systemctl start minio

接下来就可以网页登录使用了:

配置自动启动:

systemctl enable minio

默认 8.0 版本的分享链接是server的本地ip很不人性化。

可以通过修改配置文件中的 address 来手动调整外网分享链接。

例如要修改为:s3.zhugh.com

又由于 8.0 版本的检查机制,如果在应用启动的时候无法链接到设置的 address 服务将无法正常启动,所以需要添加一条hosts用于辅助。

vi /etc/hosts

添加以下内容,其中 s3.zhugh.com 请按自己外网域名修改。

127.0.0.1 s3.zhugh.com

重启服务后可以看到 server 已经变成域名地址。

分享链接也变成域名地址。

单点纠错配置(8.0.0)

需要先建立4个共享文件夹或者共享文件夹的子文件夹,案例是在miniodata共享文件夹下建立4个子文件夹data1、data2、data3、data4用于纠错使用。

minio.conf

# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address :29000 --console-address :29001"
# Access Key of the server.
MINIO_ACCESS_KEY="synominio"
# Secret key of the server.
MINIO_SECRET_KEY="synominio"
# Volume to be used for MinIO server.
MINIO_VOLUMES=/volume1/miniodata/data1 \
/volume1/miniodata/data2 \
/volume1/miniodata/data3 \
/volume1/miniodata/data4

如果启动minio有以下提示说明配置已经成功但是文件目录下已有文件导致无法进行使用,请清空目录后再尝试启动服务。

分布式集群(8.0.0)

由于没这么多NAS可以测试,这边就以一台NAS运行多个minio在不同端口在组成集群。
分别是29100、29200、29300、29400

节点1

minio.conf

# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address 192.168.0.68:29100 --console-address 192.168.0.68:29101"
# Access Key of the server.
MINIO_ACCESS_KEY="synominio"
# Secret key of the server.
MINIO_SECRET_KEY="synominio"
# Volume to be used for MinIO server.
MINIO_VOLUMES=http://192.168.0.68:29100/volume2/miniodata2/data1 \
http://192.168.0.68:29200/volume2/miniodata2/data2 \
http://192.168.0.68:29300/volume2/miniodata2/data3 \
http://192.168.0.68:29400/volume2/miniodata2/data4

节点2

minio.conf

# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address 192.168.0.68:29200 --console-address 192.168.0.68:29201"
# Access Key of the server.
MINIO_ACCESS_KEY="synominio"
# Secret key of the server.
MINIO_SECRET_KEY="synominio"
# Volume to be used for MinIO server.
MINIO_VOLUMES=http://192.168.0.68:29100/volume2/miniodata2/data1 \
http://192.168.0.68:29200/volume2/miniodata2/data2 \
http://192.168.0.68:29300/volume2/miniodata2/data3 \
http://192.168.0.68:29400/volume2/miniodata2/data4

节点3

minio.conf

# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address 192.168.0.68:29300 --console-address 192.168.0.68:29301"
# Access Key of the server.
MINIO_ACCESS_KEY="synominio"
# Secret key of the server.
MINIO_SECRET_KEY="synominio"
# Volume to be used for MinIO server.
MINIO_VOLUMES=http://192.168.0.68:29100/volume2/miniodata2/data1 \
http://192.168.0.68:29200/volume2/miniodata2/data2 \
http://192.168.0.68:29300/volume2/miniodata2/data3 \
http://192.168.0.68:29400/volume2/miniodata2/data4

节点4

minio.conf

# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address 192.168.0.68:29400 --console-address 192.168.0.68:29401"
# Access Key of the server.
MINIO_ACCESS_KEY="synominio"
# Secret key of the server.
MINIO_SECRET_KEY="synominio"
# Volume to be used for MinIO server.
MINIO_VOLUMES=http://192.168.0.68:29100/volume2/miniodata2/data1 \
http://192.168.0.68:29200/volume2/miniodata2/data2 \
http://192.168.0.68:29300/volume2/miniodata2/data3 \
http://192.168.0.68:29400/volume2/miniodata2/data4

如果启动minio有以下提示说明配置已经成功但是其他节点未启动

Prometheus监控(8.0.0)

默认DSM7.X就有使用Prometheus作为Active Insight 使用,这边测试发现再部署一个并不冲突。

这边可以下载官方版本也可以下载我配置成功的版本。
官方版:
https://prometheus.io/download/

我测试可以正常工作的版本:
链接:
https://pan.baidu.com/s/1LbQuNsOUAhWIdK9QTZiXjw
提取码:
itki

将百度云或者官方下载的版本放到miniopackage共享文件夹中,然后通过以下命令解压缩:

tar -zxvf prometheus-2.35.0.linux-amd64.tar.gz

然后将解压出来的prometheus-2.35.0.linux-amd64重命名为prometheus

mv prometheus-2.35.0.linux-amd64 prometheus

然后在/etc/systemd/system/下建立prometheus.service以注册服务:

vi /etc/systemd/system/prometheus.service

然后添加以下内容:
以下配置为prometheus运行在29090端口,如果希望prometheus运行在其他端口请调整web.listen-address参数

[Unit]
Description=Prometheus
Wants=
Requisite=syno-share.target network-online.target
After=syno-share.target network-online.target nss-user-lookup.target pkg-synosamba-nmbd.service
AssertFileIsExecutable=/volume1/miniopackage/prometheus/prometheus

[Service]
WorkingDirectory=/volume1/miniopackage/prometheus/
User=root
Group=root
ExecStart=/volume1/miniopackage/prometheus/prometheus \
    --config.file=/volume1/miniopackage/prometheus/prometheus.yaml \
    --web.listen-address=:29090

[Install]
WantedBy=multi-user.target

建立prometheus的配置文件prometheus.yaml

vi /volume1/miniopackage/prometheus/prometheus.yaml

添加以下内容:
以下配置为minio服务分享链接端口为29000的情况下的配置,如果是minio的分享端口是其他的请手动调整targets的服务端口

# my global config
global:
   scrape_interval: 15s
   evaluation_interval: 15s

scrape_configs:
- job_name: minio-job
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['127.0.0.1:29000']

需要额外调整minio.conf以启用prometheus监控,主要是添加以下两个参数:
如果要PROMETHEU的服务端口有变化需要调整MINIO_PROMETHEUS_URL中的对应端口

#Visualize Collected Metrics
MINIO_PROMETHEUS_URL="http://127.0.0.1:29090"
MINIO_PROMETHEUS_AUTH_TYPE="public"

以下为添加后的案例:

# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address :29000 --console-address :29001"
# Access Key of the server.
MINIO_ACCESS_KEY="synominio"
# Secret key of the server.
MINIO_SECRET_KEY="synominio"
#Visualize Collected Metrics
MINIO_PROMETHEUS_URL="http://127.0.0.1:29090"
MINIO_PROMETHEUS_AUTH_TYPE="public"
# Volume to be used for MinIO server.
MINIO_VOLUMES=/volume1/miniodata/data1 \
/volume1/miniodata/data2 \
/volume1/miniodata/data3 \
/volume1/miniodata/data4

配置完成后启用prometheus以及重启minio就可以正常使用了

systemctl start prometheus

systemctl restart minio

配置prometheus自动启动:

systemctl enable prometheus