虚拟机扩容CPU、内存、磁盘

虚拟机扩容CPU、内存、磁盘

  1. 扩容内存和CPU

#virsh edit vm1


  vm5
  a44be4c9-72fa-46db-a24a-ad52a969a2d3
  16777216
  16777216
  4

修改memory unitcurrentMemory unit来达到修改内存的目的

修改vcpu placement修改cpu个数;

  1. 扩容硬盘,增加新硬盘
  • 创建虚拟磁盘

    #qemu-img create -f qcow2 /data1/vms/vm1-1.qcow2 100G

  • 修改配置

    virsh edit vm1

    增加如下片段,(可以在原来的配置中复制类似的配置,然后修改source file、target dev和slot;





  • 增加硬盘

#lsblk

查看新增的硬盘,使用parted格式化并挂载

#parted /dev/vdb

mklabel gpt

mkpart

data1

xfs

1

-1

q保存

#mkfs.xfs /dev/vdb1

#mkdir /data1

#mount -t xfs /dev/vdb1 /data1

  1. 扩容磁盘,扩容原来的虚拟磁盘,并给/目录

    • 关闭虚拟机

    #virsh shutdown vm1

    • 扩容增加100G

      #qemu-img resize /data1/vms/vm1.qcow2 +100G

      Image resized.

    • 进入虚拟机进行扩容

      #virsh start vm1

      #df -h

      [root@node1 ~]# df -h
      文件系统 容量 已用 可用 已用% 挂载点
      devtmpfs 7.9G 0 7.9G 0% /dev
      tmpfs 7.9G 0 7.9G 0% /dev/shm
      tmpfs 7.9G 8.5M 7.9G 1% /run
      tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
      /dev/mapper/cl-root 13G 2.5G 11G 20% /
      /dev/vdb1 100G 746M 100G 1% /data1
      /dev/vdc1 100G 746M 100G 1% /data2
      /dev/vda1 976M 111M 799M 13% /boot
      tmpfs 1.6G 0 1.6G 0% /run/user/0

      可以看到/dev/vda已经是增加了100G,但是分区没有增加

      #fdisk /dev/vda

      [root@master ~]# fdisk -l
      Disk /dev/vda:115 GiB,123480309760 字节,241172480 个扇区
      单元:扇区 / 1 * 512 = 512 字节
      扇区大小(逻辑/物理):512 字节 / 512 字节
      I/O 大小(最小/最佳):512 字节 / 512 字节
      磁盘标签类型:dos
      磁盘标识符:0x221e0d51

      设备 启动 起点 末尾 扇区 大小 Id 类型
      /dev/vda1 * 2048 2099199 2097152 1G 83 Linux
      /dev/vda2 2099200 31457279 29358080 14G 8e Linux LVM

      Disk /dev/vdb:100 GiB,107374182400 字节,209715200 个扇区
      单元:扇区 / 1 * 512 = 512 字节
      扇区大小(逻辑/物理):512 字节 / 512 字节
      I/O 大小(最小/最佳):512 字节 / 512 字节
      磁盘标签类型:gpt
      磁盘标识符:D6A4E022-57EC-42DD-AFB8-C4865DF3FACF

      设备 起点 末尾 扇区 大小 类型
      /dev/vdb1 2048 209713151 209711104 100G Linux 文件系统

      Disk /dev/vdc:100 GiB,107374182400 字节,209715200 个扇区
      单元:扇区 / 1 * 512 = 512 字节
      扇区大小(逻辑/物理):512 字节 / 512 字节
      I/O 大小(最小/最佳):512 字节 / 512 字节
      磁盘标签类型:gpt
      磁盘标识符:D91F7C3B-06C5-49A5-83A4-3120BE05AB35

      设备 起点 末尾 扇区 大小 类型
      /dev/vdc1 2048 209713151 209711104 100G Linux 文件系统

      Disk /dev/mapper/cl-root:12.5 GiB,13417578496 字节,26206208 个扇区
      单元:扇区 / 1 * 512 = 512 字节
      扇区大小(逻辑/物理):512 字节 / 512 字节
      I/O 大小(最小/最佳):512 字节 / 512 字节

      Disk /dev/mapper/cl-swap:1.5 GiB,1610612736 字节,3145728 个扇区
      单元:扇区 / 1 * 512 = 512 字节
      扇区大小(逻辑/物理):512 字节 / 512 字节
      I/O 大小(最小/最佳):512 字节 / 512 字节
      [root@master ~]# fdisk /dev/vda

      欢迎使用 fdisk (util-linux 2.32.1)。
      更改将停留在内存中,直到您决定将更改写入磁盘。
      使用写入命令前请三思。

      命令(输入 m 获取帮助):m

      帮助:

      DOS (MBR)
      a 开关 可启动 标志
      b 编辑嵌套的 BSD 磁盘标签
      c 开关 dos 兼容性标志

      常规
      d 删除分区
      F 列出未分区的空闲区
      l 列出已知分区类型
      n 添加新分区
      p 打印分区表
      t 更改分区类型
      v 检查分区表
      i 打印某个分区的相关信息

      杂项
      m 打印此菜单
      u 更改 显示/记录 单位
      x 更多功能(仅限专业人员)

      脚本
      I 从 sfdisk 脚本文件加载磁盘布局
      O 将磁盘布局转储为 sfdisk 脚本文件

      保存并退出
      w 将分区表写入磁盘并退出
      q 退出而不保存更改

      新建空磁盘标签
      g 新建一份 GPT 分区表
      G 新建一份空 GPT (IRIX) 分区表
      o 新建一份的空 DOS 分区表
      s 新建一份空 Sun 分区表

      命令(输入 m 获取帮助):n
      分区类型
      p 主分区 (2个主分区,0个扩展分区,2空闲)
      e 扩展分区 (逻辑分区容器)
      选择 (默认 p):p
      分区号 (3,4, 默认 3): 3
      第一个扇区 (31457280-241172479, 默认 31457280):
      上个扇区,+sectors 或 +size{K,M,G,T,P} (31457280-241172479, 默认 241172479):

      创建了一个新分区 3,类型为“Linux”,大小为 100 GiB。

      命令(输入 m 获取帮助):p
      Disk /dev/vda:115 GiB,123480309760 字节,241172480 个扇区
      单元:扇区 / 1 * 512 = 512 字节
      扇区大小(逻辑/物理):512 字节 / 512 字节
      I/O 大小(最小/最佳):512 字节 / 512 字节
      磁盘标签类型:dos
      磁盘标识符:0x221e0d51

      设备 启动 起点 末尾 扇区 大小 Id 类型
      /dev/vda1 * 2048 2099199 2097152 1G 83 Linux
      /dev/vda2 2099200 31457279 29358080 14G 8e Linux LVM
      /dev/vda3 31457280 241172479 209715200 100G 83 Linux

      命令(输入 m 获取帮助):t
      分区号 (1-3, 默认 3): 3
      Hex 代码(输入 L 列出所有代码):8e

      已将分区“Linux”的类型更改为“Linux LVM”。

      命令(输入 m 获取帮助):p
      Disk /dev/vda:115 GiB,123480309760 字节,241172480 个扇区
      单元:扇区 / 1 * 512 = 512 字节
      扇区大小(逻辑/物理):512 字节 / 512 字节
      I/O 大小(最小/最佳):512 字节 / 512 字节
      磁盘标签类型:dos
      磁盘标识符:0x221e0d51

      设备 启动 起点 末尾 扇区 大小 Id 类型
      /dev/vda1 * 2048 2099199 2097152 1G 83 Linux
      /dev/vda2 2099200 31457279 29358080 14G 8e Linux LVM
      /dev/vda3 31457280 241172479 209715200 100G 8e Linux LVM

      命令(输入 m 获取帮助):w
      分区表已调整。
      正在同步磁盘。

      [root@master ~]# pvcreate /dev/vda3
      Physical volume “/dev/vda3” successfully created.
      [root@master ~]# vg
      vgcfgbackup vgck vgdisplay vgimport vgmknodes vgrename vgsplit
      vgcfgrestore vgconvert vgexport vgimportclone vgreduce vgs
      vgchange vgcreate vgextend vgmerge vgremove vgscan
      [root@master ~]# vgdisplay
      — Volume group —
      VG Name cl
      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 1
      Max PV 0
      Cur PV 1
      Act PV 1
      VG Size <14.00 GiB
      PE Size 4.00 MiB
      Total PE 3583
      Alloc PE / Size 3583 / <14.00 GiB
      Free PE / Size 0 / 0
      VG UUID dQL1ug-nmUI-J8Ef-ex4i-qZHo-8Lty-iKhUET

      [root@master ~]# vgextend cl /dev/vda3
      Volume group “cl” successfully extended
      [root@master ~]# lvresize -l +100%free /dev/mapper/cl-root
      Size of logical volume cl/root changed from <12.50 GiB (3199 extents) to 112.49 GiB (28798 extents).
      Logical volume cl/root successfully resized.
      [root@master ~]# xfs_growfs /dev/mapper/cl-root
      meta-data=/dev/mapper/cl-root isize=512 agcount=4, agsize=818944 blks
      = sectsz=512 attr=2, projid32bit=1
      = crc=1 finobt=1, sparse=1, rmapbt=0
      = reflink=1
      data = bsize=4096 blocks=3275776, imaxpct=25
      = sunit=0 swidth=0 blks
      naming =version 2 bsize=4096 ascii-ci=0, ftype=1
      log =internal log bsize=4096 blocks=2560, version=2
      = sectsz=512 sunit=0 blks, lazy-count=1
      realtime =none extsz=4096 blocks=0, rtextents=0
      data blocks changed from 3275776 to 29489152
      [root@master ~]# df -h
      文件系统 容量 已用 可用 已用% 挂载点
      devtmpfs 7.9G 0 7.9G 0% /dev
      tmpfs 7.9G 0 7.9G 0% /dev/shm
      tmpfs 7.9G 8.5M 7.9G 1% /run
      tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
      /dev/mapper/cl-root 113G 5.3G 108G 5% /
      /dev/vdc1 100G 746M 100G 1% /data2
      /dev/vdb1 100G 746M 100G 1% /data1
      /dev/vda1 976M 111M 799M 13% /boot
      tmpfs 1.6G 0 1.6G 0% /run/user/0

遇到的问题:

在扩大容量时,报错:

#qemu-img resize /data1/vms/vm1.qcows +100G

qemu-img: Error resizing image: Invalid argument

使用check命令:

#qemu-img check /data1/vms/vm1.qcows

4 errors were found on the image.
Data may be corrupted, or further writes to the image may corrupt it.

使用以下命令尝试修复

#qemu-img check -r all /data1/vms/vm1.qcow2

Rebuilding refcount structure
Repairing cluster 1 refcount=1 reference=0
The following inconsistencies were found and repaired:

0 leaked clusters
12 corruptions

Double checking the fixed image now…
No errors were found on the image.
41677/245760 = 16.96% allocated, 1.60% fragmented, 0.00% compressed clusters
Image end offset: 2732523520

之后就可以运行扩容命令了。

你可能感兴趣的:(运维)