微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于华为fusionstorage的块存储CSI

承接上文,块存储的CSI要比对象存储复杂一些,但总的处理逻辑还是一致的。下面以华为fusionstorage的CSI为例进行介绍,该插件支持了多个后端存储,如fusionstorage和oceanstor。下面是CSI插件与后端存储(fusionstorage)交互用到的配置文件。其中pools为事先创建好的存储池,parameters为所有k8s的node节点的hostname:ip对,用于执行attach块存储操作。

  csi.json: |
    {
        "backends": [
            {
                "storage": "fusionstorage-san","name": "***","url": "https://*.*.*.*:28443","user": "***","password": "***","pools": ["***"],"parameters": {"SCSI": {"***": "*.*.*.*"}}
            }
        ]
    }

如上图所示,Node上的CSI容器挂载了Node的/dev/etc/var/lib/kubelet目录。整体挂载流程为:在后端存储创建一个卷(如果不存在),并将其attach到node节点的/dev目录下(具体的attach动作由iSCSI客户端,NFS,FC等方式完成);由于容器挂载了/dev目录,在容器中直接格式化该块存储并挂载到/var/lib/kubelet中的pod目录即可。/etc目录只用于在csi容器中获取node节点的hostname(PS:在容器中挂载node节点的/dev和/etc目录是比较危险的,如果容器损坏了这些目录,可能导致node节点的系统错误)。

创建并挂载卷的调用过程如下(下载):


参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐