linux下磁盘管理之利器 lvm使用介绍
点评:LVM(Logical Volume Manager)是一个应用于Linux的内核的逻辑卷管理器,是Linux环境下对磁盘进行分区管理的一种机制
一、LVM 简介
LVM(Logical Volume Manager)是一个应用于Linux的内核的逻辑卷管理器,是Linux环境下对磁盘进行分区管理的一种机制。先介绍几个有关LVM的名词
1、PV(物理卷)可以是一个磁盘,一个分区。由PE(物理盘区)组成,多个PV可以组成一个VG(卷组).
2、VG(卷组)多个物理卷组成的一个组,但是卷组不可以直接使用,需要在上面创LV(逻辑卷)才可以使用。VG上可以创建多个LV。
3、PE(物理盘区)就像我们之前学习的磁盘的block块,默认是4MB。
4、LV(逻辑卷) 是建立在卷组之上的一个可用空间。有物理边界和逻辑边界两种边界。
二、相关命令介绍
1、物理卷PV
pvcreate 创建pv 例:pvcreate /dev/sda1
pvs 查看pv信息 例:直接在命令行里输入pvs
pvdisplay 查看pv详细信息 例:pvcreate /dev/sda1
pvmove 将pv数据移动到其他pv 例:pvmove /dev/sda1 /dev/sda4
pvremove 将pv删除 例:pvremove /dev/sda1
2、卷组VG
2.1 创建、查看、删除vg
vgcreate 创建vg 例:vgcreate myvg /dev/sda{m,n}
vgs 查看vg信息 例:直接在命令行里输入vgs
vgdisplay 查看vg详细信息 例:vgdisplay myvg
vgremove 将vg删除 例:vgremove myvg
2.2 扩展vg
首先准备好一个PV;
然后使用vgextend命令即可完成扩展;
格式: vgextend VG_NAME /PATH/TO/PV
vgextend myvg /dev/sdb2 扩展myvg卷组,把/dev/sda2加进去
2.3 缩减vg
1)确定要移除的PV;
2)将此PV上的数据转移至其它PV;
pvmove /path/to/pv
3)从卷组中将此PV移除;
格式:vgreduce VG_NAME /PATH/TO/PV
vgreduce myvg /dev/sdb2 缩减myvg卷组,把/dev/sda2去掉
3 逻辑卷LV
3.1 创建、查看、删除lv
lvcreate 创建lv 例:lvcreate lv1 /dev/myvg
lvs 查看lv信息 例:直接在命令行里输入lvs
lvdisplay 查看lv详细信息 例:vgdisplay lv1
lvremove 将lv 移除 例:lvremove /dev/myvg/lv1
3.2 扩展lv
确定扩展多大
确定当前逻辑卷所在的卷组有足够的空闲空间;
扩展:
1、物理边界
lvextend -L [+]SIZE /path/to/lv
2、逻辑边界
resize2fs /path/to/device
3.3 缩减lv
确定缩减的大小,但前提是至少能容纳原有的所有数据。
缩减:
1)卸载并强行检测文件系统;
e2fsck -f
2)逻辑边界
resize2fs /path/to/device SIZE
3)物理边界
lvreduce -L [-]SIZE /path/to/lv
4、快照卷
1) 生命周期为整个数据时长;在这段时长内,数据的增长量不能超出快照卷大小;
2) 快照卷应该是只读的;
3) 跟原卷在同一卷组内;
lvcreate
-L 指定快照卷的大小
-s 创建快照卷
-p r 创建的快照卷为只读访问
格式:
lvcreate -L SIZE -s -p r -n LV_NAME /path/to/lv
三、lv之示例
1、创建一个分区
代码如下:
[root@stau11 ~]# fdisk -l //查看分区的情况
[root@stau11 ~]# fdisk /dev/sda //进行分区
Command (m for help): n //n为添加一个分区,p查看分区
First cylinder (2898-10443, default 2898): //按【Enter】键决定
Using default value 2898 //起始柱面选择默认 值
Last cylinder or +size or +sizeM or +sizeK (289810443, default 10443): +2G // 给2G的大小
Command (m for help): t //更改分区类型
Partition number (1-5): 5 //选着分区
Hex code (type L to list codes): l //分区类型列表
Hex code (type L to list codes):8e //将新添加的分区标注成lvm
Command (m for help): p //查看分区表
/dev/sda5 2756 2999 1959898+ 8e Linux LVM
Command (m for help): w //保存 www.jbxue.com
[root@localhost ~]# partprobe /dev/sda //是系统识别分区(代替重启)
[root@localhost ~]# mkfs.ext3 /dev/sda5 //格式化新添加的分区
2、PV的创建
代码如下:
[root@localhost ~]# pvcreate /dev/sda5 //创建pv
Writing physical volume data to disk "/dev/sda5"
Physical volume "/dev/sda5" successfully created
[root@localhost ~]# pvs //查看当前pv的信息
PV VG Fmt Attr PSize PFree
/dev/sda5 lvm2 a-- 1.87G 1.87G
3、VG的创建
代码如下:
[root@localhost ~]# vgcreate vg0 /dev/sda5 //vg0为当前vg的名
Volume group "vg0" successfully created
[root@localhost ~]# vgs //查看vg的信息
VG #PV #LV #SN Attr VSize VFree
vg0 1 0 0 wz--n- 1.87G 1.87G
4、lv的创建
代码如下:
[root@localhost ~]# lvcreate -L 500M -n lv01 vg0
Logical volume "lv01" created
[root@localhost ~]# lvs //查看lv的信息
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv01 vg0 -wi-a- 500.00M www.jbxue.com
You have mail in /var/spool/mail/root
[root@localhost ~]# mkfs.ext3 /dev/vg0/lv01 //格式化
lvm的使用
5、lv的增大
代码如下:
[root@localhost ~]# lvextend -L +300M /dev/vg0/lv01 //(原来lv大小500M ,拉伸分区到 800M) Extending logical volume lv01 to 800.00 MB
Logical volume lv01 successfully resized
[root@localhost ~]# resize2fs /dev/vg0/lv01 //拉伸文件系统
[root@localhost ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv01 vg0 -wi-ao 800.00M //大小变成了800M
6、lv的减小
代码如下:
# umount /dev/vg0/lv01 //卸载逻辑卷/dev/vg0/lv01
# df -h //查看
# e2fsck -f /dev/vg0/lv01 //磁盘校验
# resize2fs /dev/vg0/lv01 500M //回缩文件系统到 500M
# lvreduce -L 500M /dev/vg0/lv01 //回缩分区到 500M
WARNING: Reducing active logical volume to 500.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv01? [y/n]: y
# lvs www.jbxue.com
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv01 vg0 -wi-a- 500.00M //此时已变成500M大小
# mount /dev/vg0/lv01 /mnt/lv01 //重新挂载分区
# df -h //查看
# ls /mnt/lv01 //查看文件
四、lvm的系统快照
1、挂载lvm
代码如下:
[root@localhost ~] # mount /dev/vg0/lv01 /mnt/lv01
[root@localhost ~]# cd /mnt/lv01
[root@localhost lv01]# touch {a,b,c}{a,b,c}
[root@localhost lv01]# ls
aa ab ac ba bb bc ca cb cc lost+found lv.file restoresymtable
2、为lvm创建快照
代码如下:
[root@localhost lv01]# lvcreate -L 64M -s -n lv-backup /dev/vg0/lv01
Logical volume "lv-backup" created
3、挂载快照
代码如下:
[root@localhost lv01]# mkdir /mnt/lv-backup
[root@localhost mnt]# mount -o ro /dev/vg0/lv-backup /mnt/lv-backup/
4、备份快照
代码如下:
[root@localhost tmp]# dump -0u -f /tmp/lv-backup.dump /mnt/lv-backup/ //备份
DUMP: Date of this level 0 dump: Sun Nov 11 14:53:31 2012
DUMP: Dumping /dev/mapper/vg0-lv--backup (/mnt/lv-backup) to /tmp/lv-backup.dump
5、删除快照
代码如下:
[root@localhost tmp]# umount /mnt/lv-backup/
[root@localhost tmp]# lvremove /dev/vg0/lv-backup
Do you really want to remove active logical volume lv-backup? [y/n]: y
Logical volume "lv-backup" successfully removed
6、清空/dev/vg0/lv01下得内容
代码如下:
[root@localhost tmp]# umount /mnt/lv01
[root@localhost tmp]# mkfs.ext3 /dev/vg0/lv01
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
7、lvm的关闭
代码如下:
[root@localhost ~]# umount /mnt/lv01
[root@localhost ~]# lvremove /dev/vg0/lv01 //删除lv
Do you really want to remove active logical volume lv01? [y/n]: y
Logical volume "lv01" successfully removed www.jbxue.com
[root@localhost ~]# vgchange -a n vg0 //使vg0不具有active标志
0 logical volume(s) in volume group "vg0" now active
[root@localhost ~]# vgremove vg0 //删除vg
Volume group "vg0" successfully removed
[root@localhost ~]# pvremove /dev/sda5 //删除pv
Labels on physical volume "/dev/sda5" successfully wiped
linux下磁盘管理之利器 lvm使用介绍相关推荐
- LINUX下磁盘管理的基本流程与相关操作命令
LINUX下磁盘管理的基本流程与相关操作命令 磁盘的管理 添加磁盘 格式化分区 磁盘挂载 磁盘的管理 在Linux中我们可以通过以下几种方式来查看我们所用的磁盘 (1)df命令: 还可以添加后缀命令( ...
- linux系统磁盘分区查看,linux下磁盘查看和分区
4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 df命令 df输出磁盘文件系统使用情况: [root@centos ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev ...
- centos查看盘符_Centos下磁盘管理的常用命令记录(如查找大文件)
Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...
- linux分区管理,Linux下磁盘分区管理
Linux下磁盘分区管理 发布时间:2009-04-11 10:29:37来源:红联作者:lvshengming 在Linux下对IDE的设备是以hd命名的,第一个ide设备是hda,第二个是hdb, ...
- linux磁盘分区创建lvm,Linux下磁盘分区与LVM创建
Linux下磁盘分区与LVM创建 1. 在系统上添加2块2G的硬盘 2.进入系统以后用fdisk -l 看看两块磁盘是否存在了, 有了磁盘之后,用fdisk和parted 两个工具对磁盘进行分区,现在 ...
- Linux系统磁盘管理总结
1. Linux系统磁盘管理体系 (1) Linux的磁盘管理主要分为5个步骤: ① 在Linux服务器上添加相应的硬盘(如/dev/sda.sdb.sdc-): ② 对全新的服务器(没有操作系统)做 ...
- Linux命令-磁盘管理(二)
Linux命令-磁盘管理(二) Linux mmount命令 Linux mmount命令用于挂入MS-DOS文件系统. mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内 ...
- Centos下磁盘管理
Centos下磁盘管理 1.磁盘分区格式说明 linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a-d)因为IDE硬盘最多四个,SCSI,SATA,USB ...
- 记一次Linux 下磁盘分配和扩容操作
Linux 下磁盘操作命令 前言 磁盘分区.格式化分区.挂载目录 挂载目录扩容 对原有的磁盘的最后一个分区扩容 对原有的磁盘的剩余空间增加主分区 前言 企业真实场景由于硬盘常年大量读写,经常会出现坏盘 ...
最新文章
- Stream Processing:滑动窗口的聚集(aggregation)操作的优化算法讲解
- Python3 系列之 编程规范篇
- oracle数据库切换教程,oracle 11gR2 物理备用数据库搭建及切换
- *【牛客 - 318B】签到题(单调栈,水题)
- 【文末有福利】艺术创造规则,而不是规则创造艺术
- Python实现计数排序
- 两万字深度介绍分布式系统原理,一篇通透
- sql 在存储过程中使用事务(转)
- 将COleDateTime类型数据转换成char *数据
- struts2的标签中得到JSP脚本的变量值
- 【Python3_进阶系列_013】Python3-实现文件夹文件的过滤
- Hive 中 insert into 与with as连用
- mysql msdtc 不支持_如何解决服务器上的msdtc不可用问题
- 三位数除以两位数竖式计算没有余数_三位数除以两位数竖式
- Cirium称,2020年航空公司准点率表现良好,但客运航班数只有2019年的一半
- 【爬虫】如何解决爬虫爬取图片时遇到百度安全验证的问题?即页面上没有显示图片的源地址,没有img标签,只有div标签
- Android项目:基于Android手机校园外卖订餐系统(计算机毕业设计)
- AD19滴泪添加与删除
- PHP is_file 和file_exists的区别
- java wgs84转西安80_如何将西安80坐标转换为国家2000(或WGS84)坐标系?