5.3. 映射 Ceph Storage 节点磁盘布局
部署容器化 Ceph Storage 时,您必须映射磁盘布局,并为 Ceph OSD 服务指定专用块设备。您可以在之前创建的环境文件中执行此映射,以定义自定义 Ceph 参数: /home/stack/templates/ceph-config.yaml
。
使用 parameter_defaults
中的 CephAnsibleDisksConfig
资源映射您的磁盘布局。此资源使用以下变量:
变量 | 必需? | 默认值(如果未设置) | Description |
---|---|---|---|
osd_scenario | 是 | lvm
注: 默认值为 |
|
devices | 是 | NONE.必须设置变量。 | 要用于节点上 OSD 的块设备列表。 |
dedicated_devices |
是(仅在 | devices |
将 |
dmcrypt | 否 | false |
设置 OSD 上存储的数据是加密的( |
osd_objectstore | 否 | bluestore
注: 默认值为 | 设置 Ceph 使用的存储后端。
注意:虽然值默认为 |
5.3.1. 使用 BlueStore 复制链接链接已复制到粘贴板!
流程
要指定您要用作 Ceph OSD 的块设备,请使用以下片段的变体:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因为
/dev/nvme0n1
位于执行的设备类中,所以 exampleparameter_defaults
会生成三个在/dev/sdb
、/dev/sdc
和/dev/sdd
上运行的 OSD。三个 OSD 使用/dev/nvme0n1
作为block.db
和 BlueStore WAL 设备。ceph-volume
工具使用batch
子命令执行此操作。每个 Ceph Storage 节点都会重复相同的配置,并假设硬件统一。如果block.db
和 BlueStore WAL 数据位于与 OSD 相同的磁盘上,则使用以下方式更改参数默认值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.2. 使用持久名称引用设备 复制链接链接已复制到粘贴板!
流程
在某些节点中,磁盘路径(如
/dev/sdb
和/dev/sdc
)可能无法在重启期间指向同一块设备。如果您的 Ceph Storage 节点是这种情况,请使用/dev/disk/by-path/
符号链接为每个磁盘指定,以确保在部署过程中一致的块设备映射:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 因为您必须在 overcloud 部署前设置 OSD 设备列表,因此可能无法识别和设置磁盘设备的 PCI 路径。在这种情况下,在内省期间为块设备收集
/dev/disk/by-path/symlink
数据。在以下示例中,运行第一个命令,从服务器
b08-h03-r620-hci
.json 的 undercloud Object Storage 服务(swift)下载内省数据,并将数据保存到名为b08-h03-r620-hci.json
的文件中。运行第二个命令来对"by-path"使用 grep。此命令的输出包含可用于识别磁盘的唯一/dev/disk/by-path
值。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
有关存储设备的命名规则的更多信息,请参阅管理存储设备指南中的持久性命名属性概述。
5.3.3. 在高级场景中配置 OSD 复制链接链接已复制到粘贴板!
在环境文件中,您将列出要在 CephAnsibleDisksConfig
资源的 devices
变量中用于 OSD 的块设备。
当您在没有其他设备配置参数的情况下使用 devices
变量时,ceph-volume lvm batch
通过将更高的性能设备作为较慢的设备的 block.db
来自动优化 OSD 配置。
您可以使用以下步骤配置 设备
以避免在 ceph-volume lvm batch
模式下运行。
5.3.3.1. 使用 block.db 提高性能 复制链接链接已复制到粘贴板!
使用 block.db
可以通过增加吞吐量并缩短响应时间来提高 Ceph Storage 集群的性能。block.db
是一个数据库,它由数据片段和 BlueStore write-ahead 日志(WAL)组成。
流程
在环境文件中添加以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这将配置四个 OSD:
sda
、sdb
、sdc
和sdd
。每个对都有自己的数据库:nvem0n1
和nvme0n2
。注意设备列表中的设备顺序非常重要。
列出驱动器,后跟 block.db 和 BlueStore WAL (DB-WAL)设备。在这个示例中,
nvme0n1
是sda
和sdb
的 DB-WAL,nvme0n2
是sdc
和sdd
的 DB-WAL。如需更多信息,请参阅使用 BlueStore。-
在部署 overcloud 时,使用
-e
选项包括部署命令中包含新内容的环境文件。
5.3.3.2. 使用专用 write-ahead 日志(WAL)设备 复制链接链接已复制到粘贴板!
您可以指定专用的 write-ahead 日志(WAL)设备。使用 devices
、dedicated_devices
和 bluestore_wal_devices
意味着您可以将 OSD 的所有组件隔离到单独的设备,从而提高性能。
在以下示例中,另一个额外的字典 bluestore_wal_devices
隔离 NVMe devices nvme0n1
和 nvme0n2
上的 write-ahead 日志。
流程
在环境文件中添加以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在部署 overcloud 时,使用
-e
选项包括部署命令中包含新内容的环境文件。
5.3.3.3. 使用预先创建的 LVM 来提高控制 复制链接链接已复制到粘贴板!
在以前的高级场景中,ceph-volume
使用不同类型的设备列表来为 OSD 创建逻辑卷。您还可以在 ceph-volume
运行前创建逻辑卷,然后将 ceph-volume
传递这些逻辑卷的 lvm_volumes
列表。虽然这需要您提前创建逻辑卷,但这意味着您有更精确的控制。由于 director 还负责硬件置备,因此您必须使用第一次引导脚本提前创建这些 LVM。
流程
创建一个环境文件
/home/stack/templates/firstboot.yaml
,它将您的 heat 模板注册为OS::TripleO::NodeUserData
资源类型,并包含以下内容:resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/ceph-lvm.yaml
resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/ceph-lvm.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个环境文件
/home/stack/templates/ceph-lvm.yaml
。添加类似以下示例的列表,其中包含三个物理卷。如果您的设备列表较长,请根据您的要求扩展示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过以下方式使用
lvm_volumes
参数而不是 devices 列表。这假设已经创建了卷组和逻辑卷。在这种情况下,一个典型的用例是 WAL 和 DB LV 位于 SSD 上,数据 LV 位于 HDD 上:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在部署 overcloud 时,使用
-e
选项包括部署命令中包含新内容的环境文件。- 备注
- 只有在 WAL 设备位于性能优于 DB 设备的硬件上,才需要指定单独的 WAL 设备。通常,创建单独的 DB 设备就足够了,然后相同的分区用于 WAL 功能。