LVM动态扩展

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

LVM了解

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

查看分区

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

123456789101112131415
[[email protected] ~]# 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

[[email protected] ~]# 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]

分区

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

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

123456789101112131415161718192021222324252627
[[email protected] ~]# 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已结被创建出来了,采取默认值会将剩余所有空间都分到分区中[[email protected] ~]# 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

12345678
[[email protected] ~]# 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)

为新分区创建文件系统

123456789101112131415161718192021222324
[[email protected] ~]# 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, 7962624

Writing inode tables: done                            Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 39 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.

查看卷组信息

123456789101112131415161718192021
[[email protected] ~]# 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

创建新物理卷

12
[[email protected] ~]# pvcreate /dev/sda3  Physical volume "/dev/sda3" successfully created

扩展到卷组

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

查看逻辑分区

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

12345678910111213141516171819202122232425262728293031323334
[[email protected] ~]# 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

扩展容量到逻辑分区

123
[[email protected] ~]# 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

123456
[[email protected] ~]# 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,这就说明大功告成了,再也不用通过重装系统这种蹩脚的方式扩容了

123456
[[email protected] ~]# 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的压缩、删除等操作过程。

原文:大专栏  LVM动态扩展

原文地址:https://www.cnblogs.com/chinatrump/p/11584600.html

时间: 2024-10-09 21:03:43

LVM动态扩展的相关文章

lvm 动态扩展

1.查看未分区磁盘名称: fdisk -l 2.初始化未分区的磁盘(sdb)为物理卷(PV) pvcreate  /dev/sdb (Physical volume "/dev/sdb" successfully created 表示成功) 3.显示现有物理卷信息,并记录现有 "VG NAME "信息 pvdisplay 4.将新建PV添加到已有的VG中 vgextend vg_root /dev/sdb (其中vg_root为现有VG名称) (Volume gro

LVM之动态扩展及缩减,快照(二)

上章已经介绍了LVM 的基本使用方法,现在说一下LVM 的动态扩展,缩减,快照功能. LVM 动态扩展 上次mylv1创建的为4G ,扩展前 首先查看myvg1是否还有剩余空间,如果有就可以直接使用,木有就要再次创建物理卷,并添加到卷组: 查看myvg1 myvg1还有足够的剩余空间,接下来就可以进行mylv1的扩展了,把mylv1扩展到5G 扩展逻辑边界 查看mylv1是否扩展到了5G 缩减LVM 首先查看要缩减的mylv1 是否挂载,如果挂载必须先卸载 首先进行磁盘检查 下面将mylv1缩减

2.lvm动态逻辑卷

Lvm动态逻辑卷 一.             基本概念 LVM 把实际的物理磁盘数据映射到一个简单而灵活的虚拟逻辑存储视图上,藉以控制磁盘资源: 也就是重新考虑了管理文件系统和卷的方法,在文件系统管理中增加了一个额外的抽象层,可以实现虚拟分区或者动态建立一个逻辑卷以及更改卷的大小,允许文件系统跨越磁盘等功能.   物理卷(PV):Physical Volume 硬盘分区或从逻辑上与硬盘分区具有同样功能的设备(如 RAID),是 LVM 的基本存储逻辑块, 和基本的物理存储介质(如分区.磁盘等)

Lvm动态逻辑卷的简单应用

基本概念 LVM 把实际的物理磁盘数据映射到一个简单而灵活的虚拟逻辑存储视图上,藉以控制磁盘资源: 也就是重新考虑了管理文件系统和卷的方法,在文件系统管理中增加了一个额外的抽象层,可以实现虚拟分区或者动态建立一个逻辑卷以及更改卷的大小,允许文件系统跨越磁盘等功能. 物理卷(PV):Physical Volume 硬盘分区或从逻辑上与硬盘分区具有同样功能的设备(如 RAID),是 LVM 的基本存储逻辑块, 和基本的物理存储介质(如分区.磁盘等)不同的是,其中包含有 LVM 管理参数. 卷组(VG

linux系统管理之lvm动态逻辑卷

linux系统管理之Lvm动态逻辑卷 一.            基本概念 LVM把实际的物理磁盘数据映射到一个简单而灵活的虚拟逻辑存储视图上,藉以控制磁盘资源: 也就是重新考虑了管理文件系统和卷的方法,在文件系统管理中增加了一个额外的抽象层,可以实现虚拟分区或者动态建立一个逻辑卷以及更改卷的大小,允许文件系统跨越磁盘等功能.   物理卷(PV):Physical Volume 硬盘分区或从逻辑上与硬盘分区具有同样功能的设备(如RAID),是LVM 的基本存储逻辑块, 和基本的物理存储介质(如分

用 consul + consul-template + registrator + nginx 打造真正可动态扩展的服务架构

在互联网应用领域,服务的动态性需求十分常见,这就对服务的自动发现和可动态扩展提出了很高的要求. Docker 的出现,以及微服务架构的兴起,让众多开源项目开始关注在松耦合的架构前提下,如何基于 Docker 实现一套真正可动态扩展的服务架构. 基本需求 基本的需求包括: 服务启动后要能自动被发现(vs 传统需要手动进行注册): 负载要能动态在可用的服务实例上进行均衡(vs 传统需要静态写入配置): 服务规模要方便进行快速调整(vs 传统需要较长时间的手动调整). 相关项目 服务发现 服务发现的项

NHibernate动态扩展表

NHibernate动态扩展属性小记 http://www.infoq.com/articles/hibernate-custom-fields 的NHibernate实现 因为动态扩展表需要修改hbm.xml文件,所以hbm.xml文件必须放在可编辑的路径中. hibernate.cfg.xml中添加节点 1 <property name="hbm2ddl.auto">update</property> 假设我有一张表Contract,hbm文件如下 1 &l

docker高级应用之动态扩展容器空间大小

docker容器默认的空间是10G,如果想指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件里通过dm.basesize参数指定,比如 docker -d --storage-opt dm.basesize=20G 是指定默认的大小为20G,具体参数可以参考https://github.com/docker/docker/tree/master/daemon/graphdriver/devmapper 上面方法只是真的生成容器的时候进行的,并且修改后需要重启docker,无法

widows server 2003分区动态扩展(vm esxi5.0)

widows server 2003分区动态扩展 环境:vm esxi5.0 windows server 2003 背景:vm esxi5.0有个内部应用服务器,磁盘大小总共90G,C盘21G E盘69G.现在D盘容量不足,需要扩展. 操作步骤: 在vm esxi5.0上给当前磁盘增加容量,如图. 如图,磁盘1原来容量是90G现在增加到了300G,点击确定即可.(我是在虚拟机关闭状态下操作的,开机状态没有试.) 使用diskpart工具扩容. 1.在cmd命令行中输入diskpart命令,进入