LVM分区无损增减

2012年10月9日 发表评论 阅读评论

LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分LVM区管理的灵活性。其结构为:PV——VG——LV——PE,LVM分区比较灵活的一个功能就是可以无损更改分区大小。目前我现网中的服务器也使用的是LVM分区,目前也遇到了某分区分间不足的问题,所以在测试环境上演练下更改分区大小,在此记录下。
1).PV(Physical Volume):物理巻,处于LVM最底层,可以是物理硬盘或者分区。
2).VG(Volume Group):巻组,建立在PV之上,可以含有一个到多个PV。
3).LV(Logical Volume):逻辑巻,建立在PV之上,相当于原来分区的概念。不过大小可动态改变。
4).PE(Physical Extend):物理区域,PV中可以用于分配的最小存储单位,可以在建立PV时指定,如1,2,4,8... ...64M,同一VG中的所有PV的PE应该相同。

一、无损减小LVM分区大小

1、查看目前的分区情况

[root@localhost ~]# df -hl
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda5              48G  3.5G   42G   8% /
/dev/sda1             190M   12M  169M   7% /boot
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/mapper/vg01-opt  403G  199M  382G   1% /opt
You have mail in /var/spool/mail/root

当前测试环境下的/opt分区为LVM分区(普通分区也可以通过pvcreate、vgcreate、lvcreate等一系统命令完成),我在/opt分区下新建了一个文件abc,里面胡乱写了些东西。方便操作完成后,查看该文件的完整性,验证是否无损。

[root@localhost opt]# cat abc
dfafadfdafdfasdfsdsdsdsdsdsdffqwr23refasdfafdsafafa12423422323232323

2、卸载分区,调整大小

[root@localhost /]# umount /opt/
[root@localhost /]# e2fsck -f /dev/mapper/vg01-opt  //强制检查文件系统的正确性
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg01-opt: 12/53575680 files (8.3% non-contiguous), 1732039/107149312 blocks

缩小ext3文件系统,因为LVM分区还是在基本文件系统之上建立的,其更改需要文件系统也要做相应的更改。不然两大小是对等的,就会出问题了。

[root@localhost /]# resize2fs /dev/mapper/vg01-opt 250G  //250G为调整后opt分区的大小
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/mapper/vg01-opt to 65536000 (4k) blocks.
The filesystem on /dev/mapper/vg01-opt is now 65536000 blocks long.

接下来,缩小LVM分区的大小。

[root@localhost /]# lvresize -L  250G /dev/mapper/vg01-opt  //250G为调整后opt分区的大小 WARNING: Reducing active logical volume to 250.00 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce opt? [y/n]: y
  Reducing logical volume opt to 250.00 GB
  Logical volume opt successfully resized

3、重新挂载,查看更改

[root@localhost /]# mount /opt/
[root@localhost /]# df -hl
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda5              48G  3.5G   42G   8% /
/dev/sda1             190M   12M  169M   7% /boot
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/mapper/vg01-opt  247G  188M  236G   1% /opt

注:fsck和e2fsck命令要慎用,尤其是fsck命令,使用不当会造成文件系统紊乱,系统重启后无法启动缩减后的大小一定要大于现有数据文件占用的空间大小,不然,会造成文件丢失。 以上步骤顺序不能更改,如果更改可能会出现下面的错误:

[root@localhost /]# e2fsck -f /dev/mapper/vg01-opt
e2fsck 1.39 (29-May-2006)
The filesystem size (according to the superblock) is 80924672 blocks
The physical size of the device is 65536000 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? 

二、创建新的测试分区

我们利用刚刚/opt分区减小的分区,创建新的lv分区

[root@localhost /]# pvscan
  PV /dev/sda3   VG vg01   lvm2 [408.74 GB / 158.74 GB free]
  Total: 1 [408.74 GB] / in use: 1 [408.74 GB] / in no VG: 0 [0   ]
[root@localhost /]# lvcreate  -l 100%FREE -n /dev/vg01/home
  Logical volume "home" created

格式化为ext3格式

[root@localhost /]# mkfs.ext3 /dev/vg01/home
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
20807680 inodes, 41613312 blocks
2080665 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
1270 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

挂载并使用

[root@localhost /]# mount /dev/mapper/vg01-home /home/
[root@localhost /]# df -hl
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda5              48G  3.5G   42G   8% /
/dev/sda1             190M   12M  169M   7% /boot
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/mapper/vg01-opt  247G  188M  236G   1% /opt
/dev/mapper/vg01-home
                      157G  188M  149G   1% /home

三、无损增大LVM分区

重复上面的减小空间步骤,使opt分区再减小50G的大小。在此就不再记录上面的无损减少的步骤,操作完成后,查看的结果如下:

[root@localhost /]# pvscan
  PV /dev/sda3   VG vg01   lvm2 [408.74 GB / 50.00 GB free]
  Total: 1 [408.74 GB] / in use: 1 [408.74 GB] / in no VG: 0 [0   ]
[root@localhost /]# df -hl
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda5              48G  3.5G   42G   8% /
/dev/sda1             190M   12M  169M   7% /boot
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/mapper/vg01-home
                      157G  188M  149G   1% /home
/dev/mapper/vg01-opt  197G  188M  189G   1% /opt

卸载home分区,并增加大小 (不进行umount操作也可以, 不过在操作过程中会引起IO增高的问题

[root@localhost /]# umount /home/
[root@localhost /]# lvextend -L +50G /dev/vg01/home //新增50G的空间
  Extending logical volume home to 208.74 GB
  Logical volume home successfully resized

使更改生效

[root@localhost /]# resize2fs /dev/vg01/home
resize2fs 1.39 (29-May-2006)
Please run 'e2fsck -f /dev/vg01/home' first.

提示需要先运行e2fsck检查,按照提示先进行分区检查(若无上面的提示,下面的步骤可以省略

[root@localhost /]# e2fsck -f /dev/vg01/home
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg01/home: 11/20807680 files (9.1% non-contiguous), 700963/41613312 blocks
[root@localhost /]# resize2fs /dev/vg01/home
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg01/home to 54720512 (4k) blocks.
The filesystem on /dev/vg01/home is now 54720512 blocks long.

重新挂载,查看大小

[root@localhost /]# mount /dev/vg01/home /home/
[root@localhost /]# df -hl
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda5              48G  3.5G   42G   8% /
/dev/sda1             190M   12M  169M   7% /boot
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/mapper/vg01-opt  197G  188M  189G   1% /opt
/dev/mapper/vg01-home
                      206G  188M  197G   1% /home

验证opt分区文件

[root@localhost opt]# cat abc
dfafadfdafdfasdfsdsdsdsdsdsdffqwr23refasdfafdsafafa12423422323232323

注:操作不当时,有数据文件丢失的风险,乱用命令时,甚至会引起系统无法重启。因此,如果在生产环境上操作前,最好先备份数据再操作。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: Linux/unix/mac 标签:
  1. 本文目前尚无任何评论.