Ceph配置

Ceph配置:

在ceph服务启动的时候,初始化进程就会激活一系列运行在后端的服务进程,ceph存储集群运行两个类型的进程:

  • Ceph monitor(ceph-mon)
  • Ceph osd Deamon(ceph-osd)

支持ceph filesystem的ceph集群必须要有一个ceph metadata(ceph-mds)服务进程,支持ceph object的cluster需要运行一个ceph gateway deamon进程(radosgw)。为了方便,每个进程都有一系列的默认设置值(在文件ceph/src/common/config_opts.h中),对于默认值,你可以使用ceph的配置文件来覆盖默认值。
在启动ceph cluster的时候每个进程都会去查找配置文件(ceph.conf),如果是手动安装的话,配置文件就需要自己来创建,如果是使用安装工具(ceph-deploy),则安装工具会自动创建ceph.conf文件。Ceph.conf中主要包含以下几项:

  • 集群标识
  • 认证设置
  • 集群关系
  • 主机名
  • 主机地址
  • 钥匙环路径
  • 日志路径
  • 数据路径
  • 其他的运行时选项

Ceph 的配置文件使用的是ini格式的文法,所以可以使用“#”添加注释。
配置文件可以配置ceph集群中的所有进程,为了配置一系列的进程,设置需要包含以下选项:
[global]
在该选项下的配置会影响整个集群的所有进程。
如:auth supported = cephx
[osd]
在该选项下的配置会影响集群中ceph-osd的所有进程,而且也会覆盖[global]下的相同的选项:
如:osd journal size = 1000
[mon]
在该选项下的配置会影响集群中ceph-mon的所有进程,而且也会覆盖[global]下相同的选项
如:mon addr = 10.0.0.101:6789
[mds]
在该选项下的配置会影响集群中ceph-mds的所有进程,而且也会覆盖[global]下相同的选项
如:host = myserver01
[client]
在该选项下的配置会影响集群中的所有ceph client进程。
如: log file = /var/log/ceph/radosgw.log
[global]下的设置对集群中的所有进程都是有效的,如果有特殊要求可以使用[osd],[mon],[mds]或者[osd.1]将相同的选项进行覆盖。
典型的global配置包含激活身份认证 如下:
[global]

#Enable authentication between hosts within the cluster.
v 0.54 and earlier
auth supported = cephx

#v 0.55 and after
auth cluster required = cephx
auth service required = cephx
auth client required = cephx

可以使用[osd],[mon],[mds]或者[osd.1]对特定的进程设置指定特定的配置:如下

[osd]
osd journal size = 1000

这个设置会对osd的所有守护进程有效
[osd.1]
只影响特定实例osd.1
[mon.a]
只影响特定实例mon.a
[mds.b]
只影响特定实例mds.b
如果你指定的是ceph gateway client,你要指定进程和实例,用“.”将其隔开:
[client.radosgw.instance-name]
只影响特定实例client.radosgw.intance-name
每个节点都有一个host选项设置,用于身份标识。Monitor也通过addr指定网络地址和端口号,经典的配置文件只为monitor实例指定最小的配置:

[global]
Mon_initial_members = ceph1
Mon_host = 10.0.0.1

注:host是节点的短名,也不是ip地址,除了初始化monitors,其他节点配置host选项,除非你是手动配置。如果是使用ceph-deploy部署,它会帮你做好这些。
Monitors
Monitors可以单点部署,但是这样是比较危险的,当monitors中断后没有其他的monitors来继续服务。通常情况下,是部署3各monitor节点,来保证高可用。
Ceph monitors 监听的端口是6789:

[mon.a]
Host = hostname
Mon addr = 192.168.2.123:6789

默认情况下monitors的数据会保存在下面这个目录下:

/var/lib/ceph/mon/$cluster-$id

手动或者是ceph-deploy必须要创建相应的路径,这个目录会被评估:

/var/lib/ceph/mon/cluster-a

Osds
Ceph集群典型的部署是一个节点运行一个osd 守护进程一个存储驱动。典型的默认日志大小如下:

[osd]
osd journal size = 1000
[osd.0]
Host = {hostname}#尽用于手动部署

默认情况下osd的数据会保存在下面这个路径下:

/var/lib/ceph/osd/$cluster-$id
<think>我们正在讨论如何在Rook中配置CephRBD存储块设备。根据引用内容,我们可以总结出以下步骤: 1. **修改StorageClass配置**:首先需要修改RBD的StorageClass配置文件。根据引用[2]和[3],配置文件位于Rook示例目录中(例如`/root/rook/deploy/examples/csi/rbd/storageclass.yaml`)。在该文件中,我们可以设置副本数(`replicated.size`)等参数。注意,在生产环境中副本数至少为3,实验环境可以设置为2。2.**创建StorageClass和存储池**:使用kubectl命令创建StorageClass和相应的CephBlockPool(存储池)。引用[2]和[3]展示了如何执行`kubectlcreate -f storageclass.yaml`命令来创建资源。 3. **验证创建结果**:创建后,我们可以通过`kubectl getcephblockpool-n rook-ceph`和`kubectlget sc`命令来检查资源是否成功创建。 4. **使用RBD存储**:创建StorageClass后,就可以在应用(如WordPress)中通过PersistentVolumeClaim(PVC)来请求RBD块存储。引用[3]提到了部署WordPress使用RBD的示例。具体步骤: ###步骤1:修改StorageClass配置文件进入Rook的示例目录,编辑`storageclass.yaml`文件:```bashcd/root/rook/deploy/examples/csi/rbdvimstorageclass.yaml```在文件中,找到`parameters`部分,设置副本数(根据实际环境调整): ```yamlparameters:clusterID: rook-cephpool: replicapoolimageFormat: "2"imageFeatures:layeringcsi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisionercsi.storage.k8s.io/provisioner-secret-namespace:rook-cephcsi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisionercsi.storage.k8s.io/controller-expand-secret-namespace: rook-cephcsi.storage.k8s.io/node-stage-secret-name:rook-csi-rbd-nodecsi.storage.k8s.io/node-stage-secret-namespace:rook-cephcsi.storage.k8s.io/fstype: ext4reclaimPolicy:DeleteallowVolumeExpansion: truevolumeBindingMode: Immediate```注意:副本数实际上是在CephBlockPool中设置的,而不是在StorageClass中。因此,我们还需要修改存储池的配置。在同一个目录下,有一个`pool.yaml`文件(如果没有,可以从其他示例中复制或创建)。编辑`pool.yaml`: ```yamlapiVersion:ceph.rook.io/v1kind:CephBlockPoolmetadata:name:replicapoolnamespace: rook-cephspec:failureDomain: hostreplicated:size:2#设置副本数,生产环境建议3```###步骤2:创建存储池和StorageClass首先创建存储池(CephBlockPool):```bashkubectlapply -f pool.yaml -n rook-ceph```然后创建StorageClass: ```bashkubectl apply-fstorageclass.yaml``` ###步骤3:验证创建结果检查存储池和StorageClass: ```bashkubectl getcephblockpool-nrook-cephkubectl getsc```###步骤4:使用RBD存储现在,你可以创建PVC来使用这个StorageClass。例如,创建一个PVC的YAML文件(pvc.yaml):```yamlapiVersion: v1kind:PersistentVolumeClaimmetadata:name: rbd-pvcspec:storageClassName:rook-ceph-blockaccessModes:- ReadWriteOnceresources:requests:storage:1Gi``` 应用PVC:```bashkubectlapply -f pvc.yaml```然后,在Pod中挂载这个PVC即可。###注意事项-确保Rook Ceph集群已经部署并处于健康状态。 -根据实际需求调整存储池的副本数,并确保有足够的OSD来满足副本要求。 通过以上步骤,你可以在Rook中配置并使用CephRBD块存储设备[^2][^3]。§§相关问题§§1.如何调整RookCeph存储池的副本数?2.如何在KubernetesPod中使用RBD块存储? 3. Rook Ceph中RBD和CephFS有什么区别? 4.如何监控RookCeph集群的健康状态?</think>### 在 Rook 中配置 Ceph RBD 块存储的步骤 #### 1. **准备 StorageClass 配置文件** 进入 Rook 示例目录,修改 `storageclass.yaml`: ```bash cd /root/rook/deploy/examples/csi/rbd vim storageclass.yaml ``` 关键配置项: ```yaml apiVersion: ceph.rook.io/v1 kind: CephBlockPool metadata: name: replicapool # 存储池名称 namespace: rook-ceph spec: replicated: size: 2 # 生产环境建议≥3,且不超过OSD数量[^2] --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: rook-ceph-block provisioner: rook-ceph.rbd.csi.ceph.com parameters: clusterID: rook-ceph pool: replicapool # 与上方存储池名一致 imageFormat: "2" # RBD镜像格式 reclaimPolicy: Delete ``` #### 2. **创建存储资源** 应用配置文件创建存储池和 StorageClass: ```bash kubectl apply -f storageclass.yaml -n rook-ceph ``` #### 3. **验证配置结果** ```bash # 检查存储池状态 kubectl get cephblockpool -n rook-ceph # 输出示例:NAME PHASE # replicapool Ready[^2] # 检查StorageClass kubectl get sc # 输出示例:NAME PROVISIONER # rook-ceph-block rook-ceph.rbd.csi.ceph.com[^3] ``` #### 4. **在应用中使用 RBD** 在 Pod 的 PVC 中指定 StorageClass: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: rbd-pvc spec: storageClassName: rook-ceph-block # 匹配创建的SC accessModes: [ReadWriteOnce] resources: requests: storage: 10Gi ``` #### 关键注意事项: - **副本数配置**:`size` 值必须 ≤ OSD 节点数量,生产环境至少为 3 以确保高可用[^2]。 - **存储池管理**:通过 `CephBlockPool` CRD 管理,支持动态调整参数。 - **多集群支持**:可通过不同 `clusterID` 区分多个 Ceph 集群。 - **监控**:通过 Ceph Dashboard 查看 RBD 设备状态和性能指标[^4]。 > 配置完成后,Kubernetes 应用即可通过 PVC 自动申请 RBD 块设备,Rook 会处理底层存储的创建、挂载和生命周期管理[^1][^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值