lvm讲解
给新的磁盘创建三个分区,并且将分区类型改为lvm,否则无法往下实验
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa75320d0
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 25167871 10485760 83 Linux
/dev/sdb3 25167872 67110911 20971520 83 Linux
/dev/sdb4 67110912 104857599 18873344 5 Extended
图上已经创建好三个分区,但还没有改为lvm类型的,我输入t逐步将这三个分区修改为lvm类型的分区。
命令(输入 m 获取帮助):t
分区号 (1-5,默认 5):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
[root@localhost ~]# fdisk -l
磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa75320d0
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 8e Linux LVM
/dev/sdb2 4196352 25167871 10485760 8e Linux LVM
/dev/sdb3 25167872 67110911 20971520 8e Linux LVM
/dev/sdb4 67110912 104857599 18873344 5 Extended
/dev/sdb5 67112960 104857599 18872320 83 Linux
最后输入“w”保存退出即可,这个时候我们可以用fdisk -l再来查看一遍,显示的结果如刚才一样,三个分区都是linux lvm类型的了。
当我们准备好磁盘后,接下来我们就创建物理卷,使用“pvcreate”命令来将分区好的三个分区做成物理卷。在使用命令前我们先安装相关的软件包,包名叫做“lvm2”。当你不清楚你需要安装的软件包名叫什么的时候,可以通过这个软件的相关命令进行搜索。以下示例;
[root@localhost ~]# yum provides "/*/pvvreate"
[root@localhost ~]# yum -y install lvm2
如果你的系统已经安装了lvm2的软件包,责无需在安装。
如果在我们创建好分区后,系统里没有生成分区文件的话,接下来我们需要使用一个命令刷新一下(一般情况下创建后都会自动生成)。
[root@localhost ~]## partprobe
[root@localhost ~]# umount /mnt
[root@localhost ~]# pvcreate /dev/sdb1
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
接下来再使用pvcreate命令来处理分区
Wiping xfs signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
以上就显示我们已经成功将sdb1设置成物理卷了,余下两个分区同样的操作。物理卷设置完成后,我们使用pvdisplay命令来查看一下
"/dev/sdb1" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Lurfhs-9j4x-X1jJ-SKWL-iift-9s1e-SzPv3I
除了pvdisplay命令以外,还有pvs命令同样可以查看,且更加直观显示目前物理卷都有哪些。
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <49.00g 0
/dev/sdb1 lvm2 --- 2.00g 2.00g
/dev/sdb2 lvm2 --- 10.00g 10.00g
/dev/sdb3 lvm2 --- 20.00g 20.00g
接下来我们再创建卷组,使用vgcreate命令来创建,以下示例;
[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
Volume group "vg1" successfully created
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg1
PV Size 2.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 511
Free PE 511
Allocated PE 0
PV UUID Lurfhs-9j4x-X1jJ-SKWL-iift-9s1e-SzPv3I
--- Physical volume ---
PV Name /dev/sdb2
VG Name vg1
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID mYNhe1-UP2E-6M37-6T27-hYK3-dQP5-1BKiBs
同样的可以使用vgs这个命令查看。
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <49.00g 0
/dev/sdb1 vg1 lvm2 a-- <2.00g <2.00g
/dev/sdb2 vg1 lvm2 a-- <10.00g <10.00g
/dev/sdb3 lvm2 --- 20.00g 20.00g
最有创建好了卷组之后我们就可以成功创建逻辑卷了,使用lvcreate命令来操作,以下示例;
-L:指定大小-n:设定名字
[root@localhost ~]# lvcreate -L 100M -n lv1 vg1
Logical volume "lv1" created.
逻辑卷创建成功后我们就可以将它格式化了,格式类型为ext4
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
第一个数据块=1
接着我将它挂载到mnt的目录下。
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 44G 4.1G 40G 10% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
接下来学习做一个扩容的操作,首先umount /mnt,然后在执行lvresize命令操作;
[root@localhost ~]# umount /mnt/
[root@localhost ~]# lvresize -L 200M /dev/vg1/lv1
[root@localhost ~]# e2fsck -f /dev/vg1/lv1
[root@localhost ~]# resize2fs /dev/vg1/lv1
[root@localhost ~]# !mount
mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 44G 4.1G 40G 10% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt
可以看到,现在lv1 的容量 已经变成了190M了,这个时候我们可以看下mnt目下的文件是否还在是否有丢失,
接下来学习缩容的操作,xfs格式的类型是不支持缩容的
先umount /mnt,然后在检查磁盘错误,接着更新逻辑卷信息(比方指定为100M),最后重置逻辑卷的大小
[root@localhost ~]# umount /mnt
[root@localhost ~]# e2fsck -f /dev/vg1/lv1
[root@localhost ~]# resize2fs /dev/vg1/lv1 100M
[root@localhost ~]# lvresize -L 100M /dev/vg1/lv1
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 44G 4.1G 40G 10% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
磁盘故障小案例
在之前我们学习的操作中有一节,我们操作了更改了fstab的配置文件,所以导致boot启动的时候检测不到路径所以出现的了故障,提示如下,每个人显示的结果存在差异;
这里我们先输入root用户的密码,然后更改fstab的配置文件即可
/dev/sdb1 /mnt xfs defaults 0 0
将这行删除