LVM讲解

转载 elaineyin2017 最后发布于2018-01-04 20:00:33 阅读数 1241 收藏

 

 

LVM

如果使用一个命令时,提供未找到命令,说明我们需要安装一个包,若不知道包的名字,只知道命令名,我们可以用命令去搜:

比如:我们要安装lvm的包,但不知道真正的包名,只知道命令是pvcreate,我们可以用以下命令:

yum provides "/*/prvcreate"

 

yum provides "/*/pvcreate"    #根据命令pvcreate搜索软件包

yum install -y lvm2       #安装lvm工具

partprobe                                  #更新分区表

vgremove                                   #删除卷组

pvcreate                                     #创建物理卷

pvs  或者 pvdisplay                   #查看物理卷

vgcreate                                     #创建卷组

vgs  或者 vgdisplay                   #查看卷组

lvcreate                                      #创建逻辑卷

lvs   或者 lvdisplay                    #查看逻辑卷

lvresize -L                                  #扩容逻辑卷指定逻辑卷的大小

e2fsck -f                                    #检查磁盘错误

resize2fs                             #更新磁盘信息

xfs_growfs                                  #XFS文件系统更新磁盘信息

vgextend                                   #扩容卷组

1.PE   (Physical Extend) 物理拓展

2.PV   (Physical Volume) 物理卷

3.VG   (Volume Group) 卷组

4.LV   (Logical Volume) 逻辑卷

一、 lvm讲解

1. 使用fdisk命令新建三个分区,并且使用t命令改变分区ID为8e

    LINUX ,分区 LVM讲解_LVM

    新建好的分区如图:

    LINUX ,分区 LVM讲解_Linux分区_02

2. pvcreate    创建物理卷

1. [root@localhost ~]# pvcreate /dev/sdb1                                                                                           # 将/dev/sdb1/ 、 /dev/sdb2/、  /dev/sdb3 创建为物理卷             

    WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y                     # 提示是否签名,选择y

    Wiping ext4 signature on /dev/sdb1.

    Physical volume "/dev/sdb1" successfully created.

2. [root@localhost ~]# pvcreate /dev/sdb2

    Physical volume "/dev/sdb2" successfully created.

3. [root@localhost ~]# pvcreate /dev/sdb3

    WARNING: ext4 signature detected on /dev/sdb3 at offset 1080. Wipe it? [y/n]: y   

    Wiping ext4 signature on /dev/sdb3.

    Physical volume "/dev/sdb3" successfully create

3. pvs  或者 pvdisplay   查看所有的物理卷

[root@localhost ~]# pvs                                   #查看物理卷

  PV             VG Fmt  Attr PSize PFree

  /dev/sdb1     lvm2 ---  1.00g 1.00g

  /dev/sdb2     lvm2 ---  1.00g 1.00g

  /dev/sdb3     lvm2 ---  1.00g 1.00g

4.vgcreate   创建物理卷组 

   vgs 或者vgdisplay    查看物理卷组

1. [root@localhost ~]# vgcreate vga /dev/sdb1 /dev/sdb2          #将/dev/sdb1/和/dev/sdb2创建为物理卷组,卷组的名字为:vga

    Volume group "vga" successfully created

2. [root@localhost ~]# vgs                                                                #使用vgs查看物理卷组     

    VG  #PV #LV #SN Attr   VSize VFree

    vga   2   0   0 wz--n- 1.99g 1.99g

5. lvcreate   创建逻辑卷  -L 指定大小  -n指定逻辑卷的名称

    lvs 或者 lvdisplay    查看逻辑卷

1. [root@localhost ~]# lvcreate -L 100M -n lva vga                       创建一个逻辑卷lva,指定大小为lva                                     

    Logical volume "lva" created.

2. [root@localhost ~]# lvs

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

    lva  vga -wi-a----- 100.00m  

7. 格式化逻辑卷,挂载逻辑卷

1. [root@localhost ~]# mkfs.ext4 /dev/vga/lva                       # 将逻辑卷/lva/格式化为ext4文件系统

2. [root@localhost ~]# mount /dev/vga/lva /mnt/                 #将逻辑卷/lva/挂载到mnt下

3. [root@localhost ~]# df -h

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

    /dev/sda3             16G     1.1G     15G       7%           /

    devtmpfs             911M     0        911M     0%        /dev

    tmpfs                   920M     0        920M     0%      /dev/shm

    tmpfs                   920M   17M     903M    2%    /run

    tmpfs                   920M     0         920M    0%      /sys/fs/cgroup

    /dev/sda1           197M  113M     85M     58%     /boot

    tmpfs                   184M     0        184M      0%     /run/user/0

   /dev/mapper/vga-lva   93M       1.6M     85M    2% /mnt        挂载到mnt下的为/dev/vga/lva,显示的名字为/dev/mapper/vga-lva   ,使用ls查看两个文件实际上指向是同一个文件../dm-0

4. [root@localhost ~]# ls -l /dev/mapper/vga-lva

    lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/mapper/vga-lva -> ../dm-0

5. [root@localhost ~]# ls -l /dev/vga/lva

    lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/vga/lva -> ../dm-0

 

 

二、逻辑卷的扩容和缩容

针对ext4的文件系统扩容:

1. lvresize -L 扩容逻辑卷,-L指定逻辑卷的大小

1. [root@localhost ~]# umount /mnt                                        #扩容逻辑卷之前要先将逻辑卷卸载

2. [root@localhost ~]# lvresize -L 300M /dev/vga/lva            #扩容逻辑卷lva,并指定逻辑卷的大小为300M 

    Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).   #逻辑卷由100M变为300M

    Logical volume vga/lva successfully resized.

2. e2fsck -f   检查磁盘错误

[root@localhost ~]# e2fsck -f /dev/vga/lva           #扩容后检查lva磁盘是否存在错误

e2fsck 1.42.9 (28-Dec-2013)

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

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vga/lva: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks

3. resize2fs  更新逻辑卷信息

[root@localhost ~]# resize2fs /dev/vga/lva               #更新磁盘lva的信息

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vga/lva to 307200 (1k) blocks.

The filesystem on /dev/vga/lva is now 307200 blocks long.

针对ext4的文件系统缩容:

1.  先使用e2fsck 检查磁盘错误

[root@localhost ~]# umount /mnt                      #先将挂载的磁盘进行卸载

[root@localhost ~]# e2fsck -f /dev/vga/lva

e2fsck 1.42.9 (28-Dec-2013)

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

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vga/lva: 13/75088 files (7.7% non-contiguous), 15640/307200 blocks

2. 使用resize2fs更新磁盘信息  

[root@localhost ~]# resize2fs /dev/vga/lva 100M              #注意更新的磁盘信息要将缩小到多大写上去

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vga/lva to 102400 (1k) blocks.

The filesystem on /dev/vga/lva is now 102400 blocks long.

3. 使用lvresize缩减磁盘 

[root@localhost ~]# lvresize -L 100M /dev/vga/lva                      #缩减lva到100M     

  WARNING: Reducing active logical volume to 100.00 MiB.

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vga/lva? [y/n]: y                            #提示是否缩减,选择y 

  Size of logical volume vga/lva changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents).

  Logical volume vga/lva successfully resized.                             #缩减成功

针对xfs文件系统的扩容

1. 将磁盘格式化为xfs文件系统

[root@localhost ~]# mkfs.xfs -f /dev/vga/lva

2. 挂载磁盘,XFS文件系统进行扩容的时候需要挂载磁盘

[root@localhost ~]# mount /dev/vga/lva /mnt                      #将磁盘挂载到mnt下

[root@localhost ~]# df -h

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

/dev/sda3             16G  1.1G   15G    7% /

devtmpfs             911M     0  911M    0% /dev

tmpfs                920M     0  920M    0% /dev/shm

tmpfs                920M   17M  904M    2% /run

tmpfs                920M     0  920M    0% /sys/fs/cgroup

/dev/sda1            197M  113M   85M   58% /boot

tmpfs                184M     0  184M    0% /run/user/0

/dev/mapper/vga-lva   97M  5.2M   92M    6% /mnt         #可以看到大小为100M

3. 使用lvresize扩容

[root@localhost ~]# lvresize -L 300M /dev/vga/lva              #  指定扩容的大小为300M

  Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 exten

  Logical volume vga/lva successfully resized.

4. xfs_growfs   扩展XFS文件系统

[root@localhost ~]# xfs_growfs /dev/vga/lva

meta-data=/dev/mapper/vga-lva    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 76800

 

三、卷组的扩容

1. vgextend   扩容卷组

[root@localhost ~]# vgs

  VG  #PV #LV #SN Attr   VSize VFree

  vga   2   1   0 wz--n- 1.99g <1.70g                                 #卷组vga的大小为2G

[root@localhost ~]# vgextend vga /dev/sdb3

  Volume group "vga" successfully extended                  #将/dev/sdb3/加入到卷组vga

[root@localhost ~]# vgs

  VG  #PV #LV #SN Attr   VSize  VFree

  vga   3   1   0 wz--n- <2.99g <2.70g                            #卷组vga的大小变为3G

 

 

yum provides "/*/pvcreate"    #根据命令pvcreate搜索软件包

yum install -y lvm2       #安装lvm工具

partprobe                                  #更新分区表

vgremove                                   #删除卷组

pvcreate                                     #创建物理卷

pvs  或者 pvdisplay                   #查看物理卷

vgcreate                                     #创建卷组

vgs  或者 vgdisplay                   #查看卷组

lvcreate                                      #创建逻辑卷

lvs   或者 lvdisplay                    #查看逻辑卷

lvresize -L                                  #扩容逻辑卷指定逻辑卷的大小

e2fsck -f                                    #检查磁盘错误

resize2fs                             #更新磁盘信息

xfs_growfs                                  #XFS文件系统更新磁盘信息

vgextend                                   #扩容卷组

1.PE   (Physical Extend) 物理拓展

2.PV   (Physical Volume) 物理卷

3.VG   (Volume Group) 卷组

4.LV   (Logical Volume) 逻辑卷

一、 lvm讲解

1. 使用fdisk命令新建三个分区,并且使用t命令改变分区ID为8e

    LINUX ,分区 LVM讲解_LVM

    新建好的分区如图:

    LINUX ,分区 LVM讲解_Linux分区_02

2. pvcreate    创建物理卷

1. [root@localhost ~]# pvcreate /dev/sdb1                                                                                           # 将/dev/sdb1/ 、 /dev/sdb2/、  /dev/sdb3 创建为物理卷             

    WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y                     # 提示是否签名,选择y

    Wiping ext4 signature on /dev/sdb1.

    Physical volume "/dev/sdb1" successfully created.

2. [root@localhost ~]# pvcreate /dev/sdb2

    Physical volume "/dev/sdb2" successfully created.

3. [root@localhost ~]# pvcreate /dev/sdb3

    WARNING: ext4 signature detected on /dev/sdb3 at offset 1080. Wipe it? [y/n]: y   

    Wiping ext4 signature on /dev/sdb3.

    Physical volume "/dev/sdb3" successfully create

3. pvs  或者 pvdisplay   查看所有的物理卷

[root@localhost ~]# pvs                                   #查看物理卷

  PV             VG Fmt  Attr PSize PFree

  /dev/sdb1     lvm2 ---  1.00g 1.00g

  /dev/sdb2     lvm2 ---  1.00g 1.00g

  /dev/sdb3     lvm2 ---  1.00g 1.00g

4.vgcreate   创建物理卷组 

   vgs 或者vgdisplay    查看物理卷组

1. [root@localhost ~]# vgcreate vga /dev/sdb1 /dev/sdb2          #将/dev/sdb1/和/dev/sdb2创建为物理卷组,卷组的名字为:vga

    Volume group "vga" successfully created

2. [root@localhost ~]# vgs                                                                #使用vgs查看物理卷组     

    VG  #PV #LV #SN Attr   VSize VFree

    vga   2   0   0 wz--n- 1.99g 1.99g

5. lvcreate   创建逻辑卷  -L 指定大小  -n指定逻辑卷的名称

    lvs 或者 lvdisplay    查看逻辑卷

1. [root@localhost ~]# lvcreate -L 100M -n lva vga                       创建一个逻辑卷lva,指定大小为lva                                     

    Logical volume "lva" created.

2. [root@localhost ~]# lvs

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

    lva  vga -wi-a----- 100.00m  

7. 格式化逻辑卷,挂载逻辑卷

1. [root@localhost ~]# mkfs.ext4 /dev/vga/lva                       # 将逻辑卷/lva/格式化为ext4文件系统

2. [root@localhost ~]# mount /dev/vga/lva /mnt/                 #将逻辑卷/lva/挂载到mnt下

3. [root@localhost ~]# df -h

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

    /dev/sda3             16G     1.1G     15G       7%           /

    devtmpfs             911M     0        911M     0%        /dev

    tmpfs                   920M     0        920M     0%      /dev/shm

    tmpfs                   920M   17M     903M    2%    /run

    tmpfs                   920M     0         920M    0%      /sys/fs/cgroup

    /dev/sda1           197M  113M     85M     58%     /boot

    tmpfs                   184M     0        184M      0%     /run/user/0

   /dev/mapper/vga-lva   93M       1.6M     85M    2% /mnt        挂载到mnt下的为/dev/vga/lva,显示的名字为/dev/mapper/vga-lva   ,使用ls查看两个文件实际上指向是同一个文件../dm-0

4. [root@localhost ~]# ls -l /dev/mapper/vga-lva

    lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/mapper/vga-lva -> ../dm-0

5. [root@localhost ~]# ls -l /dev/vga/lva

    lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/vga/lva -> ../dm-0

 

 

二、逻辑卷的扩容和缩容

针对ext4的文件系统扩容:

1. lvresize -L 扩容逻辑卷,-L指定逻辑卷的大小

1. [root@localhost ~]# umount /mnt                                        #扩容逻辑卷之前要先将逻辑卷卸载

2. [root@localhost ~]# lvresize -L 300M /dev/vga/lva            #扩容逻辑卷lva,并指定逻辑卷的大小为300M 

    Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).   #逻辑卷由100M变为300M

    Logical volume vga/lva successfully resized.

2. e2fsck -f   检查磁盘错误

[root@localhost ~]# e2fsck -f /dev/vga/lva           #扩容后检查lva磁盘是否存在错误

e2fsck 1.42.9 (28-Dec-2013)

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

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vga/lva: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks

3. resize2fs  更新逻辑卷信息

[root@localhost ~]# resize2fs /dev/vga/lva               #更新磁盘lva的信息

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vga/lva to 307200 (1k) blocks.

The filesystem on /dev/vga/lva is now 307200 blocks long.

针对ext4的文件系统缩容:

1.  先使用e2fsck 检查磁盘错误

[root@localhost ~]# umount /mnt                      #先将挂载的磁盘进行卸载

[root@localhost ~]# e2fsck -f /dev/vga/lva

e2fsck 1.42.9 (28-Dec-2013)

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

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vga/lva: 13/75088 files (7.7% non-contiguous), 15640/307200 blocks

2. 使用resize2fs更新磁盘信息  

[root@localhost ~]# resize2fs /dev/vga/lva 100M              #注意更新的磁盘信息要将缩小到多大写上去

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vga/lva to 102400 (1k) blocks.

The filesystem on /dev/vga/lva is now 102400 blocks long.

3. 使用lvresize缩减磁盘 

[root@localhost ~]# lvresize -L 100M /dev/vga/lva                      #缩减lva到100M     

  WARNING: Reducing active logical volume to 100.00 MiB.

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vga/lva? [y/n]: y                            #提示是否缩减,选择y 

  Size of logical volume vga/lva changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents).

  Logical volume vga/lva successfully resized.                             #缩减成功

针对xfs文件系统的扩容

1. 将磁盘格式化为xfs文件系统

[root@localhost ~]# mkfs.xfs -f /dev/vga/lva

2. 挂载磁盘,XFS文件系统进行扩容的时候需要挂载磁盘

[root@localhost ~]# mount /dev/vga/lva /mnt                      #将磁盘挂载到mnt下

[root@localhost ~]# df -h

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

/dev/sda3             16G  1.1G   15G    7% /

devtmpfs             911M     0  911M    0% /dev

tmpfs                920M     0  920M    0% /dev/shm

tmpfs                920M   17M  904M    2% /run

tmpfs                920M     0  920M    0% /sys/fs/cgroup

/dev/sda1            197M  113M   85M   58% /boot

tmpfs                184M     0  184M    0% /run/user/0

/dev/mapper/vga-lva   97M  5.2M   92M    6% /mnt         #可以看到大小为100M

3. 使用lvresize扩容

[root@localhost ~]# lvresize -L 300M /dev/vga/lva              #  指定扩容的大小为300M

  Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 exten

  Logical volume vga/lva successfully resized.

4. xfs_growfs   扩展XFS文件系统

[root@localhost ~]# xfs_growfs /dev/vga/lva

meta-data=/dev/mapper/vga-lva    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 76800

 

三、卷组的扩容

1. vgextend   扩容卷组

[root@localhost ~]# vgs

  VG  #PV #LV #SN Attr   VSize VFree

  vga   2   1   0 wz--n- 1.99g <1.70g                                 #卷组vga的大小为2G

[root@localhost ~]# vgextend vga /dev/sdb3

  Volume group "vga" successfully extended                  #将/dev/sdb3/加入到卷组vga

[root@localhost ~]# vgs

  VG  #PV #LV #SN Attr   VSize  VFree

  vga   3   1   0 wz--n- <2.99g <2.70g                            #卷组vga的大小变为3G