• Kubernetes Volume 类型介绍


    前言

    本文介绍 Kubernetes 常见 Volume 类型,了解存储基本知识:(1)三种主流存储类型:文件存储、块存储、对象存储;(2)三种云环境主流存储架构:DAS、NAS、SAN 等概念。

    概念

    建议回顾 YouTube 视频:File (NAS) vs. Block (SAN) vs. Object Cloud Storage,了解云存储知识及各种存储的使用场景。

    文件存储、块存储、对象存储

    文件、块和对象是三种以不同的方式来保存、整理和呈现数据的存储格式。这些格式各有各的功能和限制。文件存储会以文件和文件夹的层次结构来整理和呈现数据;块存储会将数据拆分到任意划分且大小相同的卷中; 对象存储会管理数据并将其链接至关联的元数据。

    直连式存储、网络附加存储、存储区域网络

    直连式存储(Direct-Attached Storage,DAS)是指直接和计算机相连接的数据储存方式,其与通过计算机网络连接的其它存储技术相对。像固态硬盘、机械硬盘、光盘驱动器与计算机直接相连的设备都是属于直连式存储设备。实际上,直连式存储的名称是后来为了区别于存储区域网络(SAN)和网络附加存储(NAS)而添加的。

    网络附加存储(Network Attached Storage,NAS)是指通过网络相连的存储设备实现数据存储的机制。每个 NAS 设备都具有自己的唯一 IP 地址。像 Google Drive、Dropbox、iCloud 等网盘都可以看作是网络附加存储。

    存储区域网络(Storage Area Network,SAN)是一种连接外接存储设备和服务器的架构,采用包括光纤通道技术、磁盘阵列、磁带柜、光盘柜的各种技术进行实现。除针对大型企业的企业级存储方案外,随着价格和复杂度的降低,越来越多的中小型企业也在逐步采用该项技术。

    常见 Volume 类型

    awsElasticBlockStore

    Amazon Elastic Block Store(EBS)是一种易于使用的高性能数据块存储服务。EBS 提供四种不同的卷类型,价位和性能水平各不相同,让您能够优化成本并购买最符合您的应用程序需求的存储。选择范围从每 GB 高性价比的卷到专为任务关键型工作负载而设计、具有高 IOPS 和高吞吐量的高性能卷。

    azureDisk

    Azure 托管磁盘是由 Azure 托管并与 Azure 虚拟机配合使用的块级存储卷。 托管磁盘类似于本地服务器中的物理磁盘,但它是虚拟化的。 使用托管磁盘时,只需指定磁盘大小、磁盘类型并预配磁盘即可。可用的磁盘类型包括超级磁盘、高级固态硬盘(SSD)、标准 SSD 和标准硬盘驱动器(HDD)。 有关每种磁盘类型的信息,请参阅选择适用于 IaaS VM 的磁盘类型

    azureFile

    Azure 文件是 Microsoft 推出的云文件系统。Azure 文件在云端提供完全托管的文件共享。Azure 文件共享可用于取代或补充本地文件服务器。可以使用 Azure 文件来完全取代或补充传统的本地文件服务器或 NAS 设备。 流行的操作系统(例如 Windows、macOS 和 Linux)可在世界各地直接装载 Azure 文件共享。

    cephfs

    Ceph 文件系统是个 POSIX 兼容的分布式文件系统。它使用 Ceph 存储集群来存储数据,可以将 Ceph 集群看做一个共享文件系统挂载到本地。在 Kubernetes 中使用 cephfs 需要先安装 Ceph 服务器。

    glusterfs

    Gluster 是一种可扩展的分布式文件系统,可将来自多个服务器的磁盘存储资源聚合到一个全局命名空间中。

    nfs

    网络文件系统是一种分布式文件系统,使客户端主机可以访问服务器端文件,并且其过程与访问本地存储时一样。

    rbd

    Rados Block Device 是 Ceph 提供的块存储。使用 rbd 需要搭建 Ceph 集群。

    csi

    早期存储插件是和 Kubernetes 核心代码紧密绑定,目前推荐的方式是使用 Container Storage Interface(CSI)。一个使用 AWS EBS CSI 的例子

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: test-pv
    spec:
      capacity:
        storage: 50Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteOnce
      storageClassName: ebs-sc
      csi:
        driver: ebs.csi.aws.com
        volumeHandle: vol-05786ec9ec9526b67
        fsType: xfs
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: topology.ebs.csi.aws.com/zone
              operator: In
              values:
              - us-east-1c 
    

    更多关于 CSI 的资料请阅读基于 CSI Kubernetes 存储插件的开发实践

    参考资料

    [1] Red Hat:文件存储、块存储还是对象存储?
    [2] What’s the Difference Between Block, File and Object-based Data Storage?
    [3] YouTube: File (NAS) vs. Block (SAN) vs. Object Cloud Storage
    [4] Amazon Elastic Block Store 易于使用、适用于任何规模的高性能数据块存储
    [5] Azure 托管磁盘简介
    [6] 什么是 Azure 文件?
    [7] 基于 CSI Kubernetes 存储插件的开发实践

  • 相关阅读:
    不同包中继承关系访问protected内部类问题
    LinuxMM--MemoryHierarchy
    LinuxMM--Memory Pressure
    多态实验:基类——子类成员
    使用vue开发的word-cloud 词云组件
    基于mui.PopPicker的可多选下拉多选的底部弹出组件
    基于mui.popover的自定义底部弹出框-支持多选和搜索筛选的弹出列表组件改造以及mui.prompt添加自定义内容
    js去空 去除空格
    css+js控制文字显示行数,多出部分显示省略号
    使用vue开发自定义tabs标签页组件
  • 原文地址:https://www.cnblogs.com/huanggze/p/12498713.html
Copyright © 2020-2023  润新知