yuan-er

导航

 

主机数据盘扩容

操作场景

如果在添加主机之后,对数据盘进行了扩容操作,请执行本章内容,更新主机数据盘大小。

本地SSD盘扩容可参考本地SSD盘扩容方法

约束限制

  • 主机状态为“初始化完成”、“待纳管”或者“使用中”。
  • 新增的数据盘需要和主机上原有数据盘的磁盘IO类型一致。
  • 如果主机上有沙箱类型的实例,则需将数据盘扩容到/var/chroot/var/lib/engine/data*路径下。如果主机上有非沙箱类型的实例,则需将数据盘扩容到当前数据目录。

    可执行如下命令,判断主机上有何种类型的实例:

    cat /dbs/om-agent/agent_*/common/public_cloud.conf | grep dataDir

    回显值dataDir如果以/var/chroot为开头则表示为沙箱类型,否则表示非沙箱类型。

  • 实例下的所有节点需要同时进行数据盘扩容,并且扩容的大小要保持一致,如果不一致可能会影响实例及相关功能的正常使用。

操作步骤

  1. 登录云数据库GaussDB管理平台(TPOPS)
  2. 查询主机列表,查看需要更新数据盘大小的主机,记录主机ID为{hostId},并记录主机状态和存储类型。如果主机状态为使用中,则记录节点ID为{nodeId}。
  3. 以root用户登录云数据库GaussDB管理平台(TPOPS)主节点。
  4. 执行以下命令,连接core库。

     

    gsql -p 8635 -U core -W {password} -q core -h 127.0.0.1

    其中{password}为core库连接密码。

     

  5. 执行如下命令,更新主机数据盘大小。

     

    UPDATE CORE.DBS_HOST_STATIC_INFO SET DATA_DISK={dataDisk} WHERE HOST_ID={hostId};

    其中{dataDisk}为主机数据盘大小,单位GB。以“存储类型”为“本地SSD盘”的主机新增数据盘vdc进行扩容为例,扩容前数据盘大小为300GB,扩容后数据盘大小为400GB。

    如果主机“存储类型”为“闪存存储”,则主机数据盘大小为“磁盘挂载要求”中4个挂载路径的文件系统大小之和。

     

  6. 如果主机状态为“使用中”,“存储类型”为“本地SSD盘”,计算并更新节点磁盘大小。

     

    • 执行如下命令,计算节点磁盘大小,记录为{data}。

      SELECT ROUND(({dataDisk}*0.95-SUM(v1.SIZE_IN_BYTES)/1000000000)/(SELECT COUNT(*) FROM DBS_VOLUME v2 JOIN DBS_PARENTSHIP p2 ON v2.ID=p2.ENTITY_ID WHERE p2.PARENT_ENTITY_ID = {nodeId} AND p2.ENTITY_TYPE_TAG = 'vo' AND v2.PURPOSE = 'DATA')/40, 0)*40*1000000000 AS RESULT FROM DBS_PARENTSHIP p1 LEFT JOIN DBS_VOLUME v1 ON p1.ENTITY_ID = v1.ID AND v1.PURPOSE in ('ETCD', 'BACKUP') WHERE p1.PARENT_ENTITY_ID = {nodeId} AND p1.ENTITY_TYPE_TAG = 'vo';

    • 执行如下命令,更新节点磁盘大小。

      UPDATE DBS_VOLUME SET UPDATED_AT=NOW(), SIZE_IN_BYTES={data} WHERE ID in (SELECT ID FROM DBS_VOLUME WHERE ID IN (SELECT ENTITY_ID FROM DBS_PARENTSHIP WHERE PARENT_ENTITY_ID = {nodeId} AND ENTITY_TYPE_TAG = 'vo') AND PURPOSE = 'DATA');

  7. 如果主机状态为“使用中”,“存储类型”为“闪存存储”,执行如下命令,更新节点磁盘大小。

     

    UPDATE DBS_VOLUME SET UPDATED_AT=NOW(), SIZE_IN_BYTES= ROUND({data}/1024/1024*1000000000, 0) WHERE ID in (SELECT ID FROM DBS_VOLUME WHERE ID IN (SELECT ENTITY_ID FROM DBS_PARENTSHIP WHERE PARENT_ENTITY_ID = {nodeId} AND ENTITY_TYPE_TAG = 'vo') AND PURPOSE = 'DATA');

    其中{data}为“存储类型”为“闪存存储”的主机根据“磁盘挂载要求”操作时的数据挂载路径的文件系统大小,单位为KB。

    以数据挂载gaussdbvg-mydata1为例,可执行 df 命令读取数据挂载路径的文件系统大小,如下图所示,红色方框即为数据挂载路径的文件系统大小。

  8. 执行\q命令,退出core库。
  9. 登录云数据库GaussDB管理平台(TPOPS)
  10. 查询主机列表,查看主机的数据盘大小是否更新。如果没有更新,请检查步骤5执行是否成功。
  11. 如果主机状态为使用中,查看主机上实例的存储空间大小是否更新。如果没有更新,请检查步骤6或者步骤7执行是否成功。
 
posted on 2025-04-24 08:43  数据库笔记  阅读(10)  评论(0)    收藏  举报