运维学习18
来源:互联网 发布:上海近几年gdp数据 编辑:程序博客网 时间:2024/06/06 03:38
第五单元 LVM管理
lvm
lvm Logical Volume Manager,逻辑卷,可以让设备自由伸缩的一个设备管理软件
pv Physical Volume,物理卷,
vg Volume Group,物理卷组
pe physical extend,物理拓展,lvm最小的存储单元
lvm设备的制作
首先划分lvm所用到的设备,这些设备功能id必须是linux LVM(8e)
1、lvm的建立
pvcreate /dev/vdb1 ##把物理分区做成物理卷
pvs | pvdisplay ##查看物理卷
vgcreate vg0 /dev/vdb1 ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
vgs | vgdisplay ##查看逻辑卷组
lvcreate -L 200M -n lv0 vg0 ##在vg0这个组中建立lv0设备,-L 指定设备大小 -n 指定设备名称
lvs | lvdisplay ##对逻辑卷设备进行查看
2、针对xfs文件系统-----lvm设备的扩大(只可以扩大,不可以缩小)
1)lvm扩大
lvextend -L 500M /dev/vg0/lv0 ##扩大lvm设备到500M
xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小
2)vg扩大
pvcreate /dev/vdb2 ##在pv中增加一块设备/dev/vdb2
vgextend vg0 /dev/vdb2 ##把新建的/dev/vdb2添加到vg0中
3、针对ext文件系统-----lvm设备的扩大(可拉伸也可缩减)
1)lvm扩大
lvextend -L 2G /dev/vg0/lv0 ##扩大lvm设备到2G
resize2fs /dev/vg0/lv0 ##设备文件系统大小和设备同步
2)vg扩大
pvcreate /dev/vdb3 ##在pv中增加一块设备/dev/vdb3
vgextend vg0 /dev/vdb3 ##把新建的/dev/vdb3添加到vg0中
3)lvm缩减
umount /dev/vg0/lv0 ##卸载正在使用的设备,因为文件系统的缩减不支持在线操作
e2fsck -f /dev/vg0/lv0 ##检测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs /dev/vg0/lv0 1G ##把文件系统缩减到1G
lvreduce -L 1G /dev/vg0/lv0 ##设备缩减到1G
4)vg缩减
####在vg缩减时只能缩减没有被占用的设备
pvmove 设备1 设备2 ##把设备1上的所有数据移动到设备2上
vgreduce vg0 /dev/vdb1 ##把vg0中的/dev/vdb1删除
pvremove /dev/vdb1 ##把/dev/vdb1上的lvm管理信息删除
lvm快照的原理及制作
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0
##给/dev/vg0/lv0建立快照,-L指定快照名字,-s指定快照模板设备
mount /dev/vg0/lv0-backup /usrdata
##当快照设备里的数据被更改,如果想还原,删除快照设备,重新建立快照即可
6、lvm的删除
umount -> lvremove -> vgremove -> pvremove ->fdisk /dev/vdb->partprobe
[root@server188 ~]# fdisk /dev/vdb
###############################################################
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):+1G
Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
#####################################################################
以上操作为建立设备功能id是linux LVM(8e)的分区,dev/vdb{2,3,5}与/dev/vdb1类似
#####################################################################
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
Selected partition 4
First sector (6293504-20971519, default 6293504):
Using default value 6293504
Last sector, +sectors or +size{K,M,G} (6293504-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 7 GiB is set
####################################################################
理论上一个设备最多可以划分四个分区,当然如果需要多于4个分区的话,必须将第4个分区化为逻辑分区。
####################################################################
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2099199 1048576 8e Linux LVM
/dev/vdb2 2099200 4196351 1048576 8e Linux LVM
/dev/vdb3 4196352 6293503 1048576 8e Linux LVM
/dev/vdb4 6293504 20971519 7339008 5 Extended
/dev/vdb5 6295552 8392703 1048576 8e Linux LVM
Command (m for help): wq
The partition table has been altered!
[root@server188 ~]# partprobe
lvm设备的拉伸
##将/dev/mapper/vg0-lv0格式化为ext格式
[root@server188 ~]# umount /dev/mapper/vg0-lv0
[root@server188 ~]# mkfs.ext4 /dev/mapper/vg0-lv0
[root@server188 ~]# lvextend -L 2G /dev/vg0/lv0 ##此时要扩展到2G,但vg中容量<2G,因此vg中加入新的物理卷
Extending logical volume lv0 to 2.00GiB
Insufficient free space: 387 extentsneeded, but only 130 available
添加新的pv,使vg容量增大
[root@server188 ~]# pvcreate /dev/vdb2
Physical volume "/dev/vdb2"successfully created
[root@server188 ~]# vgextend vg0 /dev/vdb2
Volume group "vg0"successfully extended
[root@server188 ~]# vgs
VG #PV #LV #SN Attr VSizeVFree
vg0 2 1 0 wz--n- 1.99g 1.50g
拉伸设备
[root@server188 ~]# lvextend -L 2G /dev/vg0/lv0
Extending logical volume lv0 to 2.00GiB
Logical volume lv0 successfullyresized
[root@server188 ~]# resize2fs /dev/vg0/lv0
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 2097152 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 2097152 blocks long.
[root@server188 ~]# mount /dev/vg0/lv0 /usrdata/
[root@server188 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
....... ...... ... ...
/dev/mapper/vg0-lv0 2.0G 2.9M 1.9G 1% /usrdata
lvm设备的缩减
[root@server188 ~]# umount /dev/vg0/lv0
[root@server188 ~]# e2fsck -f /dev/vg0/lv0
[root@server188 ~]# resize2fs /dev/vg0/lv0 200M
[root@server188 ~]# lvreduce -L 200M /dev/vg0/lv0
********vg的缩减
##缩减没有被使用的/dev/vdb2
[root@server188 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 820.00m
/dev/vdb2 vg0 lvm2 a-- 1020.00m 1020.00m
[root@server188 ~]# vgreduce vg0 /dev/vdb2
Removed "/dev/vdb2" fromvolume group "vg0"
[root@server188 ~]# pvremove /dev/vdb2
Labels on physical volume"/dev/vdb2" successfully wiped
[root@server177 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 820.00m
##缩减正在被使用的/dev/vdb1,要先将/dev/vdb1中的数据移动到/dev/vdb2上,最后再移除
[root@server188 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 820.00m
/dev/vdb2 vg0 lvm2a-- 1020.00m 1020.00m
[root@server188 ~]# pvmove /dev/vdb1 /dev/vdb2
/dev/vdb1: Moved: 100.0%
[root@server188 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 1020.00m
/dev/vdb2 vg0 lvm2 a-- 1020.00m 820.00m
[root@server188 ~]# vgreduce vg0 /dev/vdb1
Removed "/dev/vdb1" fromvolume group "vg0"
[root@server188 ~]# pvremove /dev/vdb1
Labels on physical volume"/dev/vdb1" successfully wiped
[root@server188 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb2 vg0 lvm2 a-- 1020.00m 820.00m
lvm快照
[root@server188 ~]# mount /dev/mapper/vg0-lv0 /usrdata/
[root@server188 ~]# touch /usrdata/file{1..10}
[root@server188 ~]# umount /usrdata/
[root@server188 ~]# lvcreate -L 30M -n lv0-back -s /dev/vg0/lv0
Rounding up size to full physicalextent 32.00 MiB
Logical volume "lv0-back"created
[root@server188 ~]# mount /dev/vg0/lv0-back /usrdata/
[root@server188 ~]# ls /usrdata/
file1 file2 file4 file6 file8 lost+found
file10 file3 file5 file7 file9
lvm的删除
[root@server188 ~]# umount /dev/mapper/vg0-lv0--back
[root@server188 ~]# lvremove /dev/vg0/lv0
[root@server188 ~]# vgremove vg0
Volume group "vg0"successfully removed
[root@server188 ~]# pvs
No device found for PV EPJAqQ-zBhQ-03nT-gL6w-ih2F-RsbA-5GpUNf.
PV VG Fmt Attr PSize PFree
/dev/vdb1 lvm2 a-- 1.00g 1.00g
/dev/vdb2 lvm2 a-- 1.00g 1.00g
[root@server188 ~]# pvremove /dev/vdb{1..2}
No device found for PVEPJAqQ-zBhQ-03nT-gL6w-ih2F-RsbA-5GpUNf.
Labels on physical volume"/dev/vdb1" successfully wiped
Labels on physical volume"/dev/vdb2" successfully wiped
[root@server188 ~]# fdisk /dev/vdb ##在此处d删除划分的设备分区
[root@server188 ~]# partprobe
- 运维学习18
- 运维学习网站
- 学习运维
- 运维学习1
- 运维学习4
- 运维学习5
- 运维学习6
- 运维学习7
- 运维学习8
- 运维学习9
- 运维学习10
- 运维学习11
- 运维领域学习
- 运维学习12
- 运维学习13
- 运维学习14
- 运维学习15
- 运维学习16
- 201409-3 字符串匹配
- Java IO学习总结
- Git分支
- 腾讯IVWEB团队:WebRTC 点对点直播
- 图论杂项
- 运维学习18
- 如何安全退出已调用多个 Activity 的 Application?
- openGL入门
- 201412-3 集合竞价
- Android内存优化方案和内存泄露检测分析方法
- RMQ<区间最值查找,O(n*logn)
- android 小米手机API兼容问题解决思路
- Linux进程间通信——使用流套接字
- 浓缩的才是精华:浅析GIF格式图片的存储和压缩