目录
1 环境搭建
简介:minio是一种专注于对象存储的软件,可以兼容亚马逊的s3接口,同时内置了webserver,运行主程序之后可以直接的使用网页进行连接。
从官网下载可执行程序或者是直接使用docker版。
官网连接:MinIO | The MinIO Quickstart Guide
2 使用方法
2.1 docker版
docker run -p 9000:9000 \
-e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \
-e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
minio/minio server /data
这里的/data目录是docker中的目录而不是宿主机中的目录。上例中的minio_access_key和secret_key代表了网页端访问的用户名和密码。如果不设置的话默认都为minioadmin。
如需要将数据持久化,需要使用-v将内部的存储文件夹映射到外部。如下:
docker run -p 9000:9000 -v /mnt/disk/data1:/data1 minio/minio server /data1
2.2 可执行程序版
下载完毕可执行程序后给与可执行的权限,然后直接执行以下的指令就可以将宿主机中的/data文件夹作为数据存储目录来使用。
chmod +x minio minio server /data
还可以通过一下方式来指定IP和端口号启动,':'前边是客户机的地址,后边是端口号。通过设置环境变量的方式来指定登录的用户名和密码。
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=miniopw
./minio server --address :9019 /root/tdata/
2.3 同时挂载多个盘/文件夹的方式
经过测试,minio可以支持同时挂载多个文件夹,这个时候所有的文件夹中都有文件,但是这个文件并不是真实的文件,而是经过处理的文件,通过ls查看文件的属性和大小的时候并不是原始的大小。
#基本方法
./minio server /mnt/data1 /mnt/data2 /mnt/data3 /mnt/dat4
#简便方式
./minio server /mnt/data{1...4}
如果所挂载的挂载点中存在了配置文件,那么运行这条命令的时候会显示初始化失败。
根据开发手册:在多个盘/文件夹上挂载minioserver 的时候,会自动使用纠错码,这种方式让存储到系统的文件在丢失一半盘的时候仍然可以恢复数据,同时恢复的数据是以对象为单位的。
使用这种方式所挂载的磁盘/文件夹的数量必须是4或16的倍数。
2.4 MC的使用
mc是minio的客户端,同样也可以使用docker版和二进制程序版。
使用mc的时候首先需要给服务器指定一个别名,下面的这条命令就是把位于指定IP和端口号上的服务器指定别名为mycloud。输入了这条指令之后还需要输入要登录到这个服务器的用户名和密码。
./mc alias set mycloud http://192.168.110.225:9003
使用了上述的操作时候以后就可以用简单的方式来执行mc的指令。
./mc ls mycloud #列出mycloud上的所有文件。
3 服务端的类型
服务端可以分为server和gateway两种方式。
从当前的测试来看,server方式在只可以在一个文件夹下运行一个实例。
gateway的方式可以在同一个文件夹下运行多个实例,就是说同一个文件夹可以运行多个minio。
这两种方式的配置文件完全不兼容,当之前挂载过其中一个之后,另外的一个将无法挂载,除非将文件夹中的配置文件删除。
关于gateway的几种方式,目前我只是测试使用nas的方式,但是具体这种方式的作用是什么,还没有学习到精髓,我需要再看一下指导文档。
4 分布式部署的方式
分布式部署采用如下的方式,但是分布式的部署还是必须要满足节点个数为4和4的倍数。
minio server http://192.168.110.225/mnt/data1 \
http://192.168.110.225/mnt/data2 \
http://192.168.110.225/mnt/data3 \
http://192.168.110.224/mnt/data1
上边的指令需要在每个分布式的机器上执行一遍,一模一样的指令,像上边的情况,只需要在两个机器上各执行一遍就可以了,也可以把IP地址替换成主机名,这个就涉及到DNS,或者手工的在hosts文件里边添加。
注意查看防火墙和Selinux有没有关闭,或者设定特定的端口通过。