KVM下宿主机的目录直通到虚机
这个需求也很有点意思,DBA 要求做 MySQL 的卸载从库,数据量会很大,硬盘空间后期需要扩容,但是 cpu 反倒占的不多。 单独 MySQL 是无法限制其 CPU 核使用的,这样的话,最好就是做个虚机来控制 MySQL 总 CPU 核数的使用,然后硬盘扩容的话,比如要拉伸虚机的附加第二块硬盘,如果是 QEMU 格式,会花费很长时间,所以干脆把宿主机的目录直接透传进虚机,之后如果要扩容加硬盘,直接把新的大硬盘 mount 出来再透进去即可,新旧硬盘拷贝数据也比拉伸虚机硬盘快。 CentOS7 下的做法如下: 两个大前提: 一、宿主机的 KVM qemu 系统需要使用新的 rpm 包,需要编译 二、虚机的内核需要升级,mount 命令需要支持 -t p9 的新格式 我们做好准备,就可以开始了 一、编译宿主机的qemu新包 现在已经是2022年了,所以编译的方式也发生变化了,最佳编译方式是干脆启动一个 Docker 虚拟机,来编译出来 rpm 包,也不污染环境。 首先克隆下来项目: git clone https://github.com/AlekseyChudov/qemu-kvm-virtfs.git cd qemu-kvm-virtfs 看一下最后的 build 脚本,有一个地方需要修改: 现在的 CentOS 最新版是 7.9.2009 ,这个版本树里是没有 qemu 的 Source Code 的,需要修改 baseurl,降低到 7.8.2003 才有 Source 的 repo baseurl=https://mirrors.tripadvisor.com/centos-vault/centos/\$releasever/virt/Source/kvm-common/ 改成: baseurl=https://mirrors.tripadvisor.com/centos-vault/centos/7.8.2003/virt/Source/kvm-common/ 改好后 build 脚本如下 ...