LVM讲解
LVM
如果使用一个命令时,提供未找到命令,说明我们需要安装一个包,若不知道包的名字,只知道命令名,我们可以用命令去搜:
比如:我们要安装lvm的包,但不知道真正的包名,只知道命令是pvcreate,我们可以用以下命令:yum provides "/*/prvcreate"
yum provides "/*/pvcreate" #根据命令pvcreate搜索软件包
yum install -y lvm2 #安装lvm工具
partprobe #更新分区表
vgremove #删除卷组
pvcreate #创建物理卷
pvs 或者 pvdisplay #查看物理卷
vgcreate #创建卷组
vgs 或者 vgdisplay #查看卷组
lvcreate #创建逻辑卷
lvs 或者 lvdisplay #查看逻辑卷
lvresize -L #扩容逻辑卷指定逻辑卷的大小
e2fsck -f #检查磁盘错误
resize2fs #更新磁盘信息
xfs_growfs #XFS文件系统更新磁盘信息
vgextend #扩容卷组
1.PE (Physical Extend) 物理拓展
2.PV (Physical Volume) 物理卷
3.VG (Volume Group) 卷组
4.LV (Logical Volume) 逻辑卷
一、 lvm讲解
1. 使用fdisk命令新建三个分区,并且使用t命令改变分区ID为8e
新建好的分区如图:
2. pvcreate 创建物理卷
1. [root@localhost ~]# pvcreate /dev/sdb1 # 将/dev/sdb1/ 、 /dev/sdb2/、 /dev/sdb3 创建为物理卷
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y # 提示是否签名,选择y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
2. [root@localhost ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
3. [root@localhost ~]# pvcreate /dev/sdb3
WARNING: ext4 signature detected on /dev/sdb3 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb3.
Physical volume "/dev/sdb3" successfully create
3. pvs 或者 pvdisplay 查看所有的物理卷
[root@localhost ~]# pvs #查看物理卷
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 1.00g 1.00g
4.vgcreate 创建物理卷组
vgs 或者vgdisplay 查看物理卷组
1. [root@localhost ~]# vgcreate vga /dev/sdb1 /dev/sdb2 #将/dev/sdb1/和/dev/sdb2创建为物理卷组,卷组的名字为:vga
Volume group "vga" successfully created
2. [root@localhost ~]# vgs #使用vgs查看物理卷组
VG #PV #LV #SN Attr VSize VFree
vga 2 0 0 wz--n- 1.99g 1.99g
5. lvcreate 创建逻辑卷 -L 指定大小 -n指定逻辑卷的名称
lvs 或者 lvdisplay 查看逻辑卷
1. [root@localhost ~]# lvcreate -L 100M -n lva vga 创建一个逻辑卷lva,指定大小为lva
Logical volume "lva" created.
2. [root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lva vga -wi-a----- 100.00m
7. 格式化逻辑卷,挂载逻辑卷
1. [root@localhost ~]# mkfs.ext4 /dev/vga/lva # 将逻辑卷/lva/格式化为ext4文件系统
2. [root@localhost ~]# mount /dev/vga/lva /mnt/ #将逻辑卷/lva/挂载到mnt下
3. [root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 16G 1.1G 15G 7% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 17M 903M 2% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vga-lva 93M 1.6M 85M 2% /mnt 挂载到mnt下的为/dev/vga/lva,显示的名字为/dev/mapper/vga-lva ,使用ls查看两个文件实际上指向是同一个文件../dm-0
4. [root@localhost ~]# ls -l /dev/mapper/vga-lva
lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/mapper/vga-lva -> ../dm-0
5. [root@localhost ~]# ls -l /dev/vga/lva
lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/vga/lva -> ../dm-0
二、逻辑卷的扩容和缩容
针对ext4的文件系统扩容:
1. lvresize -L 扩容逻辑卷,-L指定逻辑卷的大小
1. [root@localhost ~]# umount /mnt #扩容逻辑卷之前要先将逻辑卷卸载
2. [root@localhost ~]# lvresize -L 300M /dev/vga/lva #扩容逻辑卷lva,并指定逻辑卷的大小为300M
Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents). #逻辑卷由100M变为300M
Logical volume vga/lva successfully resized.
2. e2fsck -f 检查磁盘错误
[root@localhost ~]# e2fsck -f /dev/vga/lva #扩容后检查lva磁盘是否存在错误
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vga/lva: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks
3. resize2fs 更新逻辑卷信息
[root@localhost ~]# resize2fs /dev/vga/lva #更新磁盘lva的信息
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vga/lva to 307200 (1k) blocks.
The filesystem on /dev/vga/lva is now 307200 blocks long.
针对ext4的文件系统缩容:
1. 先使用e2fsck 检查磁盘错误
[root@localhost ~]# umount /mnt #先将挂载的磁盘进行卸载
[root@localhost ~]# e2fsck -f /dev/vga/lva
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vga/lva: 13/75088 files (7.7% non-contiguous), 15640/307200 blocks
2. 使用resize2fs更新磁盘信息
[root@localhost ~]# resize2fs /dev/vga/lva 100M #注意更新的磁盘信息要将缩小到多大写上去
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vga/lva to 102400 (1k) blocks.
The filesystem on /dev/vga/lva is now 102400 blocks long.
3. 使用lvresize缩减磁盘
[root@localhost ~]# lvresize -L 100M /dev/vga/lva #缩减lva到100M
WARNING: Reducing active logical volume to 100.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vga/lva? [y/n]: y #提示是否缩减,选择y
Size of logical volume vga/lva changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents).
Logical volume vga/lva successfully resized. #缩减成功
针对xfs文件系统的扩容
1. 将磁盘格式化为xfs文件系统
[root@localhost ~]# mkfs.xfs -f /dev/vga/lva
2. 挂载磁盘,XFS文件系统进行扩容的时候需要挂载磁盘
[root@localhost ~]# mount /dev/vga/lva /mnt #将磁盘挂载到mnt下
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 16G 1.1G 15G 7% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 17M 904M 2% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vga-lva 97M 5.2M 92M 6% /mnt #可以看到大小为100M
3. 使用lvresize扩容
[root@localhost ~]# lvresize -L 300M /dev/vga/lva # 指定扩容的大小为300M
Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 exten
Logical volume vga/lva successfully resized.
4. xfs_growfs 扩展XFS文件系统
[root@localhost ~]# xfs_growfs /dev/vga/lva
meta-data=/dev/mapper/vga-lva isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 25600 to 76800
三、卷组的扩容
1. vgextend 扩容卷组
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vga 2 1 0 wz--n- 1.99g <1.70g #卷组vga的大小为2G
[root@localhost ~]# vgextend vga /dev/sdb3
Volume group "vga" successfully extended #将/dev/sdb3/加入到卷组vga
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vga 3 1 0 wz--n- <2.99g <2.70g #卷组vga的大小变为3G
yum provides "/*/pvcreate" #根据命令pvcreate搜索软件包
yum install -y lvm2 #安装lvm工具
partprobe #更新分区表
vgremove #删除卷组
pvcreate #创建物理卷
pvs 或者 pvdisplay #查看物理卷
vgcreate #创建卷组
vgs 或者 vgdisplay #查看卷组
lvcreate #创建逻辑卷
lvs 或者 lvdisplay #查看逻辑卷
lvresize -L #扩容逻辑卷指定逻辑卷的大小
e2fsck -f #检查磁盘错误
resize2fs #更新磁盘信息
xfs_growfs #XFS文件系统更新磁盘信息
vgextend #扩容卷组
1.PE (Physical Extend) 物理拓展
2.PV (Physical Volume) 物理卷
3.VG (Volume Group) 卷组
4.LV (Logical Volume) 逻辑卷
一、 lvm讲解
1. 使用fdisk命令新建三个分区,并且使用t命令改变分区ID为8e
新建好的分区如图:
2. pvcreate 创建物理卷
1. [root@localhost ~]# pvcreate /dev/sdb1 # 将/dev/sdb1/ 、 /dev/sdb2/、 /dev/sdb3 创建为物理卷
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y # 提示是否签名,选择y
Wiping ext4 signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
2. [root@localhost ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
3. [root@localhost ~]# pvcreate /dev/sdb3
WARNING: ext4 signature detected on /dev/sdb3 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb3.
Physical volume "/dev/sdb3" successfully create
3. pvs 或者 pvdisplay 查看所有的物理卷
[root@localhost ~]# pvs #查看物理卷
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 1.00g 1.00g
/dev/sdb2 lvm2 --- 1.00g 1.00g
/dev/sdb3 lvm2 --- 1.00g 1.00g
4.vgcreate 创建物理卷组
vgs 或者vgdisplay 查看物理卷组
1. [root@localhost ~]# vgcreate vga /dev/sdb1 /dev/sdb2 #将/dev/sdb1/和/dev/sdb2创建为物理卷组,卷组的名字为:vga
Volume group "vga" successfully created
2. [root@localhost ~]# vgs #使用vgs查看物理卷组
VG #PV #LV #SN Attr VSize VFree
vga 2 0 0 wz--n- 1.99g 1.99g
5. lvcreate 创建逻辑卷 -L 指定大小 -n指定逻辑卷的名称
lvs 或者 lvdisplay 查看逻辑卷
1. [root@localhost ~]# lvcreate -L 100M -n lva vga 创建一个逻辑卷lva,指定大小为lva
Logical volume "lva" created.
2. [root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lva vga -wi-a----- 100.00m
7. 格式化逻辑卷,挂载逻辑卷
1. [root@localhost ~]# mkfs.ext4 /dev/vga/lva # 将逻辑卷/lva/格式化为ext4文件系统
2. [root@localhost ~]# mount /dev/vga/lva /mnt/ #将逻辑卷/lva/挂载到mnt下
3. [root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 16G 1.1G 15G 7% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 17M 903M 2% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vga-lva 93M 1.6M 85M 2% /mnt 挂载到mnt下的为/dev/vga/lva,显示的名字为/dev/mapper/vga-lva ,使用ls查看两个文件实际上指向是同一个文件../dm-0
4. [root@localhost ~]# ls -l /dev/mapper/vga-lva
lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/mapper/vga-lva -> ../dm-0
5. [root@localhost ~]# ls -l /dev/vga/lva
lrwxrwxrwx. 1 root root 7 12月 30 18:33 /dev/vga/lva -> ../dm-0
二、逻辑卷的扩容和缩容
针对ext4的文件系统扩容:
1. lvresize -L 扩容逻辑卷,-L指定逻辑卷的大小
1. [root@localhost ~]# umount /mnt #扩容逻辑卷之前要先将逻辑卷卸载
2. [root@localhost ~]# lvresize -L 300M /dev/vga/lva #扩容逻辑卷lva,并指定逻辑卷的大小为300M
Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents). #逻辑卷由100M变为300M
Logical volume vga/lva successfully resized.
2. e2fsck -f 检查磁盘错误
[root@localhost ~]# e2fsck -f /dev/vga/lva #扩容后检查lva磁盘是否存在错误
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vga/lva: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks
3. resize2fs 更新逻辑卷信息
[root@localhost ~]# resize2fs /dev/vga/lva #更新磁盘lva的信息
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vga/lva to 307200 (1k) blocks.
The filesystem on /dev/vga/lva is now 307200 blocks long.
针对ext4的文件系统缩容:
1. 先使用e2fsck 检查磁盘错误
[root@localhost ~]# umount /mnt #先将挂载的磁盘进行卸载
[root@localhost ~]# e2fsck -f /dev/vga/lva
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vga/lva: 13/75088 files (7.7% non-contiguous), 15640/307200 blocks
2. 使用resize2fs更新磁盘信息
[root@localhost ~]# resize2fs /dev/vga/lva 100M #注意更新的磁盘信息要将缩小到多大写上去
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vga/lva to 102400 (1k) blocks.
The filesystem on /dev/vga/lva is now 102400 blocks long.
3. 使用lvresize缩减磁盘
[root@localhost ~]# lvresize -L 100M /dev/vga/lva #缩减lva到100M
WARNING: Reducing active logical volume to 100.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vga/lva? [y/n]: y #提示是否缩减,选择y
Size of logical volume vga/lva changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents).
Logical volume vga/lva successfully resized. #缩减成功
针对xfs文件系统的扩容
1. 将磁盘格式化为xfs文件系统
[root@localhost ~]# mkfs.xfs -f /dev/vga/lva
2. 挂载磁盘,XFS文件系统进行扩容的时候需要挂载磁盘
[root@localhost ~]# mount /dev/vga/lva /mnt #将磁盘挂载到mnt下
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 16G 1.1G 15G 7% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 17M 904M 2% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 197M 113M 85M 58% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vga-lva 97M 5.2M 92M 6% /mnt #可以看到大小为100M
3. 使用lvresize扩容
[root@localhost ~]# lvresize -L 300M /dev/vga/lva # 指定扩容的大小为300M
Size of logical volume vga/lva changed from 100.00 MiB (25 extents) to 300.00 MiB (75 exten
Logical volume vga/lva successfully resized.
4. xfs_growfs 扩展XFS文件系统
[root@localhost ~]# xfs_growfs /dev/vga/lva
meta-data=/dev/mapper/vga-lva isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 25600 to 76800
三、卷组的扩容
1. vgextend 扩容卷组
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vga 2 1 0 wz--n- 1.99g <1.70g #卷组vga的大小为2G
[root@localhost ~]# vgextend vga /dev/sdb3
Volume group "vga" successfully extended #将/dev/sdb3/加入到卷组vga
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vga 3 1 0 wz--n- <2.99g <2.70g #卷组vga的大小变为3G