RHEL6.5 LVM使用解析

Linux用户在安装操作系统时,会遇到的一个常见问题就是如何正确地评估各分区大小,以便划分合适的硬盘空间。普通的磁盘分区管理方式在各分区划分好后就无法改变其大小,而当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。或遇到某个分区空间快耗尽时,解决的方法通常是使用符号链接,或者新建目录外挂分区以及使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。其实在Linux下,利用LVM,这些问题都可以迎刃而解,用户在无需停机的情况下就可以方便地调整各个分区大小。

一、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
       如何创建、查看、删除vg
      vgcreate   创建vg             例:vgcreate myvg  /dev/sda{m,n}
      vgs        查看vg信息       例:直接在命令行里输入vgs
      vgdisplay  查看vg详细信息       例:vgdisplay myvg
      vgremove   将vg删除             例:vgremove myvg
       如何扩展vg
       首先准备好一个PV;
       然后使用vgextend 命令即可完成扩展;
       格式: vgextend VG_NAME /PATH/TO/PV
          vgextend testvg /dev/sdb2 扩展myvg卷组,把/dev/sda2加进去
       如何缩减vg
      1)确定要移除的PV;
      2)将此PV上的数据转移至其它PV;
         pvmove /path/ to /pv
      3)从卷组中将此PV移除;
         格式:vgreduce VG_NAME /PATH/TO/PV
         vgreduce testvg /dev/sdb2 缩减myvg卷组,把/dev/sda2去掉
 3、逻辑卷LV
       如何创建、查看、删除lv
      lvcreate   创建lv              例:lvcreate lv1 /dev/myvg
      lvs       查看lv信息          例:直接在命令行里输入lvs
      lvdisplay  查看lv详细信息       例:vgdisplay lv1
      lvremove   将lv 移除            例:lvremove  /dev/myvg/lv1 
       如何扩展lv

确定需要扩展多大空间

确定当前逻辑卷所在的卷组是否有足够的空闲空间;

扩展举例:
1、物理边界
lvextend -L [+]SIZE /path/to/lv
2、逻辑边界
resize2fs /path/to/device

如何缩减lv
确定缩减的大小,但前提是至少能容纳原有的所有数据。
缩减:
1)卸载并强行检测文件系统;
umount /path
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、创建一个分区

[[email protected] ~]# fdisk -l //查看分区的情况 
[[email protected] ~]# 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 //保存 
[[email protected] ~]# partprobe /dev/sda //是系统识别分区(代替重启) 
[[email protected] ~]# mkfs.ext4 /dev/sda5 //格式化新添加的分区

2、PV的创建

[[email protected] ~]# pvcreate /dev/sda5 //创建pv 
Writing physical volume data to disk "/dev/sda5"
Physical volume "/dev/sda5" successfully created 
[[email protected] ~]# pvs //查看当前pv的信息 
PV VG Fmt Attr PSize PFree 
/dev/sda5 lvm2 a-- 1.87G 1.87G

3、VG的创建

[[email protected] ~]# vgcreate vg0 /dev/sda5 //vg0为当前vg的名 
Volume group "vg0" successfully created 
[[email protected] ~]# vgs //查看vg的信息 
VG #PV #LV #SN Attr VSize VFree 
vg0 1 0 0 wz--n- 1.87G 1.87G

4、lv的创建

[[email protected] ~]# lvcreate -L 500M -n lv01 vg0 
Logical volume "lv01" created 
[[email protected] ~]# lvs //查看lv的信息 
LV VG Attr LSize Origin Snap% Move Log Copy% Convert 
lv01 vg0 -wi-a- 500.00M 
[[email protected] ~]# mkfs.ext4 /dev/vg0/lv01 //格式化

5、lv的增大

[[email protected] ~]# lvextend -L +300M /dev/vg0/lv01 //(原来lv大小500M ,拉伸分区到 800M) Extending logical volume lv01 to 800.00 MB 
Logical volume lv01 successfully resized 
[[email protected] ~]# resize2fs /dev/vg0/lv01 //拉伸文件系统 
[[email protected] ~]# 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 
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的关闭

[[email protected] ~]# umount /mnt/lv01 
[[email protected] ~]# lvremove /dev/vg0/lv01 //删除lv 
Do you really want to remove active logical volume lv01? [y/n]: y 
Logical volume "lv01" successfully removed 
[[email protected] ~]# vgchange -a n vg0 //使vg0不具有active标志 
0 logical volume(s) in volume group "vg0" now active 
[[email protected] ~]# vgremove vg0 //删除vg 
Volume group "vg0" successfully removed 
[[email protected] ~]# pvremove /dev/sda5 //删除pv 
Labels on physical volume "/dev/sda5" successfully wiped

五、扩展根分区和SWAP

[[email protected] ~]# pvs

PV         VG       Fmt  Attr PSize   PFree

/dev/sda3  vg_zkdb1 lvm2 a--  557.46g 521.46g

[[email protected] ~]# lvs

LV   VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

root vg_zkdb1 -wi-ao---- 20.00g

swap vg_zkdb1 -wi-ao---- 16.00g

[[email protected] ~]# lvcreate -L 30720M vg_zkdb1

Logical volume "lvol0" created

[[email protected] ~]# lvs

LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

lvol0 vg_zkdb1 -wi-a----- 30.00g

root  vg_zkdb1 -wi-ao---- 20.00g

swap  vg_zkdb1 -wi-ao---- 16.00g

[[email protected] ~]# lvextend -L +30G /dev/mapper/vg_zkdb1-root

Extending logical volume root to 50.00 GiB

Logical volume root successfully resized

[[email protected] ~]# e2fsck -f /dev/mapper/vg_zkdb1-root

e2fsck 1.41.12 (17-May-2010)

/dev/mapper/vg_zkdb1-root is mounted.

e2fsck: Cannot continue, aborting.

[[email protected] ~]# lvs

LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

lvol0 vg_zkdb1 -wi-a----- 30.00g

root  vg_zkdb1 -wi-ao---- 50.00g

swap  vg_zkdb1 -wi-ao---- 16.00g

[[email protected] ~]# resize2fs /dev/mapper/vg_zkdb1-root

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/mapper/vg_zkdb1-root is mounted on /; on-line resizing required

old desc_blocks = 2, new_desc_blocks = 4

Performing an on-line resize of /dev/mapper/vg_zkdb1-root to 13107200 (4k) blocks.

The filesystem on /dev/mapper/vg_zkdb1-root is now 13107200 blocks long.

扩展SWAP

[[email protected] ~]# lvs

LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

lvol0 vg_zkdb1 -wi-a----- 30.00g

root  vg_zkdb1 -wi-ao---- 50.00g

swap  vg_zkdb1 -wi-ao---- 16.00g

[[email protected] ~]# lvextend -L +16G /dev/mapper/vg_zkdb1-swap

Extending logical volume swap to 32.00 GiB

Logical volume swap successfully resized

[[email protected] ~]# e2fsck -f /dev/mapper/vg_zkdb1-swap

e2fsck 1.41.12 (17-May-2010)

/dev/mapper/vg_zkdb1-swap is mounted.

e2fsck: Cannot continue, aborting.

[[email protected] ~]# resize2fs /dev/mapper/vg_zkdb1-swap

resize2fs 1.41.12 (17-May-2010)

resize2fs: Bad magic number in super-block while trying to open /dev/mapper/vg_zkdb1-swap

Couldn‘t find valid filesystem superblock.

[[email protected] ~]# lvs

LV    VG       Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

lvol0 vg_zkdb1 -wi-a----- 30.00g

root  vg_zkdb1 -wi-ao---- 50.00g

swap  vg_zkdb1 -wi-ao---- 32.00g

时间: 2024-10-07 14:45:17

RHEL6.5 LVM使用解析的相关文章

Linux01-企业核心技术之逻辑卷LVM深入解析和实战36

一.扩展逻辑卷 1.lvextend-L [+]# /PATH/TO/LV,[+]表示扩展到:#表示扩展至: a)扩展逻辑卷的风险较小,可在线扩展: 2.resize2fs:扩展到和物理边界一样大 a)命令格式:resize2fs -p /PATH/TO/LV 如:lvcreate -L 2G -n testlv myvg mke2fs -j /dev/myvg/testlv mkdir users mount /dev/myvg/testlv /users mount lvextend -L

Linux之LVM 之见解带案例

LVM 逻辑卷管理LVM是硬盘的一个系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑"卷,而不是直接使用物理硬盘.可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据.可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷.LVM并不需要重启就可以让内核知道分区的存在. LVM在线解析:http://baike.baidu.com/view/361916.htm?fr=a

SaltStack(一)-- SaltStack介绍及CentOS 6.7安装SaltStack

一.SaltStack介绍 SaltStack是一个开源Apache 2.0 license的基于Python开发的配置管理系统及分布式远程执行工具. Salt有local.Master/Minion.Salt SSH三种工作模式可以适用不同的使用环境.通常采用master/minion模式这种模式扩展方便部署灵活支持单IDC部署及跨IDC部署单个Master最好管理小于1000台minion可以采用Sydnic进行扩展. Salt采用ZeroMQ保证命令发送到远程系统是并行而非串行.使用公钥和

RHEL6.5 配置 RAID5下的 LVM卷

安装mdadm 挂载RHEL6.5的安装光盘 [[email protected] ~]# mount /dev/cdrom/mnt/cdrom/ mount: block device /dev/sr0 iswrite-protected, mounting read-only [[email protected] ~]# cd /mnt/cdrom/Packages/ 使用rpm命令安装mdadm [[email protected] Packages]# rpm -ivhmdadm-3.2

《搭建DNS内外网的解析服务》RHEL6

首先说下: 搭建的这个dns内外网的解析,是正向解析,反向解析自己根据正向解析把文件颠倒下就ok了 第一步我们先搭建一个DNS的正反向解析(参考上篇DNS正反向解析,这是上篇做过的) 第二部才是搭建内外网的DNS正向解析: DNS服务器端 要注意的步骤:1.首先我们搭建DNS服务器,IP建议最好静态的,否则不好解析. 2.我们的DNS服务器不需要给自己配解析,因为它就是解析服务器: 我们的外网需不需要配置解析,需要,因为它要使用DNS服务器来解析自己访问的服务. DNS服务器端的搭建:(下面的是

RHEL6.1 安装 Oracle10gr2 (图文、解析)

目录 目录 软件环境 前言 初始化RHEL61 硬件检测 预安装软件包 安装oratoolkit 创建Oracle用户 修改配置文件 系统版本伪装 解压并运行Oracle10gr2安装包 安装rlwrap实用工具 最后 软件环境 操作系统 RHEL6.1 内存 2G Swap 4G /tmp 2G LANG=en_US.UTF-8 软件 Oracle10gR2 OraToolkit 前言 Oracle的学习从安装开始,尤其是在Linux上的安装会相对复杂一些.连写了3篇Oracle的安装博客,也

LVM解析

一.什么是LVM? LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可 能就会带来很大的麻烦.使用LVM在一定程度上就可以解决普通磁盘分区带来的问题. dm模块:device mapper 设备映射组件,能够将一个或者多个

解析Linux中LVM与磁盘配额

LVM 逻辑卷管理 LVM 概述 LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上.文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性. 要建立 LVM 分区管理机制,首先,将普通分区或整个硬盘创建为物理卷:然后,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组:最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷.逻辑卷才是最终用户可以格

Linux实战第一篇:Centos6.9/RHEL6.9详细安装攻略(LVM)

个人笔记分享(在线阅读): http://note.youdao.com/noteshare?id=bb2ad6216bff8cddaa3e360c76392c9b PDF版本下载 http://down.51cto.com/data/2321269