博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LVM动态扩展
阅读量:6715 次
发布时间:2019-06-25

本文共 6748 字,大约阅读时间需要 22 分钟。

<center>LVM Space Expansion</center>

在平时的开发工作中,经常会创建磁盘不足够大的虚拟机,然后往集群里面写一些数据导致磁盘满了。手动编辑虚拟机的磁盘大小是不会文件系统识别的,大多数同学只能无奈的重新装OS,这里我介绍一种基于LVM实现动态的方式。

原文地址:

LVM了解

LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

查看分区

当前默认只有一个采用lvm的分区,一开始sda磁盘容量为16G,后来发现不够用了,编辑磁盘大小为50G,但是可以发现这50G并没有起到扩展分区容量的效果。

[root@tony-play ~]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/vg_tonyplay-lv_root                       14G  3.4G  9.6G  26% /tmpfs                 1.9G   72K  1.9G   1% /dev/shm/dev/sda1             477M   42M  410M  10% /boot[root@tony-play ~]# lsblkNAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsr0                             11:0    1 1024M  0 rom  sda                              8:0    0   50G  0 disk ├─sda1                           8:1    0  500M  0 part /boot└─sda2                           8:2    0 15.5G  0 part   ├─vg_tonyplay-lv_root (dm-0) 253:0    0 13.9G  0 lvm  /  └─vg_tonyplay-lv_swap (dm-1) 253:1    0  1.6G  0 lvm  [SWAP]

分区

可以通过新增一块其他磁盘来扩容,我这边采取的是增大当前磁盘的容量实现扩容。

有时候因为系统设备处于繁忙状态,所以分区需要重启后才会生效。

[root@tony-play ~]# fdisk /dev/sdaWARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): nCommand action    e   extended    p   primary partition (1-4)pPartition number (1-4): 3First cylinder (2089-6527, default 2089):   // 直接回车,用默认值就可以了Using default value 2089Last cylinder, +cylinders or +size{K,M,G} (2089-6527, default 6527):    // 直接回车,用默认值就可以了Using default value 6527Command (m for help): wThe partition table has been altered!# 可以看到新建的分区sda3已结被创建出来了,采取默认值会将剩余所有空间都分到分区中[root@tony-play ~]# lsblkNAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsr0                             11:0    1 1024M  0 rom  sda                              8:0    0   50G  0 disk ├─sda1                           8:1    0  500M  0 part /boot├─sda2                           8:2    0 15.5G  0 part │ ├─vg_tonyplay-lv_root (dm-0) 253:0    0 13.9G  0 lvm  /│ └─vg_tonyplay-lv_swap (dm-1) 253:1    0  1.6G  0 lvm  [SWAP]└─sda3                           8:3    0   34G  0 part

查看当前文件系统

当前文件系统为ext4

[root@tony-play ~]# mount/dev/mapper/vg_tonyplay-lv_root on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

为新分区创建文件系统

[root@tony-play ~]# sudo mkfs.ext4 /dev/sda3mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks2228224 inodes, 8912727 blocks445636 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=4294967296272 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:     32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,     4096000, 7962624Writing inode tables: done                            Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 39 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.

查看卷组信息

[root@tony-play ~]# vgdisplay  --- Volume group ---  VG Name               vg_tonyplay     // 卷组名在下面扩展中会用到  System ID               Format                lvm2  Metadata Areas        1  Metadata Sequence No  3  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                2  Open LV               2  Max PV                0  Cur PV                1  Act PV                1  VG Size               15.51 GiB  PE Size               4.00 MiB  Total PE              3970  Alloc PE / Size       3970 / 15.51 GiB  Free  PE / Size       0 / 0     VG UUID               Y9usSM-nDU5-ZAUd-Y3Te-u5Pd-uFBr-gcYHf0

创建新物理卷

[root@tony-play ~]# pvcreate /dev/sda3  Physical volume "/dev/sda3" successfully created

扩展到卷组

vgextend vg_tonyplay /dev/sda3  // 卷组名在查看卷组信息中  Volume group "vg_tonyplay" successfully extended

查看逻辑分区

/dev/vg_tonyplay/lv_root就是根分区,也是我们要扩展的分区。

[root@tony-play ~]# lvdisplay   --- Logical volume ---    LV Path                /dev/vg_tonyplay/lv_root   // 根分区    LV Name                lv_root    VG Name                vg_tonyplay    LV UUID                IPd7lm-Sx8g-pe7k-llNL-j1wc-mbA2-2cAdsy    LV Write Access        read/write    LV Creation host, time tony-play, 2017-04-10 17:58:53 -0400    LV Status              available    # open                 1    LV Size                13.91 GiB    Current LE             3561    Segments               1    Allocation             inherit    Read ahead sectors     auto    - currently set to     256    Block device           253:0    --- Logical volume ---    LV Path                /dev/vg_tonyplay/lv_swap    LV Name                lv_swap    VG Name                vg_tonyplay    LV UUID                qX637q-iD6i-8blp-hmmS-MvLy-xZ0y-b4D0BF    LV Write Access        read/write    LV Creation host, time tony-play, 2017-04-10 17:59:07 -0400    LV Status              available    # open                 1    LV Size                1.60 GiB    Current LE             409    Segments               1    Allocation             inherit    Read ahead sectors     auto    - currently set to     256    Block device           253:1

扩展容量到逻辑分区

[root@tony-play ~]# lvextend /dev/vg_tonyplay/lv_root /dev/sda3  Size of logical volume vg_tonyplay/lv_root changed from 13.91 GiB (3561 extents) to 47.91 GiB (12264 extents).  Logical volume lv_root successfully resized

刷新逻辑分区容量使扩展生效

ext4resize2fsxfsxfs_growfs

[root@tony-play ~]# resize2fs /dev/vg_tonyplay/lv_rootresize2fs 1.41.12 (17-May-2010)Filesystem at /dev/vg_tonyplay/lv_root is mounted on /; on-line resizing requiredold desc_blocks = 1, new_desc_blocks = 3Performing an on-line resize of /dev/vg_tonyplay/lv_root to 12558336 (4k) blocks.The filesystem on /dev/vg_tonyplay/lv_root is now 12558336 blocks long.

查看逻辑分区容量

可以发现/dev/mapper/vg_tonyplay-lv_root已经从开始的14G扩展到了48G。ok,这就说明大功告成了,再也不用通过重装系统这种蹩脚的方式扩容了

[root@tony-play ~]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/vg_tonyplay-lv_root                       48G  3.4G   42G   8% /tmpfs                 1.9G   72K  1.9G   1% /dev/shm/dev/sda1             477M   42M  410M  10% /boot

小结

至此,lvm扩容工作的过程应该是比较清楚了,之后有机会的话我会再补充一下LVM的压缩、删除等操作过程。

转载地址:http://alelo.baihongyu.com/

你可能感兴趣的文章
JQuery实现简单的服务器轮询效果
查看>>
幽灵漏洞(GHOST)影响大量Linux操作系统及其发行版(更新修复方案)
查看>>
Sunday算法
查看>>
netstat
查看>>
优朋普乐:OTT正重构电视版图
查看>>
遇到"process launch failed: Security"问题,解决的一种方法
查看>>
Ubuntu 14.04 LTC 有线网络——网线不识别,灯不亮问题
查看>>
Unity3D DLL加密
查看>>
求数组中最长递增子序列
查看>>
Spring Boot cache backed redis
查看>>
有趣的编程----控制自己电脑的CPU
查看>>
linux的目录结构
查看>>
Java中创建对象的5种不同方法
查看>>
Supervisor安装
查看>>
自建框架知识点一命名空间和自动加载
查看>>
21_css布局2_浮动布局.html
查看>>
DateUtils 单元下的公用函数目录
查看>>
构建高效安全的Nginx Web服务器
查看>>
jQuery 练习[二]: 获取对象(1) - 基本选择与层级
查看>>
GNS3桥接真机网卡
查看>>