磁盘管理二-LVM相关内容
1、基本概念
LVM:logical volume manager 逻辑卷管理器
LVM构成:物理卷PV,卷组VG(PE物理区域,最小存储单元),逻辑卷LV(LE逻辑区域,最小存储单元)
三者如下图所示:

-1 即VG可以包含多个PV,LV可以占用VG的全部或者一部分
-2 LE==PE
-3 lvm2已经不限制LE和PE的上限,故LE和PE的数值可大于65536
2、为什么要用LVM
LVM可以方便的进行磁盘缩放,当最初规划的空间不够用的时候,可以通过增加PV,VG,扩展LV的大小。
3、怎么创建
基本思路:构建PV->VG->LV->格式化->挂载LV
具体步骤:
-1 创建PV
pvcreate /dev/sd[a-z][1-9]
eg:
pvcreate /dev/sdb1
pvcreate /dev/sdb2
-2 创建卷组VG (可指定PE大小,最小为4K,最大根据操作系统版本而定,必须为2的倍数,默认是4M -s 8M指定pe为8M,则创建lv必须为8M的倍数)
vgcreate vg_name pv_device
eg:
vgcreate myvg /dev/sdb1 /dev/sdb2
-3 创建逻辑卷LV
lvcreate -l 100%free -n lv_name vg_name
or
lvcreate -L [+]size -n lv_name vg_name
(-l(非i)表示将多少百分比的空闲空间划给lv
-L表示将多少单位空闲空间划给lv,单位M,G等)
eg:
lvcreate -L 100M -n mylv myvg 指定mylv大小为100M(若是+100M,则表示给mylv增加100M)
-4 格式化处理
mke2fs -t ext4 /dev/myvg/mylv
-5 挂载逻辑卷
mount -t ext4 /dev/myvg/mylv
-6 自动挂载
编辑/etc/fstab
/dev/myvg/mylv /testlvm ext4 defaults 0 0
3、怎么扩展缩放
-1 扩展lv
--1 检查当前vg剩余空间
vgdisplay vg_name
eg:vgdisplay myvg | grep Free
--2 若VG空间足够,则直接进行lv扩展
---1 扩展物理边界,务必先扩展物理边界
lvextend -L [+]SIZE lv_device
eg:lvextend -L +5G /dev/mapper/myvg-mylv #追加5G空间
---2 请先确保物理边界扩展成功(successfully resized),扩展逻辑边界
resize2fs lv_drvice
eg:resize2fs /dev/mapper/myvg-mylv
--3 若VG空间不够,则先进行VG扩展,后进行lv扩展
---1 创建新的pv
pvcreate /dev/sd[a-z][1-9]
eg:pvcreate /dev/sdb3
---2 扩展VG
vgextend vg_name pv_device
eg:vgextend myvg /dev/sdb3
---3 此时和--2就一致了
-2 缩减lv(必须先umount+备份后操作[备份非必须,不过建议备份])
--1 缩减就是将扩展步骤反过来,先缩减逻辑边界,再缩减物理边界
---1 resize2fs lv_device SIZE (这里只能直接指定缩减后的空间大小,故务必先确定逻辑卷已经使用的空间大小)
eg:
resize2fs /dev/mapper/myvg-mylv 17G
---2 lvreduce -L [-]SIZE lv_device
eg:
lvreduce -L -5G /dev/mapper/myvg-mylv
--2 缩减VG
---1 确定需要移除的pv,及所属vg
pvdisplay
---2 转移pv数据
pvmove pv_device
eg:
pvmove /dev/sdb1
---3 缩减vg
vgreduce -a #清除vg中的所有空闲pv,或者指定pv,指定和-a不能同时使用
eg:
vgreduce mylv /dev/sdb1
---4 删除pv
pvremove pv_device
eg:
pvremove /dev/sdb1
4、快照卷用于备份(创建一个区域,用来存储快照卷生成时数据改变前的源数据,只要有数据发生变化,就备份一份放于快照卷,未变的不备份)。
原理:linux自带的快照卷使用的是cow技术,即copy-to-write,也就是只复制发生变化前的源数据,从而保证数据一致性。
创建快照卷的过程:
1、快照卷初始化,复制源卷的所有inode至快照卷的inode map,并监视源卷的block变化
2、当源卷数据发生变化时,将变化前的数据复制到快照卷中,并将对应的bit map位更改成1
3、此时用户访问新数据就通过源卷的inode进入,而老数据就通过快照卷的inode进入
4、需要注意的是,因为快照卷是复制的源卷的inode,故inode号和存储的文件属性和源卷一模一样,但是并不是硬链接中指向了同一个inode,而是两个分区下的两个号相同的inode。
5、当快照卷创建完毕后,若修改源卷的数据,则会发现源卷的数据对应inode会发生变化,而快照卷的依然不变。
-1 特点:
--1 生命周期为整个snap占满前所用时间,生成快照卷期间,发生变化的源数据的原始大小总和不能超过快照卷设定的大小,如果超过,则快照会释放
--2 需设定为只读属性,保证快照卷内容不发生改变
--3 跟关联的原逻辑卷同一个卷组
--4 ls快照卷的时候,输出的大部分数据都是源卷的数据,而真正存储的数据仅仅是生成快照卷期间发生变化的数据块的源数据,因此快照卷不必大于源lv卷(可以查看快照卷挂载路径的inode和源卷的inode,发现是一致的,即显示的数据都是相同数据块的内容)
-2 创建快照卷
lvcreate -L SIZE -s -p r -n lv_snap_name lv_device
(-L指定大小,-s表明创建一个快照卷snap,-p [r|rw]只读|读写权限,-n快照卷名)
eg:
lvcreate -L 100M -s -p r -n mylvsnap /dev/mapper/myvg-mylv
-3 挂载快照卷
mount -t ext4 lv_snap_device path
eg:
mount -t ext4 /dev/mapper/mylvsnap /mylvsnap
(此时可以看到/mylvsnap目录inode号已经指向了源卷的挂载目录)
5、移除逻辑卷
lvremove lv_device
6、移除卷组
vgremove vg_name
7、pv载体出现问题解决步骤
-0 确定问题pv所在的vg
eg:
pvdisplay /dev/sdb3 (假设此处是myvg)
-2 转移要出问题的数据pv(确定转移的pv容量以及pv_device)
-3 缩减lv
-4 缩减vg
-5 删除掉出问题的数据pv
8、做出修改之后,建议进行文件系统检测
fsck -a 自动修复
或者(e2fsck仅用来检测ext系列)
e2fsck [-t fs_type] [-f] [-p] /path/to/device
-f 强行检查
磁盘管理二-LVM相关内容的更多相关文章
- Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用
在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理, ...
- 【转载】Linux磁盘管理:LVM逻辑卷管理
Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...
- 20190410Linux中磁盘管理及LVM(week2day1)
Linux磁盘管理及LVM讲解(week2_day2) 硬盘接口 从整体的角度上,硬盘接口分为IDE.SATA.SCSI和SAS四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接 ...
- Linux命令-磁盘管理(二)
Linux命令-磁盘管理(二) Linux mmount命令 Linux mmount命令用于挂入MS-DOS文件系统. mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内 ...
- linux磁盘管理系列-LVM的使用
LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...
- Linux磁盘管理及LVM讲解
硬盘接口 硬盘接口分为IDE.SATA.SCSI和SAS四种, IDE接口硬盘多用于家用产品中,也部分应用于服务器.不支持热添加,比较老. SCSI接口的硬盘则主要应用于服务器市场.linux. 而S ...
- Linux磁盘管理及LVM讲解(1)
硬盘接口 从整体的角度上,硬盘接口分为IDE.SATA.SCSI和SAS四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而SAS只在高端服务器上,价 ...
- Linux进阶之磁盘管理及LVM逻辑卷
本节内容 磁盘管理 LVM 一.磁盘管理 1.硬盘接口 种类及其应用: IDE接口硬盘多用于家用产品,部分应用于服务器 SATA SCSI接口硬盘主要应用于服务器 SAS只在高端服务器上,价格昂贵 2 ...
- Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理
一.传统的磁盘管理 其实在Linux操作系统中,我们的磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该 ...
随机推荐
- Sherlock and GCD
1 import fractions, functools, sys if __name__ == '__main__': T = int(sys.stdin.readline()) for _ in ...
- linux中查找命令find、locate、whereis、which、type区别
linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/ ...
- bzoj 1912 巡逻(树直径)
Description Input 第一行包含两个整数 n, K(1 ≤ K ≤ 2).接下来 n – 1行,每行两个整数 a, b, 表示村庄a与b之间有一条道路(1 ≤ a, b ≤ n). Ou ...
- Qt修改文件内容
在用Qt进行嵌入式开发的时候,有时需要通过界面永久的改变ip地址等网卡信息.此时只能修改系统中包含网卡信息的文件,下图红框中所示就是文件中的网卡信息. 那么如何修改这四行呢,我的做法是先打开该文本文件 ...
- Raspberrypi安装使用开发简要说明
Raspberrypi安装使用开发简要说明 (更新于2013年8月25日 newsuppy) 一,安装 使用win32diskimager将操作系统的image刷在SD卡上,image文件可以在htt ...
- UGUI实现摇杆(模仿太极熊猫)
核心代码: using UnityEngine; using System.Collections; using UnityEngine.UI; public delegate void Joysti ...
- 地下迷宫(bfs输出路径)
题解:开一个pre数组用编号代替当前位置,编号用结构题另存,其实也可以i*m+j来代替,我写的有点麻烦了; 代码: #include <iostream> #include <cst ...
- BASE64Encoder问题类
于myeclipse于BASE64Encoder提示类不出现 对当前右击project-->Build Path--->Configure Build Path--->Java Bu ...
- docker四种网络模式
1,host模式 启动容器时,添加参数--net=host 此模式和宿主机使用的是同1个ip,适合上网. 2,container模式 启动容器时,添加参数--net=container,docker ...
- RadioButton 和 RadioButtonList 比较
第一次接触RadioBttonList时候,觉得这个控件完全可以取代RadioButton,操作更加简便.直到今天,完成了一个小小的功能,才发现,尺有所短不是瞎掰的. 需求如下: Add Prorat ...