Questions tagged «glusterfs»

GlusterFS是横向扩展的NAS文件系统,可通过以太网或Infiniband RDMA互连运行。GlusterFS现在归Red Hat所有。

1
NAS性能:NFS,Samba和GlusterFS
我正在为小型Web服务器场计划新的共享存储基础结构。因此,我对许多NAS文件系统进行了很多测试。这样,我得到了一些意外的结果,并且想知道这里的人是否可以确认这一点。 简而言之:对于小型文件写入,Samba的速度比NFS和GlusterFS快得多。 在这里,我做了什么:我运行了一个包含大量文件的简单“ rsync基准”,以比较小型文件的写入性能。为了便于复制,我现在使用当前wordpress tar.gz的内容重新运行了它。 GlusterFS复制2:32-35秒,高CPU负载 GlusterFS单:14-16秒,高CPU负载 GlusterFS + NFS客户端:16-19秒,高CPU负载 NFS内核服务器+ NFS客户端(同步):32-36秒,非常低的CPU负载 NFS内核服务器+ NFS客户端(异步):3-4秒,非常低的CPU负载 Samba:4到7秒,中等CPU负载 直接磁盘:<1秒 我绝对不是samba专家(我认为我的最后一次接触是samba 2.x),所以我在这里没有进行任何优化-只是开箱即用的配置(debian / squeeze软件包)。我添加的唯一内容是“ sync always = yes”,应该在写入后强制执行同步(但是看到这些结果..)。没有它,测试速度大约要快1-2秒。 所有测试都在同一台机器上运行(自安装式NAS出口),因此没有网络延迟-纯协议性能。 侧节点:作为文件系统,我使用了ext4和xfs。以上结果与ext4有关。xfs的性能提高了40%(更少的时间)。机器是EC2 m1.small实例。NAS导出在EBS卷上,来源(提取的tar)在临时磁盘上。 所以我们开始:有人可以向我解释为什么samba这么快吗? 另外:在同步模式下,内核服务器的NFS性能是否应该如此恐怖(优于GlusterFS NFS服务器)?知道如何调整吗? 谢谢L

2
将Docker卷存储在glusterfs中是一个好主意吗?
我目前正在考虑将我们的某些服务器和应用程序迁移到coreOS环境。我在这里看到的问题之一是持久性数据的管理,因为将容器移至新计算机时coreOS无法处理Docker卷。经过一些研究,我发现glusterFS声称是可以解决我所有问题的群集文件系统。 我当前的想法是:我有一个glusterFS容器,该容器在我的每台coreOS机器上作为特权容器运行,并公开一个存储,/mnt/gluster例如。在我Dockerfile的文件中,我指定所有卷都应安装在该路径上。 我考虑的下一件事是哪些容器应该获得自己的卷,哪些容器应该共享一个。例如,每个mysql容器都有自己的卷,因为它能够自己处理复制。我不想搞混。服务于同一网站的Web服务器将正确使用相同的卷来存储“用户上传的图像”等内容,因为它们无法复制这些数据。 有没有人尝试过这样的事情,或者我错过了什么?

4
Systemd:在另一个单元真正启动后启动一个单元
在我的特殊情况下,我想remote-fs在glusterfs完全启动后再启动设备。 我的系统文件: glusterfs 目标: node04:/usr/lib/systemd/system # cat glusterfsd.service [Unit] Description=GlusterFS brick processes (stopping only) After=network.target glusterd.service [Service] Type=oneshot ExecStart=/bin/true RemainAfterExit=yes ExecStop=/bin/sh -c "/bin/killall --wait glusterfsd || /bin/true" ExecReload=/bin/sh -c "/bin/killall -HUP glusterfsd || /bin/true" [Install] WantedBy=multi-user.target remote-fs 目标: node04:/usr/lib/systemd/system # cat remote-fs.target [Unit] Description=Remote File Systems Documentation=man:systemd.special(7) Requires=glusterfsd.service After=glusterfsd.service remote-fs-pre.target …
20 nfs  glusterfs  systemd 

3
150 TB并在增长,但是如何增长?
我的小组目前有两台大型存储服务器,两台NAS均运行debian linux。第一个是已经使用了几年的多合一24磁盘(SATA)服务器。我们在LVM之上设置了两个硬件RAIDS。第二台服务器是64个磁盘,分布在4个机箱中,每个机箱都通过外部SAS连接到一个硬件RAID 6。我们将XFS与LVM结合使用,以创建100TB可用存储。所有这些工作都很好,但是我们已经淘汰了这些系统。已经构建了两个这样的服务器并且仍在增长,我们希望构建一些东西,使我们在将来的增长,备份选项方面具有更大的灵活性,在磁盘故障下表现更好(检查较大的文件系统可能需要一天或更长时间),并且可以承受在高度并发的环境中(例如小型计算机集群)。我们没有系统管理支持, 因此,我们寻求的是一种相对低成本,可接受的性能存储解决方案,该解决方案将允许未来的增长和灵活的配置(请考虑具有不同池且具有不同运行特性的ZFS)。我们可能不在单个NAS的范围内。我们一直在考虑将ZFS(例如,在openindiana上)或每台服务器的btrfs与运行在其上的glusterfs组合在一起。我们所反对的只是简单地钻研子弹,并投资Isilon或3Par存储解决方案。 任何建议或经验表示赞赏。

1
使用Ansible创建并挂载GlusterFS卷
我正在使用GlusterFS在4台计算机上创建和装载卷。比方说,该机器被称为machine1,machine2,machine3和machine4。 我的同伴已经被成功探测。 我已经使用以下命令来创建我的卷: sudo gluster volume create ssl replica 2 transport tcp machine1:/srv/gluster/ssl machine2:/srv/gluster/ssl machine3:/srv/gluster/ssl machine4:/srv/gluster/ssl force 然后,我从以下内容开始音量: sudo gluster volume start ssl 我已经/myproject/ssl使用以下命令挂载了目录: sudo mount -t glusterfs machine1:/ssl /myproject/ssl 当安装在每台计算机上时,一切都会按预期进行,并且/myproject/ssl目录具有在所有计算机上共享的数据。 问题是,在地球上我该怎么做? 这是我尝试以Ansible方式执行这两个命令的尝试: - name: Configure Gluster volume. gluster_volume: state: present name: "{{ gluster.brick_name }}" brick: "{{ gluster.brick_dir }}" replicas: …

4
ZFS集群文件系统可能吗?
是否可以创建ZFS集群?还是您需要使用由GlusterFS管理的UFS格式的池,使用ZFS的看上去丑陋的(至少对我而言)路线? 这个想法是看是否有可能扩展到ZFS应该能够毫不打扰地处理的Multi-Petabyte分布式存储。 任何指针,博客,帖子?

4
Gluster到底做什么?
最近两天我一直在玩gluster,并在这里和他们的问题系统中提问。我真的不明白其中的一些内容。我看到有人说 在服务器之间设置复制的模块(因为您仅使用3,所以复制会更安全),并且每台服务器会将所有其他服务器的文件视为“本地”-即使一台服务器发生故障,文件也已复制到其他服务器。 要么 Gluster将保持跨卷(砖)的文件同步,并具有“自我修复”功能,该功能可处理由于一台服务器脱机而引起的任何不一致情况。 由于我将一个远程卷从服务器安装到客户端,因此gluster如何处理服务器节点的故障,因此从中安装卷?从我尝试过的内容来看,无法访问安装了卷的客户端上的文件夹,因此必须使用umount取消阻止它。之后,服务器中没有任何内容。 基本上,这是我看不到的任何解释:服务器节点发生故障时会发生什么,以及是否有可能像unison或rsync一样真正地复制内容?

5
如何监视glusterfs音量
Glusterfs虽然是一个不错的分布式文件系统,但几乎无法提供监视其完整性的方法。服务器可以来来去去,砖块可能会陈旧或发生故障,并且我怕在为时已晚时才知道这一点。 最近,当一切似乎都正常运行时,我们遇到了一个奇怪的失败,但是一堆砖从体积中掉了下来(纯粹出于巧合)。 是否有一种简单可靠的方法(cron脚本?)可以让我知道我的GlusterFS 3.2卷的运行状况?

5
我可以在glusterfs上运行mysqld吗?
我最近一直在玩glusterfs。 我想尝试的是以类似的方式在glusterfs之上运行mysqld,因为有可能在DRBD之上运行MySQL。 我熟悉MySQL复制以及使用它代替这种方法的优点,并且我也知道MongoDB和其他NoSQL解决方案。 但是,如果我可以保留MySQL原样并复制基础文件系统,那将是对我即将进行的一些特定项目的简单解决方案。 这可能吗?如果在哪里可以找到方法?

4
GlusterFS分裂大脑无路可走,这是什么意思?
我只是在检查我的glusterfs卷的状态,有一个带有无路径的裂脑条目的卷: # gluster volume heal private_uploads info Brick server01:/var/lib/glusterfs/brick01/uploads/ <gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain <gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain Number of entries: 2 Brick server02:/var/lib/glusterfs/brick01/uploads/ <gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain <gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain Number of entries: 2 这是什么意思?我如何解决它? 我正在运行GlusterFS 3.5.9: # gluster --version glusterfs 3.5.9 built on Mar …
11 glusterfs 

2
避免通过GlusterFS和Windows使用SPOFS
我们有一个用于处理功能的GlusterFS集群。我们希望将Windows集成到其中,但是在解决如何避免单点故障方面遇到了一些麻烦,单点故障是为GlusterFS卷提供服务的Samba服务器。 我们的文件流如下所示: 文件由Linux处理节点读取。 文件已处理。 完成后,结果(可能很小,可能会很大)被写回到GlusterFS卷。 结果可以改为写入数据库,也可以包括多个大小不同的文件。 处理节点从队列和GOTO中提取另一个作业。 Gluster很棒,因为它提供了分布式卷以及即时复制。灾难恢复能力很好!我们喜欢它。 但是,由于Windows没有本地GlusterFS客户端,因此我们需要某种方式使基于Windows的处理节点以类似弹性的方式与文件存储进行交互。该GlusterFS文档指出,为了提供Windows访问的方式是建立在顶部处的Samba服务器安装GlusterFS卷。这将导致如下文件流: 在我看来,这就像是单点故障。 一种选择是对Samba进行集群,但这似乎是基于不稳定的代码,因此无法运行。 所以我正在寻找另一种方法。 有关我们抛出的数据类型的一些关键细节: 原始文件大小可以从几KB到几十GB不等。 处理后的文件大小可以从几KB到GB到两个不等。 由于将包含的文件导入到文件存储中,因此某些过程(例如挖掘诸如.zip或.tar的存档文件)可能会导致进一步写入。 文件数可以达到百万分之十。 此工作负载不适用于“静态工作单位大小” Hadoop设置。同样,我们评估了S3样式的对象存储,但发现它们缺乏。 我们的应用程序是用Ruby自定义编写的,并且Windows节点上确实有一个Cygwin环境。这可能对我们有帮助。 我正在考虑的一个选项是在装有GlusterFS卷的服务器群集上的简单HTTP服务。由于我们使用Gluster所做的基本上是GET / PUT操作,因此似乎可以轻松地转换为基于HTTP的文件传输方法。将它们放在负载均衡器对的后面,Windows节点可以通过HTTP PUT进入其小小的心灵。 我不知道如何保持GlusterFS的一致性。HTTP代理层在处理节点报告已完成写操作与在GlusterFS卷上实际可见之间引入了足够的延迟,我担心稍后的处理阶段尝试提取文件不会找到它。我很确定使用direct-io-mode=enablemount-option会有所帮助,但是我不确定这是否足够。我还应该做些什么来提高一致性? 还是我应该完全追求另一种方法? 正如Tom在下面指出的那样,NFS是另一种选择。所以我进行了测试。由于上述文件具有我们需要保留的客户端提供的名称,并且可以使用任何语言出现,因此我们确实需要保留文件名。所以我用这些文件建立了一个目录: 当我从装有NFS客户端的Server 2008 R2系统中挂载它时,会得到一个目录列表,如下所示: 显然,不保留Unicode。所以NFS对我不起作用。

2
为什么我不能创建该gluster卷?
我正在设置我的第一个Gluster 3.4安装程序,直到我要创建分布式复制卷为止,一切都准备就绪。 我有4个服务器192.168.0.11、192.168.0.12、192.168.0.13和192.168.0.14。 从192.168.0.11我运行了: gluster peer probe 192.168.0.12 gluster peer probe 192.168.0.13 gluster peer probe 192.168.0.14 在每台服务器上,我在/ export / brick1处都有一个已装入的存储卷 然后我在192.168.0.11上运行 gluster卷创建gv0副本2 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1 但是我得到了错误: volume create: gv0: failed: Host 192.168.0.11 is not in 'Peer in Cluster' state 当然,如果您运行gluster对等状态,它会显示与其他已连接主机的3个对等。即对等体数:3 主机名:192.168.0.12端口:24007 Uuid:bcea6044-f841-4465-88e4-f76a0c8d5198状态:集群中的对等体(已连接) 主机名:192.168.0.13端口:24007 Uuid:3b5c188e-9be8-4d0f-a7bd-b738a88f2199状态:集群中的对等体(已连接) 主机名:192.168.0.14端口:24007 Uuid:f6f326eb-0181-4f99-8072-f27652dab064状态:集群中的对等体(已连接) 但是,从192.168.0.12开始,同一命令还显示3个主机,而192.168.0.11是其中的一部分。即 Number of …

4
GlusterFS是保持Web服务器同步的好选择吗?
我有2个Web服务器,并且有机会在此过程中添加更多服务器。现在,我使用lsyncd + csync2使这些服务器保持同步。由于所有文件都在两台服务器上(不需要网络访问权限才能在本地打开文件),因此在性能方面明智地工作,但是在其他情况下效果不是很好。 一个示例是,如果我删除服务器1上的文件,然后立即将新文件上载到具有相同名称的服务器1。然后,该文件将同时从服务器2中删除,导致服务器1上新上载的文件被删除,因为服务器2将删除事件发送到服务器1上以完成“更新圈”。 我不禁想到,必须有一种更好的方法来保持服​​务器同步。我一直在查看GlusterFS,但不建议使用将所有文件复制到所有服务器的设置。但是,我在这些服务器上运行像Drupal这样的CMS系统。这样的CMS系统通常会打开很多文件,而我担心太多的网络流量无法容纳这些文件会降低请求的速度。 考虑用设置为将所有文件复制到所有节点的GlusterFS替换lsyncd + csync2是一个好主意,还是一个坏主意?

2
带有数据的PostgreSQL容器化的分布式文件系统
我很好奇,是否有人在某种形式的分布式文件系统(最好是GlusterFS)上的生产容器中运行PostgreSQL。 我目前正在运行Mesos / Marathon。万一PostgreSQL节点发生故障,Marathon只需在其他节点上启动PostgreSQL的另一个实例,并且如果操作正确(服务发现和应用程序从数据库连接丢失中恢复),将实现最终的容错能力。 我知道PostgreSQL有自己的HA解决方案,例如日志传送和热备用备份,但是仍然需要解决何时从主服务器切换到从服务器,如何正确执行操作等问题。 那么,如何在GlusterFS或类似产品上的生产环境中运行PostgreSQL?如果可以,是否稳定?性能如何?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.