Minio 笔记
文章目录
部署单节点分布式存储
环境
- 服务器 IP: 192.168.1.10
- 自定义域名: X.X.X
安装 minio
-
下载
1 2 3
curl -L -o /usr/local/bin/minio https://dl.min.io/server/minio/release/linux-amd64/minio curl -L -o /usr/local/bin/mc https://dl.min.io/client/mc/release/linux-amd64/mc chmod 0755 /usr/local/bin/{minio,mc}
-
修改 hosts,增加自定义域名解析
1
192.168.1.10 X.X.X
-
创建四个目录,用于存储 minio 数据
1
mkdir -p /minio/{1,2,3,4}
-
创建 /etc/systemd/system/minio.service,内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
[Unit] Description=MinIO After=network.service Wants=network.service [Service] Environment=MINIO_ROOT_USER=XXX Environment=MINIO_ROOT_PASSWORD=XXXXXXXX ExecStart=/usr/local/bin/minio server \ --address ":9000" \ --console-address ":9010" \ http://X.X.X:9000/minio/{1...4} #Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target
启动 minio
-
配置开机自动启动
1 2
systemctl daemon-reload systemctl enable minio
-
启动 minio
1
systemctl start monio
部署多节点分布式存储
环境
自定义域名 | 网卡 IP | 硬盘槽 | 数据分区 |
---|---|---|---|
X1.X.X | eth0: 192.168.1.11eth1:10.0.0.11 | 8 个 | /dev/sdb1, /dev/sdc1/dev/sdd1, /dev/sde1 |
X2.X.X | eth0: 192.168.1.12eth1:10.0.0.12 | 8 个 | /dev/sdb1, /dev/sdc1/dev/sdd1, /dev/sde1 |
X3.X.X | eth0: 192.168.1.13eth1:10.0.0.13 | 8 个 | /dev/sdb1, /dev/sdc1/dev/sdd1, /dev/sde1 |
X4.X.X | eth0: 192.168.1.14eth1:10.0.0.14 | 8 个 | /dev/sdb1, /dev/sdc1/dev/sdd1, /dev/sde1 |
- eth0 用于接收 api 请求
- eth1 用于集群内部通信
- 每台服务器有 8 个硬盘槽,这里先各用 4 个组成 server pool,运行 minio 集群
- 每台服务器剩下的 4 个硬盘槽用于后面的扩容操作
挂载数据分区
-
在全部服务器上执行如下操作
-
挂载硬盘
1 2 3 4 5
mkdir -p /mnt/minio{1,2,3,4} mount /dev/sdb1 /mnt/minio1 mount /dev/sdc1 /mnt/minio2 mount /dev/sdd1 /mnt/minio3 mount /dev/sde1 /mnt/minio4
-
建议在 fstab 中配置开机自动挂载
安装 minio
-
在全部服务器上执行如下操作
-
下载
1 2 3
curl -L -o /usr/local/bin/minio https://dl.min.io/server/minio/release/linux-amd64/minio curl -L -o /usr/local/bin/mc https://dl.min.io/client/mc/release/linux-amd64/mc chmod 0755 /usr/local/bin/{minio,mc}
-
修改 hosts,增加自定义域名解析,注意这里是集群通信,要用 eth1 网卡 ip
1 2 3 4
10.0.0.11 X1.X.X 10.0.0.12 X2.X.X 10.0.0.13 X3.X.X 10.0.0.14 X4.X.X
-
创建 /etc/systemd/system/minio.service,内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
[Unit] Description=MinIO After=network.service Wants=network.service [Service] Environment=MINIO_ROOT_USER=XXX Environment=MINIO_ROOT_PASSWORD=XXXXXXXX ExecStart=/usr/local/bin/minio server \ --address ":9000" \ --console-address ":9010" \ http://X{1...4}.X.X:9000/mnt/minio{1...4} #Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target
启动 minio
-
在全部服务器上执行如下操作
-
配置开机自动启动
1 2
systemctl daemon-reload systemctl enable minio
-
启动 minio
1
systemctl start monio
扩容多节点分布式存储
加装硬盘
-
在全部服务器上执行如下操作
-
在每台服务器上个增加四个新硬盘,每个硬盘创建一个分区,格式化
-
挂载新增的硬盘分区
1 2 3 4 5
mkdir -p /mnt/minio{5,6,7,8} mount /dev/sdf1 /mnt/minio5 mount /dev/sdg1 /mnt/minio6 mount /dev/sdh1 /mnt/minio7 mount /dev/sdi1 /mnt/minio8
-
建议在 fstab 中配置开机自动挂载
扩容
-
在全部服务器上执行如下操作
-
停止 minio 服务
1
systemctl stop minio
-
修改 /etc/systemd/system/minio.service,增加新的 server pool,内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[Unit] Description=MinIO After=network.service Wants=network.service [Service] Environment=MINIO_ROOT_USER=XXX Environment=MINIO_ROOT_PASSWORD=XXXXXXXX ExecStart=/usr/local/bin/minio server \ --address ":9000" \ --console-address ":9010" \ http://X{1...4}.X.X:9000/mnt/minio{1...4} \ http://X{1...4}.X.X:9000/mnt/minio{5...8} #Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target
-
启动 minio 服务
1
systemctl start minio
客户端常用操作
-
创建 alias,注意这里是 api 调用,要用 eth0 网卡 ip
1
mc alias set $ALIAS_NAME http://192.168.1.X:9000 $MINIO_ROOT_USER $MINIO_ROOT_PASSWORD
-
创建 bucket
1
mc mb $ALIAS_NAME $BUCKET_NAME/$SUB_DIR
-
创建用户
1
mc admin user add $ALIAS_NAME $NEW_USER_NAME $NEW_PASSWORD
-
给新增用户授权
1
mc admin policy attach $ALIAS_NAME/$BUCKET_NAME/$SUB_DIR readwrite --user $NEW_USER_NAME
文章作者 Colben
上次更新 2021-10-17