概念
名词 | 解释 | 设备名 |
PV | 物理卷,在LVM系统中处于最底层,可以是整个硬盘、硬盘的分区 | /dev/sda |
PE | 物理区域,物理卷的基本单元,大小是可以配置的,默认为4MB | |
VG | 卷组,由一个或多个物理卷组成 | /dev/<VGname> |
LV | 逻辑卷,建立在卷组之上,它是从卷组中“切出”的一块空间 | /dev/<VGname>/<LV name> |
图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。
磁盘
1. 通过服务器磁盘查询命令fdisk -l 来查看当前服务器都多少块磁盘
如:发现/dev/sda 和/dev/sdb这两块磁盘
2. 将磁盘分区使用命令fdisk /dev/sdb 给磁盘sdb的分区界面,输入n回车为新建分区,然后会看到两个选项:e为扩展分区,p为主分区(最多四个)。
物理卷
1.使用pvscan指令查询服务器有无物理卷,如果显示“No matching physical volumes found”表示找不到任何的 PV 存在。
2. 使用pvcreate指令创建物理卷,输入pvcreate /dev/sdb回车,表示将该磁盘或分区设定为物理卷,设定成功返回“Physical volume "/dev/sdb" successfully created”。
3. 使用pvremove指令删除物理卷,输入pvremove /dev/sdb回车,表示删除该磁盘或分区的物理卷。
4. 使用pvdisplay指令查询服务器上每个物理卷的详细信息。
卷组
1. 使用vgdisplay指令查询服务器上每个卷组的详细信息。
2. 使用vgcreate指令创建卷组,输入vgcreate rootvg 物理卷1 物理卷2……物理卷n回车,将物理卷1、物理卷2……物理卷n添加到卷组rootvg里。
3. 使用vgextend指令扩展卷组,输入vgextend rootvg物理卷1 物理卷2……物理卷n回车,将物理卷1、物理卷2……物理卷n添加到卷组rootvg里。
4. 一个卷组最多可以包括255个物理卷,同时最多也只能划分出255个逻辑卷。
逻辑卷
1. 使用lvcreate指令创建逻辑卷,输入lvcreate -L 100G –n /dev/rootvg/lvdata rootvg回车,表示从卷组rootvg划分100G空间给新创建的逻辑卷lvdata (L为字节数,l为PE数),创建后要进行格式化mkfs –t ext4 /dev/rootvg/lvdata。
2. 使用mke2fs指令格式化新创建的逻辑卷,输入mke2fs -t ext4 /dev/rootvg/lvdata回车,表示将逻辑卷lvdata格式化为ext4类型的文件系统。
3. 使用lvexend指令扩容逻辑卷,输入lvextend -L +50G /dev/mapper/rootvg-lvdata回车,表示在原来的容量基础上再扩容50G (L为字节数,l为PE数)
4. 使用resize2fs指令执行增大或收缩的逻辑卷,输入resize2fs /dev/mapper/rootvg-lvdata回车。
扩展逻辑卷lv:(必须先扩展逻辑卷的物理边界,再扩展逻辑边界)
lvextend 扩展逻辑卷的物理边界
-L [+]# /PATH/TO/LV_NAME 指定扩展后的容量,+表示在目前容量上直接增加#容量,不用+表示,扩展后的容量为#
Usag: lvextend -L +5G /PATH/TO/LV_NAME 表示LV在现有的容量上再增加5G容量
lvextend -L 5G /PATH/TO/LV_NAME 表示扩展后的LV总大小为5G容量
resize2fs 扩展逻辑卷的逻辑边界
Usag: resize2fs /PATH/TO/LV 5G 扩展逻辑边界到5G,该值不能超过物理边界
resize2fs -p /PATH/TO/LV :-p表示扩展逻辑边界跟物理边界一样大。
缩减逻辑卷lv:(必须先缩减逻辑卷的逻辑边界,再缩减物理边界)
注意:
1、不能在线缩减,得先卸载;
2、确保缩减后的空间大小依然能存储原有的所有数据;
3、在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态。
缩减步骤:
1、先查看已经使用的lv大小,以便保证缩减后的容量大小能够容纳现有的数据。
df -lh 查看容量大小
[root@xuelinux ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 4.9G 1.5G 3.1G 33% /
tmpfs 947M 0 947M 0% /dev/shm
/dev/sda1 2.0G 61M 1.8G 4% /boot
/dev/sda3 3.9G 73M 3.6G 2% /home
/dev/mapper/myvg-testlv 3.0G 4.5M 2.8G 1% /mnt 此选项表示lv目前只使用了4.5M
2、必须先卸载挂载,不能在线缩减。
umount /mnt 卸载挂载的lv
[root@xuelinux ~]# umount /mnt 卸载挂载的lv
[root@xuelinux ~]# mount 查看挂载的lv是否卸载成功
/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")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
3、强行对lv执行文件系统检测
e2fsck -f /dev/myvg/testlv 对lv强制执行文件系统检测
[root@xuelinux ~]# e2fsck -f /dev/myvg/testlv 对lv强制执行文件系统检测
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/myvg/testlv: 11/196608 files (0.0% non-contiguous), 13500/786432 blocks
4、使用resize2fs对lv逻辑卷的逻辑边界空间大小调整为缩减后的大小
resize2fs /dev/myvg/testlv 2G 对lv逻辑卷的逻辑边界空间大小调整为2G
[root@xuelinux ~]# resize2fs /dev/myvg/testlv 2G 调整逻辑卷的逻辑边界大小为2G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/testlv to 524288 (4k) blocks.
The filesystem on /dev/myvg/testlv is now 524288 blocks long.
5、使用lvreduce对lv逻辑卷的物理边界进行缩减
lvreduce -L 2G /dev/myvg/testlv 对逻辑卷的物理边界缩减为2G
[root@xuelinux ~]# lvreduce -L 2G /dev/myvg/testlv 对逻辑卷的物理边界缩减为2G
WARNING: Reducing active logical volume to 2.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testlv? [y/n]: y
Reducing logical volume testlv to 2.00 GiB
Logical volume testlv successfully resized
6、然后继续对lv进行挂载操作
mount /dev/myvg/lv /mnt 挂载lv逻辑卷
[root@xuelinux ~]# mount /dev/myvg/testlv /mnt 挂载lv逻辑卷
[root@xuelinux ~]# df -lh 查看已经挂载的分区信息
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 4.9G 1.5G 3.1G 33% /
tmpfs 947M 0 947M 0% /dev/shm
/dev/sda1 2.0G 61M 1.8G 4% /boot
/dev/sda3 3.9G 73M 3.6G 2% /home
/dev/mapper/myvg-testlv 2.0G 4.5M 1.9G 1% /mnt 此处lv逻辑卷缩减为2G