LVM命令
任务 PV阶段 VG阶段 LV阶段
扫描(scan) pvscan vgscan lvscan
创建(create) pvcreate vgcreate lvcreate
显示(display) pvdisplay vgdisplay lvdisplay
扩展(extend) vgextend lvextend
减少(reduce) vgreduce lvreduce
移除(remove) pvremove vgremove lvremove
改变容量(resize) pvresize lvresize
改变属性(attribute) pvchange vgchange lvchange
注意:查看命令有scan、display和s(pvs、vgs、lvs)。s是简单查看对应卷信息,display是详细查看对应卷信息。
而scan是扫描所有的相关的对应卷。
1.使用pvcreate创建物理卷PV
[root@racldb01 ~]# pvcreate /dev/sdb
[root@racldb01 ~]# pvs
2.创建卷组VG
使用vgcreate创建卷组VG,并且此处可以-s选项指定PE(LE)的大小,(默认PE大小4M)
[root@racldb01 ~]# vgcreate oraclevg /dev/sdb
[root@racldb01 ~]# vgs
[root@racldb01 ~]# vgdisplay oraclevg
注意:PE大,读取速度快,但浪费空间。反之,读取速度慢,但节省空间。类似于socket
另外还可以查看pv,会列出分配情况
[root@racldb01 ~]# pvs
3.创建逻辑卷LV
使用lvcreate创建LV
[root@racldb01 ~]# vgs
[root@racldb01 ~]# lvcreate -n oraclelv -L 30G oraclevg
[root@racldb01 ~]# vgs
[root@racldb01 ~]# lvs
[root@racldb01 ~]# pvdisplay /dev/sdb
4.格式化与挂载
注意:在格式化之前需要知道xfs文件系统只支持增大,不支持减小。ext2、ext3、ext4增大减小都支持
[root@racldb01 ~]# mkfs.xfs /dev/oraclevg/oraclelv
[root@racldb01 ~]# ls -l /dev/oraclevg/oraclelv
[root@racldb01 ~]# ls -l /dev/disk/by-uuid|grep dm-8
[root@racldb01 ~]# mkdir -p /oracle
[root@racldb01 ~]# mount /dev/oraclevg/oraclelv /oracle
[root@racldb01 ~]# df -h
[root@racldb01 ~]# vi /etc/fstab
UUID=4a44ad07-24a0-417c-a6b9-03835ee6f91c /oracle xfs defaults 0 0
这里的/dev/oraclevg/oraclelv实际是一个软链接
逻辑卷LV扩容(动态扩容)
首先需要确认是否有可用的扩容空间,逻辑卷是从卷组vg中创建的,所有在逻辑卷LV扩容前需要查看卷组VG的空间使用情况。
[root@racldb01 ~]# vgs
在确认有多余空间的情况下,使用lvextend命令的-L选项扩展逻辑卷LV的大小
[root@racldb01 ~]# vgs
[root@racldb01 ~]# lvs
[root@racldb01 ~]# lvextend -L +10G /dev/oraclevg/oraclelv
[root@racldb01 ~]# lvextend -L 50G /dev/oraclevg/oraclelv
[root@racldb01 ~]# lvextend -l 12799 /dev/oraclevg/oraclelv
[root@racldb01 ~]# lvs
[root@racldb01 ~]# vgs
但是在我们使用df命令查看时,会发现我们文件系统并没有扩展
[root@racldb01 ~]# df -h /dev/oraclevg/oraclelv
这是因为文件系统也需要扩容。
ext4文件系统扩容使用resize2fs [逻辑卷名称]
xfs扩容使用"xfs_growfs 挂载点"
[root@racldb01 ~]# df -h /dev/oraclevg/oraclelv
[root@racldb01 ~]# xfs_growfs /oracle
[root@racldb01 ~]# df -h /oracle
xfs文件系统只能增大,不能减小。
删除LVM
删除LVM步骤:umount挂载-->lvremove移除逻辑卷LV-->vgremove移除卷组VG-->pvremove移除物理卷PV
SSM工具:检查关于可用硬盘和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
yum -y install system-storage-manager
列出设备信息 ssm list dev
列出存储池信息 ssm list pool
列出卷信息 ssm list vol
ssm创建LVM
mkdir /mail-lv
ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lv
df -h /mail-lv
[root@racldb02 mapper]# lvextend -l 12799 /dev/oraclevg/oraclelv
[root@racldb02 mapper]# lvextend -l 12800 /dev/oraclevg/oraclelv
1: 扩大卷组
pvcreate /dev/sdb3#再创建一个物理卷分区
vgextend vg00 /dev/sdb3 #将创建好的分区加入到需要扩大的卷组中
vgs #查看
2: 扩大逻辑卷
首先要确定逻辑卷对应的卷组下有足够扩充的空间.
lvextend -L +66G /dev/mapper/vg00-root
resize2fs /dev/mapper/vg00-root
lvs #查看
3: 缩减卷组
有时候,某些分区坏了,可能需要移除逻辑卷.同时卷组的空间大小也减少了.
pvmove /dev/sdb1 /dev/sdb2 #通过pvmove命令转移空间数据
vgreduce vg00 /dev/sdb1 #将分区从卷组vg00里面移除除去
pvremove /dev/sdb1 #通过pvremove命令将分区从系统中删除掉(不一定需要)
4: 缩减逻辑卷
umount mount_point #先卸载逻辑卷
e2fsck -f /dev/vg00/lv_name #通过e2fsck命令检测逻辑卷上空余空间
resize2fs /dev/vg00/lv_name size_new #将文件系统减小至size_new大小
lvreduce -L size_new /dev/vg00/lv_name #将逻辑卷大小减小至size_new
df -hl查看
mount /dev/vg00/lv_name /mount_point #重新挂载,继续使用
注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。如果逻辑卷小于文件系统,哪数据就出问题了。
5: 删除逻辑卷,卷组和物理卷
umount /mount_point #先卸载逻辑卷
vim /etc/fstab #修改下fstab里面逻辑卷的自动挂载信息
lvremove /dev/vg00/lv_name #删除逻辑卷
vgremove vg00 #删除卷组
pvremove /dev/sdb1 /dev/sdb2 #将物理卷转化成普通分区
用pvs/vgs/lvs查看
sudo fdisk /dev/sdb1#更改分区ID标识,修改成普通linux分区,而不是8e.
6: 创建快照卷
https://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/
这个文章说的非常详细,推荐下。
快照(snapshot)是LVM所提供的一个非常有用的特性。它的原理是复制Origin原始卷的元数据(metadata)来创建一个逻辑卷,并没有复制物理卷上的任何数据,因此它的创建过程是实时瞬间完成的。快照是特殊类型的逻辑卷,它含有创建时刻所指定的原始逻辑卷的完整数据,您可以操作快照而无需担心数据的变更令备份失效。
当一个snapshot创建的时候,仅拷贝原始卷里的源数据,这不是物理上的数据拷贝,因此snapshot的创建特别快,当原始卷里的数据有写入时,备份卷开始记录原始卷哪些数据发生了变化,然后在原始卷新数据覆盖旧数据时,将旧数据拷贝到snapshot的预留空间里,起到备份数据的作用,就保证了所有数据和创建备份卷之前的数据一致性。
而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要读取已经修改过的块,那么就读取拷贝到snapshot中的块。所以当原始卷破坏了之后还能用snapshot备份的数据还原.
注意:snapshot其实是一个逻辑卷;snapshot只能对同一个卷组的逻辑卷进行备份.
#创建快照
lvcreate --snapshot--size 50g --name snapshot_name /dev/vg00/lv_name
lvscan #查看
#挂在快照卷
mkdir /tmp/snapshot
mount/dev/vg00/snapshot_name /tmp/snapshot
#此时的快照卷就像是普通的逻辑卷,可以进行增加,缩小,删除等操作
#此时你可以在原来的逻辑卷内进行修改等操作
#恢复快照
umount /tmp/snapshot #卸载
#方法一
lvconvert --merge /dev/vg00/snapshot_name
#方法二
lvchange --refresh vg00 /snapshot_name
lvremove --force vg00 /snapshot_name
1.使用pvcreate创建物理卷PV
[root@racldb01 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
[root@racldb01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 50.00g 50.00g
[root@racldb01 ~]# pvdisplay /dev/sdb
--- Physical volume ---
PV Name /dev/sdb
VG Name oraclevg
PV Size 50.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12799
Free PE 12799
Allocated PE 0
PV UUID BXhyAo-9K83-KnHd-Z6kg-iU66-1Xx1-8rwPQ3
[root@racldb01 ~]#
2.创建卷组VG
使用vgcreate创建卷组VG,并且此处可以-s选项指定PE(LE)的大小,(默认PE大小4M)
[root@racldb01 ~]# vgcreate oraclevg /dev/sdb
Volume group "oraclevg" successfully created
[root@racldb01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
oraclevg 1 0 0 wz--n- <50.00g <50.00g
[root@racldb01 ~]# vgdisplay oraclevg
--- Volume group ---
VG Name oraclevg
System ID
Format lvm2
Metadata Areas 1
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 1
Act PV 1
VG Size <50.00 GiB
PE Size 4.00 MiB
Total PE 12799
Alloc PE / Size 0 / 0
Free PE / Size 12799 / <50.00 GiB
VG UUID roKJcp-6Z4Q-ffqz-AJCz-xyAl-AfYV-D07J3W
[root@racldb01 ~]#
注意:PE大,读取速度快,但浪费空间。反之,读取速度慢,但节省空间。类似于socket
另外还可以查看pv,会列出分配情况
[root@racldb01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb oraclevg lvm2 a-- <50.00g <50.00g
[root@racldb01 ~]#
3.创建逻辑卷LV
使用lvcreate创建LV
[root@racldb01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
oraclevg 1 0 0 wz--n- <50.00g <50.00g
[root@racldb01 ~]# lvcreate -n oraclelv -L 30G oraclevg
Logical volume "oraclelv" created.
[root@racldb01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
oraclevg 1 1 0 wz--n- <50.00g <20.00g
[root@racldb01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
oraclelv oraclevg -wi-a----- 30.00g
[root@racldb01 ~]# pvdisplay /dev/sdb
--- Physical volume ---
PV Name /dev/sdb
VG Name oraclevg
PV Size 50.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12799
Free PE 5119
Allocated PE 7680
PV UUID BXhyAo-9K83-KnHd-Z6kg-iU66-1Xx1-8rwPQ3
[root@racldb01 ~]#
4.格式化与挂载
注意:在格式化之前需要知道xfs文件系统只支持增大,不支持减小。ext2、ext3、ext4增大减小都支持
[root@racldb01 ~]# mkfs.xfs /dev/oraclevg/oraclelv
meta-data=/dev/oraclevg/oraclelv isize=512 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@racldb01 ~]# ls -l /dev/oraclevg/oraclelv
lrwxrwxrwx 1 root root 7 Jul 27 13:08 /dev/oraclevg/oraclelv -> ../dm-8
[root@racldb01 ~]# ls -l /dev/disk/by-uuid|grep dm-8
lrwxrwxrwx 1 root root 10 Jul 27 13:19 4a44ad07-24a0-417c-a6b9-03835ee6f91c -> ../../dm-8
[root@racldb01 ~]# mkdir -p /oracle
[root@racldb01 ~]# mount /dev/oraclevg/oraclelv /oracle
[root@racldb01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.4M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda3 33G 4.6G 29G 14% /
/dev/sda1 1014M 180M 835M 18% /boot
tmpfs 783M 12K 783M 1% /run/user/42
tmpfs 783M 0 783M 0% /run/user/0
/dev/mapper/oraclevg-oraclelv 30G 33M 30G 1% /oracle
[root@racldb01 ~]# vi /etc/fstab
UUID=4a44ad07-24a0-417c-a6b9-03835ee6f91c /oracle xfs defaults 0 0
这里的/dev/oraclevg/oraclelv实际是一个软链接
逻辑卷LV扩容(动态扩容)
首先需要确认是否有可用的扩容空间,逻辑卷是从卷组vg中创建的,所有在逻辑卷LV扩容前需要查看卷组VG的空间使用情况。
[root@racldb01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
oraclevg 1 1 0 wz--n- <50.00g <20.00g
[root@racldb01 ~]#
在确认有多余空间的情况下,使用lvextend命令的-L选项扩展逻辑卷LV的大小
[root@racldb01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
oraclevg 1 1 0 wz--n- <50.00g <20.00g
[root@racldb01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
oraclelv oraclevg -wi-a----- 30.00g
[root@racldb01 ~]# lvextend -L +10G /dev/oraclevg/oraclelv
Size of logical volume oraclevg/oraclelv changed from 30.00 GiB (7680 extents) to 40.00 GiB (10240 extents).
Logical volume oraclevg/oraclelv successfully resized.
[root@racldb01 ~]# lvextend -L 50G /dev/oraclevg/oraclelv
Insufficient free space: 2560 extents needed, but only 2559 available
[root@racldb01 ~]# lvextend -l 12799 /dev/oraclevg/oraclelv
Size of logical volume oraclevg/oraclelv changed from 40.00 GiB (10240 extents) to <50.00 GiB (12799 extents).
Logical volume oraclevg/oraclelv successfully resized.
[root@racldb01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
oraclelv oraclevg -wi-a----- <50.00g
[root@racldb01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
oraclevg 1 1 0 wz--n- <50.00g 0
[root@racldb01 ~]#
但是在我们使用df命令查看时,会发现我们文件系统并没有扩展
[root@racldb01 ~]# df -h /dev/oraclevg/oraclelv
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/oraclevg-oraclelv 30G 33M 30G 1% /oracle
[root@racldb01 ~]#
这是因为文件系统也需要扩容。
ext4文件系统扩容使用resize2fs [逻辑卷名称]
xfs扩容使用"xfs_growfs 挂载点"
[root@racldb01 ~]# df -h /dev/oraclevg/oraclelv
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/oraclevg-oraclelv 30G 33M 30G 1% /oracle
[root@racldb01 ~]# xfs_growfs /oracle
meta-data=/dev/mapper/oraclevg-oraclelv isize=512 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 7864320 to 13106176
[root@racldb01 ~]# df -h /oracle
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/oraclevg-oraclelv 50G 33M 50G 1% /oracle
[root@racldb01 ~]#
xfs文件系统只能增大,不能减小。
删除LVM
删除LVM步骤:umount挂载-->lvremove移除逻辑卷LV-->vgremove移除卷组VG-->pvremove移除物理卷PV
SSM工具:检查关于可用硬盘和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
yum -y install system-storage-manager
列出设备信息 ssm list dev
列出存储池信息 ssm list pool
列出卷信息 ssm list vol
ssm创建LVM
mkdir /mail-lv
ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[1-4] /mail-lv
df -h /mail-lv
[root@racldb02 mapper]# lvextend -l 12799 /dev/oraclevg/oraclelv
Size of logical volume oraclevg/oraclelv changed from <49.92 GiB (12779 extents) to <50.00 GiB (12799 extents).
Logical volume oraclevg/oraclelv successfully resized.
[root@racldb02 mapper]# lvextend -l 12800 /dev/oraclevg/oraclelv
Insufficient free space: 1 extents needed, but only 0 available
https://www.cnblogs.com/cheyunhua/p/14195518.html
最新评论
这个牛
放下欲望,男人从来不醉,充分且必要
勇气、责任、自信、创新,为天下先!
软件即数据,软件即服务,软件即管理,软件就是对人类各种社会活动的仿真和记录。软件很重要,但软件不可能凌驾于业务之上,尤其不可能高人一等。