磁盘管理-lvm介绍

4.10:lvm介绍:

 1、lvm是linux系统对磁盘分区管理的机制,方便磁盘的扩容和缩容,提高磁盘分区管理的灵活性,

对磁盘分区来创建物理卷---->划分为卷组--->划分为逻辑卷---->格式化,挂载,扩容。

基本逻辑图如下:

2、lvm实验:

2.1:新建分区,在虚拟机上添加一块硬盘sdb,并分出三个分区各1G,需要更改其分区格式为8e(lvm)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82


[[email protected] ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。

 

#创建第一块磁盘

命令(输入 m 获取帮助):n         #新建磁盘分区

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p           #新建主分区

分区号 (1-4,默认 1):

起始 扇区 (2048-10485759,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+1G    #大小为1G.

分区 1 已设置为 Linux 类型,大小设为 1 GiB

 

命令(输入 m 获取帮助):p            #打印当期分区

 

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区

 

 

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux  

 

#注意:普通分区的磁盘Id显示为83开始,如果想使用lvm,则需要修改,用下面t命令:

 

命令(输入 m 获取帮助):t     #设置lvm类型用t。

已选择分区 1

Hex 代码(输入 L 列出所有代码):8e          #lvm专用类型代码。

已将分区“Linux”的类型更改为“Linux LVM”

 

#新建第二块分区(如上命令)

命令(输入 m 获取帮助):n         #新建分区

Partition type:

   p   primary (1 primary, 0 extended, 3 free)

   e   extended

Select (default p): p

分区号 (2-4,默认 2):

起始 扇区 (2099200-10485759,默认为 2099200):

将使用默认值 2099200

Last 扇区, +扇区 or +size{K,M,G} (2099200-10485759,默认为 10485759):+1G

分区 2 已设置为 Linux 类型,大小设为 1 GiB

 

命令(输入 m 获取帮助):t

分区号 (1,2,默认 2):

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

 

#创建第三块分区:

命令(输入 m 获取帮助):n

Partition type:

   p   primary (2 primary, 0 extended, 2 free)

   e   extended

Select (default p): p

分区号 (3,4,默认 3):

起始 扇区 (4196352-10485759,默认为 4196352):

将使用默认值 4196352

Last 扇区, +扇区 or +size{K,M,G} (4196352-10485759,默认为 10485759):+1G

分区 3 已设置为 Linux 类型,大小设为 1 GiB

 

命令(输入 m 获取帮助):t

分区号 (1-3,默认 3):

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

 

命令(输入 m 获取帮助):p

 

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x41fc3f2d

 

   设备 Boot      Start         End      Blocks   Id  System     #如图id修改为8e.

/dev/sdb1            2048     2099199     1048576   8e  Linux LVM

/dev/sdb2         2099200     4196351     1048576   8e  Linux LVM

/dev/sdb3         4196352     6293503     1048576   8e  Linux LVM

命令(输入 m 获取帮助):w    #最后用w来保存:

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

正在同步磁盘。

2.2:创建物理卷pvcreat====physical    volume   create

pvcreate  /dev/sdb1       #创建物理卷

pvdiplay                  #查看卷组

pvremove   /dev/sdb1      #删除一个卷组

如何系统提示未找到这个命令,则需要安装yum install  -y lvm2  如下;

[[email protected] ~]# yum install -y lvm2

已加载插件:fastestmirror

base                                                    | 3.6 kB     00:00

extras                                                  | 3.4 kB     00:00

updates                                                 | 3.4 kB     00:00

(1/2): extras/7/x86_64/primary_db                         | 129 kB   00:00

(2/2): updates/7/x86_64/primary_db                        | 3.6 MB   00:04

如果不知道安装那个包,可以用 yum provides “/*/pvcreate”  #用通配的方法:

[[email protected] ~]# yum provides "/*/pvcreate"

已加载插件:fastestmirror

7:lvm2-2.02.171-8.el7.x86_64 : Userland logical volume management tools

源    :base

匹配来源:

文件名    :/usr/sbin/pvcreate

分别给三个分区创建物理卷:如下:

[[email protected] ~]# pvcreate /dev/sdb1

Physical volume "/dev/sdb1" successfully created.

[[email protected] ~]# pvcreate /dev/sdb2

Physical volume "/dev/sdb2" successfully created.

[[email protected] ~]# pvcreate /dev/sdb3

Physical volume "/dev/sdb3" successfully created.

注意:当pvcreate  /dev/sdb1时提示不存在时,可以用partprobe来更新:默认是创建完分区后文件自动生成:

2.3:创建卷组:vgcreate ==  volume   group   create

语法:vgcreate  卷组名称   物理卷名称

[[email protected] ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2    #创建卷组1

Volume group "vg1" successfully created

[[email protected] ~]# vgs               #查看所创建的卷组

VG  #PV #LV #SN Attr   VSize VFree

vg1   2   0   0 wz--n- 1.99g 1.99g

[[email protected] ~]# vgremove vg1       #删除卷组1

2.4:创建逻辑卷lvcreate  ===  logical  volume  create

语法: lvcreate  选项   逻辑卷名称:物理卷组

选项如下:

-L :  指定逻辑卷的大小:单位为kKmMgGtT:

-n :  指定逻辑卷的名称:

[[email protected] ~]# lvcreate -L 300 -n lv1 vg1        #创建逻辑卷

Logical volume "lv1" created.

格式化逻辑卷  :mkfs.ext4 /dev/vg1/lv1

[[email protected] ~]# mkfs.ext4 /dev/vg1/lv1      #格式化:

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=1024 (log=0)

分块大小=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

76912 inodes, 307200 blocks

15360 blocks (5.00%) reserved for the super user

第一个数据块=1

Maximum filesystem blocks=33947648

38 block groups

8192 blocks per group, 8192 fragments per group

2024 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (8192 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

挂载: mount /dev/vg1/lv1 /mnt

[[email protected] ~]# mount /dev/vg1/lv1 /mnt

[[email protected] ~]# df -ah

文件系统             容量  已用  可用 已用% 挂载点

rootfs                  -     -     -     - /

sysfs                   0     0     0     - /sys

/dev/mapper/vg1-lv1  283M  2.1M  262M    1% /mnt

注:这里明明挂载的是/dev/vg1/lv1,而显示的确是/dev/mapper/vg1-lv1,原因如下:

[[email protected] ~]# ls -ld /dev/vg1/lv1

lrwxrwxrwx 1 root root 7 11月  7 02:31 /dev/vg1/lv1 -> ../dm-0

[[email protected] ~]# ls -ld /dev/mapper/vg1-lv1

lrwxrwxrwx 1 root root 7 11月  7 02:31 /dev/mapper/vg1-lv1 -> ../dm-0

3、扩容:假设现在要扩容分区/mnt/

流程如下:

卸载:umount

更改逻辑卷信息(lvresize)-->可以用于扩容和缩小空间(需卸载磁盘后操作

检测磁盘错误(e2fsck -f)-->

更新逻辑卷信息(resize2fs

[[email protected] ~]# umount /dev/vg1/lv1       #卸载磁盘

[[email protected] ~]# lvresize -L 400 /dev/vg1/lv1    #重新设置逻辑卷lv1的大小

Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 400.00 MiB (100 extents).

Logical volume vg1/lv1 successfully resized.

检测磁盘错误:e2fsck  -f 

[email protected] ~]# e2fsck -f /dev/vg1/lv1       #检测磁盘错误

e2fsck 1.42.9 (28-Dec-2013)

第一步: 检查inode,块,和大小

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vg1/lv1: 13/76912 files (0.0% non-contiguous), 19978/307200 blocks

更新逻辑卷信息:  resize2fs

[[email protected] ~]# resize2fs /dev/vg1/lv1   #更新逻辑卷信息

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vg1/lv1 to 409600 (1k) blocks.

The filesystem on /dev/vg1/lv1 is now 409600 blocks long.

重新挂载磁盘(才能识别到分区)   mount

[[email protected] ~]# mount /dev/vg1/lv1  /mnt/

[[email protected] ~]# df -ah

文件系统             容量  已用  可用 已用% 挂载点

rootfs                  -     -     -     - /

sysfs                   0     0     0     - /sys

proc                    0     0     0     - /proc

devtmpfs             479M     0  479M    0% /dev

/dev/mapper/vg1-lv1  380M  2.3M  354M    1% /mnt

注意:以上扩容完成:不改变分区的操作,分区内的文件不会丢失:

4、缩容:假设缩小/mnt/的空间容量:---->xfs不支持缩容操作:

流程如下:

流程如下:

卸载:(mount)--->

检测磁盘错误(e2fsck -f)-->

更新逻辑卷信息(resize2fs) --->

更改逻辑卷信息(lvresize)-->可以用于扩容和缩小空间

卸载:umount

[[email protected] ~]# umount /dev/vg1/lv1

检测磁盘错误:e2fsck  -f

[[email protected] ~]# e2fsck -f  /dev/vg1/lv1

e2fsck 1.42.9 (28-Dec-2013)

第一步: 检查inode,块,和大小

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vg1/lv1: 13/101200 files (0.0% non-contiguous), 23298/409600 blocks

更新逻辑卷信息:resize2fs

[[email protected] ~]# resize2fs /dev/vg1/lv1  100M

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks.

The filesystem on /dev/vg1/lv1 is now 102400 blocks long.

设置逻辑卷信息:lvresize

[[email protected] ~]# lvresize -L 100 /dev/vg1/lv1

WARNING: Reducing active logical volume to 100.00 MiB.

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vg1/lv1? [y/n]: y

Size of logical volume vg1/lv1 changed from 400.00 MiB (100 extents) to 100.00 MiB (25 extents).

Logical volume vg1/lv1 successfully resized.

[[email protected] ~]# lvs        #查看lvs的大小:

LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

lv1  vg1 -wi-a----- 100.00m

5、xfs文件系统扩容:

[[email protected] ~]# mkfs.xfs  -f /dev/vg1/lv1     #重新格式化之前的逻辑卷  

meta-data=/dev/vg1/lv1           isize=512    agcount=4, agsize=6400 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=1        finobt=0, sparse=0

data     =                       bsize=4096   blocks=25600, imaxpct=25

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal log           bsize=4096   blocks=855, version=2

=                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[[email protected] ~]# mount /dev/vg1/lv1  /mnt/     #xfs必须在挂载状态下进行:

[[email protected] ~]# mkdir /mnt/123      #创建一个测试文件

[[email protected] ~]# lvs      #查看文件大小

LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

lv1  vg1 -wi-ao---- 100.00m

[[email protected] ~]# lvresize -L 180 /dev/vg1/lv1   #扩容逻辑卷

Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 180.00 MiB (45 extents).

Logical volume vg1/lv1 successfully resized                                               [[email protected] ~]# xfs_growfs /dev/vg1/lv1    #xfs必须要执行此步骤:

meta-data=/dev/mapper/vg1-lv1    isize=512    agcount=4, agsize=6400 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=1        finobt=0 spinodes=0

data     =                       bsize=4096   blocks=25600, imaxpct=25

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal               bsize=4096   blocks=855, version=2

=                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 25600 to 46080

[[email protected] ~]# lvs       #查看大小;

LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

lv1  vg1 -wi-ao---- 180.00m

6:扩容卷组(卷组扩容后,也可以扩容逻辑卷)

卷组容量在不足的情况下也是可以扩容的,之前分区所分的/dev/sdb3就可以添加到卷组vg1里:

[[email protected] ~]# vgs

VG  #PV #LV #SN Attr   VSize VFree

vg1   2   1   0 wz--n- 1.99g <1.82g

[[email protected] ~]# vgextend vg1 /dev/sdb3

Volume group "vg1" successfully extended

[[email protected] ~]# vgs

VG  #PV #LV #SN Attr   VSize  VFree

vg1   3   1   0 wz--n- <2.99g 2.81g

原文地址:http://blog.51cto.com/yuanhaohao/2056855

时间: 2024-10-09 08:55:37

磁盘管理-lvm介绍的相关文章

磁盘管理-LVM(1)

大纲 1.LVM是什么? 2.LVM分层结构 3.LVM几个关键术语 4.实战演练 1.LVM是什么? LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间管理理念.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑"卷,而不是直接使用物理硬盘.可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据.可以随意将新的硬盘添加到LVM,以直接扩展

磁盘管理-LVM(2)

续<磁盘管理-LVM(1)> 1.扩展逻辑卷 调整逻辑卷大小的功能是LVM最有用的功能.这个部分会讨论我们怎么样扩展一个存在的逻辑卷.下面,我们将会扩展先前创建的逻辑卷'mylv1'扩大到3G. 注意,调整逻辑卷大小之后,也需要对文件系统调整大小进行匹配.这个额外的步骤各不相同,取决于创建文件系统的类型.命令的执行顺序是很重要的. ### lvextend - extend the size of a logical volume # lvextend {-l|--extents [+]Log

linux 磁盘管理+lvm逻辑卷管理

注:linux系统中主分区和扩展分区总共可以有4个,逻辑分区是从5开始. Linux系统中:83(ext3) 82(交换分区) 5(扩展分区) 8E(逻辑卷) b(fat32) 1.查看系统的磁盘以及分区状况 2.查看系统中磁盘的挂载情况以及容量使用情况 3.进入磁盘管理工具 4.P查看磁盘分区 5.N新建,P主分区 6.E新建扩展分区 7.L新建逻辑分区 8.删除一个分区 9.保存分区配置 10.逻辑更改分区格式 11.永久挂载一个磁盘分区 12.格式化分区 Mkfs命令可以格式化ext的,f

Linux磁盘管理--LVM原理及基本操作

LVM(Logical Volume Manager)逻辑卷管理是Linux磁盘管理中的常用操作, 本文主要描述LVM的基本原理以及对LVM的扩展和缩减的基本操作. LVM实质是过软件方式将多个物理分区或磁盘组合成为一个容量可变大小的磁盘卷组VG, 再通过对VG中的基本单位PE构成可变大小的逻辑卷LV. LVM的优点: 通过调整VG中PV的数量来动态调整VG的容量大小, 通过调整LV中PE的数量来动态调整LV的容量大小. LVM中组成部分: 1. 分区: 磁盘中的可用分区, 分区类型ID应在创建

每天进步一点点——Linux磁盘管理LVM与RAID

转载请注明出处:http://blog.csdn.net/cywosp/article/details/38965799 1. 传统磁盘管理问题 当分区大小不够用时无法扩展其大小,仅仅能通过加入硬盘.创建新的分区来扩充空间.可是新加入进来的硬盘是作为独立文件系统存在的,原有的文件系统并未得到扩充.上层应用非常多时候仅仅能訪问一个文件系统.仅仅能让现有磁盘下线.换上新的磁盘之后,再将原来磁盘中的数据导入. 2. LVM LVM(Logical Volume Manager)逻辑卷管理通过将底层物理

centos7 磁盘管理—— lvm的使用

Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上.而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题.随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在

第十二章 linux磁盘管理-lvm(2)

yum install lvm2-2.02.72-8.el6_0.4.x86_64 1.将新创建的两个分区/dev/sdb1 /dev/sdb2转化成物理卷,主要是添加LVM属性信息并划分PE存储单元. pvcreate /dev/sdb1 /dev/sdb2 pvs pvdisplay 2.创建卷组 vgdata ,并将刚才创建好的两个物理卷加入该卷组.可以看出默认PE大小为4MB,PE是卷组的最小存储单元.可以通过 –s参数修改大小 vgcreate vgdata /dev/sdb1 /de

【转载】Linux磁盘管理:LVM逻辑卷管理

Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一.传统的磁盘管理 其实在Linux操作系统中,我们的磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底

linux磁盘管理:LVM的基本概念与创建、扩展、缩减、删除

编辑于2015--08--29 二.LVM的磁盘管理 LVM(Logical volume Manager)是逻辑卷管理的简称.它是Linux环境下对磁盘分区进行管理的一种机制. LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用.在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的