阅读 1634

VirtualBox虚拟机硬盘扩容及LVM命令介绍

VirtualBox虚拟机硬盘扩容及LVM命令介绍

文章来源: 陶老师运维笔记- 微信公众号

1. 需求

上篇作者创建了VirtualBox虚拟机,硬盘是20G,使用中发现磁盘空间不够用,希望可再扩容10G至30G。

image.png

2. VirtualBox相关步骤

VirtualBox是一款简单易用还免费的开源虚拟机,VirtualBox软件体积小巧,使用时不会占用太多内存,操作简单。

virtualbox官网: www.virtualbox.org/

2.1 查看虚拟硬盘状态

查看虚拟硬盘状态是否是动态分配。

image.png

若是动态分配,继续,否则操作见www.cnblogs.com/xueweihan/p…

2.2 备份虚拟硬盘(可略)

若数据很重要,最好先备份下*.vdi文件(本文中为CentOS6.vdi)。

cp VirtualBoxVMs/CentOS6/CentOS6.vdi CentOS6.vdi.backup
复制代码

2.3 为Virtualbox虚拟硬盘扩容

对虚拟硬盘扩容,执行如下** vboxmanage resize命令**。

vboxmanage modifyhd "/Users/xx/VirtualBoxVMs/CentOS6/CentOS6.vdi" --resize 30720
复制代码

2.4 Virtualbox调整结果

image.png

3. Gparted相关步骤

GParted是一个Linux系统的磁盘分区工具,适用于ubuntu、centos等系统,它采用X org,轻量级的Fluxbox窗口管理器,用它你可以方便的创建、删除分区,也可以调整分区的大小和移动分区的位置。

Gparted官网: gparted.org/

3.1 Gparted下载

虽然我们为虚拟硬盘扩容了,但guest OS并不能立即使用新增的空间.我们需要用一个Live CD/DVD镜像文件启动虚拟机.这个Live CD/DVD镜像文件要有GParted分区工具以便我们为guest OS的文件系统扩容。

安装: Gparted光盘下载: gparted.org/download.ph…

wget https://downloads.sourceforge.net/gparted/gparted-live-1.0.0-5-amd64.iso . 
复制代码

3.2 用Gparted调整分区大小

把下载的iso文件从光驱启动,就可使用gparted了。 可以看到虚拟硬盘还有没有分配的空间。 扩容步骤: 调整大小-->把其拖动到最大值,应用更改,重启系统。

image.png

4. lvm 扩容步骤

经过Gparted 操作后可把未用磁盘识别了,但是df -hT等命令,显示的磁盘空间仍是不变的。咱们VirtualBox的虚机磁盘是用到LVM技术,还要执行相关命令。

4.1 介绍及概念

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。

官网: wiki.archlinux.org/index.php/L…

LVM - 优点:    LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。

  • 使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。
  • 硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
  • 文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;
  • 文件系统建立在LVM上,可以跨分区,方便使用;

4.1.1 基本概念

基本概念
1、 物理卷-----PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
2、 卷组--------VG(Volumne Group)
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
3、 逻辑卷-----LV(Logical Volume)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
4、 物理区域--PE(Physical Extent)
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
5、 逻辑区域―LE(Logical Extent)
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
6、 卷组描述区域-----(Volume Group Descriptor Area)
卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。
复制代码

4.2 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命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。
复制代码

4.3 LVM扩容实施

4.3.1 检查磁盘情况

经过Gparted 操作后可把未用磁盘识别了,但是df -hT等命令,显示的磁盘空间仍是不变的。

$df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_db01-lv_root
                       18G   15G  1.7G  90% /
tmpfs                 1.9G   76K  1.9G   1% /dev/shm
/dev/sda1             477M   34M  419M   8% /boot

$fdisk -l

Disk /dev/sda: 31.5 GB, 31457280000 bytes
255 heads, 63 sectors/track, 3824 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000854c4

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        3825    30206976   8e  Linux LVM

Disk /dev/mapper/vg_db01-lv_root: 18.8 GB, 18798870528 bytes
255 heads, 63 sectors/track, 2285 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/vg_db01-lv_swap: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

$parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 31.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  525MB   524MB   primary  ext4         boot
 2      525MB   31.5GB  30.9GB  primary               lvm


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_db01-lv_swap: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system     Flags
 1      0.00B  2147MB  2147MB  linux-swap(v1)


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_db01-lv_root: 18.8GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  18.8GB  18.8GB  ext4
复制代码

4.3.2 lvm 扩容操作

操作前:

image.png

LVM扩容:

$lvdisplay
$lvextend -L +9G /dev/mapper/vg_db01-lv_root 
$resize2fs /dev/mapper/vg_db01-lv_root 
复制代码

结果:

image.png

5. 虚拟机硬盘扩容结果

经过Virtualbox扩容,Gparted扩容操作,LVM修改等步骤。最终顺利完成虚拟机硬盘扩容

 $df -hT
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_db01-lv_root
                     ext4    27G   15G   11G  59% /
tmpfs                tmpfs  1.9G  196K  1.9G   1% /dev/shm
/dev/sda1            ext4   477M   34M  419M   8% /boot
复制代码

参考:


陶老师运维笔记

文章分类
阅读
文章标签