一、 背景介绍

        在之前的博客已经介绍了 Kubernetes 集成 ceph 分布式存储实现数据持久化的技术;

        本篇介绍如何对已经挂载到容器的rbd卷进行空间扩(缩)容!

二、 操作步骤

2.1   定位容器所使用的 ceph rbd 卷名称

       访问 kubernetes dashboard,进入“持久化存储卷索取”菜单,

       根据命名规则 “volumeClaimTemplates name - container name" 搜索,如 ceph-rbd-hadoop-m-0

       

       拷贝“存储卷”名称 pvc-xxxx,然后切到“持久化存储卷”菜单,搜索该 pvc

       

       点击 pvc 名称链接,进入详情页,可以看到该 pvc 实际使用的 rbd 名称

       

       拷贝镜像名称 kubernetes-dynamic-pvc-xxx,

2.2   扩容 rbd 卷

       登陆 ceph 集群控制机(ceph 任意控制节点),执行如下命令

# rbd resize --size 40960 kube/kubernetes-dynamic-pvc-b3de96b5-0019-11e8-ae98-0ae09837d988
       其中,40960 为扩容后大小,单位为MB,40960 即为 40GB 磁盘空间,

       kube 为 ceph rbd 所在存储池名称,可以在 “存储类”详情标签里找到,如下图

       

       

2.3   找到容器使用 rbd 卷的设备名称

        进入容器 shell,执行如下命令   

# df -h
        

        不难发现,/dev/rbd4 即为容器使用 rbd 的设备名称

2.4   定位容器运行所在宿主机

       可以通过“容器组”菜单下,目标容器的详情页查看容器运行所在物理节点

       

 2.5   进入该节点 shell,执行如下命令,更新 rbd 容量信息

# blockdev --getsize64 /dev/rbd4
# resize2fs /dev/rbd4
         

2.6   更新 pvc 容量显示信息

        因为 kubernetes 并不会感知到 rbd 的变化,因此需要手动修正 rbd 大小的显示信息

       来到“持久化存储卷”菜单,编辑已经修改过大小的 pvc,将其容量信息改为正确值,并执行更新

       

        来到“持久化存储卷索取”菜单,我们会发现绑定的存储卷大小已经自动修正为正确大小了

        

2.7   验证容器挂载的磁盘空间是否变大了

        进入容器 shell,执行 df -h 命令

        

       我们发现,/dev/rbd4 块设备已经从原来的 20G 扩大到 40G 了,而且进入挂载目录,会发现数据未丢失,实现了平滑扩容

       

Logo

开源、云原生的融合云平台

更多推荐