1
bluedawn OP ps: 手机上写 markdown 好像格式错乱了影响阅读真的实在抱歉
|
2
everyx 2022-12-20 16:06:19 +08:00
在用 juicefs ,简单易用,直接挂载到本地,然后再挂载到容器中,没碰到啥问题
|
3
bluedawn OP @everyx #2 感谢回复,我也尝试了 juicefs 。但是如果用 s3 创建 juicefs 的话,IOPS 完全取决于 s3 供应商的性能,同样还是在用使用 sqlite3 做数据库的容器测试的,cloudflare r2 和 backblaze 都无法完成正常的 sqlite 写入,但是它确实可以作为完美的文件存储空间。还有尝试使用本地磁盘创建的话受限于网络环境也存在一样的问题诶。
|
4
anubu 2022-12-20 16:31:23 +08:00 1
倒腾着玩的环境很难讲有什么最佳实践。跨公网环境搞共享存储,IOPS 已经没有意义了。对于 IO 敏感型应用,还是考虑挂载本地卷。可以盘点这些节点的基础设施情况,对使用本地卷的应用进行节点绑定部署。存储备份可以考虑使用同步应用对节点上的存储卷同步和备份。如果实在想要一些调度灵活性,也可以考虑类似 DRDB 的方案,对各个节点的存储卷进行实时同步,不过考虑到公网延迟,实时性应该还是会打折扣。
|
5
momocraft 2022-12-20 16:37:32 +08:00
为一般磁盘写的东西在网络存储下容易出问题
我宁愿不要直接提供存储, 暴露个数据库服务或者 API 给别的机器用可以了 那台大硬盘机器可以用来放备份 |
6
bluedawn OP @anubu 嗯嗯感谢!确实觉得这样多云跨公网可能绑定节点是更好的选择了,虽然这样又存在单点故障。DRDB 没听说过诶这就去研究一下,感谢大佬指路 w
|
7
bluedawn OP @momocraft 感谢回复,其实同时也在考虑把所有的数据库容器固定在打标签的机器上绑个本地存储,不知道这样做是不是有可行性
|
8
anonydmer 2022-12-20 18:22:14 +08:00
即使是公有云,数据库也是推荐用单独的服务(如 RDS 之类);如果实在是要自己在容器集群中部署数据库,推荐使用 LPV 进行本地卷挂载,可以绑定到固定的存储节点,保证 IO 的高性能。 另外友情提示,容器集群中的虚拟化网络层其实对性能影响比较大,因此即使数据库容器服务跑在了固定的节点上,你的应用通过容器网络来访问仍然有不少的性能损失。
|
9
min 2022-12-20 18:23:43 +08:00 1
请认真考虑下列问题:
瞎折腾一定要出积极的结果么? |
10
bluedawn OP @anonydmer #8 感谢指路,虚拟化网络确实损失了好多性能,这就去试试 LPV 。试过几家的 RDS 但是毕竟本身容器不确定会在哪个地区的机器上运行所以虽然能用但是感觉就网络延迟来说不太好用。
|
11
bluedawn OP @min #9 毕竟自己不太会所以来问一问万能的大家啦。不然觉得未尽全力又半途而废,折腾还有什么意义啊。能有解决方案最好但是实在没有也没办法强求。
|
12
kaneg 2022-12-20 20:09:22 +08:00 via iPhone
既然你提到 NFS ,那就用它了,用那台 1T 存储的服务器搭建 NFS server ,然后在集群用挂载为 PV ,Kubernetes 对 NFS 也是原生支持的。
|
13
anubu 2022-12-20 21:39:31 +08:00 1
typo DRDB > DRBD
使用本地卷又考虑节点故障,基本就是使用类似 DRBD 的技术,对节点上的存储目录进行跨节点同步。印象中也有其它类似的同步技术,也可以搜索研究一下。 另外,自己折腾的场景大部分都不是真实的,即真正生产不会有这样的场景,有这样场景的也不会上真正生产业务。其实就是自己练手玩的,大多数都是我想这么做,或者我可以这么做。所以,不必过于追求最佳实践,直接上手试就行。 |
14
perfectlife 2022-12-20 21:47:59 +08:00
云上建议直接用云盘作为 pv 的后端存储 省事,可靠,比如阿里云,哪怕你自建的 k8s 也支持使用云盘作为 pv 的后端存储
|
15
perfectlife 2022-12-20 21:50:13 +08:00 1
建议慎用 nfs 能不用还是不用 nfs 好点 ,有几率出现数据问题,数据出了问题恢复都挺麻烦的,不行考虑用 local pv 什么的 ,反正机器层面云厂商还能都点底
|
16
everyx 2022-12-21 08:36:29 +08:00
@bluedawn 如果你的 sqlite 数据库还需要多主机共享读 /写,那跨多个云服务商,怎么样速度都上不了啊,如果是 sqlite 数据库只是本机操作,那不怕,有本地缓存,你这类情况持久存储服务只适合做备份用途
|
17
xzysaber 2023-01-06 10:55:51 +08:00
NFS 跨云,并且大量小文件,例如几千个,会非常慢。最终还是选择放到了本地存储。
NFS 的问题挺多的,还有如果 server 关闭时,client 一定要及时关闭,不然会造成 NFS client 所在的节点系统负载飙升,应该是 CPU 上下文频繁切换导致。我使用的 NFS 4 版本,应该不存在小文件 3 中小文件性能问题。 |
18
xzysaber 2023-01-06 10:58:23 +08:00
当然在内网的话,NFS 就还好,快很多。
因为跨云,所以看是否可以每个云使用一个内网 NFS 。如果能满足数据一致性的要求,这也算是一种方法。 |