LVM使用实例

LVM,即Logical Volume Manager,区别于章文嵩博士创作的LVS(Linux Virtual Server)。前者用于磁盘分区管理,而后者是一款运行在四层的负载均衡软件。

先说操作,再做介绍

新建、扩展和缩减LVM卷(常用)

操作场景:主机新增一块硬盘,缩减/home目录空间,扩展/目录空间,为/usr新增分区

  1. 新硬盘创建pv
[root@localhost ~]# pvcreate /dev/sdc 
  Physical volume "/dev/sdc" successfully created
  1. 将pv加入的vg
[root@localhost ~]# vgextend VolGroup /dev/sdc 
  Volume group "VolGroup" successfully extended
  1. 缩减/home空间
    缩减五步走:卸载分区—检查分区—重设分区大小—缩减lv大小—挂载分区
[root@localhost ~]# umount /home
[root@localhost ~]# e2fsck -f /dev/VolGroup/lv_home 
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/VolGroup/lv_home: 11/65280 files (0.0% non-contiguous), 8523/261120 blocks
[root@localhost ~]# resize2fs /dev/VolGroup/lv_home 200M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/VolGroup/lv_home to 51200 (4k) blocks.
The filesystem on /dev/VolGroup/lv_home is now 51200 blocks long.
[root@localhost ~]# lvreduce -L 200M /dev/mapper/VolGroup-lv_home 
  WARNING: Reducing active logical volume to 200.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce VolGroup/lv_home? [y/n]: y
  Size of logical volume VolGroup/lv_home changed from 1020.00 MiB (255 extents) to 200.00 MiB (50 extents).
  Logical volume lv_home successfully resized.
[root@localhost ~]# mount /home
  1. 扩展/目录空间
    两步走:扩展lv—重设分区大小
[root@localhost ~]# lvextend -L +800M /dev/VolGroup/lv_root 
  Size of logical volume VolGroup/lv_root changed from 8.51 GiB (2178 extents) to 9.29 GiB (2378 extents).
  Logical volume lv_root successfully resized.
[root@localhost ~]# resize2fs /dev/VolGroup/lv_root 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/VolGroup/lv_root to 2435072 (4k) blocks.
The filesystem on /dev/VolGroup/lv_root is now 2435072 blocks long.
  1. 为/usr/test挂载新分区
    四步走:新建lv—格式化分区—修改/etc/fstab(保证操作系统开机能自动挂载分区)—挂载分区
[root@localhost ~]# lvcreate -l 100%free -n lv_usr_test VolGroup
  Logical volume "lv_usr_test" created.
[root@localhost ~]# mkfs.ext4 /dev/VolGroup/lv_usr_test 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
66672 inodes, 266240 blocks
13312 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=272629760
9 block groups
32768 blocks per group, 32768 fragments per group
7408 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# vi /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Apr 18 15:50:05 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=5f76841a-7d60-4da2-9db1-7c6356bc3812 /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/mapper/VolGroup-lv_home /home                   ext4    defaults        0 0
/dev/mapper/VolGroup-lv_usr_test /usr/test                   ext4    defaults        0 0
[root@localhost ~]# mount /usr/test

此处应该可以介绍一下LVM的原理了

LVM原理其实很简单,LVM是为了解决传统的物理分区难以扩展和更改的问题而产生的工具。LVM其实是在物理分区和挂载目录之间插入一层,将传统的物理分区—挂载目录的模式改变为物理分区(或磁盘)—PV—VG—LV—挂载目录。

LVM模型

PV即Physical Volume,它可以是一整块磁盘,或者磁盘上的一块分区,又或者是raid卡创建的raid卷,这类相同功能的设备使用pvcreate命令加上一些LVM管理参数后形成PV。
VG即Volume Group,类似于传统磁盘挂载模式下的物理磁盘,一个或多个PV组成一个VG,然后在VG上创建LV。
LV即Logical Volume,LVM模式下最终挂载到目录下的分区,类似传统模式下的物理分区。
了解以上的内容,也就能理解LVM挂载新硬盘的步骤了:硬盘创建PV—加入或新建VG—创建LV—格式化LV—挂载到目录
这里还有个知识点,就是PE和LE:PE即Physical Extent,物理块,是PV中最小寻址单位;LE即Logical Extent,逻辑块,是LV中的最小寻址单位。同一个VG中的PE和LE必须是相同的。

再围绕上面的内容扯点相关的

LVM的常用命令

pvcreate、vgcreate、lvcreate:pv、vg、lv创建
pvdisplay、vgdisplay、lvdisplaly:显示pv、vg、lv详细属性信息
pvs、vgs、lvs:显示pv、vg、lv使用情况
pvscan、vgscan、lvscan:查询系统中所有pv、vg、lv
vgremove、lvremove:vg、lv删除
vgextend、lvextend:扩展vg、lv大小
vgreduce、lvreduce:将pv从vg中删除、缩减lv大小
pvmove:将一个pv中的数据转移到另一个pv中
小知识点,上面命令涉及到大小时,-l后面跟pe(或le)数量或给定百分比(100%free表示使用全部可用空间),-L 后面跟容量(200M、2G等)。
至于上面这些命令具体参数,自己--help或者man一下好吗

关于/etc/fstab

内核在启动过程中会读取/etc/fstab文件中的配置来自动挂载磁盘。这样将LVM创建的逻辑卷或物理磁盘分区的挂载信息写入这个文件后我们就不需要每次开机之后手动挂载了。

[root@localhost ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Apr 18 15:50:05 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=5f76841a-7d60-4da2-9db1-7c6356bc3812 /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/mapper/VolGroup-lv_home /home                   ext4    defaults        0 0

如上所示,此文件中的分区挂载信息有6列:

  • 第一列:device,磁盘或者LVM分区的设备文件(label)或者UUID
  • 第二列:Mount point,挂载点,就是要挂载的目录
  • 第三列:filesystem,磁盘文件系统的格式,如ext2、ext3、ext4等
  • 第四列:parameters,文件系统参数
参数 解释
Async/sync 设置文件系统异步/同步方式运行,默认为async,异步方式会先将内容保存至缓存再写入,性能较好;同步方式直接将内容写入硬盘,可以防止非正常关机破坏文件系统
auto/noauto 开机时此文件系统是否被主动挂载。默认为auto
rw/ro 是否以以只读或者读写模式挂载
exec/noexec 此文件系统是否有执行权限
user/nouser 是否允许用户使用mount命令挂载
suid/nosuid 是否允许SUID的存在
Usrquota 启动文件系统支持磁盘配额模式
Grpquota 启动文件系统对群组磁盘配额模式的支持
Defaults 同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
  • 第五列和第六列:是否被dump命令备份和开机时是否用fsck检验文件系统完整性。0表示否,1表示是。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容