This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.6. 将 etcd 移动到不同的磁盘
您可以将 etcd 从共享磁盘移到独立磁盘,以防止或解决性能问题。
Machine Config Operator (MCO) 负责为 OpenShift Container Platform 4.11 容器存储挂载辅助磁盘。
这个过程不会将 root 文件系统的部分内容(如 /var/
)移到已安装节点上的另一个磁盘或分区。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您可以使用
cluster-admin
权限访问集群。 -
MachineConfigPool
必须与metadata.labels[machineconfiguration.openshift.io/role]
匹配。这适用于控制器、worker 或自定义池。
流程
在一个 debug shell 中,使用
lsblk
命令,将新磁盘添加到集群中,并验证节点中是否检测到磁盘:oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lsblk
# lsblk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录下
lsblk
命令报告的新磁盘的设备名称。创建名为
etcd-mc.yml
的MachineConfig
YAML 文件,其内容如下,将<new_disk_name>
实例替换为记录的设备名称:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以具有
cluster-admin
权限的用户身份登录集群并创建机器配置:oc login -u <username> -p <password>
$ oc login -u <username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f etcd-mc.yml
$ oc create -f etcd-mc.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 节点已更新并重启。重启完成后,会出现以下事件:
- XFS 文件系统是在指定磁盘中创建的。
-
磁盘挂载到
/var/lib/etcd
。 -
来自
/sysroot/ostree/deploy/rhcos/var/lib/etcd
的内容同步到/var/lib/etcd
。 -
对于
/var/lib/etcd
,强制恢复SELinux
标签。 - 旧内容不会被删除。
节点位于独立磁盘后,使用如下内容更新
etcd-mc.yml
文件,将<new_disk_name>
实例替换为记录的设备名称:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用修改的版本,删除创建和同步设备的逻辑,以防止节点重新引导:
oc replace -f etcd-mc.yml
$ oc replace -f etcd-mc.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
在节点的 debug shell 中运行
grep <new_disk_name> /proc/mounts
命令,以确保挂载磁盘:oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow grep <new_disk_name> /proc/mounts
# grep <new_disk_name> /proc/mounts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
/dev/nvme1n1 /var/lib/etcd xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,prjquota 0 0
/dev/nvme1n1 /var/lib/etcd xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,prjquota 0 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow