Rook入门:打造云原生Ceph存储的全面学习路径(下)

news2024/11/30 13:47:33

文章目录

  • 六.Rook部署云原生CephFS文件系统
    • 6.1 部署cephfs storageclass
    • 6.2 创建容器所需cephfs文件系统
    • 6.3创建容器pod使用rook-cephfs提供pvc
    • 6.4 查看pod是否使用rook-cephfs
  • 七.Ceph Dashboard界面
    • 7.1 启用dashboard开关
    • 7.2 ceph-dashboard配置外部访问
    • 7.3 Dashboard web admin密码查看
    • 7.4 dashboard web登录查看
  • 八.Prometheus监控
    • 8.1 查看rook-ceph-mgr metrics监控指标
    • 8.2部署prometheus-operator
    • 8.3 部署prometheus实例
    • 8.4部署grafana
    • 8.5配置grafana监控ceph模板
    • 8.6 在grafana上查看ceph集群状态
  • 九.常见故障排查
    • 9.1 ceph集群出现警告mgr modules have recently crashed
    • 9.2 ceph集群出现警告 mons are allowing insecure global_id reclaim
    • 9.3 rook部署ceph集群某个pod异常或者pending状态
    • 9.4 PVC处于pending状态
    • 9.5 rook-ceph osd down格式化硬盘重新挂载
  • 十.ceph集群常用命令
    • 10.1查看集群状态命令
    • 10.2 Ceph mds命令
    • 10.3 ceph osd命令
    • 10.4 ceph pg命令
    • 10.5 ceph osd pool命令
    • 10.6 rados命令

六.Rook部署云原生CephFS文件系统

6.1 部署cephfs storageclass

cephfs文件系统与RBD服务类似,要想在kubernetes pod里使用cephfs,需要创建一个cephfs-provisioner storageclass服务,在rook代码里已有资源文件,单独部署即可

[root@node1 examples]#
kubectl create -f deploy/examples/csi/cephfs/storageclass.yaml


查看cephfs storageclass名称
[root@node1 examples]# kubectl get storageclasses.storage.k8s.io  | grep rook-cephfs
rook-cephfs                   rook-ceph.cephfs.csi.ceph.com   Delete          Immediate           true                   21d
[root@node1 examples]#

6.2 创建容器所需cephfs文件系统

创建容器所需pvc指定rook部署rook-cephfs存储类名称
[root@node1 cephfs]# cat pvc.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cephfs-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: rook-cephfs
[root@node1 cephfs]#
[root@node1 cephfs]# kubectl apply -f pvc.yaml


查看pvc所提供是rook-cephfs
[root@node1 cephfs]# kubectl get pvc | grep cephfs-pvc
cephfs-pvc             Bound    pvc-da18c8f9-00c1-4c39-8c53-68a628fa8bdd   1Gi        RWO            rook-cephfs                   21d
           rook-cephfs                   7d23h
[root@node1 cephfs]#

6.3创建容器pod使用rook-cephfs提供pvc

[root@node1 cephfs]# cat pod.yaml
---
apiVersion: v1
kind: Pod
metadata:
  name: csicephfs-demo-pod
spec:
  containers:
    - name: web-server
      image: nginx:latest
      volumeMounts:
        - name: mypvc
          mountPath: /var/lib/www/html
  volumes:
    - name: mypvc
      persistentVolumeClaim:
        claimName: cephfs-pvc
        readOnly: false
[root@node1 cephfs]#
[root@node1 cephfs]# kubectl apply -f pod.yaml


查看pod运行状况
[root@node1 cephfs]# kubectl get pod | grep cephfs
csicephfs-demo-pod                           1/1     Running     0            21d
[root@node1 cephfs]#

6.4 查看pod是否使用rook-cephfs

[root@node1 cephfs]# kubectl exec -it csicephfs-demo-pod -- bash
root@csicephfs-demo-pod:/# df -hT | grep csi-vol
10.68.91.46:6789,10.68.110.0:6789,10.68.225.251:6789:/volumes/csi/csi-vol-50d5c216-3e2a-11ed-9773-9a6110af61d6/f4e696bf-757d-4793-b2c2-3091d38ccec5 ceph     1.0G     0  1.0G   0% /var/lib/www/html
root@csicephfs-demo-pod:/#
root@csicephfs-demo-pod:/# echo "cephfs" > /var/lib/www/html/index.html
root@csicephfs-demo-pod:/# cat /var/lib/www/html/index.html
cephfs
root@csicephfs-demo-pod:/#

注:登录相应pod容器可以看到pod已经挂载cephfs文件系统地址,可以在相应挂载目录创建内容。

七.Ceph Dashboard界面

ceph有一个dashboard web管理界面,通过web界面在可以查看集群的状态,包括总体运行状态,mgr、osd、rgw等服务状态,还可以查看ceph pool池及pg状态等相关信息。

7.1 启用dashboard开关

在cluster.yaml文件中,dashboard.enable=true即可。rookoperator就会启用ceph-mgr dashboard模块,默认已启用。Ceph-dashboard默认会通过service的方式将服务暴露给外部,通过8443的https端口进行访问。

[root@node1 examples]# kubectl get svc -n rook-ceph | grep rook-ceph-mgr-dashboard
rook-ceph-mgr-dashboard                  ClusterIP   10.68.218.45    <none>        8443/TCP            24d
[root@node1 examples]#

7.2 ceph-dashboard配置外部访问

Dashboard web界面外部访问可以通过ingress或者NodePort方式,这里使用NodePort方式将dashboard服务暴露给kubernetes集群外部访问,外部通过nodeport端口访问dashboard服务。

Dashboard-external-https资源文件应用
[root@node1 examples]# kubectl apply -f dashboard-external-https.yaml


查看dashboard nodeport端口32367
[root@node1 examples]# kubectl get svc -n rook-ceph | grep rook-ceph-mgr-dashboard
rook-ceph-mgr-dashboard                  ClusterIP   10.68.218.45    <none>        8443/TCP            24d
rook-ceph-mgr-dashboard-external-https   NodePort    10.68.104.233   <none>        8443:32367/TCP      22d
[root@node1 examples]#

7.3 Dashboard web admin密码查看

用户名默认是admin,密码通过下面方式查看

[root@node1 examples]# kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo ""
Z(M(@>GBC4TUZXQgT6%$
[root@node1 examples]#

7.4 dashboard web登录查看

Dashboard web界面访问https://node_ip:32367
在这里插入图片描述
登录后dashboard界面,ceph集群状态,hosts、monitors、osds、rgw、pools、block等相关信息。
在这里插入图片描述

八.Prometheus监控

rook部署ceph集群默认没有安装prometheus监控服务,这里我们使用prometheus以容器化运行在kubernetes中,使用prometheus-operator部署方式。
prometheus监控系统包括组件:
Exporter:监控agent端,用于上报,ceph-mgr默认已提供内置监控指标
Prometheus:服务端用于存储监控数据、提供查询、告警等
Grafana:展示监控信息,通常从prometheus获取监控指标通过模板来展示图表信息

8.1 查看rook-ceph-mgr metrics监控指标

[root@node1 examples]# kubectl get svc -n rook-ceph | grep rook-ceph-mgr
rook-ceph-mgr                            ClusterIP   10.68.33.103    <none>        9283/TCP            24d
Ceph-mgr metrics监控指标访问
[root@node1 examples]# curl http://10.68.33.103:9283/metrics

# HELP ceph_health_status Cluster health status
# TYPE ceph_health_status untyped
ceph_health_status 0.0
# HELP ceph_mon_quorum_status Monitors in quorum
# TYPE ceph_mon_quorum_status gauge
ceph_mon_quorum_status{ceph_daemon="mon.b"} 1.0
ceph_mon_quorum_status{ceph_daemon="mon.c"} 1.0
ceph_mon_quorum_status{ceph_daemon="mon.d"} 1.0
# HELP ceph_fs_metadata FS Metadata
# TYPE ceph_fs_metadata untyped
ceph_fs_metadata{data_pools="5",fs_id="1",metadata_pool="4",name="myfs"} 1.0
# HELP ceph_mds_metadata MDS Metadata
# TYPE ceph_mds_metadata untyped
ceph_mds_metadata{ceph_daemon="mds.myfs-b",fs_id="1",hostname="10.255.82.25",public_addr="172.20.166.175:6801/2538469664",rank="0",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
ceph_mds_metadata{ceph_daemon="mds.myfs-a",fs_id="1",hostname="10.255.82.27",public_addr="172.20.135.49:6801/1468538095",rank="0",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
# HELP ceph_mon_metadata MON Metadata
# TYPE ceph_mon_metadata untyped
ceph_mon_metadata{ceph_daemon="mon.b",hostname="10.255.82.25",public_addr="10.68.225.251",rank="0",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
ceph_mon_metadata{ceph_daemon="mon.c",hostname="10.255.82.26",public_addr="10.68.91.46",rank="1",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
ceph_mon_metadata{ceph_daemon="mon.d",hostname="10.255.82.27",public_addr="10.68.243.187",rank="2",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
# HELP ceph_mgr_metadata MGR metadata
# TYPE ceph_mgr_metadata gauge
ceph_mgr_metadata{ceph_daemon="mgr.b",hostname="10.255.82.25",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
ceph_mgr_metadata{ceph_daemon="mgr.a",hostname="10.255.82.27",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
# HELP ceph_mgr_status MGR status (0=standby, 1=active)
# TYPE ceph_mgr_status gauge
ceph_mgr_status{ceph_daemon="mgr.b"} 0.0
ceph_mgr_status{ceph_daemon="mgr.a"} 1.0
# HELP ceph_mgr_module_status MGR module status (0=disabled, 1=enabled, 2=auto-enabled)
# TYPE ceph_mgr_module_status gauge
ceph_mgr_module_status{name="alerts"} 0.0
ceph_mgr_module_status{name="balancer"} 2.0
ceph_mgr_module_status{name="cephadm"} 0.0
ceph_mgr_module_status{name="crash"} 2.0
ceph_mgr_module_status{name="dashboard"} 1.0
ceph_mgr_module_status{name="devicehealth"} 2.0
ceph_mgr_module_status{name="diskprediction_local"} 0.0
ceph_mgr_module_status{name="influx"} 0.0
ceph_mgr_module_status{name="insights"} 0.0
ceph_mgr_module_status{name="iostat"} 1.0
ceph_mgr_module_status{name="k8sevents"} 0.0
ceph_mgr_module_status{name="localpool"} 0.0
ceph_mgr_module_status{name="mds_autoscaler"} 0.0
ceph_mgr_module_status{name="mirroring"} 0.0
ceph_mgr_module_status{name="nfs"} 1.0
ceph_mgr_module_status{name="orchestrator"} 2.0
ceph_mgr_module_status{name="osd_perf_query"} 0.0
ceph_mgr_module_status{name="osd_support"} 0.0
ceph_mgr_module_status{name="pg_autoscaler"} 2.0
ceph_mgr_module_status{name="progress"} 2.0
ceph_mgr_module_status{name="prometheus"} 1.0
ceph_mgr_module_status{name="rbd_support"} 2.0
ceph_mgr_module_status{name="restful"} 1.0
ceph_mgr_module_status{name="rook"} 0.0
ceph_mgr_module_status{name="selftest"} 0.0
ceph_mgr_module_status{name="snap_schedule"} 0.0
ceph_mgr_module_status{name="stats"} 0.0
ceph_mgr_module_status{name="status"} 2.0
ceph_mgr_module_status{name="telegraf"} 0.0
ceph_mgr_module_status{name="telemetry"} 2.0
ceph_mgr_module_status{name="test_orchestrator"} 0.0
ceph_mgr_module_status{name="volumes"} 2.0
ceph_mgr_module_status{name="zabbix"} 0.0
# HELP ceph_mgr_module_can_run MGR module runnable state i.e. can it run (0=no, 1=yes)
# TYPE ceph_mgr_module_can_run gauge
ceph_mgr_module_can_run{name="alerts"} 1.0
ceph_mgr_module_can_run{name="balancer"} 1.0
ceph_mgr_module_can_run{name="cephadm"} 1.0
ceph_mgr_module_can_run{name="crash"} 1.0
ceph_mgr_module_can_run{name="dashboard"} 1.0
ceph_mgr_module_can_run{name="devicehealth"} 1.0
ceph_mgr_module_can_run{name="diskprediction_local"} 1.0
ceph_mgr_module_can_run{name="influx"} 0.0
ceph_mgr_module_can_run{name="insights"} 1.0
ceph_mgr_module_can_run{name="iostat"} 1.0
ceph_mgr_module_can_run{name="k8sevents"} 1.0
ceph_mgr_module_can_run{name="localpool"} 1.0
ceph_mgr_module_can_run{name="mds_autoscaler"} 1.0
ceph_mgr_module_can_run{name="mirroring"} 1.0
ceph_mgr_module_can_run{name="nfs"} 1.0
ceph_mgr_module_can_run{name="orchestrator"} 1.0
ceph_mgr_module_can_run{name="osd_perf_query"} 1.0
ceph_mgr_module_can_run{name="osd_support"} 1.0
ceph_mgr_module_can_run{name="pg_autoscaler"} 1.0
ceph_mgr_module_can_run{name="progress"} 1.0
ceph_mgr_module_can_run{name="prometheus"} 1.0
ceph_mgr_module_can_run{name="rbd_support"} 1.0
ceph_mgr_module_can_run{name="restful"} 1.0
ceph_mgr_module_can_run{name="rook"} 1.0
ceph_mgr_module_can_run{name="selftest"} 1.0
ceph_mgr_module_can_run{name="snap_schedule"} 1.0
ceph_mgr_module_can_run{name="stats"} 1.0
ceph_mgr_module_can_run{name="status"} 1.0
ceph_mgr_module_can_run{name="telegraf"} 1.0
ceph_mgr_module_can_run{name="telemetry"} 1.0
ceph_mgr_module_can_run{name="test_orchestrator"} 1.0
ceph_mgr_module_can_run{name="volumes"} 1.0
ceph_mgr_module_can_run{name="zabbix"} 1.0
# HELP ceph_osd_metadata OSD Metadata
# TYPE ceph_osd_metadata untyped
ceph_osd_metadata{back_iface="",ceph_daemon="osd.0",cluster_addr="172.20.166.156",device_class="hdd",front_iface="",hostname="10.255.82.25",objectstore="bluestore",public_addr="172.20.166.156",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
ceph_osd_metadata{back_iface="",ceph_daemon="osd.1",cluster_addr="172.20.104.37",device_class="hdd",front_iface="",hostname="10.255.82.26",objectstore="bluestore",public_addr="172.20.104.37",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
ceph_osd_metadata{back_iface="",ceph_daemon="osd.2",cluster_addr="172.20.135.32",device_class="hdd",front_iface="",hostname="10.255.82.27",objectstore="bluestore",public_addr="172.20.135.32",ceph_version="ceph version 17.2.3 (dff484dfc9e19a9819f375586300b3b79d80034d) quincy (stable)"} 1.0
# HELP ceph_disk_occupation Associate Ceph daemon with disk used
.....
.....
.....
[root@node1 examples]#

8.2部署prometheus-operator

[root@node1 examples]#
kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/v0.40.0/bundle.yaml


Prometheus-operator部署后以容器方式运行
[root@node1 examples]# kubectl get pod | grep prometheus-operator
prometheus-operator-5944b5f9dd-5r789         1/1     Running     0            8d
[root@node1 examples]#

8.3 部署prometheus实例

[root@node1 monitoring]# pwd
/opt/rook/deploy/examples/monitoring
[root@node1 monitoring]#
[root@node1 monitoring]# kubectl apply -f prometheus.yaml -f prometheus-service.yaml -f service-monitor.yaml


prometheus默认提供了9090端口访问,这里更改nodeport类型方式访问

[root@node1 monitoring]# kubectl get svc -n rook-ceph | grep rook-prometheus
rook-prometheus                          NodePort    10.68.232.216   <none>        9090:30900/TCP      8d
[root@node1 monitoring]#


prometheus访问地址http://node_ip:30900

在这里插入图片描述

8.4部署grafana

grafana是一个数据展示的平台,数据展示主要依赖后端的数据源。这里使用prometheus作为数据源,grafana作为展示。grafana部署在kubernetes中,参考grafana on kubernetes官方yaml文件。地址如下,根据自己需求进行修改。
https://grafana.com/docs/grafana/latest/setup-grafana/installation/kubernetes/

Grafana.yaml部署资源文件
---apiVersion: v1kind: PersistentVolumeClaimmetadata:
  name: grafana-pvcspec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi---apiVersion: apps/v1kind: Deploymentmetadata:
  labels:
    app: grafana
  name: grafanaspec:
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      securityContext:
        fsGroup: 472
        supplementalGroups:
          - 0
      containers:
        - name: grafana
          image: grafana/grafana:9.1.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
              name: http-grafana
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /robots.txt
              port: 3000
              scheme: HTTP
            initialDelaySeconds: 10
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 2
          livenessProbe:
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 3000
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 250m
              memory: 750Mi
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-pv
      volumes:
        - name: grafana-pv
          persistentVolumeClaim:
            claimName: grafana-pvc---apiVersion: v1kind: Servicemetadata:
  name: grafanaspec:
  ports:
    - port: 3000
      protocol: TCP
      targetPort: http-grafana
  selector:
    app: grafana
  sessionAffinity: None
  type: LoadBalancer

# kubectl apply -f grafana.yaml


查看grafana运行状态,grafana对外访问使用nodeport形式。
[root@node1 rook]# kubectl get pod,svc | grep grafana
pod/grafana-b8b88d68-z8qpf                       1/1     Running     2 (8d ago)   8d
service/grafana                                                  NodePort    10.68.99.199    <none>        3000:30780/TCP                                                                            8d
[root@node1 rook]#


grafana访问地址如下,默认用户名和密码均为admin。登录后需要修改密码。
http://node_ip:30780

在这里插入图片描述

8.5配置grafana监控ceph模板

通常下面模板已满足ceph集群监控信息

ceph-cluster模板ID:2842
ceph-osd 模板ID:5336
ceph-pool 模板ID:5342

导入模板ID步骤1
在这里插入图片描述
导入模板ID步骤2,输入ID载入即可
在这里插入图片描述

8.6 在grafana上查看ceph集群状态

在这里插入图片描述
在这里插入图片描述

九.常见故障排查

9.1 ceph集群出现警告mgr modules have recently crashed

解决方法:
# kubectl exec -it rook-ceph-tools-5d8c78cd5b-kr6m9 -n rook-ceph -- bash

bash-4.4$ ceph crash ls-new
ID                                                                ENTITY  NEW
bash-4.4$ ceph crash archive 2022-09-30T07:59:23.681099Z_31814cfb-a08d-423e-b8dd-b5f0fd4fb097
bash-4.4$

bash-4.4$ ceph health
HEALTH_OK
bash-4.4$

9.2 ceph集群出现警告 mons are allowing insecure global_id reclaim

解决方法:
ceph config set mon auth_allow_insecure_global_id_reclaim false 

9.3 rook部署ceph集群某个pod异常或者pending状态

解决问题思路:
1.查看pod log查看容器内部异常日志信息
2.通过describe查看pod事件异常信息

9.4 PVC处于pending状态

解决问题思路:
1.集群中确认是否有OSD
2.CSI配置程序pod未运行或者未响应配置存储的请求

9.5 rook-ceph osd down格式化硬盘重新挂载

// 重新格式化硬盘准备
# yum -y install gdisk
# kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=0
deployment.apps/rook-ceph-operator scaled

// 查询osd的状态,找到要移除的osd id
# ceph osd status

// ID为2的osd标识为out,此时会进⾏元数据的同步
# ceph osd out osd.2
# ceph osd purge 2 --yes-i-really-mean-it

// 删除ID为2的OSD
# ceph auth del osd.2
entity osd.2 does not exist

// 删除相关osd节点的deployment
# kubectl delete deploy -n rook-ceph rook-ceph-osd-2
deployment.apps "rook-ceph-osd-2" deleted

// 删除硬盘分区信息
# sgdisk --zap-all /dev/sdb
Creating new GPT entries.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.

// 清理硬盘数据(hdd硬盘使用dd,ssd硬盘使用blkdiscard,二选一)
# dd if=/dev/zero of="/dev/sdb" bs=1M count=500000 oflag=direct,dsync
500000+0 records in
500000+0 records out
524288000000 bytes (524 GB) copied, 258.146 s, 2.0 GB/s

// ssd硬盘选择此命令
# blkdiscard /dev/sdb

// 删除原osd的lvm信息(如果单个节点有多个osd,那么就不能用*拼配模糊删除,而根据lsblk -f查询出明确的lv映射信息再具体删除)
ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove %
rm -rf /dev/ceph-*
lsblk -f

// 恢复rook的operator,使检测到格式化后的osd硬盘,osd启动后ceph集群会自动平衡数据
kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=1
deployment.aps/rook-ceph-operator scaled

十.ceph集群常用命令

10.1查看集群状态命令

ceph -v //查看ceph的版本

ceph -s //查看集群的状态

ceph -w //监控集群的实时更改|查看正在操作的动作

ceph osd tree #查看osd目录树

ceph osd df //详细列出集群每块磁盘的使用情况|查看osd的使用信息

ceph osd stat #查看osd状态

ceph mon stat //查看mon状态

ceph mds stat # 检查 MDS 状态

ceph osd find osd.o//查看osd.0节点ip和主机名

ceph auth get client.admin # 查看ceph授权信息

10.2 Ceph mds命令

ceph mds
ceph mds stat #查看msd状态

ceph mds dump #msd的映射信息

ceph mds rm 0 mds.node1#删除一个mds节点

10.3 ceph osd命令

ceph osd stat #查看osd状态

ceph osd dump #osd的映射信息

ceph osd tree#查看osd目录树

ceph osd down 0 #down掉osd.0节点

ceph osd rm 0#集群删除一个osd硬盘

ceph osd crush remove osd.4#删除标记

ceph osd getmaxosd#查看最大osd个数

ceph osd setmaxosd 10#设置osd的个数

ceph osd out osd.3#把一个osd节点逐出集群

ceph osd in osd.3#把逐出的osd加入集群

ceph osd pause#暂停osd (暂停后整个集群不再接收数据)

ceph osd unpause#再次开启osd (开启后再次接收数据)

ceph osd df //查看osd的使用信息

要定位对象,只需要对象名和存储池名字即可,例如:

ceph osd map {poolname} {object-name}

10.4 ceph pg命令

ceph pg stat#查看pg状态

ceph pg dump#查看pg组的映射信息

ceph pg map 0.3f#查看一个pg的map //查看单个pg和osd的映射信息

ceph pg 0.26 query#查看pg详细信息

ceph pg dump --format plain#显示一个集群中的所有的pg统计

ceph pg {pg-id} query //获取pg的详细信息

10.5 ceph osd pool命令

ceph osd lspools #查看ceph集群中的pool数量

创建和删除存储池​

ceph osd pool create myPoolName 100#创建一个pool 这里的100指的是PG组

ceph osd pool delete myPoolName myPoolName --yes-i-really-really-mean-it #删除,集群名字需要重复两次

rados df#显示集群中pool的详细信息

ceph osd pool get data pg_num #查看data池的pg数量

ceph osd pool set data target_max_bytes 100000000000000#设置data池的最大存储空间为100T(默认是1T)

ceph osd pool set data size 3 #设置data池的副本数是3

ceph osd pool set data min_size 2 #设置data池能接受写操作的最小副本为2

ceph osd pool set data pg_num 100#设置一个pool的pg数量

ceph osd pool set data pgp_num 100#设置一个pool的pgp数量

ceph osd pool ls //查看集群中的存储池名称

ceph osd pool ls detail //查看池的的详细信息

ceph osd pool stats //查看池的IO情况

10.6 rados命令

rados lspools#查看ceph集群中有多少个pool (只是查看pool)

rados df #查看存储池使用情况:多少个pool,每个pool容量及利用情况

rados mkpool test#创建一个pool,名字:test

rados create testobject -p testpool#testpool中创建一个对象testobject

rados rm test-object-1 -p test#删除(test存储池的)一个对象object

rados -p test ls #查看存储池test的对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2250460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据学习 | Spark-SQL】定义UDF和DUAF,UDTF函数

1. UDF函数&#xff08;用户自定义函数&#xff09; 一般指的是用户自己定义的单行函数。一进一出&#xff0c;函数接受的是一行中的一个或者多个字段值&#xff0c;返回一个值。比如MySQL中的&#xff0c;日期相关的dateDiff函数&#xff0c;字符串相关的substring函数。 先…

vue3 点击按钮,增加和减少input框

需求&#xff1a;手机号的input框默认一个&#xff0c;点击加号&#xff0c;可以增加和减少。 <template><el-form :model"editUserForm" label-width"80px" hide-required-asterisk ref"editUserFormRef"><!-- 手机 --><…

TongRDS分布式内存数据缓存中间件

命令 优势 支持高达10亿级的数据缓冲&#xff0c;内存优化管理&#xff0c;避免GC性能劣化。 高并发系统设计&#xff0c;可充分利用多CPU资源实现并行处理。 数据采用key-value多索引方式存储&#xff0c;字段类型和长度可配置。 支持多台服务并行运行&#xff0c;服务之间可互…

CSP/信奥赛C++语法基础刷题训练(33):洛谷P1055:[NOIP2008 普及组] ISBN 号码

CSP/信奥赛C语法基础刷题训练&#xff08;33&#xff09;&#xff1a;洛谷P1055&#xff1a;[NOIP2008 普及组] ISBN 号码 题目描述 每一本正式出版的图书都有一个 ISBN 号码与之对应&#xff0c;ISBN 码包括 9 9 9 位数字、 1 1 1 位识别码和 3 3 3 位分隔符&#xff0c;其…

算法盒子模型转换步骤+操作命令记录

0、模型转换步骤情 第一步、pt模型转onnx 1) 将要转换的pt模型文件上传到192.168.33.79的 /home/sophonsdk_edge_v1.7_official_release/下 2) 进入docker环境&#xff1a; docker exec -it myname /bin/bash 3) 在workspace目录运行: python3 /usr/local/lib/python3…

重复请求取消(不发请求)

重复请求取消&#xff08;不发请求&#xff09; axios 有自带的取消请求方式&#xff0c; 但是 在请求已发出时&#xff0c;取消只是状态取消&#xff0c; 其实请求已经发出&#xff0c;消耗了服务器资源&#xff08;方式1&#xff09;。本文探究的是 在调用请求A时&#xff0c…

谷歌浏览器Chrome打开百度很慢,其他网页正常的解决办法,试了很多,找到了适合的

最近不知怎么的&#xff0c;Chrome突然间打开百度很慢&#xff0c;甚至打不开。不光我一个人遇到这问题&#xff0c;我同事也遇到这个问题。开发中难免遇到问题&#xff0c;需要百度&#xff0c;现在是百度不了。 作为一名开发人员&#xff0c;习惯了使用Chrome进行开发&#…

【C++】深入探讨基础输入输出及类型转换问题

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目一&#xff1a;整数输入输出代码实现代码分析 &#x1f4af;题目二&#xff1a;ASCII 码转换为字符代码实现代码分析 &#x1f4af;cin 与 char 搭配行为的深入剖析问题…

GB28181系列三:SIP消息格式

我的音视频/流媒体开源项目(github) GB28181系列目录 目录 一、SIP消息Header字段 二、SIP URI(URL) 三、SIP路由机制 1、路由机制介绍 2、严格路由&#xff08;Strict Routing&#xff09;与松散路由&#xff08;Louse Routing&#xff09; 3、总结 四、SIP消…

mvn-mac操作小记

1.安装brew 如果报错&#xff0c;Warning: /opt/homebrew/bin is not in your PATH. vim ~/.zshrc&#xff0c;最后一行追加 export PATH“/opt/homebrew/bin:$PATH” source ~/.zshrc 2.安装brew install maven mvn -version查看路径 Maven home: /opt/homebrew/Cellar/mav…

算法与数据结构练习——异或

知识点讲解&#xff1a; 一、异或操作定义&#xff1a; 异或是指相同为0&#xff0c;不同为1&#xff0c;也可理解为无进位相加&#xff01;&#xff01; 很重要&#xff01;&#xff01; 二、关于异或运算的几个性质&#xff1a; 1.0^NN &#xff08;0和任何数异或都…

STM32G4系列MCU的Direct memory access controller (DMA)功能介绍之二

目录 概述 1 DMA通道 1.1 可编程数据大小 1.2 指针增量 2 通道配置 2.1 配置步骤 2.2 通道状态和禁用通道 3 模式应用 3.1 循环模式&#xff08;内存到外设/外设到内存的传输&#xff09; 3.2 内存到内存模式 3.3 Peripheral-to-peripheral模式 3.4 编程转移方向&a…

【一文读懂】大语言模型

学习参考 项目教程&#xff1a;中文教程 代码仓库&#xff1a;代码地址 仓库代码目录说明&#xff1a; requirements.txt&#xff1a;官方环境下的安装依赖 notebook&#xff1a;Notebook 源代码文件 docs&#xff1a;Markdown 文档文件 figures&#xff1a;图片 data_base&…

注册表修改键盘位置

1.winr 输入 regedit 2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 3.右键Keyboard Layout->新建->二进制值->取名Scancode Map 4.右键Scancode Map&#xff0c;修改如下 //第一列 自动生成序号&#xff0c;不用管 第一行 输入8个00 第二…

服务器密码错误被锁定怎么解决?

当服务器密码错误多次导致账号被锁定时&#xff0c;解决方法需要根据服务器的操作系统&#xff08;如 Linux 或 Windows &#xff09;和具体服务器环境来处理。以下是常见的解决办法&#xff1a; 一、Linux 服务器被锁定的解决方法 1. 使用其他用户账号登录 如果有其他未被…

shell脚本编写练习2

1.准备阶段 在根目录下创建一个目录来存储shell脚本 mkdir /s3 2.题目 1. 使用case实现成绩优良差的判断 #!/bin/bash# 假设成绩存储在变量GRADE中 read -p "请输入成绩&#xff08;0-100&#xff09;&#xff1a;" GRADE# 使用case语句进行判断 case $GRADE in[…

清远榉之乡托养机构探讨:自闭症的本质辨析

当人们谈及自闭症时&#xff0c;常常会产生一个疑问&#xff1a;自闭症是精神类疾病吗&#xff1f;今天&#xff0c;清远榉之乡托养机构就来为大家解开这个疑惑。 榉之乡大龄自闭症托养机构在江苏、广东、江西等地都有分校&#xff0c;一直致力于为大龄自闭症患者提供专业的支持…

基于PoE交换机的智慧停车场监控组网应用

伴随城市发展快速&#xff0c;汽车保有量也不断增长&#xff0c;导致停车管理问题也愈发凸显。针对包括路侧停车位、地面停车场、地下停车场等场景的停车管理需求&#xff0c;通常会部署监控设备进行车位监测、现场安全监测等&#xff0c;助力构建智能化停车管理。因此如何为分…

.net XSSFWorkbook 读取/写入 指定单元格的内容

方法如下&#xff1a; using NPOI.SS.Formula.Functions;using NPOI.SS.UserModel;using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;/// <summary>/// 读取Excel指定单元格内容/// </summa…

10个Word自动化办公脚本

在日常工作和学习中&#xff0c;我们常常需要处理Word文档&#xff08;.docx&#xff09;。 Python提供了强大的库&#xff0c;如python-docx&#xff0c;使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本&#xff0c;帮助新…