缓存"/>
Ceph 笔记, ssh写入缓存
硬件建议 — Ceph 文档
写入缓存
企业级 SSD 和 HDD 通常包括断电保护功能,包括 在运行时断电时确保数据耐久性,以及 使用多级缓存来加快直接或同步写入速度。这些设备 可以在两种缓存模式之间切换 -- 刷新到的易失性缓存 具有 fsync 的持久性媒体,或同步写入的非易失性缓存。
这两种模式是通过“启用”或“禁用”写入来选择的 (易失性)缓存。启用易失性缓存后,Linux 使用 “回写”模式,禁用时,它使用“直写”。
默认配置(通常:启用缓存)可能不是最佳配置,并且 OSD 性能可能会因 IOPS 和 通过禁用此写入缓存来减少提交延迟。
因此,我们鼓励用户对他们的设备进行基准测试。 前面描述并保留其最佳缓存配置 设备。fio
可以使用 、 或读取 中的值来查询缓存配置 例如:hdparm
sdparm
smartctl
/sys/class/scsi_disk/*/cache_type
# hdparm -W /dev/sda/dev/sda: write-caching = 1 (on)# sdparm --get WCE /dev/sda /dev/sda: ATA TOSHIBA MG07ACA1 0101 WCE 1 [cha: y] # smartctl -g wcache /dev/sda smartctl 7.1 2020-04-05 r5049 [x86_64-linux-4.18.0-305.19.1.el8_4.x86_64] (local build) Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontoolsWrite cache is: Enabled# cat /sys/class/scsi_disk/0\:0\:0\:0/cache_type write back
可以使用以下相同工具禁用写入缓存:
# hdparm -W0 /dev/sda/dev/sda: setting drive write-caching to 0 (off) write-caching = 0 (off)# sdparm --clear WCE /dev/sda /dev/sda: ATA TOSHIBA MG07ACA1 0101 # smartctl -s wcache,off /dev/sda smartctl 7.1 2020-04-05 r5049 [x86_64-linux-4.18.0-305.19.1.el8_4.x86_64] (local build) Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools=== START OF ENABLE/DISABLE COMMANDS SECTION === Write cache disabled
在大多数情况下,使用 、 或 禁用此缓存会导致cache_type自动更改为“直写”。如果这是 不是这种情况,您可以尝试直接按如下方式进行设置。(用户应确保 该设置cache_type还会正确保留设备的缓存模式 直到下次重新启动,因为某些驱动器要求在每次启动时重复此操作):hdparm
sdparm
smartctl
# echo "write through" > /sys/class/scsi_disk/0\:0\:0\:0/cache_type# hdparm -W /dev/sda/dev/sda: write-caching = 0 (off)
提示
此 udev 规则(在 CentOS 8 上测试)会将所有 SATA/SAS 设备cache_types设置为“写入” 通过“:
# cat /etc/udev/rules.d/99-ceph-write-through.rules ACTION=="add", SUBSYSTEM=="scsi_disk", ATTR{cache_type}:="write through"
提示
此 udev 规则(在 CentOS 7 上测试)会将所有 SATA/SAS 设备cache_types设置为“写入” 通过“:
# cat /etc/udev/rules.d/99-ceph-write-through-el7.rules ACTION=="add", SUBSYSTEM=="scsi_disk", RUN+="/bin/sh -c 'echo write through > /sys/class/scsi_disk/$kernel/cache_type'"
提示
该实用程序可用于查看/更改易失性写入 同时在多个设备上缓存:sdparm
# sdparm --get WCE /dev/sd* /dev/sda: ATA TOSHIBA MG07ACA1 0101 WCE 0 [cha: y] /dev/sdb: ATA TOSHIBA MG07ACA1 0101 WCE 0 [cha: y] # sdparm --clear WCE /dev/sd* /dev/sda: ATA TOSHIBA MG07ACA1 0101 /dev/sdb: ATA TOSHIBA MG07ACA1 0101
网络
在数据中心预置至少 10 Gb/s 的网络,两者均在 Ceph 之间 主机之间以及客户端与 Ceph 集群之间。网络链接主动/主动 强烈建议在以下情况下在单独的网络交换机之间绑定 提高吞吐量,提高网络故障和维护的容忍度。 请注意,绑定哈希策略会在链接之间分配流量。
速度
在 1 Gb/s 网络上复制 1 TB 的数据需要 10 个小时,并且 在 1 Gb/s 网络上复制 1 TB 需要 10 小时。但这只需要 在 10 Gb/s 网络上复制 10 TB 需要 <> 分钟,并且需要 只需 <> 小时即可在 <> Gb/s 网络上复制 <> TB。
请注意,一个 40 Gb/s 网络链路实际上是四个 10 Gb/s 通道 并行,并且 100Gb/s 网络链路实际上是四个 25 Gb/s 通道 并行。因此,也许有点违反直觉的是,一个人 与 25 Gb/s 相比,40 Gb/s 网络上的数据包延迟略低 网络。
最低硬件建议
Ceph 可以在廉价的商用硬件上运行。小型生产集群 开发集群可以使用适度的硬件成功运行。如 我们在上面提到:当我们谈到 CPU _cores_ 时,我们的意思是 _threads_ 当 启用超线程 (HT)。每个现代物理 x64 CPU 内核通常 提供两个逻辑 CPU 线程;其他 CPU 架构可能会有所不同。
请注意,影响资源选择的因素有很多。这 足以满足一个目的的最低限度资源不一定足以满足 另一个。一个沙盒集群,具有一个 OSD,构建在装有 VirtualBox 的笔记本电脑上或 三个 Raspberry PI 将比生产更少的资源 使用一千个 OSD 部署,为 2000 个 RBD 客户端提供服务。这 经典的 Fisher Price PXL <> 可以拍摄视频,IMAX 或 RED 摄影机也是如此。 人们不会指望前者能完成后者的工作。我们特别 使用企业级存储的重要性怎么强调都不为过 用于生产工作负载的媒体。
有关生产群集资源规划的其他见解包括 在本文档的上文和其他地方找到。
过程 | 标准 | 最低限度和推荐值 |
---|---|---|
| 处理器 |
|
公羊 |
| |
存储驱动器 | 每个 OSD 1 个存储驱动器 | |
DB/WAL (可选) | 每个 HDD OSD 1 个 SSD 部分 每个 DB/WAL SATA SSD 4-5 个 HDD OSD <= 每个 DB/WAL NVMe SSD 10 个 HDD OSDss | |
网络 | 1 个 1Gb/s(建议绑定 10+ Gb/s) | |
| 处理器 |
|
公羊 | 每个守护进程 5GB+(大型/生产) 集群需要更多) | |
存储 | 每个守护程序 100 GB,建议使用 SSD | |
网络 | 1 个 1Gb/s(推荐 10+ Gb/s) | |
| 处理器 |
|
公羊 | 每个守护进程 2GB+(更多用于生产) | |
磁盘空间 | 每个守护程序 1 GB | |
网络 | 1 个 1Gb/s(推荐 10+ Gb/s) |
提示
如果您运行的是具有单个存储驱动器的 OSD 节点,请创建一个 与分区分开的 OSD 的分区 包含操作系统。我们建议将单独的驱动器用于 操作系统和 OSD 存储。
更多推荐
Ceph 笔记, ssh写入缓存
发布评论