Linux LVM磁盘分区管理

目录:

 

Linux LVM(Logical Volume Manager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术。

 

一、创建和挂载LVM

1、 创建分区

  fdisk /dev/sdb  # 创建LVM分区

[root@servera ~]# fdisk /dev/sdb

Command (m for help): n  # add a new partition
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p  # 主分区
Partition number (1-4, default 1):   # 回车
First sector (2048-10485759, default 2048):   # 回车
Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759):   # 回车

Created a new partition 1 of type 'Linux' and of size 5 GiB.

Command (m for help): t  # 修改分区类型,在CentOS8中不用设置为 8e也可以
Selected partition 1
Hex code (type L to list all codes): 8e  # LVM类型
Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): w  # 保存配置
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@servera ~]# fdisk -l
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x16a1e057

Device     Boot Start      End  Sectors Size Id Type
/dev/sda1  *     2048 20971486 20969439  10G 83 Linux


Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x03864530

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 10485759 10483712   5G 8e Linux LVM

 

2、创建PV(Pysical Volume)

  pvcreate /dev/sdb1  # 将sdb1 初始化为物理卷

  提示:Device /dev/sdxx not found (or ignored by filtering), 需要将 sdb 添加到 /etc/lvm/lvm.conf 的 filter 中。
 

3、创建VG (Volume Group)   

  vgcreate vg-01 /dev/sdb1  # 创建VG名称为 vg-01, 并且将卷 sdb1 添加到VG中。

 

4、创建LV (Logic Volume)  

  lvcreate vg-01 -n lv-01 -L 2G  # 创建LV名称为 lv-01,指定大小为2G,从名为vg-01的VG中划分。

 

5、格式化LV

下一步需要对LV进行格式化(使用mksf进行格式化操作),然后LV才能存储资料

# mkfs.ext4 /dev/vg-01/lv-01

 

6、挂载LV 

将格式化后的LV分区挂载到指定的目录下,就可以像普通目录一样存储数据了

# mount /dev/vg-01/lv-01  /root/test/

 

如果要在系统启动的时候启动LV,最好是将lvData写入fstable 文件中,如下所示:

[ root@servera ]# cat /etc/fstab
# <file system>        <dir>                   <type>    <options>      <dump> <pass>
/dev/mapper/centos-root /                       xfs      defaults        0 0
UUID=f7cde4a6-84e2-4b65-97b3-e44b89934de3 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap     defaults        0 0
/dev/vg-01/lv01 /root/test ext4 defaults 1 2

 

 

二、扩容LVM分区

1、格式化新磁盘:

# fdisk /dev/sdc

# partprobe   # 重读分区表

# mkfs.ext4 /dev/sdc1 # 格式化为 ext4格式

# partx /dev/sdc # 查看当前硬盘的分区表及使用情况

 

2、创建PV,扩容VG,扩容LV

# pvcreate /dev/sdc1

# vgdisplay #查看当前已经存在的VG信息,以存在VG:VolGroup00为例

# vgextend VolGroup00 /dev/sdc1    #扩展VolGroup00

# lvdisplay #查看已经存在的LV信息,以存在LV:LogVol01为例

# lvextend -L 1G /dev/VolGroup00/LogVol01 #扩展1G到LV中   或者将所有剩余空间全部扩展到LV中  lvextend -l +100%FREE  /dev/VolGroup00/LogVol01

# resize2fs /dev/VolGroup00/LogVol01 #执行该重设大小,对于当前正在使用的LogVol01有效

# df -HT  #查看挂载情况,已经扩容

# lsblk #查看挂载情况,已经扩容

 

特别注意的是:

resize2fs命令            针对的是ext文件系统
xfs_growfs命令           针对的是xfs文件系统
------------------------------------------------------------------------------------------

 

1)ext2/ext3/ext4文件系统的调整命令是resize2fs(增大和减小都支持) 

# lvextend -L 120G /dev/mapper/centos-home     //增大至120G
# lvextend -L +20G /dev/mapper/centos-home     //增加20G
# lvreduce -L 50G /dev/mapper/centos-home      //减小至50G
# lvreduce -L -8G /dev/mapper/centos-home      //减小8G
# resize2fs /dev/mapper/centos-home            //执行调整

 

2)xfs文件系统的调整命令是xfs_growfs(只支持增大)

# lvextend -L 120G /dev/mapper/centos-home    //增大至120G
# lvextend -L +20G /dev/mapper/centos-home    //增加20G
# xfs_growfs /home          //执行调整
 
就是说:xfs文件系统只支持增大分区空间的情况,不支持减小的情况(切记!!!!!)。
硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上原来的数据就丢失了。

 

三、Parted格式化2TB以上的磁盘

通常我们使用fdisk工具来进行磁盘分区,但是fdisk只能格式化小于2TB的磁盘。因此大于2TB的磁盘分区就需要parted工具。

1、设置DiskLable Type

# parted /dev/sdb mklabel gpt

 

2、创建分区

# parted /dev/sdb mkpart primary 0 100%

 

3、格式化分区

# mkfs.xfs /dev/sdb1

 

4、挂载分区

# mount /dev/sdb1 /var/tmp

 

 

 

 

posted @ 2018-01-18 22:19  Vincen_shen  阅读(6715)  评论(0编辑  收藏  举报