rbd镜像的锁

https://docs.ceph.com/en/reef/rbd/rbd-exclusive-locks/

官网的

exclusive-lock 的线性化只保证 RBD 内部结构(object-map/journal 等)不被并发修改,并不等于能让两台机器同时挂载 ext4/xfs 并安全读写。文档也强调它是为了避免"非协调写入"


我们两个客户端都执行了

复制代码
rbd map rbdpool/disk1

后可以通过

复制代码
rbd info rbdpool/disk1 # 查看属性
rbd status rbdpool/disk1 # 查看状态

rbd lock list rbdpool/disk1 # 查看锁的归属,同一个时候只有一个客户端获得锁

一开始是node2获得锁,然后在node3上执行

复制代码
dd if=/dev/zero of=/dev/rbd0 bs=4M count=1 oflag=direct

然后锁就到了node3

如果想要设置为独占锁的话怎么办

复制代码
rbd map rbdpool/disk1 --exclusive

然后在另外一台客户端映射就会失败

复制代码
root@node3:/# rbd map rbdpool/disk1
rbd: sysfs write failed
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (30) Read-only file system

但是可以以可读的方式挂载

复制代码
root@node3:/# rbd map rbdpool/disk1 --read-only
/dev/rbd0

但是通过可读方式映射的通过status查看看不到

bug

复制代码
root@node3:/# rbd map rbdpool/disk1
modinfo: ERROR: Module alias rbd not found.
modprobe: FATAL: Module rbd not found in directory /lib/modules/5.15.0-139-generic
rbd: failed to load rbd kernel module (1)
rbd: sysfs write failed
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (2) No such file or directory

在宿主机中执行

复制代码
# 加载 rbd 内核模块
modprobe rbd

# 验证模块是否加载成功(有输出即成功)
lsmod | grep rbd

盘如何分区

复制代码
cat > /tmp/osd_node3_only.yml <<'YAML'
service_type: osd
service_id: node3_dedicated_osd
placement:
  hosts:
    - node3
data_devices:
  paths:
    - /dev/sdb
db_devices:
  paths:
    - /dev/sdc

# 固定大小(单位后缀可用)
block_db_size: '5G'
block_wal_size: '5G'
YAML

ceph orch apply -i /tmp/osd_node3_only.yml --dry-run # 模拟运行

ceph orch apply -i /tmp/osd_spec.yml # 部署
相关推荐
运维全栈笔记2 天前
腾讯云 CVM 搭建 Ceph 集群部署笔记
笔记·ceph·腾讯云
刘某的Cloud4 天前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
heimeiyingwang4 天前
【架构实战】Kubernetes存储实战:从EmptyDir到Ceph CSI的持久化存储选型指南
ceph·架构·kubernetes
DLYSB_15 天前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯
AAA@峥17 天前
Ceph 分布式文件系统 CephFS 实战指南
运维·分布式·ceph
AAA@峥22 天前
Ceph RBD 块存储全解析:原理与实操汇总
运维·分布式·ceph
AAA@峥23 天前
Ceph 集群配置管理完整指南
运维·数据库·分布式·ceph
胖兔纸21 个月前
OpenStack 1.7.2 & Ceph 9.2.1 运维命令
运维·ceph·openstack
seacracker1 个月前
Ceph 太重运维成本高?轻量统一存储 PowerFS 对比测评(HPC/AI 场景首选)
运维·人工智能·ceph·ai存储·统一存储
牛奶咖啡131 个月前
CEPH分布式存储应用实践——基于Docker安装部署Ceph分布式存储环境
ceph·安装部署ceph分布式存储·cephv20.2.2·docker中手动部署ceph·cephadm部署ceph·docker部署ceph准备·分布式存储环境部署