ODF(OpenShift Data Foundation) 是为 OpenShift 提供高度集成的存储和数据服务。
ODF 概览
ODF 可以通过存储类给应用提供各种类型的存储:
块存储
共享文件系统
多云对象存储
ODF 由以下组件构成:
Ceph,提供块存储、共享分布式文件系统和对象存储
Ceph CSI,用于管理 PV 和 PVC 的调配和生命周期
NooBaa 提供多云对象网关
ODF、Rook-Ceph 和 NooBaa Operator,用于初始化和管理 ODF 服务
ODF 架构
ODF 架构示意图:
ODF 可以利用云供应商提供的存储设备和物理主机设备。
ODF 部署方式有多种:
以外部模式部署
基于各种云平台存储部署
基于 OpenStack 部署
基于裸机部署
这里体验基于裸机方式,使用内部-附加设备的模式进行部署。
使用本地存储设备部署 ODF
存储节点准备工作
首先确保存储节点中有未使用的存储设备:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
oc debug node/worker01 Starting pod/worker01-debug ... To use host binaries, run `chroot /host` Pod IP: 192.168.50.13 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 vda 252:0 0 80G 0 disk |-vda1 252:1 0 1M 0 part |-vda2 252:2 0 127M 0 part |-vda3 252:3 0 384M 0 part /boot `-vda4 252:4 0 79.5G 0 part /sysroot vdb 252:16 0 500G 0 disk vdc 252:32 0 500G 0 disk sh-4.4#
oc get pod -n openshift-local-storage NAME READY STATUS RESTARTS AGE diskmaker-discovery-cxl48 1/1 Running 0 66s diskmaker-discovery-dlsxq 1/1 Running 0 66s diskmaker-discovery-sfq48 1/1 Running 0 66s local-storage-operator-5d759c6bf4-jsw6m 1/1 Running 0 113s
几分钟后可以看到磁盘设备发现已完成:
查看 LocalVolumeDiscoveryResult 资源:
1 2 3 4 5
oc get LocalVolumeDiscoveryResult -n openshift-local-storage NAME AGE discovery-result-worker01 13m discovery-result-worker02 13m discovery-result-worker03 13m
同时在 Max Disk Limit 出设置了 1 ,也就是一个节点只会提供一个 PV,前面有两块盘,当前只使用一块,后续一块用于扩展存储。 随后可以看到对应创建的存储类和与本地设备关联的 PV:
1 2 3 4 5 6 7 8
oc get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE imxcai-lvmset kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 88s
[student@workstation ~]$ oc get pv | grep imxcai-lvmset local-pv-373f3bb3 500Gi RWO Delete Available imxcai-lvmset 31s local-pv-77d7b4ac 500Gi RWO Delete Available imxcai-lvmset 32s local-pv-8786c248 500Gi RWO Delete Available imxcai-lvmset 32s
oc get operator,pods -n openshift-storage NAME AGE operator.operators.coreos.com/local-storage-operator.openshift-local-storage 30m operator.operators.coreos.com/ocs-operator.openshift-storage 3m41s
NAME READY STATUS RESTARTS AGE pod/noobaa-operator-5b8d6d8849-fvp9v 1/1 Running 0 2m41s pod/ocs-metrics-exporter-647dd97877-ggsfn 1/1 Running 0 2m41s pod/ocs-operator-7cf74b897d-9tkfc 1/1 Running 0 2m41s pod/rook-ceph-operator-7df548cc9-gb8tr 1/1 Running 0 2m41s
oc get storagecluster,pods -n openshift-storage NAME AGE PHASE EXTERNAL CREATED AT VERSION storagecluster.ocs.openshift.io/ocs-storagecluster 5m25s Ready 2024-02-06T07:29:28Z 4.7.0
bash-4.4$ ceph -c /var/lib/rook/openshift-storage/openshift-storage.config osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -11.46489 root default -30.48830 host worker01 0 hdd 0.48830 osd.0 up 1.000001.00000 -70.48830 host worker02 2 hdd 0.48830 osd.2 up 1.000001.00000 -50.48830 host worker03 1 hdd 0.48830 osd.1 up 1.000001.00000
评论· · · · · ·