LINUX创建与扩展LVM分区

一、使用场景:

1、创建LVM分区   

2、扩展LVM分区

/data/目录为LVM分区,磁盘空间现不够,需要加多一块,并将之扩展到之前的分区内

 

什么是LVM分区?

   由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理。由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数据的情况。

LVM(Logic Volume Manager)是逻辑卷管理的简称。它是Linux环境下对磁盘分区管理的一种机制。对于其他的的UNIX(AIX/HP/SUM)操作系统,以及Windows系统也有类似的磁盘管理软件。

LVM管理的方式非常简单,就是通过将底层的物料磁盘抽象并封装起来,然后以逻辑的方式呈现给上层应用。

 

LVM磁盘结构

二、场景一:创建LVM分区

  测试方法:先在VMWARE添加一块50G的磁盘

shell> fdisk -l    #查看新增的磁盘,如新增的盘为sdb

shell> fdisk /dev/sdb                              #### 选择磁盘

Command (m for help): m                              #### 帮助

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extra functionality (experts only)

Command (m for help): n                               #### 创建新的分区

Command action

   e   extended

   p   primary partition (1-4)

p                                                     #### 创建主分区

Partition number (1-4):1                              #### 分区ID

First cylinder (1-65270, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-65270, default 65270):

Using default value 65270

 

Command (m for help):t                                 #### 修改分区类型

Command (m for help):8e                                #### Linux lvm

Command (m for help):w                                 #### 保存修改

shell> pvcreate /dev/sdb1/                            #### 创建新的pv卷

shell> pvs                                             #### 查看pv卷

shell> vgcreate vgdata /dev/sdb1/                 #### 创建新的vg卷

shell> vgs                                             #### 查看vg卷

shell> lvcreate -L 50G -n lvmdata  vgdata      #### 创建逻辑卷 -L 指定分区大小 -n 指定lvm名称

shell> mkfs.xfs /dev/vgdata/lvmdata             #### 使用mkfs.xfs命令在逻辑卷lvmServer上创建ext4文件系统

shell> mount /dev/vgdata/lvmdata /data/        #### 挂在分区到本地目录/server

shell> vi /etc/fstab                                   #### 修改fstab 开机自动挂载

#

# /etc/fstab

# Created by anaconda on Thu Aug 14 21:16:42 2014

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=94e4e384-0ace-437f-bc96-057dd64f42ee / ext4 defaults,barrier=0 1 1

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/vgdata/lvmdata       /data         xfs    defaults        0 0

:wq

#### 保存重启测试

注意:

* fstab一定要正确填写路径,一旦出错,可能无法正常启动.

* 可以在rc.local使用mount命令进行挂载

 

如果增加的空间不够,可使用以下将未划分的空间在线扩容

lvextend -L +40G /dev/vgdata/lvmdata   (全部分配则用lvextend -l +100%FREE /dev/vgdata/lvmdata)(使用vgs可查看剩余空间)

xfs_growfs /dev/vgdata/lvmdata   (动态扩容分区的大小,ext4使用resize2fs /dev/vgdata/lvmdata)

 

三、场景二,扩展LVM分区

新增一块磁盘并将其加入之以前LVM分区

1、将新增加的磁盘创建成LVM分区,方法和之前一样

shell> fdisk -l    #查看新增的磁盘,如新增的盘为sdc

shell> fdisk /dev/sdc                              #### 选择磁盘

Command (m for help): m                              #### 帮助

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extra functionality (experts only)

Command (m for help): n                               #### 创建新的分区

Command action

   e   extended

   p   primary partition (1-4)

p                                                     #### 创建主分区

Partition number (1-4):1                              #### 分区ID

First cylinder (1-65270, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-65270, default 65270):

Using default value 65270

 

Command (m for help):t                                 #### 修改分区类型

Command (m for help):8e                                #### Linux lvm

Command (m for help):w                                 #### 保存修改

 

如新添加进一个磁盘后,未见到磁盘,可通过以下进行扫描。

# echo '- - -' > /sys/class/scsi_host/host0/scan

# echo '- - -' > /sys/class/scsi_host/host1/scan

# echo '- - -' > /sys/class/scsi_host/host2/scan

# echo '- - -' > /sys/class/scsi_host/host3/scan

 

2、pvcreate命令 用于将物理硬盘分区初始化为物理卷,以便LVM使用。

shell> pvcreate /dev/sdc1                          #### 创建新的pv卷

 

3、使用vgdisplay查看已经存在的卷组名称,如当前/分区所在卷组名称为vgdata

[root@JKtest ~]# vgdisplay

  --- Volume group ---

  VG Name               vgdata

  System ID             

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  4

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               1

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               <50.00 GiB

  PE Size               4.00 MiB

  Total PE              12799

  Alloc PE / Size       12799 / <50.00 GiB

  Free  PE / Size       0 / 0   

  VG UUID               Xxi1gu-2BQP-DeKq-i1t1-6i9s-T9pB-k2ep2S

 

4、使用vgextend vgdata /dev/sdc     将刚才创建的物理卷/dev/sdc加入根分区的卷组vgdata中

[root@JKtest ~]# vgextend vgdata /dev/sdc1      

  Volume group "vgdata" successfully extended

 

   如不小心加错,可通过vgreduce移出

   vgreduce vgdata /dev/sdc1

 

5、再次使用vgdisplay查看刚才刚才加入卷组中的物理卷,如图所示,显示空闲空间大小,即为刚刚添加的大小

[root@JKtest ~]# vgdisplay

  --- Volume group ---

  VG Name               vgdata

  System ID             

  Format                lvm2

  Metadata Areas        2

  Metadata Sequence No  5

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               1

  Max PV                0

  Cur PV                2

  Act PV                2

  VG Size               176.99 GiB

  PE Size               4.00 MiB

  Total PE              45310

  Alloc PE / Size       12799 / <50.00 GiB

  Free  PE / Size       32511 / <127.00 GiB

  VG UUID               Xxi1gu-2BQP-DeKq-i1t1-6i9s-T9pB-k2ep2S

 

6、动态扩容空间

lvextend -L +40G /dev/vgdata/lvmdata   (全部分配则用lvextend -l +100%FREE /dev/vgdata/lvmdata)

xfs_growfs /dev/vgdata/lvmdata   (动态扩容分区的大小,ext4使用resize2fs /dev/vgdata/lvmdata)

 

 

感谢您的阅读,本文由 FC LOG 版权所有。(未允许请勿转载)
linux开启证书密钥SSH登录
PYTHON比较实用的库