s3-fuse安装
yum install epel-release
yum install s3fs-fuse
vim ~/.passwd-s3fs
//写入ak:sk,示例如下
accessKey:secretKeyrexray安装
sudo curl -sSL https://rexray.io/install | sh编辑配置文件:/etc/rexray/config.yml,使用的是s3fs,所以文件如下:
libstorage:
service: s3fs
s3fs:
accessKey: ***** #minio的key
secretKey: *******
region: us-east-1
endpoint: http://192.168.2.5:9001 #minio的访问路径
disablePathStyle: false
options:
- url=http://192.168.2.5:9001
- use_path_request_style
- nonempty启动rexray服务:
service rexray start
注意:rexray启动后应出现由字符构成的'rexray'字样,否则是未启动成功,需要检查config.yml文件是否配置正确,然后执行:
rexray service restart创建及挂载数据卷
sudo rexray volume create s3-bucket
sudo rexray volume mount volume s3-bucket挂载如出现错误应检查s3-fuse是否安装成功
现在在192.168.2.5:9001上运行的minio里应能看到s3-bucket
在docker上验证数据持久化
首先执行如下命令创建一个docker数据卷:
sudo docker volume create -d rexray --name s3-bucket若出现如下错误:
Error response from daemon: create s3-bucket: Post http://%2Frun%2Fdocker%2Fplugins%2Frexray.sock/VolumeDriver.Create: dial unix /run/docker/plugins/rexray.sock: connect: no such file or directory则考虑重启rexray: rexray service restart
查看volume:
sudo docker volume ls #如果没错,可看到上一步创建的testbucket
sudo docker volume inspect s3-bucket #看一下这个volume,Driver为rexray随后在运行docker容器时挂载此数据卷:
docker run -it --volume-driver=rexray -v s3-bucket:/<数据文件夹> <image>这里给出192.168.2.2下的示例:
docker container run -p 8002:3000 -it --mount type=volume,volume-driver=rexray,source=s3-bucket,target=/demos 192.168.2.3:5000/koa-demo /bin/bash在数据文件夹下新建一个文件,应能在在192.168.2.5:9001上运行的minio的s3-bucket桶下的data文件夹里看到此文件,容器终止运行后此文件仍存在于minio中。
这里给出192.168.2.2下在执行完上一步命令后在容器中的示例:
echo 'ceshi' > /demos/1.txt跨主机存储
按照此手册在另一台主机安装s3-fuse和rexray之后,执行rexray volume ls可以查看所有连接到rexray的虚拟磁盘,按上一节所述在docker容器运行的时候挂载即可实现数据持久化与跨主机存储