共计 3022 个字符,预计需要花费 8 分钟才能阅读完成。
用 proxmox 做服务器虚拟化已经很长一段时间了,不过全玩的是单服务器,最多也就弄三台整个集群,因为没有共享存储,无法实现高可用(雇主舍不得投入,还欠俺很多工钱呢)。近期给人出了一个方案,计划用 proxmox 高可用的方案,虚拟出 n 多虚拟机,然后把业务系统部署上去。方案讨论了很多次,发现共享存储的方式,费钱又费磁盘。考虑性能的话,得用 15000 转的 sas 盘,但这种规格 sas 盘的容量最大是 600G,而且单盘价格很高。用容量的 sata 盘吧,解决了容量问题,但性能又会成为瓶颈。回来对方说,有人用 ceph 做存储,挂接之,再创建做服务器虚拟化。
以前做过分布式存储 moosefs、Hadoop dfs 等,都有一个软肋,即存在控制节点(或者叫命名节点一类),控制节点是关键,一死全死。最近查看 moosefs 官网,新版的商业版本,整出两个 master 来,死掉一个,其他节点选举剩下的那个节点做 master。这样整出来,光存储就是好大一堆服务器了。当然,有钱的可以买商业存储,解决性能和可用性问题。既然有人推荐,那就去了解一下 ceph,嘿嘿,是去中心化的架构,这一点有优势了。
虽然有人用 ceph 做存储,但与服务器虚拟化是单独使用,我的意图是能不能整合到 proxmox 里?官网一看,好家伙,proxmox5.x 集成了 ceph 啊,天意!
本来就有很长时间的 proxmox 使用和维护经验,花点时间看看官网英文文档,大概就明白怎么一个情况。弄台式机来虚拟三个节点的 proxmox,谁知配置不行,卡的要死无法往下进行测试。正好北京有人要做虚拟化,让我过去做个咨询,哈哈,有了物理机,测试有着落了。
建议的方案是,用四台物理服务器,配置完全相同,划分两个网段,一个是网段用于存储,另一个用于虚拟机等。存储分配上,ssd 安装 proxmox,大概 200G 的 ssd。剩下的盘位,插 3 块以上的 10000 转的 sas 大容量盘(单盘 1.2T-1.8T)。我只在电话里大致说了一下建议,等我到现场的时候,他们已经配置得差不多了。在 ha 那步卡住了,我给点拨了一下,暴力关机,运行其上的虚拟机状态显示正常,本打算用手工方式迁移到其他节点,没想到片刻自动漂移了,大喜过望!
看到管理界面有那个 spice 协议,实验了一把。关闭某个虚拟机,编辑其硬件属性,显示器一项改成 spice,然后启动此虚拟机,真的可以呢!
遗憾的是,只能通过浏览器,点控制台下拉菜单 spice 才可以。
而我希望用 virt-viewer 客户端访问,这样如果能成功,就可以采购云终端盒子进行连接。把服务器虚拟化与桌面虚拟化集成在一个 proxmox 上边,远胜于其它商业解决方案。
查看宿主服务器的进程及网络,只发现 spice 代理进程 spiceproxy。
监听 tcp 3128 端口,试着 telnet 该端口,可以连接。如果虚拟机显示器选定了 spice,启动后,附带启动一个 61000 端口的服务,进程名为 kvm。再启动一个选择 spice 显示的虚拟机,宿主机就再起一个 tcp 60001 的端口。监听地址是 127.0.0.1,进程名还是那个 kvm。由此可以判断,以浏览器操作管理界面的下拉菜单 spice,代理程序把这个请求传递给 127.0.0.1:61000 端口, 于是可以弹出窗口。
直接用客户端连 3128 端口,不灵;换 61000 端口,还是不灵。查了很多资料,也问了一些人,无果。这段时间,甚至走路都在想这个怎么突破。后来,查到一种方法,用 qm showcmd vmid 查指定虚拟机的整个 kvm 指令所带的全部参数和选项, 这些参数和选项,到现在还不知道藏哪个配置文件里?当我们用 web 管理界面创建虚拟机的时候,应该会去读某个文件,但肯定不是虚拟机那个配置文件,配置文件我查了,参数值很少的。比如我的某个虚拟机的 id 是 100,我就执行 qm shoucmd 100>/root/vm100.sh,执行完毕,就去修改这个文件,找到 spice 那行,改“127.0.0.1”为本地网卡实际地址,注意这个文件就是一整行,不要回车换行哟。不能确定会不会有作用,执行一把再说,如果不对,也不会有什么影响(再次重启虚拟机后,这些配置是不会不保存和加载的)。执行此脚本无报错,看管理界面,虚拟机是启动起来了。到宿主机看看网络监听,61000 端口绑定到实际网络接口,而不是先迁的 127.0.0.1. 看来有戏。远程 telnet 这个 61000,嘿嘿,能连呢。现在,可以试试客户端,小心翼翼输入 ”spice://172.16.35.99:61000″, 等待中 …., 哇塞!真出 windows 登录界面了呢!
化缘网购的盒子到了好几天,客户端连接正常,那么拿盒子也是不在话下了。
设置好盒子的值,猛戳连接。
到这里,总算有前进了一步。不过有问题,如果把这个交付给别人,不能让人编辑脚本,再执行这个脚本吧?并且,虚拟机每次重启以后,这些设置就没有了。这个问题需要解决,继续查资料,问人。有开发虚拟平台的兄弟说可能有类似 xml 这样的文件存在,宿主机搜吧,没有。差不多把目录都翻遍了,没找到有用的信息。暂且搁置吧,后边再搞。
这远程 windows 用 spice 协议连上以后,鼠标有两个,点击起来特别费劲。用盒子连或者用客户端连,都是这个尿性,直接问卖盒子那个杰云厂家售后,答复说需要在虚拟机里边安装 vgaent,可以从 spice-space.org 官网下载。这好办,进去点 download,真有这玩意,仔细看发现一个 spice-guest-tools 包,包含了 vgaent 等,就是你了,下载到虚拟机并安装,还真可以,鼠标只有一个指针,完全正常。
后边还有问题,没有声卡、u 盘识别。继续回去折腾 spice,今天骑摩托到山上,突然想到,能不能直接改虚拟机配置文件呢?咋老司机,改之前备份一下。回来后,立马动手,查看官方文档,可以在配置文件里写参数.
改完,重启虚拟机,还真有效。下一步,怎么给加个界面,在 web 界面创建虚拟机的时候,把监听地址、监听端口、用户密码等,通过某种方式传递到虚拟机配置文件就完美了。
基本思路:弄个脚本,等创建好虚拟机配合文件后执行,取得其 id,以 610+id 号做端口,并接受密码输入。交互后,输出文本文件,记录监听 ip、端口、密码,交给用户使用。
具体如何修改虚拟机配置文件?能调试出 spice 连接、声卡、usb 等,请订阅俺的专栏,猛戳此处直达。
最后,来总结一下私有云通杀神器 proxmox 的强大之处:
1、去中心化,死掉哪个节点都无大碍。vmware 有 vcenter,这个死翘翘以后,有些功能不能用了,一比见高低。
2、超融合。虚拟化平台、存储融合;服务器虚拟化、桌面虚拟化融合。据了解,大部分的商业方案,服务器虚拟化与桌面虚拟化各干各的,管理成本和采购成本,那是杠杠的高。
3、超低成本。不需外挂共享存储,光这个就省老鼻子了。商业解决方案,动不动一个 cpu core 报价就以万为单位,不过是 openstack 改改,价格壳壳嘛。
4、部署简单快捷。proxmox 本身就是 iso 文件,烧录到 u 盘,引导后一路回车,分分钟搞定一台;建立集群,每节点仅仅执行一条命令行指令,后边的配置都在浏览器进行了。试问其它方案,不管商业的还是开源的,谁能这么便捷?别的不说,试试 openstack,老司机都得犹豫。
来几张图,看看土豪公司的资源。
六个节点物理服务器组成的小集群。
176 个线程,除以 2 就是 88 个核心,舍得投入啊。
: