本文章內容:
1. 创建LVM逻辑卷
2. 格式化并使用我们的逻辑卷
3. 删除逻辑卷
引用:https://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html
在"LVM逻辑卷基本概念及LVM的工作原理"筆記,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE、PV、VG以及LV),这篇随笔将会详细的讲解LVM逻辑卷的创建、使用以及删除。
1. 创建LVM逻辑卷
我们通过图文并茂的方式来看看如何创建我们的LVM,在"LVM逻辑卷基本概念及LVM的工作原理"筆記中,我们已经熟悉了LVM的工作原理,首先是要将我们的物理硬盘格式化成PV,然后将多个PV加入到创建好的VG中,最后通过VG创建我们的LV。所以我们第一步就是将我们的物理硬盘格式化成PV(物理卷)。
1.1 将物理硬盘格式化成PV(物理卷) 使用的是 pvcreate 命令
1.1.1 这里我已经事先虚拟化了3快物理硬盘,每块硬盘的大小为8G,通过 fdisk -l 命令可以查看。
[root@xiaoluo ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
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: 0x00093d90
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4194304 82 Linux swap / Solaris
Partition 1 does not end on cylinder boundary.
/dev/sda2 * 523 2611 16776192 83 Linux
Disk /dev/sdb: 8589 MB, 8589934592 bytes #第一塊硬盤
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
Disk /dev/sdc: 8589 MB, 8589934592 bytes #第二塊硬盤
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
Disk /dev/sdd: 8589 MB, 8589934592 bytes #第三塊硬盤
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
1.1.2 这里我们根据上面图所示,我们先将 /dev/sdb、 /dev/sdc 两块硬盘格式化成PV
[root@xiaoluo ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
1.1.3 创建完PV以后,我们可以使用pvdisplay(显示详细信息)、pvs命令来查看当前pv的信息
通过这两个命令我们可以看到我们已经创建好的PV的信息,两个PV都是8G,目前还没有使用,PFree都是8G。
[root@xiaoluo ~]# pvdisplay
"/dev/sdb" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 93UEEl-cxBU-A4HC-LNSh-jp9G-uU5Q-EG8LM9
"/dev/sdc" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID lH1vul-KBHx-H2C6-wbt1-8AdK-yHpr-bBIul5
[root@xiaoluo ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 a-- 8.00g 8.00g
/dev/sdc lvm2 a-- 8.00g 8.00g
1.2 创建卷组(VG),并将PV加入到卷组中 通过 vgcreate 命令
1.2.1 在创建完PV以后,这时候我们需要创建一个VG,然后将我们的PV都加入到这个卷组当中,在创建卷组时要给该卷组起一个名字
[root@xiaoluo ~]# vgcreate xiaoluo /dev/sdb /dev/sdc
Volume group "xiaoluo" successfully created
1.2.2 同样,在创建好VG以后,我们也可以使用 vgdisplay 或者 vgs 命来来查看VG的信息
[root@xiaoluo ~]# vgdisplay
--- Volume group ---
VG Name xiaoluo
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 #当前这里有两个PV,分别是我们的 /dev/sdb 和 /dev/sdc
Act PV 2
VG Size 15.99 GiB #当前VG的大小
PE Size 4.00 MiB #通过这个我们也可以看到我们LVM默认的PE大小就是4M
Total PE 4094 #因为VG里面存放的就是各个PV中的PE,所以PE的数量就是VG大小除以默认PE的大小
Alloc PE / Size 0 / 0
Free PE / Size 4094 / 15.99 GiB
VG UUID B8eavI-21kD-Phnm-F1t1-eo4K-wgvg-T5qUbt
[root@xiaoluo ~]# vgs
VG #PV #LV #SN Attr VSize VFree
xiaoluo 2 0 0 wz--n- 15.99g 15.99g
1.3 基于卷组(VG)创建逻辑卷(LV) 通过 lvcreate 命令
1.3.1 因为创建好的PV、VG都是底层的东西,我们上层使用的是逻辑卷,所以我们要基于VG创建我们的逻辑卷才行
[root@xiaoluo ~]# lvcreate -L 2G -n mylv xiaoluo #使用-l可以指定百分比,例如lvcreate -l +100%FREE -n mylv xiaoluo
Logical volume "mylv" created
1.3.2 通过 lvcreate 命令基于VG创建好我们的逻辑卷,名字为mylv,大小为2G,同样我们可以使用 lvdisplay 或者 lvs 命令来查看创建好的逻辑卷的信息
[root@xiaoluo ~]# lvdisplay
--- Logical volume ---
LV Path /dev/xiaoluo/mylv #逻辑卷的路径
LV Name mylv #逻辑卷的名字
VG Name xiaoluo #逻辑卷所属卷组的名字
LV UUID PYuiYy-WpI6-XZB8-IhnQ-ANjM-lcz0-dlk4LR
LV Write Access read/write
LV Creation host, time xiaoluo, 2013-05-23 23:45:08 +0800
LV Status available
# open 0
LV Size 2.00 GiB #逻辑卷的大小
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@xiaoluo ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv xiaoluo -wi-a---- 2.00g
1.4 这样子我们的逻辑卷也就已经创建好了,我们这个时候再通过 vgs 还有 pvs 命令查看一下我们的VG与PV的信息
[root@xiaoluo mnt]# vgs
VG #PV #LV #SN Attr VSize VFree
xiaoluo 2 1 0 wz--n- 15.99g 13.99g #我们看到LV的数量此时变成了1,因为我们刚创建好了一个LV,LVFree还有14G
[root@xiaoluo mnt]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb xiaoluo lvm2 a-- 8.00g 6.00g #刚创建好的LV用的是 /dev/sdb 这块硬盘的,所以这块硬盘的PFree还剩下6G
/dev/sdc xiaoluo lvm2 a-- 8.00g 8.00g
我们发现,当我们每创建完一个LV时,VG与PV的信息都是时时在变化的,并且我们创建LV的大小是根据当前VG的大小来决定的,不能超过当前VG的剩余大小!
我们在"LVM逻辑卷基本概念及LVM的工作原理"筆記里面有讲过,每创建好一个逻辑卷,都会在 /dev 目录下出现一个以该卷组命名的文件夹,基于该卷组创建的所有的逻辑卷都是存放在这个文件夹下面,我们可以查看一下。
[root@xiaoluo ~]# ls /dev/xiaoluo/mylv
/dev/xiaoluo/mylv
我们每创建一个新的逻辑卷,该VG目录下都会多出这么一个设备。
2. 格式化并使用我们的逻辑卷
2.1 我们已经创建好了我们的PV、VG以及LV,这时候我们如果要使用逻辑卷,就必须将其格式化成我们需要用的文件系统,并将其挂载起来,然后就可以像使用分区一样去使用逻辑卷了
[root@xiaoluo ~]# mkfs.ext4 /dev/xiaoluo/mylv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
inodes, 524288 blocks
blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
block groups
blocks per group, 32768 fragments per group
inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
days, whichever comes first. Use tune2fs -c or -i to override.
2.2 格式化我们的逻辑卷以后,就可以使用 mount 命令将其进行挂载,我们将其挂载到 /mnt 目录下
[root@xiaoluo ~]# mount /dev/xiaoluo/mylv /mnt
[root@xiaoluo ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/xiaoluo-mylv on /mnt type ext4 (rw)
[root@xiaoluo ~]# cd /mnt/
[root@xiaoluo mnt]# ls
lost+found
[root@xiaoluo mnt]# touch xiaoluo.txt
[root@xiaoluo mnt]# ls
lost+found xiaoluo.txt
我们看到,我们的卷组已经挂载好了,并且可以像使用分区一样来对其进行文件操作了。如果要永久掛載則將掛載指令寫在/etc/fstab文件。
1.3 删除逻辑卷
我们在创建好逻辑卷后可以通过创建文件系统,挂载逻辑卷来使用它,如果说我们不想用了也可以将其删除掉。
首先将正在使用的逻辑卷卸载掉 通过 umount 命令
将逻辑卷先删除 通过 lvremove 命令
删除卷组 通过 vgremove 命令
最后再来删除我们的物理卷 通过 pvremove 命令
[root@xiaoluo /]# mount /dev/xiaoluo/mylv /mnt/
[root@xiaoluo /]# umount /mnt/
[root@xiaoluo /]# lvremove /dev/xiaoluo/mylv
Do you really want to remove active logical volume mylv? [y/n]: y
Logical volume "mylv" successfully removed
[root@xiaoluo /]# vgremove xiaoluo
Volume group "xiaoluo" successfully removed
[root@xiaoluo /]# pvremove /dev/sdb
Labels on physical volume "/dev/sdb" successfully wiped
此时我们的刚创建的逻辑卷 mylv,卷组 xiaoluo以及物理卷 /dev/sdb 已经从我们当前操作系统上删除掉了,通过 lvs、vgs、pvs命令可以查看一下。
[root@xiaoluo /]# lvs
No volume groups found #逻辑卷已经没有了
[root@xiaoluo /]# vgs
No volume groups found #卷组也没有了
[root@xiaoluo /]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc lvm2 a-- 8.00g 8.00g #sdb物理卷已经没有了,只剩下 sdc物理卷了