LVM简介:
LVM是逻辑管理卷的简写,其可以将多块物理磁盘的分区组成一个大的卷组(可以把他想象成是一个大的资源池),再在卷组上划分出逻辑卷并在其上建立文件系统最终供用户使用。
LVM的好处是可以动态的增加逻辑卷的大小,这样就不用面临随着业务发展,原本的分区空间不足的尴尬啦!
下面是LVM的结构图,最下面是物理磁盘分区,其上是物理卷(一个物理磁盘分区对应一个物理卷),再往上是我称之为“资源池”的卷组,这个“资源池”的容量是由组成其的物理卷的总容量决定的,而最上面则是可以被当成“普通分区”来使用的逻辑卷,逻辑卷可以划分很多个(默认一个卷组可以划分256个逻辑卷),只要其加起来的容量不超过“资源池”的容量就好!
创建LVM:
一、安装LVM软件包
通常情况下,CentOS中都有自带LVM软件包,但为了以防万一,我还是把安装命令贴出来吧~
[root@localhost ~]# yum install -y lvm
二、创建物理磁盘的分区
记得要先添加一块空磁盘呐,本实验中我添加了一块8GB大小的SCSI磁盘。
查看新添加的磁盘。
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 4.2G 0 rom /media/cdrom sda 8:0 0 8G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 7.5G 0 part ├─VolGroup-lv_root (dm-0) 253:0 0 6.7G 0 lvm / └─VolGroup-lv_swap (dm-1) 253:1 0 816M 0 lvm [SWAP] sdb 8:16 0 8G 0 disk
如果新加的磁盘不能被系统立即识别请参考此篇文章。
https://www.ibadboy.net/archives/1895.html
使用fdisk工具对新加磁盘进行分区。
[root@localhost ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x028d3c84. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). 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): s //设置起始扇区 Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044):522 //设置结束扇区,这里我结束扇区设置为总扇区数的一半,相当于把分区容量设置为总容量的一半 Command (m for help): n //新建第二块磁盘分区 Command action e extended p primary partition (1-4) p //新建为主分区 Partition number (1-4): 2 //设置分区编号 First cylinder (523-1044, default 523): //设置起始扇区 Using default value 523 Last cylinder, +cylinders or +size{K,M,G} (523-1044, default 1044): //设置结束扇区 Using default value 1044 Command (m for help): t //更改分区的标识 Partition number (1-4): 1 //选择编号为1的分区进行操作 Hex code (type L to list codes): 8e //将分区标识更改为“Linux LVM”,其对应的代码是8e,这里可以输入list来查看所有标识对应的代码 Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t //更改分区的标识 Partition number (1-4): 2 //选择编号为2的分区进行操作 Hex code (type L to list codes): 8e //将分区标识更改为“Linux LVM” Changed system type of partition 2 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: 0x028d3c84 Device Boot Start End Blocks Id System /dev/sdb1 1 522 4192933+ 8e Linux LVM /dev/sdb2 523 1044 4192965 8e Linux LVM Command (m for help): w //保存并退出fdisk工具 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
三、创建物理卷
使用新创建的/dev/sdb1和/dev/sdb2这两个分区分别组建物理卷。
[root@localhost ~]# pvcreate /dev/sdb[12] Physical volume "/dev/sdb1" successfully created //提示说物理卷创建成功 Physical volume "/dev/sdb2" successfully created
查看物理卷。
[root@localhost ~]# pvdisplay "/dev/sdb1" is a new physical volume of "4.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 //物理卷名称 VG Name //所属的卷组名称,这里还未加入任何卷组 PV Size 4.00 GiB //物理卷大小 Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID pTps5V-4vKA-em0G-XR8Y-ltJu-4CeL-KEOMn3 "/dev/sdb2" is a new physical volume of "4.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb2 //物理卷名称 VG Name //所属的卷组名称 PV Size 4.00 GiB //物理卷大小 Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID uzW0YS-fl5a-4Qae-6vcG-iXce-a8iB-QYMvf4
四、创建卷组
将刚刚新建的物理卷/dev/sdb1和/dev/sdb2组成一个卷组——vg1
[root@localhost ~]# vgcreate vg1 /dev/sdb[12] Volume group "vg1" successfully created //提示说卷组创建成功卷
查看卷组
[root@localhost ~]# vgdisplay --- Volume group --- VG Name vg1 //卷组名称 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write //卷组的访问权限 VG Status resizable //卷组状态 MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 7.99 GiB //卷组容量 PE Size 4.00 MiB Total PE 2046 Alloc PE / Size 0 / 0 Free PE / Size 2046 / 7.99 GiB VG UUID dY8zDo-vD43-DQB8-CpRs-Shla-kWfJ-OuDjhp
五、划分逻辑卷
从总容量为8G(其实不足8G)的卷组vg1中划分四个逻辑卷,分别为lv1、lv2、lv3、lv4,每个大小为2000MB。
[root@localhost ~]# lvcreate -L 2000MB -n lv1 vg1 //-L参数后面接逻辑卷大小,单位可以是KB、MB、GB。 Logical volume "lv1" created [root@localhost ~]# lvcreate -L 2000MB -n lv2 vg1 Logical volume "lv2" created [root@localhost ~]# lvcreate -L 2000MB -n lv3 vg1 Logical volume "lv3" created [root@localhost ~]# lvcreate -L 2000MB -n lv4 vg1 Logical volume "lv4" created
查看逻辑卷,因为这里的输出信息比较多,我只截取lv1这个逻辑卷的信息做简要说明。
[root@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/vg1/lv1 //逻辑卷路径 LV Name lv1 //逻辑卷名称 VG Name vg1 //逻辑卷所属的卷组的名称 LV UUID qhypYJ-jPOW-KDDy-NXtO-aWQO-ryHI-Tf04hS LV Write Access read/write LV Creation host, time localhost.localdomain, 2017-10-11 13:13:54 +0800 LV Status available # open 0 LV Size 1.95 GiB //逻辑卷容量 Current LE 500 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
至此,逻辑卷已创建完成,但此时还不能立即使用,还需要在逻辑卷上新建文件系统。
这里为了不让文章显得啰嗦,我只在逻辑卷lv1上创建文件系统。
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1 mke2fs 1.41.12 (17-May-2010) 文件系统标签= 操作系统:Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 128000 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=524288000 16 block groups 32768 blocks per group, 32768 fragments per group 8000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 正在写入inode表: 完成 Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
挂载逻辑卷。
[root@localhost ~]# mount /dev/vg1/lv1 /mnt [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 6.7G 816M 5.5G 13% / tmpfs 246M 0 246M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom /dev/mapper/vg1-lv1 2.0G 35M 1.8G 2% /mnt
管理LVM:
卷组的扩容
这里我新增加一块8G的空SCSI磁盘,并在其基础上创建一个8G的物理卷。
将刚刚新建的8G大小的物理卷加入到vg1卷组中,实现对vg1卷组的扩容。
[root@localhost ~]# vgextend vg1 /dev/sdc1 dev_is_mpath: failed to get device for 8:33 No physical volume label read from /dev/sdc1 Physical volume /dev/sdc1 not found Physical volume "/dev/sdc1" successfully created Volume group "vg1" successfully extended
查看卷组信息,注意看卷组容量。
[root@localhost ~]# vgdisplay --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 14 VG Access read/write VG Status resizable MAX LV 0 Cur LV 4 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 15.99 GiB //卷组的总容量已增加 PE Size 4.00 MiB Total PE 4093 Alloc PE / Size 2000 / 7.81 GiB Free PE / Size 2093 / 8.18 GiB VG UUID dY8zDo-vD43-DQB8-CpRs-Shla-kWfJ-OuDjhp
逻辑卷的扩容
这里对已经挂载在/mnt目录上的lv1逻辑卷进行扩容,将其大小变为10GB。
[root@localhost ~]# lvextend -L 10GB -n /dev/vg1/lv1 Extending logical volume lv1 to 10.00 GiB Logical volume lv1 successfully resized
重设逻辑卷大小,只有正在使用的逻辑卷才需要重设大小。
[root@localhost ~]# resize2fs /dev/vg1/lv1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg1/lv1 is mounted on /mnt; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/vg1/lv1 to 2621440 (4k) blocks. The filesystem on /dev/vg1/lv1 is now 2621440 blocks long.
查看此时lv1的容量,已实现动态扩容。
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 6.7G 816M 5.5G 13% / tmpfs 246M 0 246M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom /dev/mapper/vg1-lv1 9.9G 37M 9.4G 1% /mnt
One thought on “CentOS 6中创建及管理LVM逻辑卷”