当前位置: 首页 > news >正文

Ceph 笔记, ssh写入缓存

硬件建议 — Ceph 文档

写入缓存

企业级 SSD 和 HDD 通常包括断电保护功能,包括 在运行时断电时确保数据耐久性,以及 使用多级缓存来加快直接或同步写入速度。这些设备 可以在两种缓存模式之间切换 -- 刷新到的易失性缓存 具有 fsync 的持久性媒体,或同步写入的非易失性缓存。

这两种模式是通过“启用”或“禁用”写入来选择的 (易失性)缓存。启用易失性缓存后,Linux 使用 “回写”模式,禁用时,它使用“直写”。

默认配置(通常:启用缓存)可能不是最佳配置,并且 OSD 性能可能会因 IOPS 和 通过禁用此写入缓存来减少提交延迟。

因此,我们鼓励用户对他们的设备进行基准测试。 前面描述并保留其最佳缓存配置 设备。fio

可以使用 、 或读取 中的值来查询缓存配置 例如:hdparmsdparmsmartctl/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.smartmontools.orgWrite 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.org=== START OF ENABLE/DISABLE COMMANDS SECTION ===
Write cache disabled

在大多数情况下,使用 、 或 禁用此缓存会导致cache_type自动更改为“直写”。如果这是 不是这种情况,您可以尝试直接按如下方式进行设置。(用户应确保 该设置cache_type还会正确保留设备的缓存模式 直到下次重新启动,因为某些驱动器要求在每次启动时重复此操作):hdparmsdparmsmartctl

# 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 摄影机也是如此。 人们不会指望前者能完成后者的工作。我们特别 使用企业级存储的重要性怎么强调都不为过 用于生产工作负载的媒体。

有关生产群集资源规划的其他见解包括 在本文档的上文和其他地方找到。

过程

标准

最低限度和推荐值

ceph-osd

处理器

  • 最少 1 个核心,推荐 2 个

  • 每 1-200 MB/s 吞吐量 500 个内核

  • 每 1-1000 IOPS 3000 个核心

  • 结果在复制之前。

  • 结果可能因 CPU 和驱动器而异 模型和 Ceph 配置: (纠删码、压缩等)

  • ARM 处理器具体可以 需要更多内核才能提高性能。

  • SSD OSD,尤其是 NVMe,将 受益于每个 OSD 的额外内核。

  • 实际性能取决于许多 因素包括驱动器、NET 和 客户端吞吐量和延迟。 强烈建议进行基准测试。

公羊

  • 每个守护进程 4GB+(越多越好)

  • 2-4GB 可能起作用,但可能很慢

  • 不建议小于 2GB

存储驱动器

每个 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)

ceph-mon

处理器

  • 最少 2 个核心

公羊

每个守护进程 5GB+(大型/生产) 集群需要更多)

存储

每个守护程序 100 GB,建议使用 SSD

网络

1 个 1Gb/s(推荐 10+ Gb/s)

ceph-mds

处理器

  • 最少 2 个核心

公羊

每个守护进程 2GB+(更多用于生产)

磁盘空间

每个守护程序 1 GB

网络

1 个 1Gb/s(推荐 10+ Gb/s)

提示

如果您运行的是具有单个存储驱动器的 OSD 节点,请创建一个 与分区分开的 OSD 的分区 包含操作系统。我们建议将单独的驱动器用于 操作系统和 OSD 存储。

相关文章:

Ceph 笔记, ssh写入缓存

硬件建议 — Ceph 文档 写入缓存 企业级 SSD 和 HDD 通常包括断电保护功能&#xff0c;包括 在运行时断电时确保数据耐久性&#xff0c;以及 使用多级缓存来加快直接或同步写入速度。这些设备 可以在两种缓存模式之间切换 -- 刷新到的易失性缓存 具有 fsync 的持久性媒体&a…...

WebSocket魔法师:打造实时应用的无限可能

1、背景 在开发一些前端页面的时候&#xff0c;总是能接收到这样的需求&#xff1a;如何保持页面并实现自动更新数据呢&#xff1f;以往的常规做法&#xff0c;是前端使用定时轮询后端接口&#xff0c;获取响应后重新渲染前端页面&#xff0c;这种做法虽然能达到类似的效果&…...

网络运维Day06-补充

文章目录 RAID磁盘阵列RAID0条带模式RAID1镜像模式RAID5高性价比模式RAID01RAID10 逻辑卷一块磁盘的使用流程逻辑卷的使用流程 制作逻辑卷步骤一&#xff1a;添加硬盘步骤二&#xff1a;分区规划步骤三&#xff1a;制作物理卷步骤四&#xff1a;制作卷组步骤五&#xff1a;制作…...

openssl+SM2开发实例一(含源码)

一、SM2算法介绍 SM2&#xff08;国密算法2&#xff09; 是中国国家密码管理局&#xff08;CNCA&#xff09;颁布的椭圆曲线密码算法标准&#xff0c;属于非对称加密算法。它基于椭圆曲线离散对数问题&#xff0c;提供了安全可靠的数字签名、密钥交换和公钥加密等功能。SM2被设…...

操作系统 | 编写内核

&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《操作系统实验室》&#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 目录结构 1. 操作系统实验之编写内核 1.1 实验目的 1.2 实验内容 1.3 实验步骤 1.4 实验过程 …...

Rust逆向学习 (4)

Reverse for Struct Rust中的结构体是一个重要的内容&#xff0c;由于Rust中没有类的概念&#xff0c;因此其他编程语言中的封装、继承、多态与Rust中的表现都有较大差异。 我们使用参考书中的一个示例开始进行分析。 Struct 初始化 struct User {username: String,email: …...

uniapp vue2 vuex 持久化

1.vuex的使用 一、uniapp中有自带vuex插件&#xff0c;直接引用即可 二、在项目中新建文件夹store,在main.js中导入 在根目录下新建文件夹store,在此目录下新建index.js文件 index.js import Vue from vueimport Vuex from vuexVue.use(Vuex)const store new Vuex.Store(…...

【媒体邀约】媒体宣传——企业成长的催化剂

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传是企业成长的催化剂&#xff0c;它在各种方面对企业的成功和发展起到了关键作用。 1. 曝光和知名度&#xff1a; 媒体宣传可以将企业和其产品或服务推向广泛的受众&#xff0c;…...

ansible问题排查

拷贝模板时报错&#xff1a;AnsibleError: template error while templating string: Missing end of comment tag. 原因 shell脚本中地{#和jinja中的语法comment tag相同&#xff0c;而且只有一半&#xff0c;导致无法渲染导致。 解决 在有语法冲突的地方使用组合标签{% r…...

7天入门python系列之第四天python数据结构

第3天主要是学习Python的函数和模块 编者打算开一个python 初学主题的系列文章&#xff0c;用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python&#xff0c;这是一个紧凑的学习计划。但并不是不可完成的。第四天开始python 数据…...

远程电脑未连接显示器时分辨率太小的问题处理

背景&#xff1a;单位电脑显示器坏了&#xff0c;使用笔记本通过向日葵远程连接&#xff0c;发现分辨率只有800*600并且不能修改&#xff0c;网上找了好久找到了处理方法这里记录一下&#xff0c;主要用到的是一个虚拟显示器软件usbmmidd_v2 1)下载usbmmidd_v2 2&#xff09;…...

Java 设计模式——解释器模式

目录 1.概述2.结构3.案例实现3.1.抽象表达式类3.2.终结表达式3.3.非终结表达式3.4.环境类3.5.测试 4.优缺点5.使用场景 1.概述 &#xff08;1&#xff09;如下图&#xff0c;设计一个软件用来进行加减计算。我们第一想法可能就是使用工具类&#xff0c;提供对应的加法和减法的…...

面试经典150题——Day37

文章目录 一、题目二、题解 一、题目 73. Set Matrix Zeroes Given an m x n integer matrix matrix, if an element is 0, set its entire row and column to 0’s. You must do it in place. Example 1: Input: matrix [[1,1,1],[1,0,1],[1,1,1]] Output: [[1,0,1],[0,…...

在 Arduino IDE 2.0 中安装 ESP32 板(Windows、Mac OS X、Linux)

有一个新的 Arduino IDE——Arduino IDE 2.0&#xff08;测试版&#xff09;。在本教程中&#xff0c;您将学习如何在 Arduino IDE 2.0 中安装 ESP32 板并将代码上传到板。本教程与 Windows、Mac OS X 和 Linux 操作系统兼容。 据 Arduino 网站称&#xff1a;“ Arduino IDE 2.…...

西门子S7-1200PLC混合通信编程(ModbusTcp和UDP通信)

S7-1200PLC的MODBUS-TCP通信 西门子PLC ModbusTcp通信访问网关后从站(SCL语言轮询状态机)-CSDN博客文章浏览阅读305次。西门子PLC的ModbusTcp通信在专栏已有很多文章介绍,所不同的是每个项目的通信需求都略有不同,今天我们以访问网关后的三个从站数据来举例,给出轮询的推荐…...

Hbase 迁移小结:从实践中总结出的最佳迁移策略

在数据存储和处理领域&#xff0c;HBase作为一种分布式、可扩展的NoSQL数据库&#xff0c;被广泛应用于大规模数据的存储和分析。然而&#xff0c;随着业务需求的变化和技术发展的进步&#xff0c;有时候我们需要将现有的HBase数据迁移到其他环境或存储系统。HBase数据迁移是一…...

键盘win键无法使用,win+r不生效、win键没反应、Windows键失灵解决方案(亲测可以解决)

最近几天发现自己笔记本的win键无法使用&#xff0c;win失灵了&#xff0c;但是外接键盘后则正常:。 这个问题困扰了我一周&#xff0c;我都以为自己的枪神坏了。 寻找了几个解决方法&#xff0c;网上看了好多好多稀里糊涂的办法&#xff0c;都是不管用的&#xff0c;这里给大…...

1. 深度学习——激活函数

机器学习面试题汇总与解析——激活函数 本章讲解知识点 什么是激活函数&#xff1f; 为什么要使用激活函数&#xff1f; 详细讲解激活函数 本专栏适合于Python已经入门的学生或人士&#xff0c;有一定的编程基础。本专栏适合于算法工程师、机器学习、图像处理求职的学生或人…...

chatglm3-6b部署及微调

chatglm3-6b部署及微调 modelscope: https://modelscope.cn/models/ZhipuAI/chatglm3-6b/filesgithub: https://github.com/THUDM/ChatGLM3镜像: ubuntu20.04-cuda11.7.1-py38-torch2.0.1-tf1.15.5-1.8.1v100 16G现存 单卡 安装 软件依赖 # 非必要无需执行 # pip install -…...

Hive 知识点八股文记录 ——(二)优化

函数 UDF&#xff1a;用户定义函数 UDAF&#xff1a;用户定义聚集函数 UDTF&#xff1a;用户定义表生成函数 建表优化 分区建桶 创建表时指定分区字段 PARTITIONED BY (date string)指定分桶字段和数量 CLUSTERED BY (id) INTO 10 BUCKETS插入数据按分区、分桶字段插入 …...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...