本⽂主要介绍Minio的分布式环境搭建,安装⽐较简单,因博主只有⼀台window,所以使⽤VM虚拟机搭建的。
搭建前可以先了解下minio:环境准备:
1、安装两台centos虚拟机,这⾥我命名虚拟机为centos-minio1和centos-minio2(这⾥我使⽤的centos8.2,博主喜欢啥都⽤最新的,哈哈)
开始搭建:
1、将minio⽂件放到centos-minio1的⽬录/usr/local/bin中
2、进⼊/etc/default/minio⽬录,新建⽂件minio(192.168.79.129和192.168.79.130是两台虚拟机的ip,/data/minio1和/data/minio2分别是两台虚拟机的两个挂载磁盘)# Remote volumes to be used for MinIO server.
MINIO_VOLUMES=\"http://192.168.79.129:9000/data/minio1/ http://192.168.79.129:9000/data/minio2 http://192.168.79.130:9000/data/minio1 http://192.168.79.130:9000/data/minio2\"# Use if you want to run MinIO on a custom port.#MINIO_OPTS=\"--address: 9199\"# Access Key of the server.MINIO_ACCESS_KEY=yhc# Secret key of the server.
MINIO_SECRET_KEY=12345678
3、进⼊/etc/systemd/system/⽬录,复制minio.service⽂件到此⽂件夹,并编辑⽂件
找到User和Group配置项,都修改为root(因为我⽤的root⽤户运⾏minio,所以此处需要root⽤户),然后注释掉Restart=always(不然启动报错会⼀直⾃动重启,第⼆次重启会报错,⼤意是两次启动间隔时间过快)
4、关闭centos-minio1和centos-minnio2的防⽕墙,不然会报错,⼤意是⼀直等待另外两块硬盘加载5、执⾏命令 systemctl enable minio.service,允许minio启动6、启动minio,执⾏命令systemctl restart minio.service
7、查看minio运⾏状态和⽇志,执⾏命令systemctl status minio.service,如下则代表启动成功8、nginx配置
10、验证服务,引⼊依赖,编写测试类(测试类注释部分为minio3.x版本的代码,后升级为7.1.4,所以注释了)
package com.yhc.minio;
import io.minio.BucketExistsArgs;import io.minio.MakeBucketArgs;import io.minio.MinioClient;import io.minio.PutObjectArgs;
import io.minio.errors.MinioException;import java.io.FileInputStream;public class Test {
public final static String buckey_name = \"yhc\";
public final static String file_name = \"japidocs-demo-20200909.1138.jar\";
public final static String file_path = \"C:\\\\Users\\\\Administrator\\\\Desktop\\\\\"+file_name;
public static void main(String[] args) {
try(FileInputStream fis = new FileInputStream(file_path);) {
// 使⽤MinIO服务的URL,端⼝,Access key和Secret key创建⼀个MinioClient对象
// MinioClient minioClient = new MinioClient(\"http://192.168.79.129:9000\ MinioClient minioClient = MinioClient.builder().endpoint(\"http://localhost:8088/\").credentials(\"yhc\ // 检查存储桶是否已经存在
// boolean isExist = minioClient.bucketExists(buckey_name);
boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(buckey_name).build()); if (isExist) {
System.out.println(\"Bucket already exists.\"); } else {
// 创建⼀个名为asiatrip的存储桶,⽤于存储照⽚的zip⽂件。// minioClient.makeBucket(buckey_name);
minioClient.makeBucket(MakeBucketArgs.builder().bucket(buckey_name).build()); }
// 使⽤putObject上传⼀个⽂件到存储桶中。
// minioClient.putObject(buckey_name, \"data.xls\
minioClient.putObject(PutObjectArgs.builder().object(file_name).bucket(buckey_name).stream(fis,fis.available(),5*1024*1024).build()); System.out.println(\"sucess\"); } catch (MinioException me) { me.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }}
View Code
11、执⾏测试类,检查minio⽂件存储,发现每个硬盘下都有对应⽂件的⽂件夹,并按纠删码规则存储
⾄此,minio服务搭建完毕,因博主是在搭建完成后写的此⽂章,所以有些遗漏如⼤家发现,还请联系本⼈,谢谢。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dcrkj.com 版权所有 赣ICP备2024042791号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务