老板让我规划服务器集群

145 天前
 y0bcn

迫于老板让我规划服务器集群,我这几天查阅了一些资料,总结出一些方案,想写出来让 V 友参考一下,有没有什么坑。

先列一下服务器资源:

  1. 5 台 128G 内存新服务器 ==== 准备用来做生产环境集群
  2. 1 台 32G 内存老旧服务器==== 准备用来做测试环境
  3. 2 台 16G 内存老旧服务器==== 准备用来做前置负载均衡,主备

5 台机器想要做集群,用于承载生产业务,首先是各种中间件和数据库( MySQL/RocketMQ/Redis/Clickhouse 等)想要直接部署在物理服务器中,采用各中间件主流的集群方案,其中 MySQL 使用 PXC 。

此外还需要将 5 台设备虚拟化或容器化,组成一个集群,用于承载各个应用,这里考虑 PVE 或者 K8S ,看了 PVE+Ceph 的方案,感觉蛮简单的,但是有人提示有坑(我们可能会不定期的出现意外断电或供电维护),会导致数据无法读取。K8S 的话好像成熟很多,存在较高学习成本,不只我需要学,其他同学可能也需要学习才能在集群中部署应用。

希望听听各位大佬的建议,这几天天天琢磨这个,晚上查资料到半夜,实在是熬不住了。


采购第三方方案:这条基本 PASS ,没有相关预算,只能被白嫖,我也想通过这个机会学习一下相关技术,也为自己提供一定的护甲。

4401 次点击
所在节点    云计算
32 条回复
woscaizi
145 天前
1. 如果你们不是微服务,采用 k8s 方案不合适;
2. 如果可以不虚拟化,建议不虚拟化;
3. 可以使用 docker ,结合 docker-compose , 部署会很简单。
iphoneXr
145 天前
建议先采购几台旧的戴尔服务器 R630 R730 等等 来组建 PVE 测试服务器集群
不要用 ceph 搞个 nas 来提供 nfs 作为集中存储把
熟悉了之后就可以搞生产的集群了 生产集群有钱就裸装 没钱就 PVE 集群 存储使用各自的 SSD 即可。
tool2dx
145 天前
买个 UPS ,万一停电把正在写入的磁盘搞坏了,你就可以提包走人了。
xufei0913
145 天前
请问你们是自己搭建的服务器么,是需要一个机房放服务器的么。
kalayygl001
145 天前
系统:pve 或者 esxi
网络:网卡万兆 2 块或者千兆 4 块 bond ,万兆或者千兆交换机 可以配置管理
硬盘:系统 raid0 +数据盘 如果 pve+ceph 数据盘可以直通

供电:ups 必须买
vopsoft
145 天前
生产环境 PVE 还是 pass 吧
GeekGao
145 天前
对于中间件和数据库的部署,继续按照当前的计划进行,即直接在物理服务器上部署并采用各自的主流集群方案。

对于虚拟化或容器化集群的选择,我推荐选择 Kubernetes (K8s)。尽管它的学习成本较高,但从长远来看,K8s 能够提供更强大的功能和更广泛的应用场景。此外,随着时间的推移,团队将逐渐掌握 K8s ,从而提高整体的运维效率和系统的可扩展性。

关于数据丢失或无法读取的问题,无论选择哪种方案,都应该实施严格的备份和恢复策略,以防止数据丢失。
isno
145 天前
用 k8s 。

快的话,一天看完。k8s 的计算、存储、网络、容器设计。

https://www.thebyte.com.cn/container/summary.html
lrh3321
145 天前
开源版的 Ceph 如果出问题了,你不一定能处理得了。
my3157
145 天前
用 pve 隔一层, 避免有问题一锅端, 文件系统用 zfs, 好备份和迁移, vm 里面可以用 docker 或者 docker compose, 不要贸然上 k8s , 网络问题好解决, 有状态服务不好处理, k8s 是动态调度的, 而 pve 的 vm 是静态管理
locoz
145 天前
可以用 K8S + Rook Ceph ,只要硬盘数量和质量到位、存储池按正常 3 副本来、只用 Ceph RBD 或基于 Ceph RBD 跑的 JuiceFS ,正常用不瞎搞是非常稳的。甚至配置之类的按默认的来就行了,搭好就可以放养,即使意外断电也能自动恢复,出现特殊情况卡着半天没直接自动恢复到正常状态,一般也就只是重启一下 mgr/mon/osd 的事情。

而且 Ceph 的极端情况只有在人为误操作才会出现,且只要不继续进行错误操作,在关键信息有备份的情况下,服务依然是可以原地恢复的;即使是更极端的情况,整个集群都挂了,需要重建集群,只要还有 mon 的数据,RBD 中的数据也依然可以被导出,数据是非常非常难丢的。

我用 Ceph 从来没丢过 RBD 中的数据,即使之前出现过两次极端情况也是如此。而且其中一次极端情况还是因为硬件没给到位,要不然即使当时误操作了也不会出问题,直接就自动恢复完了。

---

K8S 一般的应用部署说白了就是写一套模板,然后换镜像名、改环境变量之类的就完事了,搞明白了基本概念之后也没多复杂。甚至如果你搞好一套 GitOps 流程,把自动构建、自动更新之类的都搞好,其他人是完全可以不需要知道 K8S 层面怎么部署的。

---

另外,经常停电的话,如果不是托管到机房,UPS 一定要配一个,而且最好能通过网络提供状态信息,让服务器能在停电时自动关机。续航时间需要确保能坚持到服务器正常关机,尽可能减少因为断电导致出问题的可能性。

还有就是需要注意测试正常走关机流程的时长,有问题的话还需要考虑自己写一个关机的脚本,对一些东西直接使用杀进程的方式关闭,确保 UPS 不会在出现停电的时候坚持不到正常关机就没电了。
locoz
145 天前
自建存储用 Ceph 唯一的问题我认为在于:规模极小、极度控制成本的情况下,跑出来的性能会与预期差距较大。其他的说实在的都不是太大的问题。
laminux29
145 天前
1.生产不要用 PVE 集群。PVE 集群是 PVE 官方用来赚取服务费的,比如,PVE 后台的集群功能,只有添加节点按钮,没有删除节点按钮,没有编辑节点按钮。节点一旦出问题,只能进控制台,用 PVE 官方给出的磨砺两可的命令进行操作,而且删除节点,PVE 官方居然要求节点关机。并且,如果你自己处理不了,就不能去买 PVE 官方的收费服务了。

2.PVE 可以在测试环境中,进行单机使用,优势是灵活,Linux 系开机速度快。

3.生产环境,如果对数据有很高的实时一致性要求的,存储建议专门安装 CephFS 。如果没有,直接双机,第一台写入机,用 cron 给 rsync 做定时同步即可。

4.能 docker 的尽量 docker 。

5.k8s 最好别碰,原因是这玩意要搭建起来,你一个人没有几年积累,时间与经验根本不够。

6.如果我是你,留一台配置最差的上 Debian 12 + OpenZFS 作为备份机,其他所有服务器,直接全上 VMware ESXi 集群,然后开 HA 。
ursash
145 天前
支持 ESXi
jackge0323
145 天前
k8s 至少要学半年,用半年,没有这个时间的话,考虑其他方案吧。
foam
145 天前
为啥不直接用云服务的 k8s 。自己搞灾备好麻烦也不可靠的感觉
Soo0
145 天前
ESXi 额外提让老板买套 ups ?
k9990009
145 天前
我之前瞎搞的。机房供应商搞的,不懂硬件这块,装的 vmware 。中间件物理安装的,mysql 也是 pxc ,中间件自己注册成 service ,自动重启。不会 k8s,应用用的 docker-compose 。停电很正常,停电前人肉关机。pxc 很蛋疼,要自己先手动启动主节点,再拉起其他节点,没做到自动化。还有个问题就是,我不知道怎么估算中间件和应用所需资源( cpu/内存),能跑就行,大概是要压测。
ETiV
145 天前
如果你什么都不懂,就用阿里云,估算下业务规模和流量,价格很好算的
mylovesaber
145 天前
你那个停电就不能上 ups 吗?这怎么能成顾虑的点的?一旦断电就集中自动停服务关机,pve 正常开关机都正常的,害怕的话可以尝试下 win server ,然后安装 vmware workstation pro ,pro 版本都已经免费了。所有操作都是图形化,多省事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1052426

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX