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条带卷 的相关文章

随机推荐

  • 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 参数指定条带数 这样就决定了逻