扩展存储
横向和垂直扩展选项
摘要
让开源更具包容性
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。如需了解更多详细信息,请参阅 CTO Chris Wright 信息。
对红帽文档提供反馈
我们感谢您对文档提供反馈信息。请告诉我们如何让它更好。提供反馈:
关于特定内容的简单评论:
- 请确定您使用 Multi-page HTML 格式查看文档。另外,确定 Feedback 按钮出现在文档页的右上方。
- 用鼠标指针高亮显示您想评论的文本部分。
- 点在高亮文本上弹出的 Add Feedback。
- 按照显示的步骤操作。
要提交更复杂的反馈,请创建一个 Bugzilla ticket:
- 进入 Bugzilla 网站。
- 在 Component 中选择 Documentation。
- 在 Description 中输入您要提供的信息。包括文档相关部分的链接。
- 点 Submit Bug。
前言
要将 OpenShift Container Storage 的存储容量扩展为内部模式,您可以执行以下操作之一:
- 扩展存储节点 - 在现有 Red Hat OpenShift Container Storage worker 节点中添加存储容量
- 扩展存储节点 - 添加包含存储容量的新 worker 节点
有关以外部模式扩展存储的信息,请参阅 Red Hat Ceph Storage 文档。
第 1 章 扩展存储节点的要求
在继续扩展存储节点前,请参考以下部分以了解特定 Red Hat OpenShift Container Storage 实例的节点要求:
始终确保您有大量的存储容量。
如果存储完全填满,则无法添加容量、删除内容或从存储中迁移内容来释放空间。当存储被完全占用时将很难恢复。
当集群存储容量达到总容量的 75%(接近满)和 85%(满)时,会发出容量警报。始终及时处理容量警告的信息,并定期检查您的存储以确保您不会耗尽存储空间。
如果您完全耗尽存储空间,请联系红帽客户支持。
1.1. Red Hat OpenShift Container Storage 支持的部署
用户置备的基础架构:
- Amazon Web Services (AWS)
- VMware
- 裸机
- IBM Power 系统
- IBM Z 或 LinuxONE
安装程序置备的基础架构:
- Amazon Web Services (AWS)
- Microsoft Azure
- VMware
- Red Hat Virtualization
第 2 章 扩展存储容量
根据部署的类型,您可以选择以下步骤之一来扩展存储容量。
- 对于 AWS、VMware、Red Hat Virtualization 或 Azure 基础架构,使用动态或自动置备存储设备,请参阅 第 2.2 节 “通过向 OpenShift Container Storage 节点添加容量来扩展存储”
- 对于裸机、Amazon EC2 I3、VMware 或 Red Hat Virtualization 基础架构使用本地存储设备,请参阅 第 2.3 节 “使用本地存储设备为 OpenShift Container Storage 节点添加容量来扩展存储”
- 有关使用本地存储设备的 IBM Z 或 LinuxONE 基础架构,请参阅 第 2.4 节 “通过向 IBM Z 或 LinuxONE 基础架构的 OpenShift Container Storage 节点添加容量来扩展存储”
- 有关使用本地存储设备的 IBM Power 系统,请查看 第 2.5 节 “通过使用本地存储设备在 IBM Power Systems 基础架构的 OpenShift Container Storage 节点中添加容量来扩展存储”
如果要使用部署期间置备的存储类进行扩展,还必须在扩展前定义额外的存储类。详情请参阅创建存储类。
OpenShift Container Storage 不支持异构 OSD 大小。
2.1. 创建存储类
您可以定义一个新的存储类来动态置备现有供应商的存储。
先决条件
- 管理员访问 OpenShift Web 控制台.
流程
- 登录 OpenShift Web 控制台。
- 点 Storage → Storage Classes。
- 点 Create Storage Class。
- 输入存储类 Name 和 Description。
- 选择所需的 Reclaim Policy 和 Provisioner。
- 点 Create 创建存储类。
验证步骤
- 点 Storage → Storage Classes,验证您可以看到新的存储类。
2.2. 通过向 OpenShift Container Storage 节点添加容量来扩展存储
使用以下基础架构上配置的 Red Hat OpenShift Container Storage worker 节点添加存储容量和性能:
- AWS
- VMware vSphere
- Red Hat Virtualization
- Microsoft Azure
先决条件
- 正在运行的 OpenShift 容器平台。
- OpenShift Web 控制台的管理特权。
- 要使用部署期间置备的存储类之外的存储类进行扩展,首先定义一个额外的存储类。详情请参阅创建存储类。
流程
- 登录 OpenShift Web 控制台。
- 点 Operators → Installed Operators。
- 点 OpenShift Container Storage Operator。
- 单击 Storage Cluster 选项卡。
- 可见列表中应当只有一个项目。点击最右侧的(⋮)来扩展选项菜单。
- 从选项菜单中选择 Add Capacity。
选择 Storage Class。
如果使用在部署过程中生成的默认存储类,请将 AWS 上的存储类设置为
gp2、VMware 或ovirt-csi-sc上的 ovirt-csi-sc,或 Microsoft Azure 上的managed_premium。如果您已创建了其他存储类,请选择适当的选项。重要将非默认存储类用于您的供应商是一个技术预览功能。
技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需更多信息,请参阅技术预览功能支持范围。
Raw Capacity 字段显示在存储类创建过程中设置的大小。所消耗的存储总量是这个大小的三倍,因为 OpenShift Container Storage 使用的副本数为 3。
- 点 Add 并等待集群状态变为 Ready。
验证步骤
导航到 Overview → Persistent Storage 选项卡,然后检查 Raw Capacity breakdown 卡。
请注意,容量会根据您的选择而增加。
注意原始容量不考虑复制并显示完整容量。
验证新 OSD 及其对应的新 PVC 是否已创建。
查看新创建的 OSD 的状态:
- 从 OpenShift Web 控制台点 Workloads → Pods。
-
从 Project 下拉列表中选择
openshift-storage。
查看 PVC 的状态:
- 从 OpenShift Web 控制台点 Storage → Persistent Volume Claims。
-
从 Project 下拉列表中选择
openshift-storage。
(可选)如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。
识别运行新 OSD pod 的节点。
$ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>
例如:
oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
对于上一步中确定的每个节点,请执行以下操作:
创建调试 pod,并为所选主机打开 chroot 环境。
$ oc debug node/<node name> $ chroot /host
运行 "lsblk" 并检查
ocs-deviceset名旁边的 "crypt" 关键字。$ lsblk
目前不支持集群缩减,无论是否要通过移除节点或 OSD 来实现缩减。
2.3. 使用本地存储设备为 OpenShift Container Storage 节点添加容量来扩展存储
在以下基础架构上,使用此流程将存储容量(额外存储设备)添加到配置的、基于 OpenShift Container Storage worker 节点的本地存储中:
- 裸机
- VMware
- Red Hat Virtualization
在 Amazon EC2 I3 上扩展存储是一项技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
对于 Amazon EC2 I3 基础架构,添加节点是添加容量的唯一选项,因为部署是使用可用的 NVMe 设备完成的。
先决条件
- 您必须登录到 OpenShift Container Platform 集群。
您必须已安装了本地存储 operator。使用以下任何适用于您的基础架构的步骤:
-
如果您从以前的版本升级到 OpenShift Container Storage 4.7,且还没有创建一个
LocalVolumeSet对象来启用自动置备设备,请按照本地存储支持的集群的 Post-update 配置更改中所述的步骤进行。 -
如果您从以前的版本升级到 OpenShift Container Storage 4.7,且还没有创建
LocalVolumeDiscovery对象,现在请按照 由本地存储支持的集群的 Post-update 配置更改 中所述的步骤进行。 - 您必须有三个存储类型和大小相同的 OpenShift Container Platform worker 节点(例如,2TB NVMe 驱动器),与原始 OpenShift Container Storage StorageCluster 创建时相同。
流程
要添加容量,您可以使用部署期间置备的存储类或与过滤器匹配的其它存储类。
- 在 OpenShift Web 控制台中,点 Operators → Installed Operators。
- 点 OpenShift Container Storage Operator。
- 单击 Storage Cluster 选项卡。
- 可见列表中应当只有一个项目。点击最右侧的(⋮)来扩展选项菜单。
- 从选项菜单中选择 Add Capacity。
- 根据您的要求,选择您添加磁盘或新存储类的存储类。显示的可用容量基于存储类中可用的本地磁盘。
点击 Add。
您可能需要等待几分钟,以便存储集群达到 Ready 状态。
验证步骤
导航到 Overview → Persistent Storage 选项卡,然后检查 Raw Capacity breakdown 卡。
请注意,容量会根据您的选择而增加。
注意原始容量不考虑复制并显示完整容量。
验证新 OSD 及其对应的新 PVC 是否已创建。
查看新创建的 OSD 的状态:
- 从 OpenShift Web 控制台点 Workloads → Pods。
-
从 Project 下拉列表中选择
openshift-storage。
查看 PVC 的状态:
- 从 OpenShift Web 控制台点 Storage → Persistent Volume Claims。
-
从 Project 下拉列表中选择
openshift-storage。
(可选)如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。
识别运行新 OSD pod 的节点。
$ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>
例如:
oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
对于上一步中确定的每个节点,请执行以下操作:
创建调试 pod,并为所选主机打开 chroot 环境。
$ oc debug node/<node name> $ chroot /host
运行 "lsblk" 并检查
ocs-deviceset名旁边的 "crypt" 关键字。$ lsblk
OpenShift Container Storage 不支持通过减少 OSD 或减少节点来减少集群。
2.4. 通过向 IBM Z 或 LinuxONE 基础架构的 OpenShift Container Storage 节点添加容量来扩展存储
使用这个流程为配置的 Red Hat OpenShift Container Storage worker 节点添加存储容量和性能。
先决条件
- 正在运行的 OpenShift 容器平台。
- OpenShift Web 控制台的管理特权。
- 要使用部署期间置备的存储类之外的存储类进行扩展,首先定义一个额外的存储类。详情请参阅创建存储类。
流程
使用 zFCP 磁盘添加额外硬件资源
使用以下命令列出所有磁盘:
$ lszdev
输出示例:
TYPE ID ON PERS NAMES zfcp-host 0.0.8204 yes yes zfcp-lun 0.0.8204:0x102107630b1b5060:0x4001402900000000 yes no sda sg0 zfcp-lun 0.0.8204:0x500407630c0b50a4:0x3002b03000000000 yes yes sdb sg1 qeth 0.0.bdd0:0.0.bdd1:0.0.bdd2 yes no encbdd0 generic-ccw 0.0.0009 yes no
SCSI 磁盘以
zfcp-lun表示,其结构为<device-id>:<wwpn>:<lun-id>。第一个磁盘用于操作系统。新磁盘的设备 ID 可以相同。使用以下命令附加一个新的 SCSI 磁盘。
$ chzdev -e 0.0.8204:0x400506630b1b50a4:0x3001301a00000000
注意新磁盘的设备 ID 必须与要替换的磁盘相同。新磁盘通过其 WWPN 和 LUN ID 进行标识。
列出所有 FCP 设备以验证新磁盘是否已配置。
$ lszdev zfcp-lun TYPE ID ON PERS NAMES zfcp-lun 0.0.8204:0x102107630b1b5060:0x4001402900000000 yes no sda sg0 zfcp-lun 0.0.8204:0x500507630b1b50a4:0x4001302a00000000 yes yes sdb sg1 zfcp-lun 0.0.8204:0x400506630b1b50a4:0x3001301a00000000 yes yes sdc sg2
- 导航到 OpenShift Web 控制台。
- 单击左侧导航栏中的 Operators。
- 选择 Installed Operators。
- 在窗口中点击 OpenShift Container Storage Operator:
- 在顶部导航栏中,滚动右滚动并单击 Storage Cluster 选项卡。
- 点可见列表旁边的(⋮)来扩展选项菜单。
从选项菜单中选择 Add Capacity。
Raw Capacity 字段显示在存储类创建过程中设置的大小。所消耗的存储总量是这个大小的三倍,因为 OpenShift Container Storage 使用的副本数为 3。
- 点 Add 并等待集群状态变为 Ready。
验证步骤
导航到 Overview → Persistent Storage 选项卡,然后检查 Capacity 分类 卡。
请注意,容量会根据您的选择而增加。
注意原始容量不考虑复制并显示完整容量。
目前不支持集群缩减,无论是否要通过移除节点或 OSD 来实现缩减。
2.5. 通过使用本地存储设备在 IBM Power Systems 基础架构的 OpenShift Container Storage 节点中添加容量来扩展存储
使用这个步骤在 IBM Power Systems 基础架构上配置的基于 OpenShift Container Storage worker 节点的本地存储中添加存储容量(额外存储设备)。
先决条件
- 您必须登录 OpenShift Container Platform (RHOCP) 集群。
您必须已安装了本地存储 operator。请使用以下步骤,请参阅
- 您必须有三个 OpenShift Container Platform worker 节点,并附加到每个节点(如 0.5TB SSD),因为使用了原始的 OpenShift Container StorageCluster。
流程
要在安装了 OpenShift Container Storage 的 OpenShift Container Platform 节点中添加存储容量,您需要
- 添加一个新磁盘,它是 Openshift Container Platform(RHOCP)集群中每个 worker 节点最少有一个设备。
通过运行 lsblk 内部节点,检查新磁盘是否已添加到节点。
$ oc debug node/worker-0 $lsblk
输出示例:
Creating debug namespace/openshift-debug-node-ggrqr ... Starting pod/worker-2-debug ... To use host binaries, run `chroot /host` Pod IP: 192.168.88.23 If you don't see a command prompt, try pressing enter. sh-4.4# chroot /host sh-4.4# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 256G 0 loop vda 252:0 0 40G 0 disk |-vda1 252:1 0 4M 0 part |-vda2 252:2 0 384M 0 part /boot `-vda4 252:4 0 39.6G 0 part `-coreos-luks-root-nocrypt 253:0 0 39.6G 0 dm /sysroot vdb 252:16 0 512B 1 disk vdc 252:32 0 256G 0 disk vdd 252:48 0 256G 0 disk sh-4.4# sh-4.4# Removing debug pod ... Removing debug namespace/openshift-debug-node-ggrqr ...
- 新添加的磁盘将自动由 LocalVolumeSet 发现。
显示新创建的 PV,其
storageclass名称用于localVolumeSetCR。$ oc get pv | grep localblock | grep Available
输出示例:
local-pv-290020c2 256Gi RWO Delete Available localblock 2m35s local-pv-7702952c 256Gi RWO Delete Available localblock 2m27s local-pv-a7a567d 256Gi RWO Delete Available localblock 2m22s ...
有三个可用的 PV 大小(它将用于新的 OSD)。
- 导航到 OpenShift Web 控制台。
- 点左侧导航栏上的 Operator。
- 选择 Installed Operators。
- 在窗口中点击 OpenShift Container Storage Operator:
- 在顶部导航栏中,滚动右滚动并单击 Storage Cluster 选项卡。
- 可见列表中应当只有一个项目。点击最右侧的(⋮)来扩展选项菜单。
从选项菜单中选择 Add Capacity。
在这个对话框中,将 Storage Class name 设置为
localVolumesetCR 中使用的名称。显示的可用容量基于存储类中可用的本地磁盘。- 完成设置后,点 Add。您可能需要等待几分钟,以便存储集群达到 Ready 状态。
验证新 OSD 及其对应的新 PVC 是否已创建。
$ oc get -n openshift-storage pods -l app=rook-ceph-osd
输出示例:
NAME READY STATUS RESTARTS AGE rook-ceph-osd-0-6f8655ff7b-gj226 1/1 Running 0 1h rook-ceph-osd-1-6c66d77f65-cfgfq 1/1 Running 0 1h rook-ceph-osd-2-69f6b4c597-mtsdv 1/1 Running 0 1h rook-ceph-osd-3-c784bdbd4-w4cmj 1/1 Running 0 5m rook-ceph-osd-4-6d99845f5b-k7f8n 1/1 Running 0 5m rook-ceph-osd-5-fdd9897c9-r9mgb 1/1 Running 0 5m
在上例中,osd-3、osd-4 和 osd-5 是新添加的 pod 到 OpenShift Container Storage 集群。
$ oc get pvc -n openshift-storage |grep localblock
输出示例:
ocs-deviceset-localblock-0-data-0-sfsgf Bound local-pv-8137c873 256Gi RWO localblock 1h ocs-deviceset-localblock-0-data-1-qhs9m Bound local-pv-290020c2 256Gi RWO localblock 10m ocs-deviceset-localblock-1-data-0-499r2 Bound local-pv-ec7f2b80 256Gi RWO localblock 1h ocs-deviceset-localblock-1-data-1-p9rth Bound local-pv-a7a567d 256Gi RWO localblock 10m ocs-deviceset-localblock-2-data-0-8pzjr Bound local-pv-1e31f771 256Gi RWO localblock 1h ocs-deviceset-localblock-2-data-1-7zwwn Bound local-pv-7702952c 256Gi RWO localblock 10m
在上例中,我们看到创建了三个新 PVC。
验证步骤
导航到 Overview → Persistent Storage 选项卡,然后检查 Capacity 分类 卡。
请注意,容量会根据您的选择而增加。
注意原始容量不考虑复制并显示完整容量。
OpenShift Container Storage 不支持通过减少 OSD 或减少节点来减少集群。
第 3 章 横向扩展存储容量
要扩展存储容量,您需要执行以下步骤:
- 添加新节点
- 验证新节点是否已成功添加
- 扩展存储容量
OpenShift Container Storage 不支持异构 OSD 大小。
3.1. 添加节点
您可以在现有工作程序节点已以其最大支持 OSD 运行时添加节点来增加存储容量,即增加初始配置期间所选容量的 3 个 OSD。
根据部署类型,您可以选择以下步骤之一来添加存储节点:
- 对于 AWS 或 Azure 或 Red Hat Virtualization 安装程序置备基础架构,请参阅 在安装程序置备的基础架构中添加节点
- 对于 AWS 或 VMware 用户置备的基础架构,请参阅 在用户置备的基础架构中添加节点
- 对于裸机、IBM Power Systems、IBM Z 或 LinuxONE、Amazon EC2 I3 或 VMware,或 Red Hat Virtualization 基础架构 ,请参阅使用本地存储设备添加节点
3.1.1. 在安装程序置备的基础架构中添加节点
使用此要求在以下安装程序置备的基础架构中添加节点:
- AWS
- Azure
- Red Hat Virtualization
先决条件
- 您必须登录 OpenShift Container Platform (RHOCP) 集群。
流程
- 导航到 Compute → Machine Sets。
- 在您要添加节点的机器集中,选择 Edit Machine Count。
- 添加节点数量,然后点 Save。
- 点 Compute → Nodes 并确认新节点是否处于 Ready 状态。
将 OpenShift Container Storage 标签应用到新节点。
- 对于新节点,Action menu (⋮) → Edit Labels。
- 添加 cluster.ocs.openshift.io/openshift-storage 并点 Save。
建议您添加 3 个节点,每个节点都位于不同的区中。您必须添加 3 个节点,并对所有节点执行此步骤。
验证步骤
- 要验证新节点是否已添加,请参阅 验证添加新节点。
3.1.2. 在用户置备的基础架构中添加节点
使用此流程在 AWS 或 VMware 用户置备的基础架构中添加节点。
先决条件
- 您必须登录 OpenShift Container Platform (RHOCP) 集群。
流程
根据您要在 AWS 用户置备的基础架构或 VMware 用户置备的基础架构中添加节点,请执行以下步骤:
检查与处于
Pending状态的 OpenShift Container Storage 相关的证书签名请求 (CSR):$ oc get csr
为新节点批准所有所需的 OpenShift Container Storage CSR:
$ oc adm certificate approve <Certificate_Name>
- 点 Compute → Nodes,确认新节点是否处于 Ready 状态。
使用以下任一方法之一将 OpenShift Container Storage 标签应用到新节点:
- 从用户界面
- 对于新节点,点击 Action Menu(⋮) → Edit Labels
-
添加
cluster.ocs.openshift.io/openshift-storage并点 Save。
- 使用命令行界面
执行以下命令,将 OpenShift Container Storage 标签应用到新节点:
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
注意建议您添加 3 个节点,每个节点都位于不同的区中。您必须添加 3 个节点,并对所有节点执行此步骤。
验证步骤
- 要验证新节点是否已添加,请参阅 验证添加新节点。
3.1.3. 使用本地存储设备添加节点
使用此流程在以下中添加节点:
- 裸机
- IBM Power 系统
- IBM Z 或 LinuxONE
- Amazon EC2
- VMware
- Red Hat Virtualization
为 Amazon EC2 基础架构扩展存储节点是一项技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
先决条件
- 您必须登录 OpenShift Container Platform (RHOCP) 集群。
- 您必须有三个存储类型和大小相同的 OpenShift Container Platform worker 节点(例如,2TB SSD 或 2TB NVMe 驱动器),与原始 OpenShift Container Storage StorageCluster 创建时相同。
-
如果您从以前的 OpenShift Container Storage 版本升级且还没有创建
LocalVolumeDiscovery对象,按照本地存储支持的集群 所述步骤进行操作。 -
如果您已经从以前的 OpenShift Container Storage 版本升级,且还没有创建
LocalVolumeSet对象来启用自动置备设备,现在按照 由本地存储支持的集群 所述步骤进行操作。
流程
根据您要在裸机、IBM Power Systems、IBM Z 或 LinuxONE、Amazon EC2、VMware 基础架构还是 Red Hat Virtualization 平台上添加节点,请执行以下步骤:
对于 Amazon EC2
- 使用所需基础架构创建新的 Amazon EC2 I3 机器实例。请参阅 在 AWS 和 Platform 要求 中创建 MachineSet。
- 使用新的 Amazon EC2 I3 机器实例来创建新的 OpenShift Container Platform 节点。
对于 VMware:
- 使用所需基础架构在 vSphere 上创建新虚拟机。请参阅 平台要求。
- 使用新虚拟机创建新的 OpenShift Container Platform worker 节点。
Red Hat Virtualization:
- 使用所需基础架构在 Red Hat Virtualization 上创建新虚拟机。请参阅 平台要求。
- 使用新虚拟机创建新的 OpenShift Container Platform worker 节点。
对于裸机:
- 获取具有所需基础架构的新裸机计算机。请参阅 平台要求。
- 使用新的裸机机器创建新的 OpenShift Container Platform 节点。
对于 IBM Power 系统:
- 使用所需基础架构获取新的 IBM Power 机器。请参阅 平台要求。
- 使用新的 IBM Power 机器创建新的 OpenShift Container Platform 节点。
对于 IBM Z 或 LinuxONE:
- 获取具有所需基础架构的新 IBM Z 或 LinuxONE 机器。请参阅 平台要求。
- 使用新的 IBM Z 或 LinuxONE 机器创建一个新的 OpenShift Container Platform 节点。
检查与处于
Pending状态的 OpenShift Container Storage 相关的证书签名请求 (CSR):$ oc get csr
为新节点批准所有所需的 OpenShift Container Storage CSR:
$ oc adm certificate approve <Certificate_Name>
- 点 Compute → Nodes,确认新节点是否处于 Ready 状态。
使用以下任一方法之一将 OpenShift Container Storage 标签应用到新节点:
- 从用户界面
- 对于新节点,点击 Action Menu(⋮) → Edit Labels
-
添加
cluster.ocs.openshift.io/openshift-storage并点 Save。
- 使用命令行界面
执行以下命令,将 OpenShift Container Storage 标签应用到新节点:
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
从 OpenShift Web 控制台中点 Operators → Installed Operators。
从 Project 下拉菜单中选择安装 Local Storage Operator 的项目。
- 点 Local Storage。
- 点 Local Volume Discovery 选项卡。
-
在
LocalVolumeDiscovery旁边,点 Action 菜单 (⋮) → Edit Local Volume Discovery。 -
在 YAML 中,将新节点的主机名添加到节点选择器下的
values字段中。 - 点击 Save。
- 点 Local Volume Sets 选项卡。
-
在
LocalVolumeSet旁边,点 Action 菜单 (⋮) → Edit Local Volume Set。 在 YAML 中,将新节点的主机名添加到
节点选择器下的values字段中。图 3.1. 显示添加新主机名的 YAML

- 点击 Save。
建议您添加 3 个节点,每个节点都位于不同的区中。您必须添加 3 个节点,并对所有节点执行此步骤。
验证步骤
- 要验证新节点是否已添加,请参阅 验证添加新节点。
3.1.4. 验证新节点的添加
执行以下命令并验证输出中是否存在新节点:
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
点 Workloads → Pods,确认新节点上的以下 pod 处于 Running 状态 :
-
csi-cephfsplugin-* -
csi-rbdplugin-*
-
3.2. 为新添加的节点添加容量
若要为新添加的节点添加容量,可使用 Add Capacity 选项扩展具有 3 个 OSD 的存储集群,或者使用新的灵活扩展功能,允许您在启用时将存储集群扩展至任意数量的 OSD。
3.2.1. 使用 Add Capacity 选项添加 3 个 OSD 的容量
若要在用户界面中使用 Add Capacity 选项为动态和本地存储添加 3 个 OSD 的容量,请参阅通过添加容量来扩展存储。Add Capacity 选项可用于启用了灵活扩展功能的存储集群。
3.2.2. 使用 YAML 添加容量
启用灵活扩展后,您可以使用 YAML(而不是默认的 3 OSD)一次添加 1 个或多个 OSD 的容量。但是,您需要确保以集群保持平衡的方式添加磁盘。
仅支持内部附加存储集群创建模式才支持灵活扩展。灵活扩展存储集群仅适用于新的 Red Hat OpenShift Container Storage 4.7,不适用于升级的集群。
要启用灵活的扩展,请创建一个具有 3 个节点且少于 3 个可用区的集群。OpenShift Web 控制台检测到分布在 3 个可用区的 3 个节点,并启用灵活的扩展。
您无法在创建存储集群后启用或禁用灵活的扩展功能。
3.2.2.1. 验证是否启用了灵活的扩展
要验证是否在存储集群中启用了灵活的扩展,请执行以下步骤:
- 点 OpenShift Container Storage Operator。
- 点 Storage Cluster 选项卡。
- 点存储集群旁的操作菜单 (⋮)。
- 点 Edit Storage Cluster。您将被重定向到 YAML。
在 YAML 中,在
spec部分搜索flexibleScaling键,并在status部分搜索failureDomain。如果flexible scaling为 true,failureDomain被设置为 host,则启用灵活的扩展功能。spec: flexibleScaling: true […] status: failureDomain: host
3.2.2.2. 在 1 个 OSD 的倍数中使用 YAML 添加容量
要通过 YAML 灵活地将 OSD 添加到存储集群中,请执行以下步骤:
先决条件
- 管理员访问 OpenShift Container Platform Web 控制台。
- 启用灵活扩展的存储集群。
- 其他可用于添加容量的磁盘。
流程
- 点 Operators → Installed Operators 查看所有已安装的 Operator。确保选中的项目为 openshift-storage。
- 点 OpenShift Container Storage operator。
- 点 Storage Cluster 选项卡。
- 点击您要扩展的存储集群旁的操作菜单 (⋮)。
- 点 Edit Storage Cluster。您将被重定向到 YAML。
-
在 YAML 中,搜索键
计数。此计数参数可向上扩展容量。 将数量增加到您要添加到集群的 OSD 数量。
重要确保 YAML 中的
count参数根据可用磁盘的数量递增,同时确保以集群保持均衡的方式添加磁盘。- 点击 Save。
您可能需要等待几分钟,以便存储集群达到 Ready 状态。
验证步骤
导航到 Overview → Persistent Storage 选项卡,然后检查 Raw Capacity breakdown 卡。
请注意,容量会根据您的选择而增加。
注意原始容量不考虑复制并显示完整容量。
验证新 OSD 及其对应的新 PVC 是否已创建。
查看新创建的 OSD 的状态:
- 从 OpenShift Web 控制台点 Workloads → Pods。
-
从 Project 下拉列表中选择
openshift-storage。
查看 PVC 的状态:
- 从 OpenShift Web 控制台点 Storage → Persistent Volume Claims。
-
从 Project 下拉列表中选择
openshift-storage。
(可选)如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。
识别运行新 OSD pod 的节点。
$ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>
例如:
oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
对于上一步中确定的每个节点,请执行以下操作:
创建调试 pod,并为所选主机打开 chroot 环境。
$ oc debug node/<node name> $ chroot /host
运行 "lsblk" 并检查
ocs-deviceset名旁边的 "crypt" 关键字。$ lsblk
OpenShift Container Storage 不支持通过减少 OSD 或减少节点来减少集群。