导航:首页 > 源码编译 > lvm动态编译

lvm动态编译

发布时间:2023-07-12 18:15:18

① LVM创建逻辑卷,实现单个目录挂载多个磁盘

LVM 是 Logical Volume Manager 的缩写,中文一般翻译为 "逻辑卷管理",它是 linux 下对磁盘分区进行管理的一种机制。LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,系统管理员可以利用 LVM 在不重新对磁盘分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过 LVM 就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。

LVM 的优点如下:

LVM 也有一些缺点:

LVM 的优点对服务器的管理非常有用,但对于桌面系统的帮助则没有那么显着,所以需要我们根据使用的场景来决定是否应用 LVM。

通过 LVM 技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷上建立相应的文件系统。下面是 LVM 中主要涉及的一些概念。

可以这么理解,LVM 是把硬盘的分区分成了更小的单位(PE),再用这些单元拼成更大的看上去像分区的东西(PV),进而用 PV 拼成看上去像硬盘的东西(VG),最后在这个新的硬盘上创建分区(LV)。文件系统则建立在 LV 之上,这样就在物理硬盘和文件系统中间添加了一层抽象(LVM)。下图大致描述了这些概念之间的关系:

对上图中的结构做个简单的介绍:两块物理硬盘 A 和 B 组成了 LVM 的底层结构,这两块硬盘的大小、型号可以不同。PV 可以看做是硬盘上的分区,因此可以说物理硬盘 A 划分了两个分区,物理硬盘 B 划分了三个分区。然后将前三个 PV 组成一个卷组 VG1,后两个 PV 组成一个卷组 VG2。接着在卷组 VG1 上划分了两个逻辑卷 LV1 和 LV2,在卷组 VG2 上划分了一个逻辑卷 LV3。最后,在逻辑卷 LV1、LV2 和 LV3 上创建文件系统,分别挂载在 /usr、/home 和 /var 目录。

step-1:使用 fdisk -l 查看当前的磁盘信息

step-3:安装gdisk ,使用gdisk对物理磁盘进行分区

通过 p 命令可以查看磁盘当前的状态:

输出中的前几行是磁盘的基本信息,比如总大小为 20G,一共有多少个扇区(sector),每个扇区的大小,当前剩余的空间等等。然后是已经存在的分区信息(上图显示还没有任何分区):

下面通过 以下命令来创建新分区(依次敲):

step-4:如果之前已经划分为多个分区,则可以执行 fdisk /dev/sdc 合并为1个分区,把分区删除后,再对/dev/sdc进行LVM

step-5:现在我们可以基于磁盘分区 /dev/sdd1等来创建 LVM 物理卷(LV),可以通过 pvcreate 命令来完成

使用 pvdisplay 可以看到我们创建的5个物理卷。

step-6:基于一个或多个 PV,可以创建 VG,lvm_data是vg组的名字,可以自定义,,vgs 命令可以观察 VG 的信息

step-7:有了 VG 就可以创建逻辑卷 LV 了,lvcreate 命令用来创建 LV,让我们在前面创建的lvm_data上创建名称为lvm_data_1的 LV

当我们创建 LV lvm_data/lvm_data_1时,其实是创建了名称为 /dev/lvm_data/lvm_data_1的设备文件,现在我们来格式化这个逻辑卷(在该 LV 上创建文件系统),目标为比较常见的 ext4 格式:

最后可以挂载到一个目录上,查看结果:

② lvm是什么意思,linux里的。说白话,网上写的没看懂,请说通俗易懂点,谢谢咯

LVM,全称Logical VolumeManager,即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在磁盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上随意创建逻辑卷组,并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

一般来说,物理磁盘或分区之间是分隔的,数据无法跨盘或分区,而各磁盘或分区的大小固定,重新调整比较麻烦。LVM可以将这些底层的物理磁盘或分区整合起来,抽象成容量资源池,以划分成逻辑卷的方式供上层使用,其最主要的功能即是可以在无需关机无需重新格式化的情况下弹性调整逻辑卷的大小。

LVM的写入模式

LVM有两种写入模式:线性模式和条带模式

线性模式即写完一个设备后再写另一个设备;

条带模式就有点类似于RAID0,即数据是被分散写入到LVM各成员设备上的。

因为条带模式的数据不具有安全性,且LVM并不强调读写性能,故LVM默认为线性模式,这样即使一个设备坏了,其它设备上的数据还在。

③ 如何在LINUX下使用LVM

LVM是Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力。LVM可以帮助系统管理员为应用与用户方便地分配存储空间。在LVM管理下的逻辑卷可以按需改变大小或添加移除。另外,LVM可以为所管理的逻辑卷提供定制的命名标识。因此,使用LVM主要是方便了对存储系统的管理,增加了系统的扩展性。
一、准备lvm环境
1.硬盘的准备
添加了一块硬盘/dev/hdb。
准备了三个分区,方案如下:容量为100M,仅为了实验准备。
/dev/hdb1
/dev/hdb2
/dev/hdb3
2.转换分区类型为lvm卷
fdisk /dev/hdb
t转换为lvm卷类型
Device Boot Start End Blocks Id System
/dev/hdb1 1 208 98248+ 8e Linux LVM
/dev/hdb2 209 416 98280 8e Linux LVM
/dev/hdb3 417 624 98280 8e Linux LVM
然后w保存并且
#partprobe /*使用磁盘分区生效*/
二、lvm创建过程
1.从硬盘驱动器分区中创建物理卷(physical volumes-PV)。
2.从物理卷中创建卷组(volume groups-VG)
3.从卷组中创建逻辑卷(logical volumes-LV),并分派逻辑卷挂载点,其中只有逻辑卷才可以写数据。
lvm的最大的特点就是可以动态的调整分区的大小,并且可以随着分区容量的增长而增加磁盘空间的容量。
LVM配置与创建
三、LVM的物理卷PV
1.相关命令
pvcreate 创建PV
pvscan 扫描PV
pvdisplay 显示PV
pvremove 删除PV
partprobe
2.创建物理卷
如果以上容量不够,可以再添加其它分区到物理卷中。

[root@redhat ~]# pvcreate /dev/hdb1 /dev/hdb2
Physical volume “/dev/hdb1″ successfully created
Physical volume “/dev/hdb2″ successfully created
[root@redhat ~]# pvscan
PV /dev/hdb1 lvm2 [95.95 MB]
PV /dev/hdb2 lvm2 [95.98 MB]
Total: 2 [191.92 MB] / in use: 0 [0 ] / in no VG: 2 [191.92 MB]
[root@redhat ~]# pvdisplay
— NEW Physical volume —
PV Name /dev/hdb1
VG Name
PV Size 95.95 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 2Ni0Tx-oeSy-zGUP-t7KG-Fh22-0BUi-iyPhhQ
— NEW Physical volume —
PV Name /dev/hdb2
VG Name
PV Size 95.98 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 2XLXfY-V3L2-Mtsl-79U4-ovuJ-YaQf-YV9qHs

四、创建LVM的卷组VG
1.相关命令
vgcreate 创建VG
vgscan 扫描VG
vgdispaly
vgextend
vgrece
vgchange
vgremove
2.创建逻辑卷VG

[root@redhat ~]# vgcreate vg0 /dev/hdb1 /dev/hdb2
Volume group “vg0″ successfully created
[root@redhat ~]# vgscan
Reading all physical volumes. This may take a while…
Found volume group “vg0″ using metadata type lvm2
[root@redhat ~]# 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 184.00 MB
PE Size 4.00 MB /*分配的块的大小默认为4M*/
Total PE 46
Alloc PE / Size 0 / 0
Free PE / Size 46 / 184.00 MB
VG UUID kL5CGk-5Odk-r3PK-9q0A-s94h-OHv4-BojBnH增加VG容量到1TB的方法:
vgcreate -s 16M vg0 /dev/hdb1 /dev/hdb2

3.删除与添加逻辑卷
[root@redhat ~]# vgrece vg0 /dev/hdb2
Removed “/dev/hdb2″ from volume group “vg0″
[root@redhat ~]# vgextend vg0 /dev/hdb2
Volume group “vg0″ successfully extended
五、创建LVM的逻辑卷LV
1.相关命令
lvcreate
lvscan
lvdisplay
lvextend
lvrece
lvremove
lvresize
2.创建逻辑卷LV

[root@redhat ~]# lvcreate -L 184M -n data vg0
Logical volume “data” created
[root@redhat ~]# lvscan
ACTIVE ‘/dev/vg0/data’ [184.00 MB] inherit
[root@redhat ~]# lvdisplay
— Logical volume —
LV Name /dev/vg0/data
VG Name vg0
LV UUID HNKO5d-yRre-qVnP-ZT8D-fXir-XTeM-r6WjDX
LV Write Access read/write
LV Status available
# open 0
LV Size 184.00 MB
Current LE 46
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0

六、挂载LVM的逻辑卷LV
lv的格式化:
mkfs.ext3 /dev/vg0/data
mdkir /mnt/lvm
mount /dev/vg0/data /mnt/lvm
[root@redhat ~]# ls /mnt/lvm
lost+found
[root@redhat ~]# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/hda3 ext3 7625092 2219460 5012040 31% /
/dev/hda1 ext3 101086 10006 85861 11% /boot
tmpfs tmpfs 150108 0 150108 0% /dev/shm
/dev/mapper/vg0-data
ext3 182469 5664 167385 4% /mnt/lvm
七、LVM的容量调整
LVM的容量调整可以在多个环节进行调整,比如:可以在物理卷上,VG上,以及LV上,都可以进行容量的扩展,这也是LVM它的一个优势所在。
1.添加物理卷
首先应卸载在使用过程中的LV,然后必须保证该磁盘的类型是lvm类型,才能添加进来。

[root@redhat ~]# umount /dev/vg0/data
[root@redhat ~]# pvcreate /dev/hdb3
Physical volume “/dev/hdb3″ successfully created
[root@redhat ~]# pvscan
PV /dev/hdb1 VG vg0 lvm2 [92.00 MB / 0 free]
PV /dev/hdb2 VG vg0 lvm2 [92.00 MB / 0 free]
PV /dev/hdb3 lvm2 [95.98 MB]
Total: 3 [279.98 MB] / in use: 2 [184.00 MB] / in no VG: 1 [95.98 MB]

2.添加VG的容量
把上面新添加的LVM磁盘加入到vg0卷组中。

[root@redhat ~]# vgextend vg0 /dev/hdb3
Volume group “vg0″ successfully extended
[root@redhat ~]# vgdisplay
— Volume group —
VG Name vg0
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 276.00 MB
PE Size 4.00 MB
Total PE 69
Alloc PE / Size 46 / 184.00 MB
Free PE / Size 23 / 92.00 MB
VG UUID kL5CGk-5Odk-r3PK-9q0A-s94h-OHv4-BojBnH

3.添加入LV中VG增珈的容量
把新加入LVM磁盘的容量加入LV中。
[root@redhat ~]# lvextend -L +92M /dev/vg0/data
Extending logical volume data to 276.00 MB
Logical volume data successfully resized
[root@redhat ~]# lvscan
ACTIVE ‘/dev/vg0/data’ [276.00 MB] inherit
[root@redhat ~]# resize2fs -f /dev/vg0/data
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg0/data to 282624 (1k) blocks.
The filesystem on /dev/vg0/data is now 282624 blocks long.
如果不做这一步的话,在实现挂载的时候,发现LV的容量没有真正的加入进LV卷中,因为相关信息写入到了磁盘超级块中。
4.挂载使用
[root@redhat ~]# mount /dev/vg0/data /mnt/lvm
[root@redhat ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hda3 7625092 2219468 5012032 31% /
/dev/hda1 101086 10006 85861 11% /boot
tmpfs 150108 0 150108 0% /dev/shm
/dev/mapper/vg0-data 273569 6168 256097 3% /mnt/lvm
LVM的卸载
八、LVM的卸载方法
如果不想使用LVM的话,可以卸载它, 卸载的方法与分区的删除方法类似,就是最后创建的最先删除。顺序如下:
先删除LV
再删除VG
最后PV
以前的LVM的分区应用fdisk转换成其它类型的文件系统,当普通分区使用。
九、LVM的卸载过程
1.umount取消挂载

[root@redhat ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hda3 7625092 2219468 5012032 31% /
/dev/hda1 101086 10006 85861 11% /boot
tmpfs 150108 0 150108 0% /dev/shm
/dev/mapper/vg0-data 273569 6168 256097 3% /mnt/lvm
[root@redhat ~]# umount /mnt/lvm

2.删除LV逻辑卷
[root@redhat ~]# lvremove /dev/vg0/data
Do you really want to remove active logical volume “data”? [y/n]: y
Logical volume “data” successfully removed
3.删除VG卷组
[root@redhat ~]# vgchange -a n vg0
0 logical volume(s) in volume group “vg0″ now active
说明:把vg0转换成休眠状态,实验中这一步可以不用。
[root@redhat ~]# vgremove vg0
Volume group “vg0″ successfully removed
4.删除PV

[root@redhat ~]# pvscan 查看pv的情况
PV /dev/hdb1 lvm2 [95.95 MB]
PV /dev/hdb2 lvm2 [95.98 MB]
PV /dev/hdb3 lvm2 [95.98 MB]
Total: 3 [287.90 MB] / in use: 0 [0 ] / in no VG: 3 [287.90 MB]
[root@redhat ~]# pvremove /dev/hdb1 /dev/hdb2 /dev/hdb3
Attempt to close device ‘/dev/cdrom’ which is not open.
Labels on physical volume “/dev/hdb1″ successfully wiped
Labels on physical volume “/dev/hdb2″ successfully wiped
Labels on physical volume “/dev/hdb3″ successfully wiped

5.最后就是用fdisk修改磁盘的类型了。

④ 关于linux中的磁盘扩容和LVM的疑问

LVM 甚至可以在服务器不断电的情况下动态对磁盘进行扩容,再虚拟一块硬盘后来加入到LVM中

1.添加虚拟硬盘
先关掉虚拟机的电源,然后选择虚拟机,点右键,setting里面点击Add后选择硬盘设备,设置硬盘为1G

2.开启电源,RHEL5启动完成后

格式化硬盘,划出硬盘分区并将格式改为 LVM格式

fdisk -l 查看硬盘分区情况

Disk /dev/hda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 522 4088542+ 8e Linux LVM

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM

fdisk /dev/hdb

n

p

2

Command (m for help): n 新建分区
Command action
e extended
p primary partition (1-4) 分区类型为主分区(如果硬盘分区超过4个了,则选择扩展分区,再新建逻辑分区)
p
Partition number (1-4): 2 第几个分区
First cylinder (1986-8322, default 1986): 起始磁柱
Using default value 1986 这时选默认
Last cylinder or +size or +sizeM or +sizeK (1986-8322, default 8322): +1024M 这里我们将这个分区设成一G

Command (m for help): p 查看分区情况

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM
/dev/hdb2 1986 3970 1000440 83 Linux

Command (m for help): t 更改分区的类型
Partition number (1-4): 2 选择第二个
Hex code (type L to list codes): 8e 这里磁盘格式为 LINUX LVM ,可以使用L来进行查看

Command (m for help): p 再次查看

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM
/dev/hdb2 1986 3970 1000440 8e Linux LVM 可以看到 hdb2已经变成LVM格式了

Command (m for help): w 保存,切记要保存,不然上面分区,格式化的操作都不会执行,等于白做了
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks. 这里提示我们重启系统后分区表才会改变,其实用下面一个命令即可

partprobe

[root@el5test ~]# fdisk -l

Disk /dev/hda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 522 4088542+ 8e Linux LVM

Disk /dev/hdb: 4294 MB, 4294967296 bytes
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 1985 1000408+ 8e Linux LVM
/dev/hdb2 1986 3970 1000440 8e Linux LVM 可以看到hdb2格式化完成了

3.加入到LVM中

[root@el5test ~]# pvdisplay 先看下系统中PV
--- Physical volume ---
PV Name /dev/hda2
VG Name VolGroup00
PV Size 3.90 GB / not usable 24.72 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 124
Free PE 0
Allocated PE 124
PV UUID 0fxOi9-ZeOY-OlQf-QmIO-Gpb4-kaci-24ovGP

--- Physical volume ---
PV Name /dev/hdb1
VG Name VolGroup00
PV Size 976.96 MB / not usable 16.96 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 30
Free PE 5
Allocated PE 25
PV UUID dtNfYJ-31fK-5CxL-9Pxa-pYWb-GcQ5-Vt5011

[root@el5test ~]# pvcreate /dev/hdb2 建立物理卷(PV)
Physical volume "/dev/hdb2" successfully created

[root@el5test ~]# vgextend VolGroup00 /dev/hdb2 把新物理卷加入到卷组中去
/dev/cdrom: open failed: Read-only file system
Attempt to close device '/dev/cdrom' which is not open.
Volume group "VolGroup00" successfully extended 加入成功

[root@el5test ~]# lvextend -L+1G /dev/VolGroup00/LogVol00 把新的空间加到逻辑卷中去
Extending logical volume LogVol00 to 5.03 GB
Logical volume LogVol00 successfully resized

[root@el5test ~]# resize2fs -p /dev/VolGroup00/LogVol00 加上去之后,目前用df -h还看不到新的空间,需要激活
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 1318912 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 1318912 blocks long.

[root@el5test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
4.9G 3.0G 1.7G 65% / 可以看到这个卷动态放大了
/dev/hda1 99M 14M 81M 15% /boot
tmpfs 132M 0 132M 0% /dev/shm
none 132M 104K 132M 1% /var/lib/xenstored

阅读全文

与lvm动态编译相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163