一般来说,一台服务器上面通常只部署一个 MinIO 服务(采用 9000 端口);但是,为了演示或者学习 MinIO多租户,又或者服务器资源有限;我们可以选择在单台服务器上面部署多个 MinIO 服务,即启动多个 MinIO 进程,分别监听不同的端口,实现伪分部署部署。
下面将 Windows 上面介绍怎样搭建单机部署多租户环境。
在 Windows 的 DOS 环境下面分别执行下面命令。在单个驱动器上托管 3 个租户,命令如下:
# 启动 MinIO 端口为 9001 D:\server\minio>minio server --address :9001 ./data1 # 启动 MinIO 端口为 9002 D:\server\minio>minio server --address :9002 ./data2 # 启动 MinIO 端口为 9003 D:\server\minio>minio server --address :9003 ./data3
部署结构图如下:
启动成功后,就可以分别使用 http://localhost:9001 、http://localhost:9002 和 http://localhost:9003 进行访问。上面三个 MinIO 租户上传的文件都是独立的,没有任何关系(即 9001 租户的文件 9002 和 9003 是不可见的);唯一的关系是,它们均存储到一块硬盘上面。
注意:在 Windows 中,启动 MinIO 服务可能会抛出如下错误:
Error: Unable to initialize config, some features may be missing ReadMapCB: expect { or n, but found ", error found in #10 byte of ...|version":"","credent|..., bigger context ...|{"version":"","credential":{"expiration":"0001-01-01T00:00:00Z|... (*fmt.wrapError) 3: cmd\server-main.go:392:cmd.initAllSubsystems() 2: cmd\server-main.go:323:cmd.initServer() 1: cmd\server-main.go:535:cmd.serverMain()
这是因为配置文件 config.json 格式不正确导致的,config.json 文件格式。
使用以下命令在多个驱动器上托管 3 个租户:
minio server --address :9001 /disk{1...4}/data/tenant1 minio server --address :9002 /disk{1...4}/data/tenant2 minio server --address :9003 /disk{1...4}/data/tenant3
部署结构图如下: