tangz edeba0c341 文档更新 | 5 роки тому | |
---|---|---|
.. | ||
cephfs | 5 роки тому | |
fc | 5 роки тому | |
glusterfs | 5 роки тому | |
local | 5 роки тому | |
nfs | 5 роки тому | |
README.md | 5 роки тому |
http://docs.kubernetes.org.cn/429.html
1. 分布式文件存储
- 开源: Glusterfs,Cephfs,Lustre,Moosefs,Lizardfs
- 商业: EMC的isilon,IBM的GPFS
适合容器场景,但是性能问题比较突出
2. 分布式块存储
- 开源: Ceph,Sheepdog
- 商业: EMC的Scale IO,Vmware的vSAN
不适合容器场景,关键问题是缺失RWX的特性
3. Local-Disk
Local-Disk方案有明显的缺点,尤其是针对数据库,大数据类的应用。节点故障后,数据的恢复时间长,对业务影响范围广
4. 传统NAS
传统NAS也是一种文件存储,但是协议网关(机头)是性能瓶颈,传统NAS已经跟不上时代发展的潮流
Kubernetes一共支持24种卷插件
Ceph可以同时提供对象存储RADOSGW、块存储RBD、文件系统存储Ceph FS。
RBD解决了远程磁盘挂载的问题,CephFS 解决多个主机共享一个磁盘
glusterfs/README.md
nfs/NFS使用指南.md
hostPath允许挂载Node上的文件系统到Pod里面去
缺省情况下,EmptyDir 是使用主机磁盘进行存储的,也可以设置emptyDir.medium 字段的值为Memory,来提高运行速度,
但是这种设置,对该卷的占用会消耗容器的内存份额。
容器崩溃并不会导致 Pod 被从节点上移除,因此容器崩溃时 emptyDir 卷中的数据是安全的
#定义
PV 描述的是持久化存储数据卷
PVC描述的是Pod希望使用的持久化存储的属性。 比如,Volume 存储的大小,可读写权限等。
StorageClass 存储资源的抽象定义
#区别
PVC 可以理解为持久化存储的接口,提供了对存储的描述,但不提供具体实现;而PV来负责存储的具体实现。
StorageClass根据用户声明的存储使用量(PVC)来动态的创建对应的持久化存储卷(PV)
emptydir:
1. 使用内存作为emptyDir的可用存储资源
2. 在使用tmpfs文件系统作为emptyDir的存储后端时,如果遇到node节点重启,则emptyDir中的数据也会全部丢失。
同时,你编写的任何文件也都将计入Container的内存使用限制,即empty dir方式保存的数据不能持久化。
hostpath与local相同点:
1. 能够提供pv/pvc/storage class的方式使用
2. 数据能持久化
3. 都需要在对应节点上创建映射的目录或文件,否则pod无法启动,报目录找不到错误。
hostpath与local不同点
1. hostpath从节点A调度到节点B,数据丢失,无法启动;local与nodeAffinity配合, 使pod正确在node上找到local volume避免跟hostpath一样找不到映射数据。
2. host path最适合单机k8s的测试,而local volume适合小规模集群的使用
Kubernetes持久化存储方案:
https://www.kubernetes.org.cn/5128.html
浅谈 Kubernetes 数据持久化方案:
https://www.hi-linux.com/posts/14136.html
NFS文档:
https://blog.csdn.net/shenhonglei1234/article/details/84996226
Ceph文档:
http://docs.ceph.org.cn/start/
https://www.jianshu.com/p/cc3ece850433
关于Raid0,Raid1,Raid5,Raid10:
https://www.cnblogs.com/qiumingcheng/p/11226058.html
Ceph与Gluster之开源存储的对比:
https://www.cnblogs.com/happy-king/p/9193975.html