linux添加物理卷编辑文件夹,Red hat Linux下的逻辑卷管理器LVM-上

【IT168 专稿】Red hat 下的LVM 上 LVM是Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力。LVM可以帮助系统管理员为应用与用户方便地分配存储空间。在LVM管理下的逻辑卷可以按需改变大小或添加移除。另外,LVM可以为所管理的逻辑卷提供定制的命名标识。因此,使用LVM主要是方便了对存储系统的管理,增加了系统的扩展性。

Linux,AIX,Hp-uinx平台下的LVM 命令是不一样的。下面以Redhat 下的命令来做一些说明。

一. LVM 理论知识

1. 先来看一下LVM创建的流程: PV-->VG-->LV.

PV(Physical Volume) :物理卷,可以是单独磁盘,也可以是硬盘分区。

VG(Volume Group) :卷组,是PV的组合,可以看成单独的逻辑磁盘。

LV(Logical Volume) :逻辑分区,当于物理分区的/dev/hdaX,只有逻辑卷才可以写数据。

PE(Physical Extent) :物理范围。VG单元,类似于RAID的条带大小。 当多个PV组成一个VG时,LVM会在所有PV上做类似格式化的动作,将每个PV切成一块块的空间,这一块块的空间就称为PE, 通常是4MB。

LE(Logical Extent) :逻辑范围。LV的组成单位。大小为PE的倍数(通常为1:1)。

2. 工作原理

LVM 在每个物理卷头部都维护了一个 metadata,每个 metadata 中都包含了整个 VG 的信息,包括每个 VG 的布局配置、PV 的编号、LV 的编号,以及每个 PE 到 LE 的映射关系。同一个 VG 中的每个 PV 头部的信息是相同的,这样有利于故障时进行数据恢复。

LVM 对上层文件系统提供 LV 层,隐藏了操作细节。对文件系统而言,对 LV 的操作与原先对 Partition 的操作没有差别。当对 LV 进行写入操作时,LVM 定位相应的 LE,通过 PV 头部的映射表,将数据写入到相应的 PE 上。

LVM 实现的关键在于在 PE 和 LE 间建立映射关系,不同的映射规则决定了不同的 LVM 存储模型。LVM 支持多个 PV 的 Stripe 和 Mirror,这点和软 Raid 的实现十分相似。

使用 LVM 的优势:

•文件系统可以跨多个磁盘,因此大小不会受物理磁盘的限制。

•可以在系统运行状态下动态地扩展文件系统大小。

•可以增加新磁盘到 LVM 的存储池中。

•可以以镜像的方式冗余重要数据到多个物理磁盘上。

•可以很方便地导出整个卷组,并导入到另外一台机器上。

使用 LVM 的限制:

•在从卷组中移除一个磁盘时必须使用 reducevg,否则会出问题。

•当卷组中的一个磁盘损坏时,整个卷组都会受影响。

•不能减小文件系统大小(受文件系统类型限制)。

•因为加入了额外的操作,存储性能会受影响(使用 Stripe 的情况另当别论)。

二. 创建相应的磁盘分区

1. 修改磁盘,创建相应的分区

[root@san iscsi]# fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes

255 heads, 63 sectors/track, 5221 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 255 2048256 83 Linux

/dev/sda2 256 382 1020127+ 82 Linux swap / Solaris

/dev/sda3 383 5221 38869267+ 5 Extended

/dev/sda5 383 395 104391 83 Linux

/dev/sda6 396 408 104391 83 Linux

/dev/sda7 409 421 104391 83 Linux

/dev/sda8 422 434 104391 83 Linux

这里创建了4个扩展分区,每个100M。 用fdisk /dev/sda创建的。 分区没有格式化。

2. 使用磁盘分区生效

#partprobe

三. 创建PV

1.相关命令

pvcreate 创建PV

pvscan 扫描PV

pvdisplay 显示PV

pvremove 删除PV

partprobe

2.创建物理卷

[root@san iscsi]# pvcreate /dev/sda5 /dev/sda6

Physical volume "/dev/sda5" successfully created

Physical volume "/dev/sda6" successfully created

[root@san iscsi]# pvscan

PV /dev/sda5 lvm2 [101.94 MB]

PV /dev/sda6 lvm2 [101.94 MB]  Total: 2 [203.89 MB] / in use: 0 [0 ] / in no VG: 2 [203.89 MB]

[root@san iscsi]# pvdisplay

"/dev/sda5" is a new physical volume of "101.94 MB"

--- NEW Physical volume ---

PV Name /dev/sda5

VG Name

PV Size 101.94 MB

Allocatable NO

PE Size (KByte) 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID hDtAhK-adlx-5Ex0-ogc1-Alvm-H274-a8u7c2

"/dev/sda6" is a new physical volume of "101.94 MB"

--- NEW Physical volume ---

PV Name /dev/sda6

VG Name

PV Size 101.94 MB

Allocatable NO

PE Size (KByte) 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID Sy1wPG-XnjQ-eYD5-91vj-Ug5b-EGgU-i30lCS

四. 创建VG

1.相关命令

vgcreate 创建VG

vgscan 扫描VG

vgdispaly

vgextend

vgreduce

vgchange

vgremove

2.创建逻辑卷VG

[root@san iscsi]# vgcreate vg0 /dev/sda5 /dev/sda6

Volume group "vg0" successfully created

[root@san iscsi]# vgscan

Reading all physical volumes. This may take a while...

Found volume group "vg0" using metadata type lvm2

Device '/dev/sda6' has been left open.

Device '/dev/sda5' has been left open.

[root@san iscsi]# vgdisplay

--- Volume group ---

VG Name vg0

System ID

Format lvm2

Metadata Areas 2

Metadata Sequence No 1

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 2

Act PV 2

VG Size 200.00 MB

PE Size 4.00 MB /*分配的块大小默认为4M*/  Total PE 50

Alloc PE / Size 0 / 0

Free PE / Size 50 / 200.00 MB

VG UUID iE7uoy-boR3-N6Cv-91Gf-G5vE-ftD6-gSGVlB

3.删除与添加逻辑卷

[root@san iscsi]# vgreduce vg0 /dev/sda5

Removed "/dev/sda5" from volume group "vg0"

[root@san iscsi]# vgextend vg0 /dev/sda5

Volume group "vg0" successfully extended

4. PE 和LV 大小的关系

In order to limit the Linux kernel memory usage, there is a limit of 65,536 physical extents (PE) per logical volume (LV). Hence, the LVM PE size will directly determine the maximum size of a logical volume (LV)! For example, 4MB PE size (the default PE size) will limit single logical volume (LV) to 256GB, 16MB PE size will limit single LV to grow beyond 1TB, etc.

Beside the PE size, the maximum size of single LV is also limited by CPU architecture and Linux kernel version:

Linux kernel version 2.4.x limit the maximum LV size to 2TB.

Some older Linux kernel prior to 2.4.x, the maximum LV size is limited to 1TB (caused by the integer signedness problems in the block layer).

The combination of 32-bit CPU and Linux kernel version 2.6.x, the limit of logical volume size is maximized at 16TB.

For Linux kernel 2.6.x running on 64-bit CPU, the maximum LV size is 8EB (extremely terrible big storage for this time being!)

这段问题里有如下2个重点信息:

1. PE 的大小决定LV 的容量,默认4M 的PE 最大支持的256G 的LV。 16M的PE 最大支持1TB的LV。

2. 影响LV 容量的还有CPU 架构。 对于32bit 下,Linux 内核为2.6.X的支持16TB,64bit 下,Linux 内核为2.6.x的支持8EB。

所以如果要想支持大量的LV。 那么对在创建LV 的时候,还需要指定PE 的大小。 这个我们在vgcreate命令中加一个-s 参数即可:

[root@san iscsi]# vgremove vg0

Volume group "vg0" successfully removed

[root@san iscsi]# vgcreate -s 16MB vg0 /dev/sda5 /dev/sda6

Volume group "vg0" successfully created

[root@san iscsi]# vgscan

Reading all physical volumes. This may take a while...

Found volume group "vg0" using metadata type lvm2

Device '/dev/sda6' has been left open.

Device '/dev/sda5' has been left open.

[root@san iscsi]# vgdisplay

--- Volume group ---

VG Name vg0

System ID

Format lvm2

Metadata Areas 2

Metadata Sequence No 1

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 2

Act PV 2

VG Size 192.00 MB

PE Size 16.00 MB -这里我们看到PE 改成16MB了。

Total PE 12

Alloc PE / Size 0 / 0

Free PE / Size 12 / 192.00 MB

VG UUID A9w4ho-3Fdo-ELYl-VRqY-yhaZ-61rt-68sXsi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux的nfs端口号,#Linux NFS服务 固定端口及防火墙配置#

#Linux NFS服务 固定端口及防火墙配置#1.在Linux上正常安装NFS服务2.修改/etc/service,添加以下内容(端口号必须在1024以下,且未被占用)# Local servicesmountd 1011/tcp #rpc.mountdmountd 1011/udp #rpc.mountdrquotad 1012/tcp #rpc.rquotadrquotad 1012/udp #rp…

嵌入式linux添加环境变量,Linux环境变量

前言:1. 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程;2. 环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值;3. 若要重复适用,则最好在.profile中定义;环境变量的…

eval函数linux,Python中的eval()、exec()及其相关函数

刚好前些天有人提到eval()与exec()这两个函数,所以就翻了下Python的文档。这里就来简单说一下这两个函数以及与它们相关的几个函数,如globals()、locals()和compile():1. eval函数函数的作用:计算指定表达式的值。也就是说它要执行…

linux更改语言脚本,Linux shell脚本入门——shell语言脚本【CentOS】

认识脚本是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只是在被调用时进行解释或者编译。学习shell脚本的用途对于一个合格的系…

linux可用的ftp,linuxunix下有很多可用的ftp服务器

一、ftp服务器简介linux/unix下有很多可用的ftp服务器,根据这些ftp服务器的可配置性大概可以分为3类:弱、中等、高。功能比较简单的ftp服务器软件有“ftpd”和“oftpd”。前者与ftp客户端工具“ftp”类似,只实现了标准的ftp功能,支…

linux视图版怎么输入命令,分享在Linux命令下操作MySQL视图实例代码

视图VIEW命令简介:VIEW视图就是存储下来的SELECT语句数据1。创建视图命令格式:创建[或更换][ALGORITHM {UNDEFINED | MERGE | 不是Temptable}][DEFINER {user | 当前用户 }][SQL SECURITY {DEFINER | INVOKER}]VIEW view_name [(column_list)]AS selec…

宝塔linux 做负载均衡,利用BT宝塔面板做网站多服务器负载均衡图文教程

对于我们做网站的来说,如果流量大了,一台服务器肯定是不够的,接下来要考虑很多方面,比如动静分离、比如数据库异步,比如负载均衡等等。因为我们很多新手站长都用的是BT宝塔面板,下面虾皮路就介绍一下利用BT…

c语言程序设计移动字母,C语言程序设计模拟试题二(含答案)

C语言程序设计模拟试题二(含答案)1、下列电子邮件地址中正确的是(其中□表示空格)A) Malin&http://www.doczj.com/doc/2969157fa26925c52cc5bfdc.html B) malinhttp://www.doczj.com/doc/2969157fa26925c52cc5bfdc.htmlC) Lin□Ma&http://www.doczj.com/doc/2969157fa2…

c语言字符串输出瘕b,c语言课件10tt函数(1)幻灯片资料(51页)-原创力文档

第 5 讲 ;第 8 章 函 数;引例 1;引例2b;m1cmpmax( a , b );cmpmax(int x , int y ){ int z; zx>y?x:y; return (z);};说 明;8.2 函数的调用;main( ){int i2,p; pf( i , i ); printf("%d\n",p);}int f(int a, int b){int c; if (a>b) c1; else if (a b) c0; el…

50行以上c语言程序代码,C语言非常简单的字符统计程序50行

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼该程序用于实现linux系统中wc命令的最简单模式wc 命令用于统计文件中字符信息。[xxlocalhost 1.5]$ wc 01.c 02.c 03.c15 23 131 01.c13 18 127 02.c14 20 128 03.c42 61 386 总用量使用c语言写出这种小程序。/** Name: count.c* T…

语音编码 c语言,语音编解码算法G.723.1在DSP - 嵌入式新闻 - 电子发烧友网

1 引言G.723.1是删组织于1996年推出的一种低码率的语音编码算法标准,也是目前该组织颁布的语音压缩标准中码率最低的一种标准。G.723.1主要用于对语音及其它多媒体声音信号的压缩,目前在一些数字音视频传输、高质量语音压缩等系统中都得到广泛应用。2 G.…

四川大学 设计专业 C语言必修,四川大学C语言2001年真题_跨考网

一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码写在答题纸上。请注意注明题号。每小题1分,共计6分)1、‘\t’表示什么?①字符串常数②标识符③变量④字符常量答案:④2、对宏定义不正确的描述是哪一个?…

大整数乘法c语言数组,很大的数相乘怎么办?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include&nbsp #include&nbsp using&nbsp namespace&nbsp std;int&nbsp main(int&nbsp argc,&nbsp char&nbsp *argv[]){&nbsp &nbsp&nbsp &nbsp long&nbsp i,j, c,l…

血型遗传关系c语言编程,根据血型遗传关系,编程实现:○1.输入

满意答案df4dfw5e562017.05.28采纳率:51% 等级:6已帮助:106人//仅作参考#include "stdio.h"#include "conio.h"#include "stdlib.h"#include "string.h"int studentNum 0;#define MAXSTUDENT (1…

linux tcb,在Linux中从潜藏密码迁移至tcb怎么做?

潜藏密码作为Linux产品的既定事实标准已经有好多年了,md5密码的运用亦是如此。但是,运用传统的潜藏密码要领也有不足之处,甚至md5也不像以前那么安全了。潜藏密码文件的一个缺点就是,任意一个须要查询个别潜藏密码(如您的密码)的使…

android 通话结束广播,在Android中以编程方式结束通话

侃侃尔雅您无需成为系统应用程序。首先,com.android.internal.telephony在您的项目中创建包,并将其放入名为“ ITelephony.aidl” 的文件中:package com.android.internal.telephony; interface ITelephony { boolean endCall(); vo…

android url 快捷方式,Android向桌面添加快捷方式,使其指向特定的(URL)网页

/** 在桌面添加快捷方式* param icon 快捷方式图标* param name 快捷方式名称* param uri 快捷方式的intent Uri*/public void addShortcut(Parcelable icon, String name, Uri uri){Intent intentAddShortcut new Intent(ACTION_ADD_S…

带nfc 的 android 华为,华为手机NFC功能,原来这么好用,不会用真可惜几千块钱了...

华为手机NFC功能,原来这么好用,不会用真可惜几千块钱了2019-05-06 17:40:259点赞12收藏6评论华为手机在国内也是数一数二的了,那么用华为手机的小伙伴,怎么能错过华为手机中NFC的功能呢?下面就随小编一起来了解一下吧。…

android adb apk包名,ADB命令简单使用--查看包名、activity等

1、连接设备adb connect ip2、查看连接的设备adb devices3、安装/卸载Android 应用adb install packagesnameadb uninstall packagesname4、查看设备安装包名adb shell pm list packages5、查看安装包的路劲adb shell pm path packagename6、包pull到本地adb shell pull 包路径…

小米3升级android 6.0,可升级Android 6.0机型一览 小米手机亮了

前不久,Android M被谷歌正式确定为6.0系统,代号Marshmallow,预计年底前发布。而对于普通用户来说,最关心的就是自己的手机能不能升级。不过别着急,在此之前,我们不妨看看Android 6.0有哪些新功能。一、Andr…