去年底,陆续中了两家不同服务器厂商的羊毛,以相对优惠的价格拿到了两台2C4G3M的云服务器。一直想搭建一个服务器集群,学习和实践微服务、分布式格式和大数据,但实际上两台服务器是不够的,另外租用云服务器加两个节点的费用也比较贵。300M,测试用),评估成本后,放手。所以我选择在本地搭建一个集群,路由器充当网关(暂时),于是买了个便宜的机器,扩内存,把我报废的PC笔记本硬盘拆下来,用KVM虚拟出一个服务器集群,自己做一个家。服务器,用我的两台公网云服务器,用frp做动态内网穿透,最后的效果可能能撑起一个中等规模的网站。之前用过VMWareStation和VirtualBox,这次重新研究了一下,发现服务器厂商的虚拟化方案逐渐统一了KVM,相比Xen、VMWare、Virtualbox等性能损失更小,所以这次我选择使用KVM。KVM(基于内核的虚拟机)是一个完整的Linux虚拟化解决方案,在x86硬件上具有虚拟化扩展(IntelVT或AMD-V)。它由提供核心虚拟化基础设施的可加载内核模块kvm.ko和处理器特定模块kvm-intel.ko或kvm-amd.ko组成。KVM基于Linux内核,是内核自带的完整的虚拟化解决方案。它在x86平台上具有硬件优化(IntelVT或AMD-V)。无论硬件如何,许多x86CPU都支持KVM。搭建KVM环境主要包括几个部分:kvm模块:内核级虚拟化能力支持qemu:模拟硬件功能提供虚拟化服务,并提供命令行接口libvirt:提供libvirtd服务管理物理机machineinstance中的虚拟机,并提供对外统一编程接口页面管理器:webvirtmgr等,提供页面,操作本地libvirt,创建/删除/设置/运行虚拟机的vnc服务:在页面上控制虚拟机的键盘鼠标,显示设备,使用安装系统和使用这些不同的开源组件有不同的项目。要把它们集成在一起,方便易用,还是要写很多运维脚本,尤其是规模化后的运维管理。因此,一般有两种选择。大型企业集群使用OpenStack,小型团队使用web端管理平台。我想搭建一个家庭服务器,我需要什么OpenStack,我必须找到一个方便、免费、好用的解决方案。看了很多资料,有一个很多人推荐的虚拟化管理平台——ProxmoxVE,真的很好用,根据文档,一个下午就能搞定。第一步是下载ProxmoxVE6.2ISO安装程序。这是一个包含pve各种组件的debian10映像。按照普通Linux系统的方式安装。PVE可以帮助您自动配置很多东西。不擅长“网络”的朋友,可以到清华的开源镜像站下载这个ISO文件。第二步的地址是制作启动盘。ISO文件下载完成后,用它制作U盘启动盘。太熟悉了,好久没有在windows环境下折腾过这些东西了。让我解释一下如何在Linux或Mac上执行此操作:主要命令是dd。#对于linuxlsblkddbs=1Mconv=f??datasyncif=./proxmox-ve_*.isoof=/dev/XYZdd#对于macdiskutillistdiskutilunmountDisk/dev/diskXsudoddif=proxmox-ve_*.dmgof=/dev/rdiskXbs=1m第三步在需要虚拟化的主机上安装系统F12(看自己主板的BIOS启动按钮),通过U盘UEFI启动进入,按照步骤步骤步。第四步,初始化proxmoxve的配置。会开始出现图形化配置界面,根据自己的需要进行配置。磁盘分区也是个老话题了,文档也很多。唯一有争议的是是否需要交换分区。就我而言,它是:是的。因为我是固态的NVMe协议,读写性能还不错,作为内存缓冲区比普通磁盘快很多。进入debian系统后,有几个地方需要修改。换国内apt源。参考中科大、清华等国内镜像服务配置中科大镜像源帮助手册。这个ReadtheDocs写的很详细,需要的时候可以参考一下。特别说明:PVE虽然是免费开源软件,但其他服务是付费的。该模型类似于RedHat。它提供付费软件订阅源,我们可以选择社区支持的免费源。当然,如果“网络”不好,还是要换成对应的国内镜像源,依然是清华源。配置网络连接、主机名和ssh登录。这些是局域网的地址。它们只能通过我的路由器连接。它们不在公网上开放,不需要考虑安全问题。#在~/.ssh/config文件中做一些简化的登录配置。HostpveHostName192.168.31.30UserrootPort22Hostmaster0HostName192.168.31.10UserrootPort22Hostnode1HostName192.168.31.11UserrootPort22hostnamectlmemefinitemaster0.in.cn第五步是上传iso镜像。使用CentOS7而不是8。仓库源和包不完整。统一基础架构,降低运维成本。第六步,创建虚拟机,配置虚拟机的硬件资源。应正确配置内存资源。CPU资源无关紧要,它们是动态分配的。我只做没有显卡的服务器,所以不配置这些。其他人只是使用默认值。pve帮我们做了很多简化。第七步,安装配置虚拟机,将N复制到虚拟机中,配置ssh免密码配置,然后切出来在笔记本上登录,调整CentOS系统的参数,配置packages软件源安装需要。然后复制几个配置好的镜像,分别进行单独的配置。关于配置什么有很多细节。在国内的网络环境下配置一个可用的centos系统并不容易。第八步是配置局域网。Bridge模式下的所有机器都需要和宿主机共享一块虚拟网卡,可以独立注册到路由器上。第九步,为每台联网的虚拟机配置一个固定的IP,所有机器的hosts都在同一个局域网内,为每台机器设置别名,注意使用FQDN(fullyqualifiedname)。轻运维,无需ansible,编写shell脚本,使用pdsh远程批量执行命令。划分完成后,我有5个虚拟机,每个2C4G,分配了FQDN。PVE支持开机自启动、24h不间断运行、定时快照备份等我暂时用不到的功能。我认为现在的情况是完美的。带宽与路由器共享。我是直接通过网线连接到LAN口的。我的路由器支持1000M。其实我也不清楚我的网线有多少带宽,但反正够用了。可能以后做压测加载的时候会发现。不够。后记KVM虚拟化集群搭建完毕,虚拟化领域还有很多需要学习的地方。虚拟机当前的配置可能没有最好的性能,但没关系。当你使用它时,你会逐渐增加你的知识和理解。
