软件磁盘阵列与LVM

embedded/2024/9/19 18:49:26/ 标签: 运维, LVM, RAID

一、软件磁盘阵列

磁盘阵列(RAID)是通过硬件或软件技术将多个较小的磁盘整合成为一个较大的磁盘设备,而这个较大的磁盘除了存储还具备数据保护功能。

RAID分不同的级别,不同级别具有不同功能:

  • 1、RAID 0:性能最佳

    这种模式的RAID会将磁盘先切出等量的数据块chunk,当一个文件要写入时,该文件会根据chunk的大小切割好,之后再依序放到各个磁盘里去,数据会被等量的放到各个磁盘上,每块磁盘负责的数据量都降低了,因此性能会好。

    但是RAID 0只要有任何一块磁盘损坏,在RAID上面的所有数据都会遗失而无法读取。

  • 2、RAID 1:完整备份

    这种模式主要是让同一份数据完整地保存在两块磁盘上面。由于数据写入时存在复制行为,所以RAID 1的写入性能不佳,但读取性能还可以。

    RAID 1最大的优点就是数据备份,但磁盘容量有一半用作备份,因此总容量会是全部磁盘容量的一半。

  • 3、RAID 5:性能与数据的均衡考虑

    该磁盘阵列类型需要三块以上的硬盘,这种磁盘阵列的写入类似于RAID 0,这不过每次数据写入,都会有奇偶校验值被记录下来,并且每次记录在不同的磁盘。由于需要存储奇偶校验值,因此RAID 5的总容量时整体磁盘数量减一块。而当损坏的磁盘数量大于等于两块时,RAID 5是无法恢复数据的,它只能支持一块磁盘损坏的情况。

  • 4、RAID 1+0/0+1 与RAID 6

    RAID 1+0/0+1 是RAID 1与RAID 0结合的产物,例如RAID 1+0 是宏观方案使用RAID 1,存储两份相同数据,而微观上,每份数据的存储方案都采用RAID 0,即分多块磁盘分散存储数据。RAID 6是最新的磁盘阵列模式,它是RAID 5 的进一步发展,使用两块磁盘存储奇偶校验值,那么允许出错的磁盘数量也达到了两块。

当磁盘阵列的磁盘损坏时,就需要将坏掉的磁盘拔除,然后换一块新的磁盘。换成新磁盘并且顺利启动磁盘阵列后,磁盘阵列就会开始主动重建(rebuild)原本坏掉的那块磁盘数据到新的磁盘上,然后磁盘阵列上面的数据就恢复了,这就是磁盘阵列的优点。不过,我们还是得要动手拔插硬盘,除非系统支持热插拔,否则通常得要关机才能这么做。

为了让系统可以实时地在坏掉硬盘时主动地重建,就需要热备份磁盘(spare disk)的辅助。所谓的热备份磁盘就是一块或多块没有包含在原本磁盘阵列级别中的磁盘,这块磁盘平时并不会被磁盘阵列所使用,当磁盘阵列有任何磁盘损坏时,这块热备份磁盘就会被主动拉进磁盘阵列中,并将坏掉的那块硬盘移出磁盘阵列,然后立即重建数据系统,如此你的系统就可以永保安康。

硬件磁盘阵列是通过磁盘阵列卡来完成磁盘阵列的功能,但是磁盘阵列卡一般较为昂贵,低端主板上集成的磁盘阵列卡通常仅支持RAID 0和RAID 1,因此就发展出软件模拟磁盘阵列的功能。硬件磁盘阵列向上透明。因此硬件磁盘阵列的设备文件名为/dev/sd[a~p],由于软件磁盘阵列是系统模拟的,因此使用的设备文件名是系统的设备文件,文件名为/dev/md[0~128]

LVM_31">二、LVM

为了实现磁盘分区的动态扩容或缩小,引入了LVMLVM的全名是Logical Volume Manager,中文翻译为逻辑卷管理器。

  • 物理卷(Physical Volume,PV)

我们实际的分区(或Disk)需要调整系统标识符(system ID)成为 LVM的标识符,然后再经过 pvcreate 的命令将它转成 LVM 最底层的物理卷(PV),之后才能够将这些PV加以利用。调整 system ID 的方式就是通过gdisk。

  • 卷组(Volume Group,VG)

所谓的LVM大磁盘就是将许多PV整合成这个VG,所以VG就是LVM组合起来的大磁盘。那么这个大磁盘最大可以到多少容量呢?在64位的Linux系统上面,LV几乎没有啥容量限制。

  • 物理扩展块(Physical Extent,PE)

LVM 默认使用4MB的PE数据块,它是整个LVM最小的存储数据单位,也就是说,其实我们的文件数据都是借由写入PE 来完成的。简单地说,这个PE 就有点像文件系统里面的block大小。LVM可以弹性修改文件系统容量就是通过交换PE来进行数据转换。

  • 逻辑卷(Logical Volume,LV)

最终的VG还会被切成LV,这个LV就是最后可以被格式化使用的类似分区的东西了。那么LV是否可以随意指定大小呢?当然不可以。既然PE 是整个LVM的最小存储单位,那么LV的大小就是PE的整数倍。为了方便用户利用LVM来管理VG,LV的设备文件名通常为【/dev/gname/vname】的样式。

请添加图片描述

建立PV:

pvcreate #将物理分区建立成pv
pvscan #查找目前系统内的pv
pvdisplay #显示某一pv的具体状态
pvremove #删除pv

建立VG:

vgcreate [-s N[mgt]] VG名称  PV名称 #建立VG
# -s后面接PE的大小,单位可以是m、g、t
vgscan #查找系统中所有VG
vgdispaly #显示某一VG的具体状态
vgextend #在VG内增加额外的PV
vgchange #设置VG是否启动
vgremove #删除一个VG

创建LV:

lvcreate [-L N[mgt]] -n LV名称 VG名称 #建立LV
#-L后面接容量,容量单位可以是M、G、T,但是容量需要为PE的整数倍
lvscan #查询所有的LV
lvdisplay #显示某一lv的状态
lvextend #增加容量
lvreduce #减少容量
lvremove #删除一个LV
lvresize [-L +/-N[mgt]] LV名称 #调整LV容量,增加用+号,减少用-号

http://www.ppmy.cn/embedded/44796.html

相关文章

【LeetCode 130. 被围绕的区域】

1. 题目 2. 分析 这题其实非常不错。如果正向解,非常麻烦;因为很难界定哪些O是被包围的?但是如果反向解呢?因为边界的O不会被包围,那么就可以想到跟边界O相连的O都不会被包围。那么除此之外的O都会被包围&#xff0c…

事务与并发控制

事务(Transaction0):要么全做,要么全不做; 事务ACID:原子性Atomicity;一致性Consistency;隔离性Isolation;持久性Durability; 并发操作问题: 1.…

笔记本电脑网络卡顿 Windows电脑网络提速通用方法

问题环境 在使用笔记本电脑连接Wi-Fi进行在线腾讯视频播放时加载页面缓慢等等困顿情况,对比相同情况下的手机则网络没有任何问题,浏览速度都是极快。 判断是否网络连接速度缓慢 点击同类型的在线视频播放网页,例如腾讯视频,进入观…

ansible 常用运维命令

文件传送 ## 传送文件 ansible all -m copy -a "src/tmp/aa.txt dest/tmp/aa.txt" -k## 文件夹传送 - hosts: alltasks:- name: Copy project files and delete extra filescopy:src: /path/to/your/project/dest: /opt/myappremote_src: yesstate: sync ansibe…

ZooKeeper 面试题

一、 ZooKeeper简介 ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群 中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用 的接口和性能高效、功能稳定的系统提供给用户。 分布式应用程序可以基于 Zookeeper 实现诸如数据发…

系统架构设计师【第4章】: 信息安全技术基础知识 (核心总结)

文章目录 4.1 信息安全基础知识4.1.1 信息安全的概念4.1.2 信息存储安全4.1.3 网络安全 4.2 信息系统安全的作用与意义4.3 信息安全系统的组成框架4.3.1 技术体系4.3.2 组织机构体系4.3.3 管理体系 4.4 信息加解密技术4.4.1 数据加密4.4.2 对称密钥加密算法4.4.3 …

MT8781安卓核心板_MTK联发科Helio G99核心板规格参数

MT8781安卓核心板采用先进的台积电6纳米级芯片生产工艺,配备高性能Arm Cortex-A76处理器和Arm Mali G57 GPU,加上LPDDR4X内存和UFS 2.2存储,在处理速度和数据访问速度上都有着出色的表现。 MT8781还支持120Hz显示器,无需额外的DSC…

Java: String 类

目录 一、认识String类 什么是String类 String类的作用: 二、String对象的比较 1.是否用的是同一个对象 2.用它的字符大小比较 (考虑大小写的情况下) (不考虑大小写的情况下) 三、 字符串查找 1 char charAt…

Oracle数据块如何存储真实数据

上周休假了几天,颓废了,没有输出。今天写一点内容。 先抛出一个问题。表中的数据在Oracle数据块中是如何存储的呢?今天简单说一下这个问题。通常数据库中的表会存储字符,数字,日期 这3种常见的数据类型。下面的例子就用这3种数据类型作说明 首先,Oracle数据块底层存储这…

探秘GPT-4o:从版本对比到技术能力的全面评价

随着人工智能技术的不断发展,自然语言处理领域的突破性技术——GPT(Generative Pre-trained Transformer)系列模型也在不断演进。最新一代的GPT-4o横空出世,引起了广泛的关注和讨论。在本文中,我们将对GPT-4o进行全面评…

f-stack和DPDK

GPT-4o F-Stack和DPDK都是高性能的网络框架,他们众多应用中的一个就是加速网络应用的开发。 DPDK(Data Plane Development Kit)是英特尔开源的数据包处理速度快捷包,它可以提高数据包在处理器之间进行传输的速度。这在广为人知的…

【启程Golang之旅】掌握Go语言数组基础概念与实际应用

欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了…

LeetCode 每日一题 数学篇 2894.分类求和并作差

给你两个正整数 n 和 m 。 现定义两个整数 num1 和 num2 ,如下所示: num1:范围 [1, n] 内所有 无法被 m 整除 的整数之和。num2:范围 [1, n] 内所有 能够被 m 整除 的整数之和。 返回整数 num1 - num2 。 int differenceOfSum…

设计模式 之 迭代器模式(Iterator)

设计模式 之 迭代器模式(Iterator) 1、简介 **定义:**提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示。所谓聚合是指一组对象的组合结构,比如:Java 中的集合、数组等。聚合对象拥有两个…

出现 Transaction rolled back because it has been marked as rollback-only 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 用户反馈的Bug如下所示: Transaction rolled back because it has been marked as rollback-only截图如下: 浏览器终端同样显示: 2. 原理分析 错误表明,在事务的生命周期内,遇到了某个异常或条件,导致该事务被标记…

Ant Design Vue Pro流程分析记录

一、基本介绍 Ant Design Vue Pro提供了一套完整的解决方案,包括路由、状态管理、UI组件库、HTTP请求封装等,方便开发者快速搭建和维护企业级应用。 二、官网地址 Ant Design Pro of Vue 三、下载及安装 推荐使用Yarn 四、文件分布及说明 dist&#xf…

【区分vue2和vue3下的elementUI和elementUI Plus的container组件,介绍如何安装,属性,事件,方法等以及使用案例】

vue2下的Element UI与vue3下的Element Plus的container组件区分 一、Element UI (vue2) 1. 安装 使用npm进行安装&#xff1a; npm install element-ui --save2. Container组件介绍 Container组件用于布局的容器组件&#xff0c;方便快速搭建页面的基本结构。它包含了<…

基于Docker搭建属于你的CC++集成编译环境

常常&#xff0c;我会幻想着拥有一个随时可以携带、随时可以使用的开发环境&#xff0c;那该是多么美好的事情。 在工作中&#xff0c;编译环境的复杂性常常让我头疼不已。稍有不慎&#xff0c;删除了一些关键文件&#xff0c;整个编译链就会瞬间崩溃。更糟糕的是&#xff0c;…

golang WEB应用【3】:Go语言Web编程进阶

文章目录 Go语言Web编程进阶并发Web服务器的实现性能优化技巧使用并发优化HTTP服务器的配置减少内存分配高效处理JSON数据库优化使用缓存减少锁的使用使用静态资源CDN优雅的重试机制 压力测试和性能分析pprof的使用压力测试 Web应用的单元测试错误处理和日志记录错误处理日志记…

【AREngine BUG 解决方法】无法获取有效的相机图像尺寸

近期拿了一台 华为mate20 Pro的手机&#xff0c;在运行AR示例的过程中出现了黑屏。 问题排查 SDK版本&#xff1a;com.huawei.hms:arenginesdk:3.7.0.3 定位 经排查&#xff0c;发现(ARCamera对象的相机内参) getImageDimensions()返回的图像尺寸的width和height都为0。 这…