上饶建设银行网站,医疗信息化软件公司排名,深圳网站优化技巧,wordpress导购主题前言
在OpenStack平台上#xff0c;采用bcache加速ceph分布式存储的方案被广泛用于企业和云环境。一方面#xff0c;Ceph作为分布式存储系统#xff0c;与虚拟机存储卷紧密结合#xff0c;可以提供高可用和高性能的存储服务。另一方面#xff0c;bcache作为混合存储方案采用bcache加速ceph分布式存储的方案被广泛用于企业和云环境。一方面Ceph作为分布式存储系统与虚拟机存储卷紧密结合可以提供高可用和高性能的存储服务。另一方面bcache作为混合存储方案利用SSD缓存加速HDD存储有效提升I/O性能。为了优化存储系统性能理解虚拟机卷、Ceph OSD和bcache设备之间的映射关系非常重要。
本指南基于InLinux2312-LTS-SP1版本旨在帮助你查找并理解OpenStack环境下虚拟机卷、Ceph OSD和bcache的映射关系便于监控和优化存储系统。
ceph数据的映射层次如下图所示。 浪潮云启操作系统InLinux版本
以下操作步骤均基于InLinux2312-LTS-SP1版本在此版本上进行环境分析。 虚拟机卷与Ceph OSD的映射关系
在OpenStack中虚拟机卷通常为Cinder卷存储在Ceph集群上通过RBDRADOS Block Device进行管理。要查找虚拟机卷与Ceph OSD的映射关系可以按照以下步骤进行
1. 获取虚拟机卷的信息
首先需要获取虚拟机卷的名称和所在的Ceph存储池。可以通过OpenStack的命令行工具或API来获取。 使用以下命令查找虚拟机使用的卷 openstack server show 虚拟机名称 在输出结果中查找与“volume”相关的部分。这里你可以看到虚拟机使用的卷ID。 openstack server show vm-test
2. 查看虚拟机卷的RBD映射
使用rbd命令查看卷在Ceph中的映射关系。 列出Ceph池中的所有RBD镜像 ceph osd lspools 遍历所有资源池查询虚拟机卷所在的pool如果资源池中存在虚拟机卷就可以确认虚拟机卷所在的资源池。 rbd ls 获取特定RBD镜像的信息 rbd info pool_name/volume_name 这将显示RBD镜像的大小、对象大小等信息。 虚拟机硬盘卷使用了15360个对象。block_name_prefix为rbd_data.936093419e6a4f。
3. 查找RBD对象与PG的关系
RBD镜像在Ceph中被分割成多个对象这些对象被分布在不同的Placement GroupPG中而PG又映射到具体的OSD上。 列出存储池中的所有对象注意可能对象很多可以过滤 rados -p pool_name ls | grep block_name_prefix 获取对象所在的PG ceph osd map pool_name object_name 可以查询到PG ID是pg 11.a2b75800。
4. 确定PG映射到的OSD 查看PG的详细信息 ceph pg map pgid 输出示例 这里的[6,133,208]表示该PG的数据分布在OSD.6、OSD.133和OSD.208上。
5. 汇总映射关系
通过上述步骤可以将虚拟机卷的对象映射到具体的PG再从PG映射到具体的OSD上。这样就可以了解该虚拟机卷的数据存储在哪些OSD上。
虚拟机卷volume-xxx存储在Ceph池volumes中。
其中一个对象rbd_data.xxxx属于PG 11.a2b75800。PG 11.a2b75800的数据分布在OSD.6、OSD.133和OSD.208上。
6. 结论
因为虚拟机卷对应了多个对象而对象按照哈希算法分布到不同的PGPG则按照crush算法映射到不同的osd。可以理解为虚拟机卷和osd是一对多的关系。
Ceph OSD与bcache的映射关系
为了加速Ceph OSD的读写操作bcache被用作缓存设备。以下是查找Ceph OSD和bcache的映射关系的步骤
使用ceph osd tree查找OSD所在的主机节点 查看Ceph集群的OSD树 ceph osd tree 输出示例 通过此命令可以知道每个OSD所在的主机节点host。
2. 获取OSD的元数据信息 使用ceph osd metadata命令获取特定OSD的详细信息 ceph osd metadata osd_id 关键字段 hostname: OSD所在的主机节点storage-011。bluestore_bdev_dev_node或bluestore_bdev: OSD使用的块设备/dev/dm-10。devices: bcache2,nvme0n1可以得到osd使用的设备为为/dev/dm-10bcache设备为bcache2。
3. 在主机节点上查找对应的设备信息 登录到对应的主机节点例如host1。 使用lsblk命令查看设备映射 lsblk 输出示例 查找/dev/dm-10对应的底层设备是LVM类型的设备。 /dev/dm-10是逻辑卷LVM可以使用dmsetup命令查看详细信息 dmsetup ls --tree 这将显示设备映射的树状结构。
4. 查找bcache的映射关系 查找bcache设备 ls /dev/bcache* 使用lsblk查看bcache设备的映射 lsblk 可以看到/dev/bcache2是由/dev/sdc后端设备和/dev/nvme2n1p3缓存设备组成的。 查看bcache的后端设备和缓存设备 后端设备 cat /sys/block/bcache0/bcache/backing_dev_name 输出示例sdc 缓存设备 readlink /sys/block/bcache2/bcache/cache/cache0 | awk -F/ {print $(NF-1)} 输出示例nvme2n1p3
6. 汇总映射关系
通过以上步骤可以将Ceph OSD与其底层设备/dev/dm-1以及bcache设备对应起来。通过上述方法可以确认一个osd对应一个bcache设备。 步骤概括 使用ceph osd tree找到OSD所在的主机节点。使用ceph osd metadata获取OSD的设备信息如/dev/dm-1。在主机节点上使用lsblk和dmsetup找到/dev/dm-1的物理设备和映射关系。确认/dev/dm-10是否建立在/dev/bcache*之上进而确定OSD是否通过bcache加速。
总结
在浪潮云启操作系统InLinux上理解虚拟机卷、Ceph OSD和bcache的映射关系有助于优化存储系统性能。因为虚拟机卷对应了多个对象而对象按照哈希算法分布到不同的PGPG则按照crush算法映射到不同的osd可以得到虚拟机卷和osd是一对多的关系而osd通过device map设备和bcache设备是一对一的映射则可以推理虚拟机卷和bcache设备也是一对多的关系组成虚拟机卷的多个对象分布在多个bcache设备中。