Rancher-Longhorn-新增磁盘以及卷创建原理和卷副本调度规则

ops/2024/12/22 1:56:54/

一、添加磁盘-官网指引

重点在于:

        1、比如你新增了一块盘,你需要做一下事情:

                1、执行 lsblk  能找到你的盘。

                2、然后执行 fdisk /dev/sdxx 分区你的盘。

                3、然后对于分区部署文件系统, mkfs.xfs 

                4、然后执行 mount /dev/sdxxx 你挂载的目录

                5、记得修改 /etc/fstab 不然只是临时挂载。

添加步骤很简单:

        

        1、找到你的节点。 

        2、点击最右侧的Edit node and disks

        3、选择 Add disk

        4、执行 df -Th 验证你的磁盘配置信息

我的磁盘为sdc ,分区为sdc的第一个主要分区sdc1,挂载目录为/sdc,文件系统为xfs.

根据信息填写清单:

        5、点击save.

        6、等待10S,验证添加成功。

重点:        1、此时就完成了扩容,但并没有给到节点使用,因为没有开启调度。

二、卷副本的调度规则-官网指引:

有新增卷时,卷的副本怎么调度到合理的主机以及磁盘上有一些规则:

        1、    Allow replica of the volume without disk selector to be scheduled on disk with tags, default true

        意思就是 “允许调度没有打tag的卷副本调度到打了tag的磁盘上。默认为true

        2、Allow replica of the volume without node selector to be scheduled on node with tags, default true

        意思就是 “允许调度没有打tag的卷副本调度到打了tag的节点上。默认为true

        3、Disable Scheduling On Cordoned Node

        意思就是 “不允许将卷副本调度到k8s集群设置为封锁的节点上。” 默认为true,即不允许

        4、Allow scheduling on disks with existing healthy replicas of the same volume

        意思就是 “允许相同卷的副本出现在同一个磁盘上” 默认为true

        5、Replica Node Level Soft Anti-Affinity

        意思就是 “允许相同卷的副本出现在同一个节点上” 默认为false.

        6、Replica Zone Level Soft Anti-Affinity

        意思就是通过给k8s节点打上topology.kubernetes.io/zone=<Zone name of the node>的标签来逻辑上表示哪些节点为一个拓扑区域,然后允许调度相同卷的副本到同一个区域内。默认为true.

三、打开磁盘调度

        1、当你打开了磁盘的调度后会发生什么?

                1、你创建pod并且使用pvc声明使用存储供应商-Longhorn的sci时,会在根据你的PVC声明创建PV卷。

                2、api-server 根据Longhorn的crd资源创建了一个资源对象,Longhorn manager 会watch这个资源对象,并且创建对应资源对象的卷。

                3、当有卷创建时这个节点上会创建Longhorn Engine,来编排和调度卷的副本。

                4、这个卷默认有2个副本。根据你选定的调度规则调度你的两个副本。

       总结就是你点了调度,那么其他节点上pod使用的卷的副本就可以调度到你选中的到磁盘上了。


http://www.ppmy.cn/ops/21469.html

相关文章

【C++】C\C++内存管理

下面是围绕C\C内存管理这一块知识谈论相关的内存管理机制&#xff0c;有需要借鉴即可。 同时&#xff0c;我在下面也放了快速建立链表的模板&#xff0c;方便oj题目拿到vs上进行调试。 内存管理目录 1.CPP内存管理1.1new、delete关键字概念1.2特性1.3总结 2.new、delete的底层…

面试经典150题——最后一个单词的长度

经典面试150题 day19 题目来源我的题解方法一 遍历方法二 使用库函数 题目来源 力扣每日一题&#xff1b;题序&#xff1a;58 我的题解 方法一 遍历 先将最右的空格跳过&#xff0c;将start指向最右侧第一个非空格的字符&#xff0c;然后再往左遍历&#xff0c;直到再次遇到…

Redis-01

Redis是一个开源的内存数据结构存储系统&#xff0c;可以用作数据库、缓存和消息中间件。它支持多种数据结构&#xff0c;如字符串、哈希表、列表、集合、有序集等&#xff0c;并提供了丰富的处理这些数据结构的命令。 Redis具有以下特点&#xff1a; 快速&#xff1a;Redis的…

发布自己的npm包

注册账号 首先需要先到npm官网注册个账号&#xff0c;https://www.npmjs.com 。 注意&#xff0c;邮箱需要认证&#xff0c;否则上传包的时候就会报错。 关联​ 接下来打开powershell(cmd等皆可)&#xff0c;关联npm账号&#xff0c; 按照提示依次输入注册的信息&#xff…

vue中resetFields 失效?impossible好吗老弟

vue中resetFields 失效&#xff1f; 一、解决方案 加上prop就可以了 this.$refs.searchFrom.resetFields();

TCP/IP协议族中的TCP(三):解析其关键特性与机制

⭐小白苦学IT的博客主页⭐ ⭐初学者必看&#xff1a;Linux操作系统入门⭐ ⭐代码仓库&#xff1a;Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统 前言 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是互联网协议族中至关重要的组成部…

【IDEA】在IntelliJ IDEA中导入Eclipse项目:详细指南

IntelliJ IDEA和Eclipse是两款常用的集成开发环境&#xff08;IDE&#xff09;&#xff0c;在软件开发中经常会遇到需要在它们之间迁移项目的情况。本文将重点介绍如何在IntelliJ IDEA中导入Eclipse项目&#xff0c;以帮助开发者顺利地迁移他们的项目&#xff0c;并在IntelliJ …

记录些AI Agents设计模式和NL2SQL知识

吴恩达分享的四种 自我反思&#xff08;Reflection&#xff09;&#xff1a;可以自我修正&#xff1b;使用工具&#xff08;Tool Use&#xff09;&#xff1a;链接其他系统去做一些事情&#xff0c;比如把电脑里面的未归档文件做好归档&#xff1b;规划&#xff08;Planning&a…