跨主机存储
2018-12-31 本文已影响0人
why_not_
跨主机存储
从业务数据角度看,容器可以分为两类:
- 无状态
容器在运行过程中不需要保存数据,每次访问不依赖上次访问 如静态web服务器- 有状态
容器需要保存数据,而且数据会发生变化,访问依赖之前请求的处理结果 如数据库服务器
简单来讲状态就是数据,如果容器需要存储数据,他就是有状态的,反之为无状态
- 对于有状态的容器,如何保存数据
data volume 可以存储容器的状态,不过 volume 只是docker主机的本地文件系统
如果docker host 宕机了,如何恢复容器
-
定期备份数据
-
storage provider提供的 volume
docker 从 provider 那里获取 volume 并挂载到容器。即使host挂了,也可以立即在其他host上启动相同镜像的容器,重新挂在之前的volume,这样数据就不会丢失
volume driver
任何一个data volume 都是由 driver 管理的,创建 volume 时如果不特别指定,将使用local 类型的 driver ,即从 docker host的本地目录中分配存储空间 如果要支持跨主机的 volume ,需要第三方 driver
Rex-Ray driver
1、开源、社区活跃
2、支持多种backend,virtual media、Amazon EBS、Ceph RBD、openstack cinder
3、支持 ubuntu、centos、CoreOS
4、支持 多种容器编排引擎 docker swarm 、kubernetes、Mesos
5、安装使用简单
rex-rax 以 standalone (单机)进程的方式运行在docker 主机上