LVM分为PV、VG、LV



1、添加新硬盘。

使用fdisk -l 查看刚刚添加的新硬盘。 /dev/sdc



2、使用fdisk /dev/sdc 把磁盘分区并变成lvm格式。(以为为步骤截图,)by:V
是不是步骤太清楚了。mark:2016年06月07日17:19:35

 



这个时候就有了一个 /dev/sdc1的lvm分区了。

3、这个时候我们要创建一个pv。理一理之间的关系。 pv 去 扩容 vg,然后vg 扩容lv ,然后lv 去挂在目录。

pvcreate /dev/sdc1

pv创建好了之后,才能创建vg,如果没有pv 怎么创建vg 呢。所以这个时候我们创建vg

vgcreate shiyiwen-vglvm /dev/sdc1   (当然 如果你有多个pv,可以由多个pv组成一个vg
这个时候可以这样。vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3 ps:vgcreate
后面的名字自己取的。当然 每个pv 都要通过pvcreate来创建,我自己开始有点嫌弃自己啰嗦了)


1

2

使用下列命令删除卷组。

# vgremove volume-group1

 

4、下面就是创建lv卷组了。


1

2

[[email protected] ~]# lvcreate -L 8G -n lvm-syw shiyiwen-vglvm                
#-L 指定大小, -n df -th 显示的名字,及逻辑卷名字。 后面为vg名字。 ps: 不要看错了vg名。

  Logical volume "lvm-syw" created.

 

5、格式化lv并挂载

通过lvdisplay查看lv path名字 因为 后面mkfs.ext4 要用到这个名字而不是创建lv的名字.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[[email protected] ~]# lvdisplay

  --- Logical volume ---

  LV Path                /dev/shiyiwen-vglvm/lvm-syw

  LV Name                lvm-syw

  VG Name                shiyiwen-vglvm

  LV UUID                JdGv5r-DRHj-V9gC-7wJ0-eohi-onc6-zanuqX

  LV Write Access        read/write

  LV Creation host, time localhost.localdomain, 2016-06-07 17:31:49 +0800

  LV Status              available

  # open                 0

  LV Size                8.00 GiB

  Current LE             2048

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:1

 格式化


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

[[email protected] ~]# mkfs.ext4 /dev/shiyiwen-vglvm/lvm-syw

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

524288 inodes, 2097152 blocks

104857 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=2147483648

64 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

 

正在写入inode表: 完成                           

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

 

This filesystem will be automatically checked every 35 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[[email protected] ~]# mkdir /data1

[[email protected] ~]# mount /dev/shiyiwen-vglvm/lvm-syw /data1

 这个时候用DF -HL 看 是看不到效果,因为文件系统还不认识。这个时候就要用这个命令


1

resize2fs /dev/shiyiwen-vglvm/lvm-syw   (ps:只有用df -hl
看到没效果的时候用这个,貌似博主用了一次之后,第二次就不用这个命令 也会有效果哦)

这个时候用df -hl 就可以看到挂在的LVM的lv 了。

 

5、扩容Lv,及扩容挂在盘/data1 的大小。

我们前面用10G的硬盘,创建了10G的VG,但是我们只是使用了8G的LV,所以 通过vgs命令,还可以看到我们还有2G的vg容量。 扩容lv,就要从VG上拿。


1

2

3

4

[[email protected] ~]# vgs

  VG             #PV #LV #SN Attr   VSize VFree

  shiyiwen-lvm     2   1   0 wz--n- 7.01g 1.01g      #这个是另外我之前创建的一个VG分区。

  shiyiwen-vglvm   1   1   0 wz--n- 9.99g 1.99g

 

扩容1G


1

2

3

[[email protected] ~]# lvextend -L +1G /dev/shiyiwen-vglvm/lvm-syw

  Size of logical volume shiyiwen-vglvm/lvm-syw changed from 8.00 GiB (2048
extents) to 9.00 GiB (2304 extents).

  Logical volume lvm-syw successfully resized.

 这个时候在使用resize2fs,刷新


1

2

3

4

5

6

[[email protected] ~]# resize2fs /dev/shiyiwen-vglvm/lvm-syw

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/shiyiwen-vglvm/lvm-syw is mounted on /data1; on-line
resizing required

old desc_blocks = 1, new_desc_blocks = 1

Performing an on-line resize of /dev/shiyiwen-vglvm/lvm-syw to 2359296 (4k)
blocks.

The filesystem on /dev/shiyiwen-vglvm/lvm-syw is now 2359296 blocks long.

 这个时候df -hl 就成功了。

ps:要记得添加到/etc/fstab 里面去哦(blkid 查看UUID)

 

6、既然vg可以扩容lv,那么 我们怎样扩容vg呢。当然是从pv扩容到vg了。这里就快点略过了。原理差不多。


1

2

增加pv到vg:

 vgextend rootvg /dev/sdb

 7、所见lvm 要umount 操作,这里就不亲自操作了,复制一下别人的。

A. umount 文件系统

<https://images0.cnblogs.com/blog/370046/201406/171414158174790.jpg>

B. 缩减文件系统

# resize2fs /dev/vg0/lv1 4G

<https://images0.cnblogs.com/blog/370046/201406/171414169261463.jpg>

提示需要先运行磁盘检查。

C. 检查磁盘

# e2fsck –f /dev/vg0/lv1

<https://images0.cnblogs.com/blog/370046/201406/171414180362434.jpg>

D. 再次执行缩减操作

<https://images0.cnblogs.com/blog/370046/201406/171414195208921.jpg>

缩减文件系统成功,下面缩减LV的大小。

E. 缩减LV

# lvreduce /dev/vg0/lv1 –L 4G

<https://images0.cnblogs.com/blog/370046/201406/171414206144122.jpg>

说明:Step E 和Step D 缩减的大小必须保持一致,这里的4G是缩减到的大小;如果使用的是"-4G",则表示容量减少多少的意思。

F. 挂载查看

<https://images0.cnblogs.com/blog/370046/201406/171414220208351.jpg>

LV 缩减成功。

G. 查看测试数据

<https://images0.cnblogs.com/blog/370046/201406/171414231769038.jpg>

数据正常。

14.2 VG的缩减

A. umount 文件系统

<https://images0.cnblogs.com/blog/370046/201406/171414243486496.jpg>

B. 查看当前的PV详情

<https://images0.cnblogs.com/blog/370046/201406/171414253321197.jpg>

C. 将/dev/sdg 从vg0 中移除

# vgreduce vg0 /dev/sdg

<https://images0.cnblogs.com/blog/370046/201406/171414263644612.jpg>

D. 再次查看PV情况

<https://images0.cnblogs.com/blog/370046/201406/171414273322541.jpg>

/dev/sdg 已经不属于vg0了。

E. 查看vg0 的情况

<https://images0.cnblogs.com/blog/370046/201406/171414284893228.jpg>

vg0 的大小减少了5GB.

VG 缩减成功。

十五、删除LVM

如果要彻底的来移除LVM的话,需要把创建的步骤反过来操作。

15.1 umount 文件系统

<https://images0.cnblogs.com/blog/370046/201406/171414294267615.jpg>

15.2 移除LV

# lvremove /dev/vg0/lv1

<https://images0.cnblogs.com/blog/370046/201406/171414302865043.jpg>

15.3 移除VG

# vgremove vg0

<https://images0.cnblogs.com/blog/370046/201406/171414314268959.jpg>

15.4 移除PV

# pvremove /dev/md5 /dev/sdf1 /dev/sdg /dev/sdh

<https://images0.cnblogs.com/blog/370046/201406/171414326617202.jpg>

LVM 移除成功。

===============================================================================

在线新硬盘扩容VG

 

CentOSx系统---lvm应用:添加新的硬盘,然后扩容lv


描述:
新增的硬盘:/dev/sdb
需要扩容的lv:/dev/centos/root    或/dev/mapper/centos-root
注:可使用lvdisplay查看
lv所在的vg的名称和位置:centos            /dev/centos

注:#为root用户下的环境

(1)查看是否识别了新的硬盘
# ll /dev/sd*
如果不存在可以重启机器:reboot;当然如果是生产使用的机器,不方便重启机器,可以在线识别
# echo "- - -"> /sys/class/scsi_host/host0/scan
如果还没有识别需要再继续执行host1,host2的
# echo "- - -"> /sys/class/scsi_host/host1/scan
# echo "- - -"> /sys/class/scsi_host/host2/scan

(2)创建pv
查看pv有哪些
# pvs
创建pv
# pvcreate /dev/sdb

(3)将pv添加进vg
查看vg的状态
# vgs
添加进vg
# vgextend centos /dev/sdb
注:centos为vg的名称,这时的/dev/sdb为pv

(4)扩容lv
# lvextend -l +100%FREE /dev/centos/root
注:这里是添加lv所在的vg剩下的空余空间

# lvextend -l 100%VG /dev/centos /dev/centos/root
注: VG:/dev/centos,LV:/dev/centos/root

查看lv
# lvs
查看文件系统大小
# df -h
发现文件系统的大小没有改变,需要同步文件系统

# resize2fs /dev/mapper/centos-root

注:resize2fs是针对ext文件系统格式;
    如果是centos7的默认文件系统XFS,需要使用xfs_growfs /dev/centos/root;