先说一下需求,产品是个企业中实现处理业务的网站,很多客户要求实现高可用。数据库这块好弄,主要是文件处理比较麻烦。希望 v 友给些方案和建议。
我的方案:
倾向方案 4 ,请 v 友推荐一下功能简单,改写代码成本低的文件系统。
1
Ayanokouji 64 天前 1
必须是文件系统吗,对象存储考虑吗,比如 minio
|
2
hetal 64 天前
seaweedfs
|
3
lxy42 64 天前 via Android
juicefs
|
4
NevadaLi 64 天前
glusterfs 和 ceph ,机器装好对应的 rpm ,mount 就完了,代码应该是不需要改的
|
5
defunct9 64 天前
glusterFS
|
7
catamaran OP @Ayanokouji 我以为 minio 就是文件系统,对象存储应该也可以吧,其实我不太清楚他们的差异。主要需求两点:简单成本低,能实现高可用。
|
8
NevadaLi 63 天前 1
@catamaran #7 minio 是对象存储,这种东西上传文件靠 cli 或者 api ,你需要改代码的。当然,glusterfs 和 cephfs 不用修改代码的前提是,你现在的文件操作是对在系统层面进行的(比如直接保存文件到本地路径),而不是像用 minio/oss/cos 这种 api 实现的。
文件系统是直接作用在机器存储底层的,比如所熟知的 ntfs ,ext4 ,xfs ,但前面这些是单机系统,就是不具备网络共享的系统,如果要共享,需要依赖 nfs 、samba 协议/网络文件系统这种。 glusterfs 和 cephfs 也是作用于机器存储底层的,但不同的是本身就是分布式共享存储,可以依赖 nfs ,也可以使用自己的 glusterfs 和 cephfs ,驱动由对应的 fuse 提供。 =========== 你的第一点说 linux 文件共享不让用,我的理解是不能本机 samba 和 nfs 这种直接共享磁盘吧?不然分布式文件系统的本质也是文件共享。 |
9
catamaran OP @NevadaLi #8 不让共享的意思就是不让使用 nfs 协议,好像说是不安全吧。大企业病,才不管你的具体场景,都是一刀切。上面说了好多,我消化一下。多谢!
|
10
HUNTERXHUNTER 63 天前
minio
|
11
NevadaLi 63 天前 1
@catamaran #9 猜到了,以我当前了解到的信息,建议你上 glusterfs 吧,操作简单,并且挂载的文件系统是 glusterfs ,满足对面的安全策略。
FYI: https://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/ https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/#types-of-volumes 使用 Replicated Glusterfs Volume 模式吧,类似 raid1 ,保护数据。 |
12
HypoChen 63 天前
不建议分布式文件系统,如果网站产生的文件不复杂(比如同时读写同一份文件),不如写本地 + rsync + 定时备份
原因是很多分布式存储的复杂性,可能比你的业务都高,出故障不一定能救回来 如果真的需要一个存储服务,minio 有一定的高可用能力,api 丰富对于 web 场景够用了,如果真的需要一个文件系统,minio + redis/tikv + juicefs 是个不错的选择 |
13
laminux29 63 天前
高可用并不一定要用分布式。双机热备是成熟、稳定、有大量案例、出故障了能有很多高手帮忙救场的架构。
不推荐分布式,因为无论 CephFS 、JuiceFS 、HDFS 、Zookeeper 、etcd 等等,都有一大堆坑。你们没加入用户讨论,没自己部署过,不理解里面的水有多深,就像上面的朋友说,出故障了,可能很少有人能帮你救场。这还不如传统的双机 lvm + ext4 + rsync ,简单、稳定、成熟、谁都能救场。 |
14
guo4224 63 天前
对象存储,fuse mount
|
15
standin000 63 天前
@laminux29 请教如果 windows 要双机同步有什么好点方案
|
16
huigeer 63 天前 via iPhone
之前用的 rsync 多写,凑合用,
|
18
wogogoing 63 天前 via iPhone
minio 吧 挺好用的
|
19
Reficul 63 天前
分布式文件系统可以养活一个团队,不说文件系统本身单单一个 fuse 的坑就够深了。计算、网络都可以从踩坑开始上线,存储可是会丢数据的,没有专门的人搞的情况下,慎重。
|
20
Ayanokouji 63 天前
op 这情况,还是用 minio + 定时备份吧。分布式文件系统,一般团队驾驭不了。
只不过需要改改业务代码,不过 minio 之类的对象存储 api 都挺简单的。 |
21
Desdemor 63 天前
我之前用过一个 seaweedFs, https://github.com/seaweedfs/seaweedfs
|
22
catamaran OP @standin000 freefilesync ,有命令行模式
|
23
laminux29 63 天前
@standin000 Windows 那边各种稀奇古怪的同步工具,更多了,比如 Sync Back Pro ,这软件是企业级的,功能比 EMC 还强,百度有开心版。
|
25
cc666 62 天前
可以把 S3 或者 minio 等对象存储挂载为本地文件系统 https://github.com/awslabs/mountpoint-s3 ,缺点是可能不支持编辑,只支持读取和上传。
还是觉得自己维护一个分布式文件系统坑太多了,即使不 mount 对象存储为本地文件系统,将原有的文件代码改为对象存储的 API 应该也不难,要是到处都要改基本就是原有的设计有问题 |