Linux管理磁盘及LVM管理

 

LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是创建在硬盘和分区之上,文件系统之下的一个逻辑层,在创建文件系统时屏蔽下层的磁盘分区布局,可以保持现有数据不变的状况下动态调整磁盘容量,提升磁盘灵活性bash

 

在虚拟机中安装一块新硬盘,大小为8Gapp

fdisk -l 识别系统中的磁盘设备ide

[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b85f2
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

而后对新硬盘设备/dev/sdb进行分区,设置大小并更改分区类型为LVM工具

[root@localhost ~]# fdisk /dev/sdb
...

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e   
Changed system type of partition 1 to 8e (Linux LVM)

新建两个分区并查看分区状况布局

Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa5851005
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  8e  Linux LVM
/dev/sdb2             263         524     2104515   8e  Linux LVM

w命令保存退出fdisk分区工具code

变动硬盘的分区设置后,建议将系统重启,或者执行partprobe命令获取新的分区状况ci

[root@localhost ~]# partprobe /dev/sdb

创建pv、vg、lv。将lv空间大小设置为3G,经过pvdisplay、vgdisplay、lvdisplay查看详细信息虚拟机

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
[root@localhost ~]# vgcreate vg_xb /dev/sdb1 /dev/sdb2
  Volume group "vg_xb" successfully created
[root@localhost ~]# lvcreate -L 3G -n lv_xb vg_xb
  Logical volume "lv_xb" created.

建立文件系统(将lv空间格式化)it

[root@localhost ~]# mkfs.ext3 /dev/vg_xb/lv_xb

挂载文件系统,新建一个文件夹xb,将设备文件挂载到此目录中io

[root@localhost ~]# mkdir /xb
[root@localhost ~]# mount /dev/vg_xb/lv_xb /xb/

查看系统中挂载各文件系统的磁盘使用状况,能够看到新建的lv空间大小为3G

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  2.5G   15G  15% /
tmpfs                 364M     0  364M   0% /dev/shm
/dev/sda1             477M   36M  416M   8% /boot
/dev/mapper/vg_xb-lv_xb
                      3.0G   69M  2.8G   3% /xb

然而当逻辑卷空间不足时,还须要从所在卷组中分割额外的空间给逻辑卷,前提是该卷组中有还没有分配的空间不然先扩展卷组容量

此时,咱们lv的大小为3G,vg大小为4G,当咱们lv空间不足须要扩展时,能够从vg剩余部分中分割一部分给lv使用

◆想要增长lv空间的大小,先卸载文件系统,并使用e2fsck命令检查文件系统的正确性

[root@localhost ~]# umount /xb/
[root@localhost ~]# e2fsck -f /dev/vg_xb/lv_xb

增长lv空间,增长300M,用lvdisplay查看lv大小变为3.3G

[root@localhost ~]# lvextend -L +300M /dev/vg_xb/lv_xb

从新识别文件系统的大小

[root@localhost ~]# resize2fs /dev/vg_xb/lv_xb

最后使用mount从新挂载文件系统,使用df -h命令显示文件系统的大小为3.3G

 

◆当lv空间须要缩减时,也须要先卸载文件系统并检查文件系统的正确性

而后先缩减文件系统也就是格式化后的可用空间的大小

将文件系统的大小减少到2G

[root@localhost ~]# resize2fs /dev/vg_xb/lv_xb 2G
 
而后再减少lv的空间,减少1G
[root@localhost ~]# lvreduce -L -1G /dev/vg_xb/lv_xb 
  WARNING: Reducing active logical volume to 2.29 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_xb? [y/n]: y
  Size of logical volume vg_xb/lv_xb changed from 3.29 GiB (843 extents) to 2.29 GiB (587 extents).
  Logical volume lv_xb successfully resized

从新挂载文件系统

查看文件系统的大小和lv空间的大小,此时文件系统大小为2G,lv空间大小为3G

注意:

缩小后的lv空间容量必须大于等于文件系统的容量,不然会致使数据丢失。

缩小后的lv空间必须比已用空间大才能保证数据不会丢失

相关文章
相关标签/搜索