Open Amber-976 opened 3 months ago
spec: globalConfig: listConfig: vgs: include: - open-local-pool-[0-9]+ - yoda-pool[0-9]+ - ackdistro-pool resourceToBeInited: vgs: - devices: - /dev/vdb name: open-local-pool-0
spec: globalConfig: listConfig: vgs: include: - open-local-pool-[0-9]+ - yoda-pool[0-9]+ - ackdistro-pool resourceToBeInited: vgs: - devices: - /dev/vdb - /dev/vdc name: open-local-pool-0
查看每个节点的nls的CR实例, spec更新, open-local-pool-0包含两块磁盘的PV, 宿主机上执行vgs, 卷组成功扩容.
open-local-pool-0
每个节点的nls的CR实例, spec更新, 但是open-local-pool-0没有变化, /dev/vdc并没有加进去. 查看代码open-local/pkg/agent/discovery/discovery.go:
open-local/pkg/agent/discovery/discovery.go
for _, vg := range vgs { if _, err := lvm.LookupVolumeGroup(vg.Name); err == lvm.ErrVolumeGroupNotFound { err := d.createVG(vg.Name, vg.Devices) if err != nil { msg := fmt.Sprintf("create vg %s with device %v failed: %s. you can try command \"vgcreate %s %v --force\" manually on this node", vg.Name, vg.Devices, err.Error(), vg.Name, strings.Join(vg.Devices, " ")) log.Error(msg) d.recorder.Event(nls, corev1.EventTypeWarning, localtype.EventCreateVGFailed, msg) } } }
似乎只有VG不存在时, 才会创建VG, 而更新nlsc.spec.resourceToBeInited并不会把新建的磁盘扩到卷组中? 目前的行为是符合期望的吗? 如果resourceToBeInited仅在初始化时使用, 是不是应该添加webhook等处理限制后续的修改行为; 或者支持后续更改, 当卷组添加新磁盘时, 新增expansionVG的处理.
Question
问题描述
期望结果
查看每个节点的nls的CR实例, spec更新,
open-local-pool-0
包含两块磁盘的PV, 宿主机上执行vgs, 卷组成功扩容.实际结果
每个节点的nls的CR实例, spec更新, 但是
open-local-pool-0
没有变化, /dev/vdc并没有加进去. 查看代码open-local/pkg/agent/discovery/discovery.go
:似乎只有VG不存在时, 才会创建VG, 而更新nlsc.spec.resourceToBeInited并不会把新建的磁盘扩到卷组中? 目前的行为是符合期望的吗? 如果resourceToBeInited仅在初始化时使用, 是不是应该添加webhook等处理限制后续的修改行为; 或者支持后续更改, 当卷组添加新磁盘时, 新增expansionVG的处理.