type
status
date
slug
summary
tags
category
icon
password
Virtio-Balloon 即内存气泡,通过在虚拟机里面添加一个虚拟的气球设备,实现宿主机和虚拟机之间的内存动态分配和回收,从而提高内存利用效率。
具体工作原理是,该气球设备可以和虚拟机管理程序通信,发送内存使用情况,当虚拟机内存不足时可以要求释放内存,不需要时可以申请内存,虚拟机管理程序根据整体情况进行分配。
但是一些不道德的云服务商有时会通过Virtio-Balloon进行“内存超售”,也就是超额出售内存资源,无法保证用户购买的虚拟机内存,一旦宿主机内存不足所有虚拟机都会受影响。
为此,我今天带来了禁用Virtio-Balloon,以提高稳定性的方法。
 

检查

要检查是否存在Virtio-Balloon,可使用lsmod检查是否加载
若无输出,则不存在Virtio-Balloon
 

卸载

临时卸载

使用该命令可卸载Virtio-Balloon模块,但在下一次开机会自动启动
 

永久卸载

为了防止重启后自动启动,可以将规则添加到/etc/modprobe.d/下的配置文件
  1. 打开配置文件
上述命令中,vim可换为您习惯的文件编辑器,blacklist.conf文件名可修改,只要确保后缀为.conf
  1. 写入规则
使用文件编辑器在配置文件内写入
保存并退出文件编辑器
 
通过在 blacklist-virtio-balloon.conf 文件中写入 "blacklist virtio_balloon",系统将不再加载 virtio_balloon 模块,因此禁用了相关的功能和特性。这样做可以确保系统在启动时不会加载这个模块,从而实现了禁用 virtio_balloon 内核模块的目的。
 
  1. 重新生成initramfs
它会重新生成 initramfs 文件,将最新的配置文件和内核模块信息包含进去。
 

对于编译到内核

部分服务商(如Cloudcone)可能会将virtio_balloon编译进内核,而不是内核模块,使得无法通过lsmod | grep virtio_balloon 查询到,且rmmod virtio_balloon无法卸载,对于这种情况,有三种方法
  1. 通过指定Linux内核启动时的命令行参数和选项禁用
    1. 首先,使用您喜欢的文件编辑器打开/etc/default/grub
      如vim
      找到GRUB_CMDLINE_LINUX ,在后面的引号内加上virtio_balloon=0
      例如
      notion image
      GRUB_CMDLINE_LINUX 后的引号内非空,则按下面修改
      例如(abc为示例原有参数)
      notion image
       
      修改完毕后,输入以下命令更新grub配置,并重启服务器
      若没有上述命令,则使用以下命令
 
  1. 安装干净的系统
    1. 安装一个干净的系统,可以避免出现这种情况,也能去除服务商可能的内置在系统中的监控程序
      通过上面的脚本,可以直接通过dd干净的系统镜像实现更换干净的系统,包括内核
  1. 安装干净的内核
    1. 安装一个干净的内核,也可以避免这种情况
      例如cloud内核
免费!免接码!免费在第三方客户端使用GPT模型!Linux文件保护之i属性:保护文件不被修改、删除和覆盖
Loading...