2025-03-08 00:00:00
最近AI发展好快啊~
自从上次写完文章之后,最近这段时间LLM圈又有了不少更新,感觉很值得试试看。所以这次就来看看这些新东西有什么特别的地方吧。
前两天阿里的推理模型QwQ模型更新到正式版了,不过其实我也没试过他们的预览版效果怎么样……但按照他们的说法,他们的32b参数的模型水平已经相当于DeepSeek-R1 671b的模型了。如果真是这样,那就太好了,毕竟那个671b参数的模型部署难度还是相当大的,在当时想部署一个能用级别的还是挺烧钱的。但如果这个32b参数的模型能达到相同水平,那就完全没有必要买那么贵的硬件了。像上次买的RTX4090 48GiB显存魔改版可以轻松跑QwQ 32b Q8量化的版本(速度能达到23T/s),就算想跑没有量化的fp16版,也只需要再买一张RTX4090 48GiB就够了,这个成本相比DeepSeek-R1低太多了。
所以刚发布的那天我下午就把模型下载下来试了试,随便试了几个问题,答得效果确实不错,我对比了一下DeepSeek-R1,试了试“世界上最长的单词中哪个字母最多”这个问题,两边回答的格式几乎一样,都说的是“硅肺病”的英文,并且都进行了字母数量分析,主要的结论都分析正确了,但是第二多和第三多的字母数量两边说的都不完全正确。另外我还试了试DeepSeek-R1的14b和70b蒸馏版,虽然回答正确了,但是并没有分析具体字母的数量,所以从这一点来看确实是和DeepSeek-R1的水平很相似。不过后来我又让其他人试了试文本分析之类的能力,似乎没能达到他们的预期,另外我还测了测比较宽泛的问题,以及解析文本之类的问题,结果很多问题没能正确回答……所以还是不能和DeepSeek-R1相比较,不过相比DeepSeek-R1各个蒸馏版的水平还是强了不少的,至少没有出现在回答结果中随机输出英文的情况,但是偶尔会出现没有闭合标签“</think>”的情况,看起来应该不能用于生产环境……要想正经用还是得用完整版的DeepSeek-R1,但毕竟成本问题还是很大啊……所以如果需要考虑成本问题的话用QwQ还是很不错的选择。
不过QwQ相比DeepSeek-R1还有一个优势,那就是支持Agent能力,原生支持调用用户提供的函数,像它虽然解析文本的能力不怎么强,但是它可以调用工具来处理,而DeepSeek-R1要想支持就得写提示词,但是毕竟没有专门训练过,不一定能正确使用工具(虽然我没试过😝)。
另外说到Agent,好像有个叫“Manus”的产品挺火?但那个我实在没兴趣,一点技术含量都没有,还搞什么邀请码,一看就是买的水军,而且还被人不到一天时间实现了开源版OpenManus,给人笑掉大牙了🤣。
搭完整版的DeepSeek-R1即使是使用上次所说的KTransformers框架也是相当费钱的,最起码也得10万CNY左右。但最近几天苹果出了新的Mac Studio,最高配的M3 Ultra可以选配512GiB的内存,可以轻松跑DeepSeek-R1 671b Q4_K的版本,然后价格最低仅需7.5万CNY。我之前还想着是出M4 Ultra呢……结果出了个M4 Max,不过新的Mac Studio出的速度比我预期的快了好多,我本来以为会在WWDC25的时候出呢……看来是想借DeepSeek-R1大卖一波,当然从这个产品来说确实应该是会大卖的,回头看看能不能搞一个来。不过现在才刚开售,还没人拿到实物呢,也没人实机跑一下,所以先等等最早买到的人跑一波看看,如果效果好的话也许能整一个呢……
上一篇文章我说明了一下如何解除MaxKB用户、应用以及知识库的数量限制,后来我发现它还限制了社区版查看完整API文档的能力😅,这个限制给我看的那叫一个大开眼界,它居然还给这个文档整了个硬编码的密码,从来没见过这么搞开源的,具体就是这一行。虽然我不知道这里面提到的MD5对应的密码是多少,但是既然是开源代码,我把这句话删了不就行了……不过实际上不太行,因为它使用了Django的国际化功能,直接删掉会影响这个文件的行数,程序会报错。不过可以仔细看一下关于“init_chat_doc”这一行在密码的判断后面加了个“or True”,看来是MaxKB的开发者后来应老板要求放开“chat_doc”的限制,但是又懒得改国际化那边的东西所以加的这个吧🤣,那既然这样,我直接给“init_app_doc”对应的那句话也加个“or True”不就行了,加完之后打开“/doc/”路径,就可以看到MaxKB的完整API文档了,不需要自己手动再去抓包测试了。
至于其他的专业版功能我看了一下应该确实是需要用到XPACK包的(不过其实关于修改页面风格的前端开源了,后端在XPACK里,要想用得自己实现接口),开源的这部分最多只能到这里了,估计是这些限制没法单独搞一个包,所以他们就直接在开源代码上做限制😅,看来他们老板也是没眼力啊。
其实与其余用MaxKB,不如用Dify,至少它没有在代码里塞莫名其妙的东西来恶心人,文档也相对更完备,不过它目前还是相当的不成熟,有很多BUG,比如上传知识库显示支持Excel,但是解析的时候会失败,上传知识库如果通过改配置超过15M解析也会失败,还有它的插件很多也是不能用,比如目前阿里云的百炼会报错,退回上个版本就不支持思维链的展示等等……总之不太适合生产使用。
现在的AI发展确实是快啊,才几天时间又有一堆有意思的发展,应该说现在很多公司都在趁这个机会来发布自己的产品吧,感觉现在也是一个能有很多机会的时刻,不过AI对研究能力的要求也是相当高的,想在这个时间蹭热度也得有相当厉害的能力……像阿里的水平也是相当强的,可惜营销水平不太行😆。只是像我应该也只能看着大公司的百花齐放吧,看看接下来的时间还会不会出现一些有意思的东西。
2025-02-22 00:00:00
玩AI开始变的有些烧钱了啊……
在几年前我就已经探索并玩过很多LLM了,不过近些日子在这方面的发展似乎影响到了我的生活……由于近期某公司开发的DeepSeek在国内非常火,导致我也不得不跟上这个热潮去考虑怎么应用它。当然对于普通人来说,使用它并没有什么难度,即使DeepSeek的官方网站和APP现在基本不能用,现在各家大公司也都自行搭建了,目前我感觉使用DeepSeek体验最好的是百度,其他家使用无论是可用性还是速度都比不过百度,而且目前百度也没有限制使用量之类,还是挺不错的。
但是对我来说却不能直接使用其他公司的产品,其实要从成本来说接入其他公司的接口显然是要便宜的多,但是我需要应用的地方可能连不上那些接口😅,所以需要考虑自己搭建。
为了能自己搭建DeepSeek,首先就得买硬件了……虽然前段时间整了台新服务器,但是让CPU来跑还是太吃力了,速度太慢了……所以为了能轻松的跑起来,最近整了张RTX4090 48GiB显存魔改版(但是手头没有空闲的机器了,只能插在一台用着i5-8400处理器的主机,这下成狗骑吕布了🤣)。有了这张显卡,跑DeepSeek-R1的蒸馏模型(从1.5B到70B的Q4_K_M量化版)倒是轻轻松松,用Ollama跑70B的模型也能到20Tps的速度。但是根据测试来看,这些蒸馏模型的效果很差,基本上没法用,这些模型经常会发生不遵守指令,内容随机掺杂英文,而且也经常发生逻辑错误,和671B的完整版完全不能比,用起来还不如Qwen2.5各规模的模型。
那怎么办呢?前几天清华大学的某个团队更新了一款叫做KTransformers的框架,据说它可以利用Intel的AMX指令集然后配一张RTX4090可以让DeepSeek-R1 671B Q4_K_M量化版跑到13Tps,能跑到这个速度那至少是可用级别了,调其他公司的接口基本上也就是这个速度,之前买的新服务器不就有这个指令集嘛(之前还感觉这个指令集有点鸡肋呢,看来还是开发度不够啊😆),如果再配一个CPU,然后把内存插满也许就可以了?可惜R760xs插不了全高的显卡,要想插全高的估计就只能买R760了,或者用PCI-E延长线?不过那样感觉不太可靠……不过之后肯定还是会想办法上完整版的模型,毕竟它的效果确实是不错,最关键的是它的市场认可度高,上了就能提高产品竞争力,所以之后应该会想办法搞到满足KTransformers的硬件然后跑起来,或者等llama.cpp合并它的算法,然后用llama.cpp会更好一些。
不过我更倾向于等Mac Studio M4 Ultra出来,应该过几个月就能出,按照目前发展趋势来看,新款Mac Studio应该会有更大的内存,理论上可以跑的动一些效果更好的动态量化版(现在能在M2 Ultra上跑的那个1.58位的效果还是不太行),相比于价格十几万的服务器,Mac Studio估计不到十万,可以说是非常有性价比了。当然如果等不及的话应该还是会选择花十几万买个有双路第四代至强可扩展处理器加512GiB内存的服务器吧……
有了模型之后如果只是聊天那就没必要费这么大劲了,费劲搭当然是为了能让它参与到实际的工作当中。不过该如何应用它呢?首先要让它知道工作的内容,所以第一步要搞出知识库。知识库的原理倒是很简单,我之前就给我博客的聊天机器人加了RAG功能,核心就是嵌入模型和向量数据库。不过我写的那个全都是为了能使用Cloudflare的功能,脱离了Cloudflare就没用了。那如果要在本地搞应该怎么办呢?我之前用过的1Panel开发它的公司旗下有个叫MaxKB的产品看起来很不错,它使用了PGSQL和pgvector作为向量数据库来搭建知识库,而且它是用Python写的,还能用Python来写自定义功能的函数库,另外它还能用可视化的方式来设计工作流,可以轻松构建需要的逻辑,从功能上来说我还是挺满意的。
使用也挺简单,在设置里可以添加使用其他公司API的模型,也可以使用Ollama,不过这一步有个坑,Ollama并不支持设置API Key,但是它添加模型却要求配置一个API Key,文档说可以输入任意内容,我输了一个空格,可以保存,但是使用的时候会报网络错误,所以它文档里怎么不说明一下是除了空格之外的任意内容😅,浪费了我不少时间。
在添加知识库的时候可以除了内置的嵌入模型(好像是腾讯的员工搞的模型),也可以用Ollama的嵌入模型。它自带的嵌入模型用的是CPU,文档规模大的情况速度比较慢,因为在Cloudflare上我用的是BAAI的BGE模型,效果还可以,所以这次我还是选了它,但是选的是中文模型,这样就不需要再翻译了🤣。
开始我对MaxKB印象还是挺不错的,但是用着用着……在建第六个应用的时候它显示社区版只能创建五个应用😅,对于开源软件这样做限制我也是大开眼界了,要是说有些专业版功能不开源,是DLC的形式,付钱来获取更多的功能代码,我还能理解,在开源代码上做数量上的限制,这垃圾公司多少有点看不起人了😅。
那对于这种挑衅行为该怎么反制呢?它的代码倒是没有混淆之类的,还算不错,比我以前用过的KodExplorer要好,它还整个“部分开源”,有个关键文件直接是混淆过的,想改都改不了😅,至少MaxKB还能随便改。
我大概看了眼代码,只需要改两个文件就行,一个是“apps/common/util/common.py”,把其中“valid_license”函数进行判断的部分全部注释,另外一个文件是“apps/setting/serializers/valid_serializers.py”,把“ValidSerializer”方法中的“valid”方法里进行判断的部分全部注释就可以了,开源还做限制我是真的无法理解……
如果是用1Panel部署的,可以把那两个文件放到“/opt/1panel/apps/maxkb/maxkb”目录下,然后在docker-compose.yml文件的volumes段添加:
- ./common.py:/opt/maxkb/app/apps/common/util/common.py
- ./valid_serializers.py:/opt/maxkb/app/apps/setting/serializers/valid_serializers.py
就可以了。
不过总体来说从功能上我还算比较满意,就原谅它搞出这种奇葩的行为吧😆。
MaxKB主要是为了能给更多人使用,所以是网页版,部署也略显麻烦,如果是自己用呢?我之前看到过一个桌面软件,叫做Cherry Studio。它更适合开箱即用一些,功能上可能不如MaxKB强大,但是比较方便一些。比如上传文档,MaxKB需要在流程图中自行处理,这个软件会帮你处理好;添加知识库可以直接添加本地的文件夹,不用上传到服务器上;另外安装比较方便,不像MaxKB搭环境比较麻烦些,所以个人用的话可以用Cherry Studio。
总的来看,DeepSeek的出现还算可以,虽然它受到的关注和它的能力也许并不匹配,但是毕竟现在的它已经是人人都能蹭的东西了,谁都能挂它的名头,我们来蹭一蹭也能分点它的好处。当然这样的结果倒也不差,开发DeepSeek的公司只能获得他们应得的部分,其他的关注度就应该被各家公司瓜分😆。我在这期间虽然很难获得什么实质性的收获,但是能在这期间能搞点很贵的硬件之类的玩玩也是不错的体验啊🤣。
2025-02-09 00:00:00
花更多钱可以收获更多吗?
最近由于某些原因需要买点服务器,从我平时用的东西来看,其实很多年前的产品就已经满足大多数应用了,业务的发展跟不上时代的发展,就根本不需要更好的性能。所以既然要买服务器,还是买洋垃圾比较好,那些淘汰下来的服务器特别便宜。虽然这么说,但是我也好奇现在的技术到底发展到一个什么样的程度,所以也整个新的服务器玩玩吧。
那选哪个服务器比较合适呢?我在大学里用过R730,那款服务器给我留下的印象很不错,拆装很方便,也有很好用的带外管理功能(iDRAC),现在的R730已经非常便宜了,我看了看CPU觉得既然洋垃圾很便宜,那就要选个厉害的CPU,最终我选择了双路20核40线程的英特尔® 至强® 处理器 E5-2698 v4,总共40核80线程,另外配了4根32GiB 2400MT/s的DDR4内存,看起来参数还是挺唬人的🤣,而且价格才2k多CNY,感觉还挺不错。
那新的用啥呢?我上Intel的官网看了看,至强6是现在最新的Intel服务器CPU,至于AMD的……主要是给我买服务器的人不喜欢AMD🤣,所以只能选Intel的。既然旧的选了Dell,新的也选Dell吧,我看搭载至强6的戴尔服务器是R770,但是目前还买不到😅,而且价格贵的吓人。次一级就是R760,可以上第四或第五代至强可扩展处理器,不过看了一眼价格也有点贵……但这个机器有个青春版,叫R760xs,也能上第四或第五代至强可扩展处理器,扩展性稍微差一点,但是价格比较便宜,他们管这叫“成本优化版”。最终选来选去选了个单路16核32线程的英特尔® 至强® Gold 6426Y 处理器,外加4条16GiB 4800MT/s的DDR5内存,总共花了将近4wCNY,感觉还是相当贵啊……
服务器拿到手之后自然要先跑个分,我给新服务器安装了Ubuntu Server 24.04,旧的因为核心数多感觉应该能干点别的所以安装了Vmware ESXi 6.7,然后在上面安装了个Ubuntu Server 24.04的虚拟机。跑分用的是sysbench。最终新的服务器单核跑分2853.45events/s,多核47054.35events/s,旧服务器单核876.22events/s,多核52792.15events/s。从这里来看这个新服务器让人非常失望啊,单核才3倍多点差距,尤其我试了试13代i5的单核跑分能到4290.80events/s,家用的处理器可是要便宜的多啊。多核虽然说16核比40核少了点,能跑出差不多的分数已经很厉害了,但是考虑到这两个服务器20倍的价格差,还是深深的感到不值啊……
当然服务器的性能并不是它的优势,扩展性才是,但是R730的定位比R760xs的定位要高啊😂,扩展性显然是旧服务器更强……那新服务器就没什么优势了吗?倒也不是,新服务器的处理器至少把漏洞都修完了,除了幽灵漏洞之外,至少不受其他漏洞影响,安全性更强了。旧处理器和酷睿5代是同一个时代的,所以会受各种CPU漏洞的影响。不过这个服务器又不会当云服务器租给别人用,有没有漏洞根本无所谓啊😅。
那管理性呢?新的带外管理用的是iDRAC9,旧的是iDRAC8,两个界面上差距倒是挺大的,不过功能基本上都差不多,从功能上来看9比8多了个修改BIOS的功能,但是修改完还是得重启才能生效😅,那不如花几十块钱买个企业版订阅然后用虚拟KVM直接重启进BIOS修改呢……不过如果是大规模的话可能是可以统一修改BIOS选项,那就有点意义了,不过对我来说没啥意义😥。
那还有别的优势吗?我看网上说第四、第五代至强可扩展处理器新出了个指令集,叫AMX,可以用来加速AI推理,正好最近国内一个叫DeepSeek-R1的模型挺火的,那就拿来试试看呗,要是这个AMX指令集能大幅提高CPU的推理速度,那我还是挺认同它的价格的,毕竟内存可以随便加,显存……都被老黄垄断了,价格巨贵无比😂。现在的llama.cpp已经支持了AMX加速,具体的使用方法可以看Intel官网上的论文,看起来需要安装Intel oneAPI的库才能编译使用。我折腾了一下编译完跑了一下DeepSeek-R1 32B Q4_K_M蒸馏版,速度大概是5.2token/s。然后我安装了个Ollama,它自带的这个llama服务器只支持AVX2指令集加速,但是我试了一下速度能达到4.8token/s,也就是说AMX指令集加速了个寂寞,几乎没起倒什么作用,难怪没什么人讨论。不过我也听说纯CPU跑大模型主要瓶颈在内存带宽上,我插4条也就是四通道,其实也不是它的全部实力,它最大支持八通道,也许给它插满效果会好一些吧……
那旧服务器呢?我倒也试了一下,用Ollama跑一样的模型大概是2token/s多的速度,也就是说新的相比旧的也只快了1倍多一点,而且旧的每个CPU只有2条内存,只有双通道,速度也只有新的一半,结果新的才领先了一倍多一点,都上了那么多黑科技……看来Intel是真不行了。
当然5.2token/s的速度显然是无法接受的,还是有点慢了,再加上DeepSeek-R1还有思维链,在回答问题前还要生成一堆废话,那就更慢了(其实要我说它那个思维链其实就是把之前的AutoGPT的结果作为训练材料训练的,相当于集成到模型里了,我自己测了一下水平还是不够用,包括官网的满血版也一样)。我之前听说有一种叫做“投机采样”的推理加速技术,不知道为什么凉了,llama.cpp编译的产物里还有这个技术的PoC。于是我就下了个DeepSeek-R1 7B Q4_K_M蒸馏版,拿来试试看用它来加速32B的怎么样。首先我单独测试7B的速度可以达到20token/s,然后我用“llama-speculative”测了一下,感觉有点一言难尽……一阵快一阵慢的,总体来说感觉不如直接跑的快,难怪这个技术凉了😥,不过也可能是因为这两个模型的什么token分布不太一致,毕竟是蒸馏的模型估计还是有点区别,所以体验不太好吧。
那除了大语言模型之外还有什么可测的吗?其实就像我开始说的,要说能满足业务,洋垃圾显然是绰绰有余,尤其还是顶尖的洋垃圾,普通的业务甚至都不能让洋垃圾产生瓶颈,新的不就更不可能了😥……
从上面来看,新服务器真的没什么优势啊,性能提高了一些,但是价格翻几十倍,当然那些洋垃圾当年也是超级贵的东西,只是被淘汰了所以失去了价值……不过说来这个价值也许并不是服务器硬件本身的价值,“服务”也是很值钱的啊,像那个支持服务(比如远程诊断、上门服务,现场响应之类的)就是它贵的原因吧,二手的旧服务器2019年就结束支持了,新的有3年的支持期,能到2027年,不过我感觉在这支持期内恐怕没有能用到的地方啊,服务器还是挺难坏的,它最值钱的地方似乎只能被浪费掉了🥲。所以总的来说只有行业领先的业务,才配得上最新的服务器,小规模的业务还是用二手服务器吧😆。
2025-01-01 00:00:00
All Systems Operational.
在过去的一年里,其实相比之前感觉好了一些,工作了一年多感觉什么事情都没有发生。这么看来在上学期间确实是痛苦啊,有人说出了学校会更加痛苦,至少在我看来并没有发生这种事情。不过也正是没有发生什么大事,所以感觉稍微有点无聊,但是我不讨厌,因为我知道刺激的生活并不会有趣,虽然可能会错过一些机会和有趣的事情,但是也降低了碰上危险和讨厌的事情的风险,还是安稳一些比较好。
虽然这一年里没发生什么大事,不过小事肯定还是有些的。其实我的记忆能力还是一如既往的差,和去年一样,什么都想不起来,现在我顶多能记起半年左右的事情。令我记忆比较深刻的事情大概就是国庆节前后发生的事情,那段时间A股突然大涨,我受到家里人和自己的贪心以及在那之前手头的债券基金跌了一些等影响,入了一点进去,然后第二天就吃了跌停🤣。随后我就退出股市,不打算再玩了。还好之后的A股就再没有起来过(尤其是一年的最后一天再来一次大跌🤣),要不是我当机立断退出,可能就永无天日吧😅(虽然还是亏了不少😥,不过影响不大)。
我平时还是挺节俭的,虽然我知道节约并不能让我更有钱,但节约一点至少可以用的多一些。而自从我上次一天就消费掉几千块钱,什么都没换来之后,我知道了这简直毫无意义,省吃俭用也不如一次大跌。不过我知道了,如果想达成目标,就不要瞎搞,不要考虑投资的事情。但是市场环境仍然需要考虑,不能因为其他人的行为影响到了我的目标,也许换成黄金是最好的选择,只是我仍然没法下定决心,也许只有什么契机才可以吧。在那之前我仍然不会改变我的行为,我还是不会提高我的消费水平😂。
除此之外令我印象比较深刻的事情还是AI,这一年里LLM发展的比我想象的更加厉害,现在各行各业已经全面在用了,成本也比之前低得多,不像之前用AI的成本还稍微有些高,现在基本上都是免费的,而且效果也比之前好很多,像知名AI直播主Neuro-sama的表现相比之前也好多了,逻辑性和整活能力也更强了(虽然我只看切片可能判断上还是有些片面)。至于我因为AI的广泛发展也给我的博客加上了AI摘要,知识库问答 以及相似文章推荐,另外从我做完之后也进行了大力推广让其他站长也用上了我写的AI摘要,也算是对AI发展的回应了。
既然2024年没有发生什么特别的事情,那我希望2025年也不要发生什么事情,就像我在2023年的年终总结所说,未来10年都要如一日,工作日上班,下班了玩电脑,休息日睡觉,节假日回家,不要做多余的事情,只要环境没有什么变化,就不要进行多余的操作,这样才能安稳的到达马拉松的终点。
至于其他事情,有趣的研究如果碰上了我依然会去做,做完之后就写篇博客😊。虽然说写多了之前写的我自己可能都忘了,不过总有些有用的东西,可以在我需要的时候进行参考,而且写多了之后拿来训练AI说不定能做一个和我想法一样的AI呢,到时候就可以代替我想问题了😆。
2024-12-29 00:00:00
装虚拟机用什么系统更好呢?
前段时间我有个需要开很多机器的需求,为了方便管理和提高资源利用率,当然是上虚拟机比较合适。那用什么系统上虚拟机好呢?Windows上用Hyper-V当然也是不错的选择,但是我觉得Windows的基础占用太高了,另外Hyper-V的操作面板也不怎么样,所以就不考虑了。那用什么呢?之前我上大学的时候用过ESXi,在随身携带的U盘里上正好有一份,一直没删,所以就顺手给手头的工作站安了一下。不过我当时用的版本很旧了,是6.7,虽然也不是不能用,但是考虑到这个版本之前有RCE漏洞,所以去sysin上下了一份最终版的6.7U3u更新包更新了上去,以后就不再更新了。
不过除了ESXi之外还有别的选择,我看很多人都拿PVE和ESXi比较。虽然经常听说PVE但是我没有用过,所以就在另一个工作站上安装了PVE试试看哪个用起来更好。不过和PVE比的其实不该是ESXi,而是VMWare vSphere,只不过我两个系统都是一台机器,也用不着搞集群,找破解版还麻烦。所以其实我是拿ESXi的VMware Host Client和PVE进行对比。
另外从本质来说它们也不是一个东西,PVE更像是Debian上一个管理虚拟化的面板,ESXi是VMKernel附带了个可以临时使用的Web端面板,侧重点不一样。
首先从界面来看两个系统长得其实差不太多,不过左侧导航栏有点不太一样,把PVE的导航栏改成文件夹视图就和ESXi的差不多了。从界面上来说我更喜欢ESXi的界面,PVE的感觉没什么设计感。不过PVE面板的数据是1秒刷新一次的,ESXi就算配置刷新也只能最短每15秒刷新一次。从功能上来说可能PVE会更好一点。另外对于显示的图表来说PVE全在“概要”里,在ESXi都在“监控”里,虽然PVE的图表更多,但是有些感觉没什么意义,因为PVE是基于Linux的,所以有“负载”这个指标,不过对于虚拟机系统来说感觉意义不大啊……不过也可能是因为用了LXC容器之后会影响PVE的负载所以整了这个项目?
另外PVE还有个好处是可以看CPU温度,我看有一个叫“pvetools”的工具可以配置在界面上显示CPU频率和温度,ESXi没有IPMI的话用啥办法都看不到CPU温度😅。
ESXi和PVE创建虚拟机都挺简单的,都有专门的向导。不过我测试PVE的时候选择安装Windows 10,它推荐的架构居然是i440fx机器和SeaBIOS固件,虽然也不是不能用,但它怎么选了个最垃圾的,虽然选成Windows 11是推荐的q35和UEFI引导……而且SCSI控制器还选了个要驱动的半虚拟化设备,但PVE没有自带这个驱动包啊,这些都是不小的坑。而ESXi就正常多了,选择Windows 10会默认使用UEFI引导,而且会选择一个兼容性最好的SCSI控制器和网络适配器,便于没有安装驱动的时候能正常使用,另外ESXi是自带VMWare Tools的,在系统安装完成后可以直接挂载安装,比PVE的体验好很多。另外PVE还有一个坑,那就是CPU默认会用QEMU自己的一个类型,那个在虚拟机里就读不到CPU的型号了,而且性能会打折扣。不过这个倒也能理解,毕竟PVE是给集群设计的,在迁移到其他节点的时候选host可能在迁移到不同CPU的节点时会出现问题。不过ESXi也是啊……怎么它就没有这种问题?总之PVE不适合小白。
PVE相比ESXi多了个特性,那就是LXC容器,因为PVE是基于Linux的,所以可以创建容器。这个体验倒是还行,可以直接在面板上下载模版,创建也没什么坑,配好之后和虚拟机几乎一模一样,甚至还能在上面安装Docker,IP也是独立分配的,用起来还不错。
PVE相比ESXi在存储上能选的花里胡哨的东西有点多,默认它会把系统盘配置成LVM,然后单独分了个LVM-Thin的东西,两个容量不互通。这个LVM-Thin好像是只能用来存磁盘,而且看不到东西到底存在哪里了,我搜了一下好像是说这个LVM-Thin可以用多少占多少空间……我寻思qcow2格式的磁盘也有这个功能啊,而且raw格式的磁盘文件是稀疏文件,也是用多少占多少啊……两个容量不互通还浪费磁盘空间,然后我就把这个LVM-Thin删掉了,把系统盘扩容到整个磁盘,然后在存储里面允许local存储磁盘映像之类的。
除此之外PVE还支持ZFS,相当于软RAID,但是它是文件系统层面支持的,不需要初始化。我手头有3块机械盘,插在上面组了个RAIDZ,可以允许坏任意1块。组好之后可以用来存储磁盘映像和容器的数据。
ESXi的话就只能把盘格式化成VMFS6的文件系统,要么还能挂iSCSI当作磁盘或者NFS作为数据存储,如果要分布式存储应该只能搭到别的机器上然后用iSCSI挂过来,阵列看起来只能是硬RAID,ESXi并不提供软RAID的选项,也不支持挂SMB、CephFS、ZFS之类乱七八糟的东西,PVE在这一方面因为基于Linux系统发挥了很大的优势,只要Linux能挂的它就能挂。
在PVE上的网络是用的Linux Bridge,安装的时候会强制要求静态IP,不过毕竟是Linux,可以修改配置让它使用DHCP。不过看起来PVE上似乎没有配置NAT的选项,当然作为Linux来说肯定是有办法配的。ESXi用的叫做虚拟交换机,配置冗余也是在这里配置,PVE的话应该要先配置Bond然后再配置网桥。
另外ESXi对网卡要求很高,不是服务器或者工作站,用的比如什么瑞昱的网卡都是不识别的,要额外安装驱动才行,这也是PVE的优势,Linux兼容什么,它就兼容什么。不过对于大公司来说,也不可能用家用电脑当服务器使🤣,所以就算是用ESXi也不存在这种问题。
在这一方面ESXi的体验就比PVE要好很多,直接在“管理”——“硬件”——“PCI设备”里面就可以配置显卡直通之类的,没有什么复杂的配置,直接点“切换直通”然后重启就可以在虚拟机里配置了(当然VT-d之类的东西要提前开)。
PVE我最开始配直通的时候是直接网上搜的,那个pvetools也可以帮助配置PCI直通之类的,用这个工具配完之后就可以在虚拟机里添加了。不过在我添加的时候发现它有个“映射的设备”这个选项,用刚才那个工具配置完之后要选“原始设备”,然后我就想着这两个有什么区别,结果发现“数据中心”——“资源映射”里面有个PCI设备的选项😂,也许从一开始我就做错了,直接用这个添加就可以了吧?只不过因为我已经用那个工具配置过了,怕在这里加了会冲突,所以就算啦。
另外PVE的PCI直通还有个好处就是在5-10代的IntelCPU可以用Intel GVT-g技术把核显拆成多个显卡,像虚拟机如果要是需要显卡的话用这个就不用插一堆显卡给虚拟机分配了。ESXi的话只支持SR-IOV拆分,这个只有11代之后的Intel核显才可以用……我用的这两台工作站都是Intel6代的U,所以在ESXi只能把整个核显直通分给某台机器了……
硬盘直通有两种方式,一种是把控制器直通了,另外是只直通某个磁盘,在ESXi上叫RDM直通。我的主板只有一个SATA控制器,而且没有NVME硬盘,所以直通控制器肯定不行,这样会导致虚拟机管理系统读不到硬盘然后挂掉,所以要直通就只能直通某个硬盘。
ESXi直通硬盘有点复杂,要打开SSH,然后用命令创建RDM磁盘文件,挂载到虚拟机就可以了。不过我操作的时候不知道为什么网页出BUG了,加载磁盘文件之后什么都读不到,然后也不能保存,最后没办法只能修改vmx文件进行挂载了……
PVE的话我感觉它的直通更像是把整个硬盘的设备文件作为一个磁盘映像来挂载到虚拟机上了,但是PVE不允许在界面上挂载在指定存储以外的文件,所以就只能通过命令来挂载……
两个从功能来说都没问题,不过PVE挂载完之后磁盘显示的是“QEMU HARDDISK”,而且SMART信息是瞎编的,ESXi挂载之后可以看到磁盘名字、序列号,另外SMART信息也能看到(至少我用的ESXi 6.7U3u是可以的)。不过PVE可以在面板上看SMART信息,ESXi就只能登SSH敲命令看了……不过要是有IPMI应该也是能获取到硬盘的健康信息的。
从上面来看PVE的功能是要更多的,但是使用起来不如ESXi友好,坑也比较多,对于不想花时间解决问题的人来说用ESXi会更好一些,当然ESXi也并不是免费产品,它是VMWare vSphere的一个组件,VMWare vSphere是收费的,而PVE是免费的,可以付费获得额外的更新和服务,对于个人而言当然无所谓,两个肯定都不会有个人花钱买,至于公司的话……大公司选择VMWare vSphere当然会更好一些,肯定对运维会很友好,PVE的话小公司免费用会更合适一点。
至于哪个我觉得更好……我还是更倾向于用ESXi,虽然PVE功能很多,但是毕竟PVE底层是Linux,我怕乱配给配崩了🤣,ESXi的话就没有那么多会让用户搞坏的地方,所以更稳定啊。
2024-12-08 00:00:00
在一个系统模拟另一个系统有多困难呢?
前段时间我在网上和人聊天的时候谈到了安卓模拟器,在我看来所有除了Linux上可以使用例如Waydroid的容器原生运行Android之外,其他系统只能通过虚拟机的方式运行,毕竟不用虚拟机能在完全不相干的系统上运行安卓我感觉还是挺不可思议的。不过随后就被打脸了🤣,网易在前几年出过一个包含“星云引擎”的安卓模拟器——MuMu Nebula,据说这个模拟器是不需要使用虚拟化技术的。所以这次我打算探索一下这个安卓模拟器和它类似的模拟器。
在我看来,模拟硬件的就是虚拟机,模拟软件的就是模拟器。不过现在这些挺难分的,融合的也挺多。比如QEMU+KVM使用硬件虚拟化显然是虚拟机,QEMU System模式使用二进制翻译的方式模拟硬件也是虚拟机,但是QEMU User模式使用了当前系统的资源,没有模拟硬件,所以应该是模拟器(不过也有叫仿真器的?)……不过也许不是这样?模拟指令集也算虚拟了一个CPU吧,像Java虚拟机似乎就是这样,只是单模拟一个CPU叫虚拟机又感觉不太对……并且macOS的Rosetta 2甚至还有硬件加速(硬件模拟x86的内存一致性模型?),还有用了AOT已经翻译完的程序再执行那应该不算模拟器吧……另外还有什么容器之类的……搞得这些概念很难分清。
那至少使用了硬件虚拟化技术的肯定是虚拟机吧?其实这也不一定,现在的Windows有个叫“基于虚拟化的安全性”的功能使用了硬件虚拟化技术,但是不能说现在的Windows是运行在虚拟机上吧?这些大公司搞的乱七八糟的黑科技把我都绕晕了😂。
总之接下来我要说的模拟器是一定基于某个系统,然后模拟另一个系统的环境,不使用硬件虚拟化技术,而且翻译的不是「指令集」,而是「系统调用」,这样感觉才算我心目中的模拟器🫠,也就是OS模拟器。
既然是因为网易的模拟器进行的探索,肯定要先讲这个啦。首先看介绍,它是专为“低端电脑”制作的模拟器,所以整个软件都是32位的,而且不用VT,说明老到不支持硬件虚拟化的CPU都可以运行(不过那样的CPU估计至少是15年前的吧😝)。安装后首先会下载Android的镜像,但不像其他安卓模拟器最后使用的是一个磁盘镜像文件,而是像WSL1那样把所有文件都放在一个文件夹里。至于里面的文件就是和正常的32位Android x86差不多,甚至还有兼容ARM的libhoudini.so文件。然后启动模拟器后可以在任务管理器中看到有许多“nebula.exe”进程,这让我想到了Wine,看起来在模拟器中的每个安卓进程都对应着一个“nebula.exe”进程。这么来看这个星云引擎应该相当于安卓特别精简版的WSL1。
其实当时WSA出之前,我以为微软会用WSL1的技术做WSA,结果和WSL2一起用了虚拟机,太令人失望了😅。而且用类似WSL1技术的居然还让网易整出来了……虽然到现在WSA已经凉了,这个星云引擎也是没什么热度,不过单从技术上来说我觉得还是这种要好,因为这种模拟器省内存,可以共用磁盘空间,不像其他模拟器,就算虚拟机有什么气球驱动动态调整分配的内存,总是不如这种现用现申请的好。不过从速度上来说和虚拟机版安卓模拟器拉不开什么差距,技术难度估计也比虚拟机高很多,大概因为这样,所以它也凉了吧。
网易那个就挺像WSL1的,不过很明显WSL1出的早,另外和Windows结合的更深,可以直接在任务管理器中管理WSL1中的进程。虽然有些人说WSL1的BUG很多,但对我来说我是一个都没碰到过,用起来还是挺不错的……虽然不支持Docker,这也是它对我来说唯一的缺陷。不过我要是用Docker一般是在Hyper-V中单独安一个虚拟机来操作,因为WSL2和Docker desktop的内存不好控制,虚拟机限制起来比较方便。如果需要在Windows用到Linux的时候就安WSL1,因为省内存,而且和Windows共用同一个IP。不过要是安装了Nvidia显卡的话好像还是得用WSL2?我一般没这个需求所以不存在这种问题。
之前我在玩旧电脑的时候试过Darling,不过用的都是超老的电子垃圾,因为指令集的原因费了不少功夫才跑起来😂,不过就算用正常电脑跑这个感觉也没啥意义,除了项目本身很不成熟,很多软件跑不起来,另外到现在也没有做出来ARM版,x86的macOS马上就要被抛弃了,如果没有搞出ARM版,这个项目就更没什么意义了。
Wine我用的还挺多的,因为我现在用的是MacBook,在macOS上玩Windows游戏就得用Wine,另外也在树莓派上试过ExaGear+Wine,其实说来这个项目和使用虚拟机相比,不仅更省内存,而且性能要比虚拟机好得多,除了兼容性不太行之外其他都挺好的,看来省内存是模拟器的特色啊。
这种倒是挺多的,像DOSBox,还有GBA模拟器之类的,我以前在手机上就试过用DOSBox Turbo安装Windows3.2,也用GBA模拟器玩过宝可梦,不过这些其实不算我心目中的模拟器😆,因为它们不是翻译的系统调用,而是模拟了一块古董CPU,然后装了对应的系统能直接用,只不过大家都说这类算模拟器所以提了一下。
看起来模拟器相比虚拟机还是有很多优势啊,省内存这一优势还是很重要的,虽然现在内存倒是不贵 (苹果内存除外🤣) ,但是消耗本不必要的内存就是浪费吧。只不过这种东西对技术要求果然还是太高了,实在是费力不讨好,所以没有企业愿意投入精力来做,所以就都凉了啊……
不过Wine倒是活得不错,大概是因为Windows的软件太多了吧……生态很重要啊。