V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
y0bcn
V2EX  ›  云计算

老板让我规划服务器集群

  •  
  •   y0bcn · 153 天前 · 4426 次点击
    这是一个创建于 153 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    先列一下服务器资源:

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

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

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

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


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

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

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

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

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

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

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

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

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

    ---

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

    ---

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

    还有就是需要注意测试正常走关机流程的时长,有问题的话还需要考虑自己写一个关机的脚本,对一些东西直接使用杀进程的方式关闭,确保 UPS 不会在出现停电的时候坚持不到正常关机就没电了。
    locoz
        12
    locoz  
       152 天前   ❤️ 2
    自建存储用 Ceph 唯一的问题我认为在于:规模极小、极度控制成本的情况下,跑出来的性能会与预期差距较大。其他的说实在的都不是太大的问题。
    laminux29
        13
    laminux29  
       152 天前   ❤️ 1
    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
        14
    ursash  
       152 天前   ❤️ 1
    支持 ESXi
    jackge0323
        15
    jackge0323  
       152 天前   ❤️ 1
    k8s 至少要学半年,用半年,没有这个时间的话,考虑其他方案吧。
    foam
        16
    foam  
       152 天前 via Android   ❤️ 1
    为啥不直接用云服务的 k8s 。自己搞灾备好麻烦也不可靠的感觉
    Soo0
        17
    Soo0  
       152 天前 via iPhone   ❤️ 1
    ESXi 额外提让老板买套 ups ?
    k9990009
        18
    k9990009  
       152 天前 via Android   ❤️ 1
    我之前瞎搞的。机房供应商搞的,不懂硬件这块,装的 vmware 。中间件物理安装的,mysql 也是 pxc ,中间件自己注册成 service ,自动重启。不会 k8s,应用用的 docker-compose 。停电很正常,停电前人肉关机。pxc 很蛋疼,要自己先手动启动主节点,再拉起其他节点,没做到自动化。还有个问题就是,我不知道怎么估算中间件和应用所需资源( cpu/内存),能跑就行,大概是要压测。
    ETiV
        19
    ETiV  
       152 天前 via iPhone   ❤️ 1
    如果你什么都不懂,就用阿里云,估算下业务规模和流量,价格很好算的
    mylovesaber
        20
    mylovesaber  
       152 天前   ❤️ 1
    你那个停电就不能上 ups 吗?这怎么能成顾虑的点的?一旦断电就集中自动停服务关机,pve 正常开关机都正常的,害怕的话可以尝试下 win server ,然后安装 vmware workstation pro ,pro 版本都已经免费了。所有操作都是图形化,多省事
    kalayygl001
        21
    kalayygl001  
       152 天前   ❤️ 1
    1 台 32G 内存老旧服务器==== 准备用来做测试环境
    2 台 16G 内存老旧服务器==== 准备用来做前置负载均衡,主备

    上面的服务器 去买点内存 扩容到 128g 也做虚拟化, 费用不超过 2000 何乐而不为呢
    y0bcn
        22
    y0bcn  
    OP
       152 天前
    @foam 我们的数据规模非常大,同时存在大量的运算任务,而且有免费的电力供应,所以用云服务并不划算
    y0bcn
        23
    y0bcn  
    OP
       152 天前
    @tool2dx UPS 倒是有,不过好像没法通知到服务器,改天去机房看看
    @mylovesaber
    y0bcn
        24
    y0bcn  
    OP
       152 天前
    @xufei0913 是的
    y0bcn
        25
    y0bcn  
    OP
       152 天前
    @lrh3321 目前我也是担心这个问题

    @ETiV 有钱买服务器,没钱上云啊,我们其实已经有一堆服务器了,这部分因为用户的原因并不能纳入本次规划的集群中
    huang9
        26
    huang9  
       152 天前
    做为一个算比较资深的运维同学强烈建议你,这点资源别折腾了,直接用裸机直接跑就行,线上中间件做好备份工作,比啥都好,如果有强占资源情况直接用 docker 就行,其他的折腾啥哇
    chf007
        27
    chf007  
       152 天前
    难道不先说下业务场景,当前负载情况以及未来可能的增长情况?

    规模小的话,可以 Docker Swarm ,K8S 太重,Docker Compose 只能单机
    xueling
        28
    xueling  
       151 天前
    看了前面的评论,我有两个看法,一是:你们用 k8s 是对的,但是是无奈之举。物理机已经买完了,集群规模这么小,又要部署那么多的服务,不使用容器化,那服务之间互相影响,其实更容易出问题,使用 k8s 做个服务间的资源隔离是必要的,现实状况使得几乎必须得用容器化了。 二是:我还是觉得云服务器更好,省去团队的学习成本和维护成本,你说计算量大用云服务器不合算,我其实不太认同,综合计算下来可能云服务器更省钱。我看你们还有部署 clickhouse ,如果是数据统计的话,也可以考虑用一下我的开源项目: https://github.com/xl-xueling/xl-lighthouse
    dode
        29
    dode  
       150 天前
    2 台老旧服务器都做物理测试机,测试随便玩吧,16G 还没笔记本内存大,前置 5 挑一就行了
    dode
        30
    dode  
       150 天前
    5 台 128G 如果内存,硬盘,SSD 都还行直接安装 esxi ,可以五台相互独立管理也可以加一台 vc ,集中管理,
    内存还是多插点
    mingtdlb
        31
    mingtdlb  
       147 天前
    先说你是什么岗位吧,赶鸭子上架的事不要做,没出事都相安无事,出了问题你就裸了。特别是生产环境,pve ceph k8s 这种不是很了解(独当一面),仅使用的能力,就别弄了。
    Sklinux
        32
    Sklinux  
       143 天前
    “采购第三方方案:这条基本 PASS ,没有相关预算,只能被白嫖” 这。。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6130 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:16 · PVG 14:16 · LAX 22:16 · JFK 01:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.