GaussDB-主机数据盘扩容

86 阅读3分钟

GaussDB-主机数据盘扩容

操作场景

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

本地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。以新增数据盘vdc进行扩容为例,扩容前数据盘大小为300GB,扩容后数据盘大小为400GB。

  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)401000000000 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 =  {node Id }  AND ENTITY_TYPE_TAG = 'vo') AND PURPOSE = 'DATA');

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

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

  8. 执行**\q**命令,退出core库。

  9. 登录云数据库GaussDB管理平台(TPOPS)

  10. 查询主机列表,查看主机的数据盘大小是否更新。如果没有更新,请检查步骤5执行是否成功。

  11. 如果主机状态为使用中,基本信息展示,查看主机上实例的存储空间大小是否更新。如果没有更新,请检查步骤6或者步骤7执行是否成功。

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…