Esxi虚拟机磁盘扩容

之前宝塔面板虚拟机手残只分了16G硬盘,后面网站躲开了几个服务器磁盘就满了。尝试进行扩容后发现需要的步骤还是有一些,因此用本文记录扩容步骤。

1 – 为虚拟机创建新磁盘

打开VCSA找到需要扩容的虚拟机:

打开虚拟机设置编辑窗口,并创建添加新的硬盘设备:

2 – 新建分区

在这里我使用XShell作为ssh客户端。我这里需要扩容的虚拟机是CentOS虚拟机,登入界面如下:

首先使用 df -h 查看需要扩容的硬盘:

记录好需要扩容的逻辑卷内核名称 /dev/mapper/cl-root (一般来说 cl 为虚拟卷组名)

在linux系统中有两种分区格式:

  • MBR(Master Boot Record)格式
    • 只能最多有4个主分区
    • 可以创建三个及三个以下主分区和一个拓展分区
    • 拓展分区可以划分为多个逻辑分区
    • 单盘最大容量为2.2TB
    • 引导启动程序最大446KB
    • 分区表为64KB,即 4*(2*8)=4主分区*(起始扇区地址:种植扇区地址)
  • GPT(GUID Partition Table)格式
    • 使用LBA(Logical Block Address)来处理扇区,默认扇区大小512B。
    • 使用34个LBA记录分区信息(MBR则用一个扇区)
    • 磁盘最后43个LBA用于备份扇区信息
    • 因为驱动器每个分区都有一个随机生成的GUID,所以叫GUID分区表
    • GPT分区表结构
      • LBA0(MBR兼容区块):存放446B第一阶段启动引导程序,分区记录表中存放标志GPT格式特殊标志
      • LBA1(GPT 表头记录):记录分区位置大小,备份分区表位置,分区表校验码(CRC32)。
      • LBA2-33(实际分区记录信息处):每个LBA可记录4组分区记录,默认情况下总共可以有4×32=128组分区记录。每组记录占512B/4 = 128B空间,因此单一分区最大容量为 2^(128B/2个地址) x 512B = 2^63 x 1KB = 2^33TB = 8ZB。
      • GPT分区没有主、拓展、逻辑分区概念,每个分区都可以作为主分区,每个分区都可以格式化使用。
      • fdisk 不支持GPT

输入 man fdisk 查看指令手册:

使用命令 fdisk -l 查看硬盘:

可以看到 /dev/sdb就是刚才添加的硬盘。

执行 fdisk /dev/sdb,对新增硬盘进行操作。

输入m查看帮助信息:

输入 p 查看当前硬盘分区:

由于是新增硬盘所以暂时没有任何分区。接下来需要输入 n 新增一个分区。

  • 输入 p 使该硬盘设置为主分区。
  • 用于扩容因此只需要一个分区数分区号为 1
  • 起始和结束扇区直接默认就行(默认为整个硬盘所有可用扇区)

输入 t 更改分区 System id 类型,而后输入 L 列出所有 System id 类型。

查表可知Linux LVM分区 System id 为 8e,并检查结果:

检查无误后,输入 w 将修改写入硬盘。

3 – 硬盘格式化

执行fdisk -l 查看硬盘分区:

将硬盘格式化:

> mkfs.ext4 /dev/sdb1 (注意分区号)

4 – 硬盘扩容

使用 lvm 指令对逻辑卷进行管理。指令具体信息请查看 man lvm

功能Physical Volume管理Volume Group管理Logical Volume管理
scan 扫描pvscanvgscanlvscan
create 创建pvcreatevgcreatelvcreate
display 显示pvdisplayvgdisplaylvdisplay
remove 移除pvremovevgremovelvremove
extend 扩展 vgextendlvextend
reduce 减少 vgreducelvreduce

进行卷扩容需要以下步骤:

  • 创建物理卷PV(初始化分区)
    • pvcreate /新建的磁盘分区
  • 查看虚拟卷组名
    • vgscan
  • 将新建的物理卷PV加入虚拟卷组VG
    • vgextend 虚拟卷组名 /新建的磁盘分区
  • 拓展已有逻辑卷LV
    • lvextend -L +新建磁盘分区大小 /需要扩容的逻辑卷内核名称
  • 检查结果
    • lvdisplay
创建物理卷
扫描虚拟卷组
加入虚拟卷组
拓展逻辑卷
lvdisplay查看结果

此时从硬盘层面上已经完成了扩容,但还需要对文件系统进行扩容。

5 – 文件系统扩容

输出被扩容逻辑卷文件系统格式:

cat /etc/fstab

fstab文件是Linux系统用用于存放文件胸膛静态信息的文件。当系统启动时会自动读取该文件并自动将对应文件系统挂在到指定目录。其中每一行从左至右数据分别代表:文件系统(内核名称) 挂载目录 类型 额外选项 dump pass

上图可以看出文件系统为 xfs 类型,使用 xfs_growfs 进行文件系统扩容:

如果文件系统为 ext 类型则使用:

resize2fs /dev/mapper/xxxxx

6 – 检查结果

从50G扩容至66G,扩容完成。

拓展阅读:

device mapper机制:http://blog.sina.com.cn/s/blog_6237dcca0100hnwb.html

参考书籍:鸟哥的Linux私房菜


v1.0wep 创建文章搜集整理完成

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注