GaussDB-主机数据盘扩容
操作场景
如果在添加主机之后,对数据盘进行了扩容操作,请执行本章内容,更新主机数据盘大小。
本地SSD盘扩容可参考本地SSD盘扩容方法。
约束限制
-
主机状态为“初始化完成”、“待纳管”或者“使用中”。
-
新增的数据盘需要和主机上原有数据盘的磁盘IO类型一致。
-
如果主机上有沙箱类型的实例,则需将数据盘扩容到/var/chroot/var/lib/engine/data*路径下。如果主机上有非沙箱类型的实例,则需将数据盘扩容到当前数据目录。
cat /dbs/om-agent/agent_*/common/public_cloud.conf | grep dataDir
回显值dataDir如果以/var/chroot为开头则表示为沙箱类型,否则表示非沙箱类型。
-
实例下的所有节点需要同时进行数据盘扩容,并且扩容的大小要保持一致,如果不一致可能会影响实例及相关功能的正常使用。
操作步骤
-
查询主机列表,查看需要更新数据盘大小的主机,记录主机ID为{hostId},并记录主机状态和存储类型。如果主机状态为使用中,则记录节点ID为{nodeId}。
-
以root用户登录云数据库GaussDB管理平台(TPOPS)主节点。
-
执行以下命令,连接core库。
gsql -p 8635 -U core -W {password} -q core -h 127.0.0.1
其中{password}为core库连接密码。
-
UPDATE CORE.DBS_HOST_STATIC_INFO SET DATA_DISK={dataDisk} WHERE HOST_ID={hostId};
其中{dataDisk}为主机数据盘大小,单位GB。以新增数据盘vdc进行扩容为例,扩容前数据盘大小为300GB,扩容后数据盘大小为400GB。
-
如果主机状态为“使用中”,“存储类型”为“本地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');
-
-
如果主机状态为“使用中”,“存储类型”为“闪存存储”,执行如下命令,更新节点磁盘大小。
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');
-
执行**\q**命令,退出core库。
-
如果主机状态为使用中,基本信息展示,查看主机上实例的存储空间大小是否更新。如果没有更新,请检查步骤6或者步骤7执行是否成功。
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…