Linux系统磁盘管理(lvm逻辑卷管理)
linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间;普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。(参考百度百科)
逻辑卷的缺点:
- 逻辑卷主要的作用就是动态管理分区的大小,但是现在市场上的磁盘已经很廉价了,我们完全可以分配合适的磁盘空间。
- 在磁盘直接分区是属于直接在磁盘上建立文件系统,而逻辑卷是建立磁盘和文件系统之间的标识,所以当线上服务器的磁盘坏了,数据恢复有很大的风险
- 逻辑卷的数据读写的速度也是有些慢的
- 逻辑卷容易丢数据
1、LVM常用的术语:
- 物理存储介质(The physical media):LVM存储介质可以是磁盘分区,整个磁盘,RAID阵列或SAN磁盘,设备必须初始化为LVM物理卷,才能与LVM结合使用;
- 物理卷PV(physical volume) :物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;
- 卷组VG(Volume Group) :一个LVM卷组由一个或多个物理卷组成;
- 逻辑卷LV(logical volume) :LV建立在VG之上,可以在LV之上建立文件系统;
- PE(physical extents) :PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB;
- LE(logical extent) : LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应;
2、常用的LVM部署命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
xfs文件系统管理常用命令
命令 | 作用 |
---|---|
xfs_admin | 调整 xfs 文件系统的各种参数 |
xfs_copy | 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式) |
xfs_db | 调试或检测 xfs 文件系统(查看文件系统碎片等) |
xfs_check | 检测 xfs 文件系统的完整性 |
xfs_bmap | 查看一个文件的块映射 |
xfs_repair | 尝试修复受损的 xfs 文件系统 |
xfs_fsr | 碎片整理 |
xfs_quota | 管理 xfs 文件系统的磁盘配额 |
xfs_metadump | 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中 |
xfs_mdrestore | 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统 |
xfs_growfs | 调整一个 xfs 文件系统大小(只能扩展) |
xfs_freeze | 暂停(-f)和恢复(-u)xfs 文件系统 |
xfs_logprint | 打印xfs文件系统的日志 |
xfs_mkfile | 创建xfs文件系统 |
xfs_info | 查询文件系统详细信息 |
xfs_ncheck | generate pathnames from i-numbers for XFS |
xfs_rtcp | XFS实时拷贝命令 |
xfs_io | 调试xfs I/O路径 |
LVM常用命令
1、 物理卷命令
一般维护命令:
pvscan #在系统的所有磁盘中搜索已存在的物理卷
pvdisplay 物理卷全路径名称 #用于显示指定物理卷的属性。
pvdata 物理卷全路径名称 #用于显示物理卷的卷组描述区域信息,用于调试目的。
pvchange Cx|--allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令
pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。
pvmove 源物理卷全路径我[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。
2、 卷组命令
一般维护命令
vgscan #检测系统中所有磁盘
vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。
vgdisplay [卷组名] #显示卷组的属性信息
vgrename 原卷组名 新卷组名
vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配
vgchange -l 最大逻辑卷数 #卷组可容纳最大逻辑卷数
vgchange -x y|n [卷组名] #卷是否有效
vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令
vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中必得指定物理卷的信息卷组的建立与删除命令
vgcreate 卷组名 物理卷全路径名[物理卷全路径名]
vgmove 卷组名
卷组的扩充与缩小命令
vgextend 卷组名 物理卷全路径名[物理卷全路径名]
vgreduce 卷组名 物理卷全路径名[物理卷全路径名]
卷组的合并与拆分
vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。
vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]
卷组的输入与输出命令
vgexport 卷组名
vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]
3、 逻辑卷命令
一般命令
lvscan
lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
lvrename 卷组名 旧逻辑卷名 新逻辑卷名
lvchange
e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名
逻辑卷的创建与删除命令
lvcreate
lvremove
逻辑卷的扩充与缩小命令
lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名
lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名
4、 逻辑卷管理命令
lvmdiskscan #检测所有的SCSI、IDE等存储设备
lvmchange -R|--reset #复位逻辑卷管理器
lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。
lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。
3、LVM逻辑卷部署
物理卷 --> 卷组 --> 逻辑卷
①. 创建物理卷
pvcreate /dev/sd{b,c}
②. 创建卷组
vgcreate vg_du /dev/sd{b,c}
③. 创建逻辑卷
lvcreate -n lv_du -L 500M vg_ken
④. 格式化
mkfs.xfs /dev/vg_du/lv_du
⑥. 挂载使用
mount /dev/vg_du/lv_du /test
注意:卸载命令umount
后面跟挂载点或者磁盘都可以
LVM扩容
lvextend -L +300M /dev/vg_du/lv_du
lvextend -L 800M /dev/vg_du/lv_du
xfs_growfs /dev/vg_du/lv_du
演示:
#第一步:添加磁盘并查看
╭─root@localhost.localdomain ~
╰─➤ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc
#第二步:创建物理卷
╭─root@localhost.localdomain ~
╰─➤ pvcreate /dev/sd{b,c} 5 ↵
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
#第三步:创建卷组
╭─root@localhost.localdomain ~
╰─➤ vgcreate vg_du /dev/sd{b,c}
Volume group "vg_du" successfully created
#第四步:创建逻辑卷并格式化逻辑卷
╭─root@localhost.localdomain ~
╰─➤ man lvcreate #开手册查看用法,常用option:-l -L -n
╭─root@localhost.localdomain ~
╰─➤ lvcreate -L 1G -n lv_du1 vg_du #-L:size 大小 -n:name 名字
Logical volume "lv_du1" created.
╭─root@localhost.localdomain ~
╰─➤ mkfs.xfs /dev/vg_du/lv_du1
meta-data=/dev/vg_du/lv_du1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
╭─root@localhost.localdomain ~
╰─➤ lvcreate -l 250 -n lv_du2 vg_du #-l :数量
Logical volume "lv_du2" created.
╭─root@localhost.localdomain ~
╰─➤ mkfs.xfs /dev/vg_du/lv_du2
meta-data=/dev/vg_du/lv_du2 isize=512 agcount=4, agsize=64000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=256000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#第五步:挂载
╭─root@localhost.localdomain ~
╰─➤ mkdir /du1
╭─root@localhost.localdomain ~
╰─➤ mkdir /du2
╭─root@localhost.localdomain ~
╰─➤ mount /dev/vg_du/lv_du1 /du1
╭─root@localhost.localdomain ~
╰─➤ mount /dev/vg_du/lv_du2 /du2
╭─root@localhost.localdomain ~
╰─➤ df #查询挂载成功
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/cl-root 17811456 4837880 12973576 28% /
devtmpfs 484108 0 484108 0% /dev
tmpfs 499968 144 499824 1% /dev/shm
tmpfs 499968 7228 492740 2% /run
tmpfs 499968 0 499968 0% /sys/fs/cgroup
/dev/sda1 1038336 176600 861736 18% /boot
tmpfs 99996 16 99980 1% /run/user/0
/dev/sr0 4276440 4276440 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_du-lv_du1 1038336 32944 1005392 4% /du1
/dev/mapper/vg_du-lv_du2 1020580 32944 987636 4% /du2
#第六步:开机自启
╭─root@localhost.localdomain ~
╰─➤ echo "/dev/mapper/vg_du-lv_du1 /du1 xfs defaults 0 0" >> /etc/fstab
╭─root@localhost.localdomain ~
╰─➤ echo “mount /dev/vg_du/lv_du2 /du2” >> /etc/rc.local
╭─root@localhost.localdomain ~
╰─➤ chmod +x /etc/rc.local #给个执行权限
# /etc/rc.local
是使用者自订开机启动程序的文件,把需要开机自动运行的程序写在这个脚本里
Linux系统磁盘管理(lvm逻辑卷管理)的更多相关文章
- linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列
磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...
- LVM逻辑卷管理测试——创建逻辑卷
虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...
- 【转载】Linux磁盘管理:LVM逻辑卷管理
Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...
- 【Linux】LVM 逻辑卷管理
LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...
- 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍
目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...
- Linux之LVM逻辑卷管理
LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...
- CentOS LVM逻辑卷管理
在CentOS 挂载(U盘NTFS格式,新硬盘,增加交换分区,扩展根分区等)中扩展根分区部分用的就是LVM逻辑卷管理来进行扩展的. 1.为什么会有逻辑卷管理 传统磁盘管理是直接对硬盘分区进行访问,你如 ...
- linux运维基础知识-系统分区及LVM逻辑卷的创建
系统分区及LVM逻辑卷的创建 分区 创建逻辑卷 LVM简介:逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图 ...
- 18 LVM逻辑卷管理
根据上一节的内容,我们知道md这个内核模块可以用来做软RAID的管理.同时RAID实现了两个功能:1.提高了磁盘的读写能力:2.对于数据进行了冗余备份: 但是,如果是管理员手动误删的数据,则一样无法找 ...
- CentOS下LVM逻辑卷管理技术解释
1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下 ...
随机推荐
- Asp.net Core 2.0 实现Cookie会话
与1.0版本相比微软做了一些调整.详细请参考官方文档,我这里就讲2.0的吧 1.首先要在 根目录下 Startup.cs 类中启用 cookie会话,有两处要配置 第一处在 public void ...
- UML第二次结对作业
|作业要求|https://edu.cnblogs.com/campus/fzzcxy/2018SE1/homework/11250| | ---------- | ----------------- ...
- 使用docker制作Mysql镜像
一.过程说明 通过Dockerfile创建mysql镜像,使用的mysql软件包为mariadb二进制分发版,最终在宿主机启动mysql容器从而能在mysql容器外部访问mysql服务. 宿主机IP ...
- 新建虚拟机ping不通windows主机,windows主机ping不通虚拟机解决办法(图文)
说明: 新建虚拟机和主机互ping不通,因此使用xhell等远程连接工具连接不上 解决办法:配置的时候注意网段 2.修改 /etc/sysconfig/network-scripts/ifcfg- ...
- linux kernel操作GPIO函数
一.头文件 #include <asm/gpio.h> 二.注册 GPIO int gpio_request(unsigned gpio, const char *label) 功能:申请 ...
- 【Nginx学习笔记】-初识Nginx
Nginx 目录 Nginx Nginx 特点 Nginx 基本功能 Nginx 使用场景 Nginx 安装/卸载 Docker 方式运行 Ubuntu上安装 卸载Nginx Nginx 命令 Ngi ...
- oracle 11.2.0.1.0 升级 11.2.0.4.0 并 patch 到11.2.0.4.7
升级步骤: (1) 备份数据库 (2) 运行patchset,升级oracle 软件 (3) 准备新的ORACLE_HOME (4) 运行dbua 或者脚本升级实例 (5) ...
- 九:APP及其他资产
APP提取一键反编译提取 APP抓数据包进行工具配合 各种第三方应用相关探针技术 各种服务器接口相关探针技术 APP提取及抓包及后续配合 某APK一键提取反编译 利用burp历史抓更多URL 某IP无 ...
- 【Linux】Centos7 安装redis最新稳定版及问题解决
------------------------------------------------------------------------------------------------- | ...
- k8s集群中遇到etcd集群故障的排查思路
一次在k8s集群中创建实例发现etcd集群状态出现连接失败状况,导致创建实例失败.于是排查了一下原因. 问题来源 下面是etcd集群健康状态: 1 2 3 4 5 6 7 8 9 10 11 [roo ...