GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。最大的优点是在不损伤数据的前提下调整存储空间的大小。
本篇主要讲述LVM的创建、LVM的扩展与缩减和快照卷的使用三部分
第一部分:LVM的创建
LVM创建的大致步骤为
1、将多个分区转化为多个物理卷PV(Physical Vomule)
一个分区可以创建一个物理卷,可以在多块磁盘上创建物理卷。也可以做raid10磁盘阵列以后在做物理卷, 以 便有更快的读写及磁盘冗余。
2、将多个物理卷创建为卷组VG(Vomule Group)
3、将一个卷组VG划分为多个逻辑卷LV(Logical Vomule)
LVM创建的具体步骤:
第一步:创建LVM分区以及物理卷
1、检测有几块可用磁盘以及检查驱动器上空闲硬盘空间的总量
[root@wlm ~]# fdisk -l | grep "Disk /dev/[sh]d[a-z]"
#检测有几块磁盘,以及磁盘信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
[root@wlm tmp]# df -h
#查看磁盘使用情况
Filesystem Size Used Avail Use% Mounted on
/dev/sdb3 28G 4.0G 23G 16% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sdb1 194M 190M 0 100% /boot
磁盘/dev/sda没有使用
2、创建LVM分区
这里对fdisk以及分区就不详解了
使用fdisk /dev/sda创建两个分区
wKiom1TPduzCEqmUAAHgvEwW7dM394.jpg
将两块分区格式改为8e,w退出
wKiom1TPd7yzt7M-AACTMzJaqqw225.jpg
3、创建物理卷
将新创建的两个分区/dev/sda1 /dev/sda2转化成物理卷,主要是添加LVM属性信息并划分PE存储单元
[root@wlm tmp]# pvcreate /dev/sda1 /dev/sda2
Physical volume "/dev/sda1" successfully created
Physical volume "/dev/sda2" successfully created
[root@wlm tmp]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 lvm2 a-- 2.01g 2.01g
/dev/sda2 lvm2 a-- 3.01g 3.01g
[root@wlm tmp]# pvdisplay
"/dev/sda1" is a new physical volume of "2.01 GiB"
--- NEW Physical volume ---
PV Name /dev/sda1
VG Name
PV Size 2.01 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID nhJsM3-RlXF-xTuH-vBKA-QZQA-1Hq3-fXUXS5
"/dev/sda2" is a new physical volume of "3.01 GiB"
--- NEW Physical volume ---
PV Name /dev/sda2
VG Name
PV Size 3.01 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ppfWNr-39xt-XeN7-xrTt-b2G3-SlIO-tTcMYH
第二步:用两块物理卷创建卷组vg01
[root@wlm tmp]# vgcreate vg01 /dev/sda{1,2}
Volume group "vg01" successfully created
[root@wlm tmp]# vgs
VG #PV #LV #SN Attr VSize VFree
vg01 2 0 0 wz--n- 5.01g 5.01g
[root@wlm tmp]# vgdisplay
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 5.01 GiB
PE Size 4.00 MiB
Total PE 1283
Alloc PE / Size 0 / 0
Free PE / Size 1283 / 5.01 GiB
VG UUID vaM594-DxAh-UCh0-RGU3-eEuX-ktQ5-NeRV31
第三步:创建一个逻辑卷。使用lvcreate命令在卷组中创建一个逻辑卷lv01,大小-L指定1G,名称-n指定lv01
[root@wlm tmp]# lvcreate -L 1G -n lv01 vg01
Logical volume "lv01" created
[root@wlm tmp]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv01 vg01 -wi-a---- 1.00g
[root@wlm tmp]# lvdisplay
--- Logical volume ---
LV Path /dev/vg01/lv01
LV Name lv01
VG Name vg01
LV UUID tnkXZJ-gRQK-nAke-XW6C-oycy-Voep-9hKnYA
LV Write Access read/write
LV Creation host, time wlm, 2015-02-02 21:36:40 +0800
LV Status available
# open 0
LV Size 1.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@wlm tmp]# mkfs.ext4 /dev/vg01/lv01
第四部:挂载
[root@wlm tmp]# mkdir /lv01
[root@wlm tmp]# mount /dev/vg01/lv01 /lv01/
[root@wlm tmp]# mount -s
/dev/sdb3 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)
/dev/sdb1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)
便于以后服务器重启自动挂载,需要将创建好的文件系统挂载信息添加到/etc/fstab里面
为了查看/etc/fstab是否设置正确,可以先卸载逻辑卷data1,然后使用mount –a 使内核重新读取/etc/fstab,看是否能够自动挂载.
[root@wlm tmp]# vim /etc/fstab
wKioL1TPgk_Sv4-ZAAHbEJQU6XA746.jpg
[root@wlm tmp]# umount /lv01/
[root@wlm tmp]# mount -s | grep "/lv01"
[root@wlm tmp]# mount -a
[root@wlm tmp]# mount -s | grep "/lv01"
/dev/mapper/vg01-lv01 on /lv01 type ext4 (rw)
至此,LVM的创建结束
第二部分:LVM的扩展与缩减
卷组的扩张
[root@wlm ~]# vgextend vg01 /dev/sda3 #将物理卷/dev/sda3加入卷组vg01
Volume group "vg01" successfully extended
逻辑卷的扩张:先扩张物理边界———在扩张逻辑边界
扩张物边界
命令:lvextend
-L [+]# /PATH/TO/LV
[root@wlm tmp]# lvextend -L 2G /dev/vg01/lv01 要扩张到2G(扩张后的)
wKioL1TPhYnT-wxeAABeva34i9E701.jpg
扩展逻辑边界
resize2fs
resize2fs -p /PATH/TO/LV
[root@wlm tmp]# resize2fs -p /dev/vg01/lv01 要扩张到2G(扩张后的)
wKioL1TPhZjQgUS3AADog55hmts773.jpg
逻辑卷的缩减,有风险,先缩减逻辑边界——在缩减物理边界
注意:1、不能在线缩减,得先卸载;
2、确保缩减后的空间大小依然能存储原有的所有数据;
3、在缩减之前应该强行检查文件,确保文件系统处于一致性状态
df –lh
umount 卸载
e2fsck -f /dev/vg01/lv01强行文件系统检查,看是否有问题
开始缩减
resize2fs /PATH/TO/PV 1G
[root@wlm ~]# resize2fs /dev/vg01/lv01 1G
resize2fs 1.41.12 (17-May-2010)
resize2fs: New size smaller than minimum (275802)
缩减(逻辑边界)为1G (缩减后的总共大小为1G)
lvreduce -L [-]# /PATH/TO/LV
[root@wlm ~]# lvreduce -L 1G /dev/vg01/lv01
WARNING: Reducing active and open logical volume to 1.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv01? [y/n]: y
Reducing logical volume lv01 to 1.00 GiB
Logical volume lv01 successfully resized
缩减(物理边界)为1G
mount -a
重新挂在
第三部分:使用快照卷()
1、生命周期为整个数据时长:在这段时长内,数据的增长量不能超出快照卷大小;
2、快照卷应该是只读的;
3、跟原卷在同一卷组内;
lvcreate -L # -n SLV_NAME -s -p r /PATH/TO/LV
-L指定大小 –n名称 -s表示为快照卷 -p 只读 要做快照的源卷
[root@wlm ~]# lvcreate -L 100M -n lv01_snap -s -p r /dev/vg01/lv01
Logical volume "lv01_snap" created
[root@wlm ~]# mount /dev/vg01/lv01_snap /mnt/
mount: block device /dev/mapper/vg01-lv01_snap is write-protected, mounting read-only
进行备份是可以从快照卷进行备份,备份完毕后可以卸载删除
[root@wlm ~]# lvremove /dev/vg01/lv01_snap
Do you really want to remove active logical volume lv01_snap? [y/n]: y
Logical volume "lv01_snap" successfully removed
管理LVM管理配置要用到的命令有:
vgextend vg0 /dev/sdaz *将第三个物理卷添加进vg0物理卷组*
fdisk -l :查看系统中都认到了那些物理硬盘
pvdisplay:查看系统中已经创建好的物理卷
pvcreate:创建一个新的物理卷
pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)
vgdisplay:查看系统中的卷组
vgcreate:创建一个新的卷组
vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)
vgremove:删除一个卷组
lvdisplay:查看系统中已经创建好的逻辑卷
lvcreate:创建一个新的逻辑卷
lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)
lvremove:从系统中删除一个逻辑卷
mkfs:基于逻辑卷创建一个相应类型的文件系统
mkdir -p $mount_piont:创建一个挂载目录
创建好的文件系统位于:
/dev/$create_vg_name/$lv_name
mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统
lvextend -L 2G /dev/vg01/lv01 要扩张到2G(扩张后的物理边界)
resize2fs -p /dev/vg01/lv01 要扩张到2G(扩张后的逻辑边界)
以下是别人写的博客作为补充,出处http://dreamfire.blog.51cto.com/418026/1084729
如果某一块磁盘或者分区故障了如何将数据快速转移到相同的卷组其他的空间去。
1、通过pvmove命令转移空间数据
2、通过vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去。
3、通过pvremove命令将即将坏的磁盘或者分区从系统中删除掉。
4、手工拆除硬盘或者通过一些工具修复分区。
clip_image042
clip_image044
删除整个逻辑卷
1、先通过umount命令卸载掉逻辑卷lvdata1
2、修改/etc/fstab里面逻辑卷的挂载信息,否则系统有可能启动不起来。
3、通过lvremove 删除逻辑卷lvdata1
4、通过vgremove 删除卷组vgdata
5、通过pvremove 将物理卷转化成普通分区。
clip_image046
删除完了,别忘了修改分区的id标识。修改成普通Linux分区即可。
clip_image048
总结:LVM逻辑卷是Linux里面一个很棒的空间使用机制,因为分区在没有格式化的情况下是没有办法加大或者放小的。通过LVM可以将你的磁盘空间做到灵活自如。
GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除的更多相关文章
- GNU/Linux下Freeplane的界面渲染问题
如下图所示,思维导图软件Freeplane在GNU/Linux下默认的界面渲染效果是很差的,即便将Preferences → Appearance → Antialias设置为Antialias al ...
- 我在GNU/Linux下使用的桌面环境工具组合
为了使GNU/Linux桌面环境下加载的程序较少以节省内存资源和提高启动时间,我目前并不使用重量级的桌面环境KDE和Gnome,甚至连登录窗界面gdm或xdm都不用,而是直接启动到控制台,登录后调用s ...
- 在GNU/Linux下将CD音乐转为mp3
以前我欣赏古典音乐都是听的CD,因而珍藏了不少光盘以及下载到电脑上的ape与flac格式的音乐文件.随着手机硬件性能(如电池续航能力.处理器速度.音质.存储容量等)和软件功能(音乐播放器对于曲目的管理 ...
- linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例
转自:truemylife.linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例 基本概念: 磁盘.分区.物理卷[物理部分] 卷组[中间部分] 逻辑卷.文件系统[虚拟化后可控制部分] 磁 ...
- linux下 lvm 磁盘扩容
打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...
- Linux下lvm在线扩容步骤
转 :https://jingyan.baidu.com/article/25648fc18f22b29191fd0011.html 图片看不清可以看原文 LVM是逻辑盘卷管理(Logical Vol ...
- Gnu Linux下文件的字符编码及转换工具
/********************************************************************* * Author : Samson * Date ...
- 在GNU/Linux下使用Lilypond排版简谱
尽管GNU/Linux并非无所不能,但确实能在很多时候提供免费.开放的解决方案.这两天我想做一个简谱,在网上搜索乐谱排版软件,发现了基于GPL协议的Lilypond软件.只不过Lilypond是用来做 ...
- 在GNU/Linux下制作Windows 10安装U盘
今年春节回家期间,我需要将家里的一台安装了Debian Stretch的ZaReason笔记本电脑更换为Windows 10系统,好让爸妈从老台式机上的XP系统升级到新的平台上来.回家前,小仙女已在微 ...
随机推荐
- Asp.Net MVC3 简单入门详解过滤器Filter(转)
前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码 ...
- 【强烈推荐】数据库迁移利器:Migrator.Net
简介 很郁闷,写了一天的遇到LiveWriter错误,可恶啊 几年前在做项目中第一次接触到了Migrator.Net,就深深被吸引住了,至此以后在新的大项目中,我都会使用Migrator.Net来创建 ...
- Mysql查看执行计划-explain
最近生产环境有一些查询较慢,需要优化,于是先进行业务确认查询条件是否可以优化,不行再进行sql优化,于是学习了下Mysql查看执行计划. 语法 explain <sql语句> 例如: e ...
- Python笔记(4)类__属性与描述符
部分参考自:http://www.geekfan.net/7862/ 新式类与经典类 2和3不一样,3都是新式类. 新式类和经典类的区别: class A: #classic class " ...
- centos 防火墙
让防火墙放通tcp的 80端口: [root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent 重启防火墙以 ...
- Java,来源于大神
也许你学习了那么久的Java了,但如果有人问你什么是JavaEE?你会怎么回答他呢?在此我来谈谈关于JavaEE的相关技术.(仅是个人见解) 在谈JavaEE时,我们首先来了解一下Java平台.目前, ...
- Python 安装easy_install详解
easy_install 真的特别方便.我之前安装pip.wheel.bs4.requests等都是用python setup.py install 安装,操作步骤还不算很烦(但是对比easy_ins ...
- JS写小游戏(一):游戏框架
前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 ...
- javascript拖动div
div拖动代码,在用此代码之前,你可能需要将你需要拖动的元素style设置position: absolute; #textareaSavaDiv{ position: absolute; right ...
- JS中的decodeURIComponent和encodeURIComponent
两个函数可以对特定函数生成的密码字符串进行解密操作,就可以生成为未解密的字符串 使用方法: //加密 encodeURIComponent("http://www.cnblogs.com/7 ...