您的位置:首页 > 财经 > 金融 > 黄骅市人民政府官网_靠网贷年赚24亿_太仓网站制作_网站制作公司哪家好

黄骅市人民政府官网_靠网贷年赚24亿_太仓网站制作_网站制作公司哪家好

2025/1/6 17:00:27 来源:https://blog.csdn.net/qq_42895490/article/details/143271233  浏览:    关键词:黄骅市人民政府官网_靠网贷年赚24亿_太仓网站制作_网站制作公司哪家好
黄骅市人民政府官网_靠网贷年赚24亿_太仓网站制作_网站制作公司哪家好

使用 OpenEBS 的 ZFS 本地存储模式的操作记录

介绍

OpenEBS 是一个开源的云原生存储解决方案,旨在为 Kubernetes 提供持久化存储。它通过容器化存储引擎(如 Jiva、cStor、ZFS、Mayastor 等)来管理和调度存储资源。OpenEBS 的 ZFS 存储引擎可以为有状态应用程序提供高性能、可扩展的存储卷,同时支持数据保护功能,如快照和克隆。

本文记录了在 Kubernetes 集群中使用 OpenEBS 的 ZFS 本地存储模式的安装与操作步骤。该流程涵盖了 Helm 安装 OpenEBS、创建持久化卷 (PVC)、快照及克隆操作等内容。

安装 OpenEBS

首先,使用 Helm 安装 OpenEBS,并禁用 Mayastor 引擎:

helm repo add openebs https://openebs.github.io/openebs
helm repo update
helm upgrade --install openebs --namespace openebs openebs/openebs --set engines.replicated.mayastor.enabled=false --create-namespace

创建 ZFS 池

使用 zfs create 命令创建 ZFS 存储池,详情可以查看此链接。

查看现有的 ZFS 池:

zfs list

示例输出:

NAME                                            USED  AVAIL     REFER  MOUNTPOINT
mypool                                         10.3G  20.2G     25.5K  /mypool
mypool/myvolume                                10.3G  30.2G      293M  -
mypool/test                                      24K  20.2G       24K  /mypool/test
pool                                           4.13G  56.9G       27K  /pool
pool/pvc-259fa4d5-04f4-4f86-9d82-15300544e5a6  4.13G  60.9G      130M  -
pool/pvc-f6e08a19-ef27-4867-a5d9-880cb69cbd81    24K  4.00G       24K  legacy

创建存储类和 PVC

在这一部分,我们将创建两种不同类型的存储类和相应的 PVC。

  • zfs-sc.yaml:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: openebs-zfspv
provisioner: openebs.io/zfs
allowVolumeExpansion: true ##添加此字段后使用此 sc 的 pvc 可以打快照
parameters:poolname: "pool"fstype: "ext4"

该存储类 openebs-zfspv 使用 ext4 文件系统。

  • zfs-sc-file.yaml:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: openebs-zfspv-file
provisioner: openebs.io/zfs
allowVolumeExpansion: true
parameters:poolname: "pool"fstype: "zfs"

该存储类 openebs-zfspv-file 使用 zfs 文件系统。

创建存储类:

kubectl apply -f zfs-sc.yaml
kubectl apply -f zfs-sc-file.yaml

使用以下配置文件创建 PVC:

  • pvc.yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: csi-zfspv
spec:storageClassName: openebs-zfspvaccessModes:- ReadWriteOnceresources:requests:storage: 4Gi
  • pvc-file.yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: csi-zfspv-file
spec:storageClassName: openebs-zfspv-fileaccessModes:- ReadWriteOnceresources:requests:storage: 4Gi

创建 PVC:

kubectl apply -f pvc.yaml
kubectl apply -f pvc-file.yaml

查看 PVC 状态:

kubectl get pvc

示例输出:

NAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS         AGE
csi-zfspv        Bound    pvc-259fa4d5-04f4-4f86-9d82-15300544e5a6   4Gi        RWO            openebs-zfspv        7m33s
csi-zfspv-file   Bound    pvc-f6e08a19-ef27-4867-a5d9-880cb69cbd81   4Gi        RWO            openebs-zfspv-file   27m

创建 Pod 使用 PVC

使用以下配置文件创建使用 PVC 的 Pod:

  • pod.yaml:
apiVersion: v1
kind: Pod
metadata:name: fio
spec:restartPolicy: Nevercontainers:- name: perfrunnerimage: openebs/tests-fio:latestimagePullPolicy: IfNotPresentcommand: ["/bin/bash"]args: ["-c", "while true ;do sleep 50; done"]volumeMounts:- mountPath: /datadirname: fio-voltty: truevolumes:- name: fio-volpersistentVolumeClaim:claimName: csi-zfspv

创建 Pod:

kubectl apply -f pod.yaml

查看 Pod 状态:

kubectl get pod zfs-pod

创建在 pvc 中创建一个文件。

kubectl exec -it fio -- /bin/bash touch /datadir/1.txt

创建卷快照

使用以下配置文件创建卷快照:

  • snapshot.yaml:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:name: zfspv-snap
spec:volumeSnapshotClassName: zfspv-snapclasssource:persistentVolumeClaimName: csi-zfspv

创建快照:

kubectl apply -f snapshot.yaml

查看快照:

kubectl get volumesnapshot.snapshot

示例输出:

NAME         READYTOUSE   SOURCEPVC   SOURCESNAPSHOTCONTENT   RESTORESIZE   SNAPSHOTCLASS     SNAPSHOTCONTENT                                    CREATIONTIME   AGE
zfspv-snap   true         csi-zfspv                           5Gi           zfspv-snapclass   snapcontent-ef413403-1990-425d-b766-f5c21f4311b5   12s            12s

查看快照详细信息:

kubectl get volumesnapshot.snapshot zfspv-snap -o yaml

示例输出包含了快照的元数据和状态。

克隆卷

根据快照创建了两个克隆卷 zfspv-clonezfspv-clone-2。需要注意的是,克隆后的数据与快照创建时的数据一致,没有发生变化。

使用以下配置文件创建克隆 PVC:

  • clone.yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: zfspv-clone
spec:dataSource:name: zfspv-snapkind: VolumeSnapshotapiGroup: snapshot.storage.k8s.iostorageClassName: openebs-zfspvaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: zfspv-clone-2
spec:dataSource:name: zfspv-snapkind: VolumeSnapshotapiGroup: snapshot.storage.k8s.iostorageClassName: openebs-zfspvaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi

创建克隆 PVC:

kubectl apply -f clone.yaml

查看 PVC 状态:

kubectl get pvc

示例输出:

NAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS         AGE
csi-zfspv        Bound    pvc-259fa4d5-04f4-4f86-9d82-15300544e5a6   5Gi        RWO            openebs-zfspv        18m
csi-zfspv-file   Bound    pvc-f6e08a19-ef27-4867-a5d9-880cb69cbd81   4Gi        RWO            openebs-zfspv-file   38m
zfspv-clone      Bound    pvc-7fb8351c-72c8-4256-adbe-2bc6b26f5645   5Gi        RWO            openebs-zfspv        4s
zfspv-clone-2    Bound    pvc-04ad67d7-2bc4-47c1-9c79-0835405929df   4Gi        RWO            openebs-zfspv        4s

查看 ZFS 列表

查看所有类型的 ZFS:

zfs list -t all

示例输出:

NAME                                                                                          USED  AVAIL     REFER  MOUNTPOINT
mypool                                                                                       10.3G  20.2G     25.5K  /mypool
mypool/myvolume                                                                              10.3G  30.2G      293M  -
mypool/test                                                                                    24K  20.2G       24K  /mypool/test
pool                                                                                         5.30G  55.7G       27K  /pool
pool/pvc-04ad67d7-2bc4-47c1-9c79-0835405929df                                                   0B     4G       26K  legacy
pool/pvc-259fa4d5-04f4-4f86-9d82-15300544e5a6                                                5.30G  60.9G      146M  -
pool/pvc-259fa4d5-04f4-4f86-9d82-15300544e5a6@snapshot-ef413403-1990-425d-b766-f5c21f4311b5     0B      -      146M  -
pool/pvc-7fb8351c-72c8-4256-adbe-2bc6b26f5645                                                   1K  55.7G      146M  -
pool/pvc-f6e08a19-ef27-4867-a5d9-880cb69cbd81                                                  26K  4.00G       26K  legacy
pool/pvc-f6e08a19-ef27-4867-a5d9-880cb69cbd81@pvc-04ad67d7-2bc4-47c1-9c79-0835405929df          0B      -       26K  -

查看 ZFS Volume (ZV)

在 OpenEBS 中,一个 ZFS 卷对应一个 ZV。

查看 ZV:

kubectl get zv -n openebs

示例输出:

NAME                                       ZPOOL   NODEID   SIZE         STATUS   FILESYSTEM   AGE
pvc-04ad67d7-2bc4-47c1-9c79-0835405929df   pool    test2    4294967296   Ready    zfs          7m48s
pvc-259fa4d5-04f4-4f86-9d82-15300544e5a6   pool    test2    5368709120   Ready    ext4         26m
pvc-2d162e69-3ad3-4757-912d-6543f586d7ed   pool    test2    4294967296   Ready    zfs          8s
pvc-7fb8351c-72c8-4256-adbe-2bc6b26f5645   pool    test2    5368709120   Ready    ext4         7m48s
pvc-f6e08a19-ef27-4867-a5d9-880cb69cbd81   pool    test2    4294967296   Ready    zfs          46m

验证克隆后的数据

使用克隆后的 pvc :

apiVersion: v1
kind: Pod
metadata:name: fio
spec:restartPolicy: Nevercontainers:- name: perfrunnerimage: openebs/tests-fio:latestimagePullPolicy: IfNotPresentcommand: ["/bin/bash"]args: ["-c", "while true ;do sleep 50; done"]volumeMounts:- mountPath: /datadirname: fio-voltty: truevolumes:- name: fio-volpersistentVolumeClaim:claimName: zfspv-clone

执行命令进入测试容器:

kubectl exec -it fio -- /bin/bash

进入 datadir 目录并查看文件:

cd datadir/
ls

示例输出:

1.txt  lost+found

总结

以上是使用 OpenEBS 的 ZFS 本地存储模式的操作记录。包括安装、PVC 的创建、快照的管理、克隆卷的操作、Pod 使用 PVC 以及 ZV 的查看等步骤。通过这些步骤,可以有效地管理 Kubernetes 中的存储资源。

后记

  • zfs文件系统
  • openesb

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com