LVM条带卷

2023-11-18

4.4.2. 创建条带卷

如果有大量连续读、写操作,创建条带逻辑卷可提高数据 I/O 的效率。有关条带卷的常规信息,请查看 第 2.3.2 节 “条带逻辑卷”

创建条带逻辑卷时,可使用 lvcreate 命令的 -i 参数指定条带数。这样就决定了逻辑卷会在多少物理卷之间形成条带。条带数不能超过该卷组中的物理卷数(除非使用 --alloc anywhere 参数)。

如果组成逻辑卷的底层物理设备大小不同,则最大的条带卷是由最小的底层设备决定。例如:在有两个分支的条带中,条带卷大小不能超过较小设备的两倍。在有三个分支的条带中,条带卷大小不能超过最小设备的三倍。

下面的命令在两个物理卷之间创建条带逻辑卷,条带大小为 64kB。该逻辑卷为 50GB,名为 gfslv,并从中创建卷组 vg0

# lvcreate -L 50G -i 2 -I 64 -n gfslv vg0

可使用线性卷指定用于该条带的物理卷。下面的命令创建大小为 100 扩展的条带卷,该条带跨两个物理卷,名为 stripelv,位于卷组 testvg 中。该条带使用 /dev/sda1 的扇区 0-49,以及 /dev/sdb1 的扇区 50-99。

# lvcreate -l 100 -i 2 -nstripelv testvg /dev/sda1:0-49 /dev/sdb1:50-99
  Using default stripesize 64.00 KB
  Logical volume "stripelv" created

转载至https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/lv

2.3.2. 条带逻辑卷

向 LVM 逻辑卷写入数据时,文件系统在基本物理卷之间部署数据。可以通过创建条带逻辑卷控制数据向物理卷写入的方法。对于大批量的读取和写入,这样可以提高数据输入/输出的效率。

条带化数据可通过以 round-robin 模式向预定数目的物理卷写入数据来提高性能。使用条带模式,I/O 可以平行执行。在有些情况下,这样可以使条带中每个附加的物理卷获得类似线性卷的性能。

以下示例显示数据在三个物理卷之间进行条状分布。在这个图表中:

  • 在第一个物理卷中写入第一个数据条带

  • 在第二个物理卷中写入第二个数据条带

  • 在第三个物理卷中写入第三个数据条带

  • 在第四个物理卷中写入第四个数据条带

在条状逻辑卷中,条带大小不能超过扩展的大小。

跨三个物理卷的条带数据

图 2.5. 跨三个物理卷的条带数据

条带逻辑卷可通过在第一组设备的末尾连接另一组设备来扩大容量。要扩展条带逻辑卷,就必须在基本物理卷中有足够的可用空间组成卷组来支持条带卷。例如:如果有一个双向条带使用了整个卷组,那么向卷组中添加单一物理卷不会允许您扩展该条带。反之,必须在卷组中添加至少两个物理卷。有关扩展条带卷的详情请参考 第 4.4.15.1 节 “扩展条带卷”

转载至https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/lv_overview#striped_volumes

4.4.15.1. 扩展条带卷

要增大条带逻辑卷的大小,则必须在底层物理卷中有足够的剩余空间,以便组成卷组支持该条带。例如:如果有一个使用整个卷组的双向条带,在该卷组中添加单一物理卷不会让您有扩展该条带的能力,而必须在该卷组中添加至少两个物理卷方可有此能力。

例如:可使用下面的 vgs 命令显示由两个底层物理卷组成的卷组 vg

# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     2   0   0 wz--n- 271.31G 271.31G

使用该卷组中的整个空间数量创建条带。

# lvcreate -n stripe1 -L 271.31G -i 2 vg
  Using default stripesize 64.00 KB
  Rounding up size to full physical extent 271.31 GB
  Logical volume "stripe1" created
# lvs -a -o +devices
  LV      VG   Attr   LSize   Origin Snap%  Move Log Copy%  Devices
  stripe1 vg   -wi-a- 271.31G                               /dev/sda1(0),/dev/sdb1(0)

注:卷组目前没有剩余空间。

# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     2   1   0 wz--n- 271.31G    0

下面的命令在卷组中添加另一个物理卷,之后该卷组就有 135G 附加空间。

# vgextend vg /dev/sdc1
  Volume group "vg" successfully extended
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     3   1   0 wz--n- 406.97G 135.66G

此时无法将该条带逻辑卷扩展到卷组的最大大小,因为需要有两个底层设备方可将数据条带化。

# lvextend vg/stripe1 -L 406G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 406.00 GB
  Insufficient suitable allocatable extents for logical volume stripe1: 34480 
more required

要扩展条带逻辑卷,需要添加量一个物理卷,然后再扩展该逻辑卷。在这个示例中,在该卷组中添加两个物理卷,即可将该逻辑卷扩展到该卷组的最大大小。

# vgextend vg /dev/sdd1
  Volume group "vg" successfully extended
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  vg     4   1   0 wz--n- 542.62G 271.31G
# lvextend vg/stripe1 -L 542G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 542.00 GB
  Logical volume stripe1 successfully resized

如果没有足够的底层物理设备扩展该条带逻辑卷,且扩展不是条带化也没有关系,则也能够扩展该卷,结果是会得到不平衡的性能。在逻辑卷中添加空间时,默认操作是使用与现有逻辑卷最后片段相同的条带参数,但也可以覆盖那些参数。下面的示例扩展现有条带逻辑卷,使用启动 lvextend 命令失败后可用的剩余空间。

# lvextend vg/stripe1 -L 406G
  Using stripesize of last segment 64.00 KB
  Extending logical volume stripe1 to 406.00 GB
  Insufficient suitable allocatable extents for logical volume stripe1: 34480 
more required
# lvextend -i1 -l+100%FREE vg/stripe1

转载至https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/lv#stripe_extend

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LVM条带卷 的相关文章

  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索

随机推荐

  • dlib的安装

    由于需要人脸识别 所以需要安装opencv和dlib OpenCV的安装很顺利 实例也跑的很正常 但dlib的安装却出现了很多坑 而且国内的解决方法都是复制粘贴 一点营养都没有 查了国外资料 终于解决 记录一下 首先是需要安装 以下依赖 b
  • 【C语言】指针和数组的深入理解(第四期)

    篮球哥温馨提示 编程的同时不要忘记锻炼哦 上了编程的贼船 就做快乐的海盗 目录 1 数组参数和指针参数 1 1 一维数组传参 1 2 一级指针传参 1 3 二维数组参数和二级指针参数 1 4 野指针的问题 2 函数指针 3 函数指针数组 4
  • C#创建一个收费接口Charge,其中有一个方法charge();创建另一个收费接口Play,其中有一个方法play()。声明类Bus来实现接口Charge,对于Bus中的charge()实现为输出“

    创建一个收费接口Charge 其中有一个方法charge 创建另一个收费接口Play 其中有一个方法play 声明类Bus来实现接口Charge 对于Bus中的charge 实现为输出 公共汽车 1元 张 不计公里数 声明类Taxi来实现接
  • pythonmap和list_python map和list的区别是什么

    一 结构特点 List是存储单列数据的集合 Map是存储键值对这样的双列数据的集合 List中存储的数据是有顺序的 并且值允许重复 Map中存储的数据是无序的 它的键是不允许重复的 但是值是允许重复的 二 实现类 List接口有三个实现类
  • webpack4.+的使用(一)(webpack的基本使用)

    webpack4 的使用 一 一 webpack的基本使用 1 安装和卸载webpack开发依赖的命令分别为 npm install webpack g和npm uninstall webpack g npm命令是在安装了node js后才
  • SpringBoot 中LocalDateTime格式化日期

    简介 很多时候日期格式输出是这样的 2018 10 09T17 39 07 097 中间有个T 尴尬 是的我们需要去掉这个T 这方法是springboot封装好了的 我们直接使用即可 普通的配置我就不贴了 一 日期格式化输出 code 1
  • unity 物体自动旋转

    using UnityEngine public class AutoRotation MonoBehaviour Tooltip Angular velocity in degrees per seconds public float d
  • 21. Merge Two Sorted Lists

    题目 Merge two sorted linked lists and return it as a new list The new list should be made by splicing together the nodes
  • TensorRT学习(二)通过C++使用

    本文源于学习TensorRT文档 TensorRT Developer Guide 第2章 WORKING WITH TENSORRT USING THE C API 的理解 一 TensorRT实例化对象 使用TensorRT进行推理需要
  • 为什么要接入高防IP,到底有什么作用呢

    首先我们要了解什么是高防IP DDOS高防IP是为了应对互联网的DDOS攻击而产生的一款付费增值产品 根据不同的业务接入的方法也不同 在开通这款DDOS高防IP时服务商会给到对应的高防IP作为对外IP和业务IP使用 游戏业务就需要将之前配置
  • rknn-toolkit安装的一点感想

    rknn toolkit装了好多次 总是会报错 终于尝试出了一个版本可以用的 注意windows和linux上都能用 rknn toolkit v1 7 1 cuda 10 1 python 3 6 pytorch 1 5 1 opencv
  • Ubuntu Hadoop分布式部署

    Ubuntu Hadoop分布式部署 1 vim usr local hadoop 3 2 2 etc hadoop hadoop env sh usr local hadoop 3 2 2为Hadoop安装目录 export JAVA H
  • Android-使用WebView视图显示网页

    简介 Android提供了WebView组件 相关类为android webkit WebView android webkit WebViewClient 表面上来看 这个组件与普通的ImageView差不多 但实际上 这个组件的功能要强
  • ProGuard参数使用说明

    ProGuard 使用说明 本文主要是翻译proguad的官方文档 以便以后使用的时候不需要再次去看英文 每次写proguard总是那么痛苦 必须写个博客记录一下 有些地方的意思我也不懂 有注明原文 什么是proguard proguard
  • 微信程序 自定义遮罩层遮不住底部tabbar解决

    一 先上效果 二 方法 1 自定义底部tabbar 实现 https developers weixin qq com miniprogram dev framework ability custom tabbar html 官网去抄 简单
  • 使用Flask开发简单接口

    使用Flask开发简单接口 作为测试人员 在工作或者学习的过程中 有时会遇到没有可以调用的现成的接口 导致我们的代码没法调试跑通的情况 这时 我们使用python中的web框架Flask就可以很方便的编写简单的接口 用于调用或调试 在之前的
  • 数据挖掘实验(四):决策树归纳 R语言

    一 实验目的 决策树分类算法 decision tree 通过树状结构对具有某特征属性的样本进行分类 其典型算法包括ID3算法 C4 5算法 C5 0算法 CART算法等 本次实验掌握用ID3的信息增益来实现决策树归纳 二 实验软件 Rst
  • java中单列集合的根接口是_java 单列集合总结

    Collection 接口 add remove contains clear size 迭代器遍历 普通迭代器 不能再遍历过程中修改集合的长度 List接口 单列集合 有序可重复 有索引 add index obj remove inde
  • keras中的sequential模型

    序贯模型 Sequential 单输入单输出 一条路通到底 层与层之间只有相邻关系 没有跨层连接 这种模型编译速度快 操作也比较简单 model Sequential Sequential模型的核心操作是添加layers 图层 以下展示如何
  • LVM条带卷

    4 4 2 创建条带卷 如果有大量连续读 写操作 创建条带逻辑卷可提高数据 I O 的效率 有关条带卷的常规信息 请查看 第 2 3 2 节 条带逻辑卷 创建条带逻辑卷时 可使用 lvcreate 命令的 i 参数指定条带数 这样就决定了逻