osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

PVE_LXC_CT_VM_虚拟机的空间扩容

转载注明来源: 本文链接 来自osnosn的博客,写于 2023-04-12.

参考

查看

  • 物理磁盘,被分区。
    • 然后用pvcreate,将物理分区创建为PV,PV是由若干个PE组成。
      PE为物理扩展块。相当于一个block。
    • 用vgcreate,把PV组合成 VG。VG就是个虚拟大磁盘。
    • 用 lvcreate,从VG中划分一部分,创建一个虚拟分区 lv。
    • 然后 格式化 lv 分区,创建文件系统。使用 lv 分区。
    • 或者,用lvcreate --size xx --thinpooll poolName VGname 在VG上创建 精简卷池 thin-pool。
    • 然后用lvcreate --thin --size xx -name lvName VGname/poolName,创建虚拟分区 精简卷 thinLV。
    • 然后 格式化 thinLV,创建文件系统,使用 thinLV。
  • 查看物理硬盘上,物理分区中的剩余空间, pvs 显示剩余空间大小。
    pvdisplay 显示 剩余的 PE 数量。
  • 查看虚拟大磁盘 VG 的剩余空间, vgs 显示剩余空间大小。
    vgdisplay 显示 剩余的 PE 数量,和 剩余空间大小。
  • lv 能不能扩容,看 vg 有无剩余空间。
    lvs如果显示,对应的 lv,Attr的第一位是"V" (thinLV),Attr第7位是"t" (thin)。就看不出了。
    thinLV 精简卷(廋卷),是可以超量分配空间 (分配 超出物理磁盘空间)。
    LVM精简卷】。

LXC CT 扩容

  • pct list 列出 ct 容器。记录下 <vmid>

  • pct shutdown <vmid>正常关机,pct stop <vmid>强制关机。停掉要扩容的 容器运行。

  • lvs 查看对应容器id <vmid> 的虚拟分区 LV 名称,类似vm-<vmid>-disk-0

  • e2fsck -f /dev/pve/vm-<vmid>-disk-0 检查 ext4 文件系统无错误。

  • lvextend --size +8G /dev/pve/vm-<vmid>-disk-0 对 LV 扩容。

    也可以用 pct resize <vmid> <disk> <size>命令扩容。(未测试)
    也可以在pve的web管理页面,点击CT容器->"Resources"->"Root Disk"->"Volume Action"->"Resize" 扩容。只能按1GB的倍数扩容。(未测试)

    lvs 查看/检查扩容结果。

  • 修改 /etc/pve/local/lxc/<vmid>.conf 文件中,对应的配置... vm-<vmid>-disk-0,size=xxG
    把 size 改为扩容后正确的大小,即 上一步lvs看到的大小。
    或者执行pct rescan

  • 如果 LV 中的文件系统是 ext4,resize2fs /dev/pve/vm-100-disk-0 对文件系统扩容。
    如果不是 ext4,自己查找对应的文件系统扩容指令。

  • 去 pve 的 web 管理页面,虚拟机的 resources 中,查看容量正确。
    启动 这个 ct 虚拟机。

  • 扩容完成。
    扩容成功。

VM 虚拟机扩容

  • 这里测试的是 openwrt 虚拟机的扩容。
    之前安装,是用qm importdisk <vmid> /mnt/pve/.../iso/openwrt-23.05.0-rc4-x86-64-generic-squashfs-combined.img local-lvm导入的映像。

  • qm list 查看虚拟机列表。

  • pvesm status 查看 storage id

  • pvesm list local-lvm 查看在local-lvm中的列表。

  • qm shutdown <vmid>正常关机,qm stop <vmid>强制关机。关闭虚拟机。

  • qm config <vmid> 查看配置,比如disk类型。

  • lvs 查看对应容器id <vmid> 的虚拟分区 LV 名称,类似vm-<vmid>-disk-0

  • lvextend --size +100M /dev/pve/vm-<vmid>-disk-0 对 vm 扩容。增加100M。
    x86的官方版op,总容量190MB就足够用了。lvresize --size 190M /dev/pve/vm-<vmid>-disk-0

    也可以用 qm disk resize <vmid> <disk> <size>命令扩容。(测试OK)
    也可以在pve的web管理页面,点击vm(qemu)虚拟机->"Hardware"->"Hard Disk"->"Disk Action"->"Resize" 扩容。只能按1GB的倍数扩容。(未测试)

    lvs 查看/检查扩容结果。

  • 执行qm disk rescan,修正/etc/pve/qemu-server/<vmid>.conf中disk的大小。

  • 参考【openwrt_21.02_img_空间扩容_分区扩容_改分区表大小】根据openwrt的img类型进行处理。

    • 我的是 squashfs-combined.img
      losetup -f 挂载,partx -a刷新,fdiskcfdisk更改分区2。
      apt install squashfs-tools 安装工具 (按需)。
      如要保留原来的配置,mount分区2,用 tarcpio 备份原有配置。umount分区2。
      unsquashfs /dev/loop0p2然后mksquashfs squashfs-root /dev/loop0p2 -comp xz -noappend
      mount分区2,用 tarcpio 恢复备份。umount分区2。
      partx -u, losetup -d, 卸载。扩容完成
      qm start <vmid> 启动openwrt虚拟机。扩容成功
      因为是squashfs的文件系统,我忘了备份原来的配置,openwrt恢复出厂设置了。IP变成192.168.1.1。要重新配置。

其他

  • lxd容器运行dmesg权限问题
    目前"非特权容器",不支持dmesg。"特权容器"可以。
  • LXC 容器中的debian,实际执行的内核是pve的kernel,不是/boot/目录中的内核。
    所以,LXC中的debian无法加载kmod,比如不能加载 tun.ko,没有 /dev/net/tun 设备。
  • LXC中(非特权)的debian,配置wireguard,似乎不太稳定。vm中的debian,配wg比较稳定。

----end----


转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/17318202.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .


posted on 2023-04-14 17:45  osnosn  阅读(861)  评论(0编辑  收藏  举报