问题标签 [glusterfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4207 浏览

ubuntu - 即使创建了卷,Gluster 也不同步

我在局域网上的两个 ubuntu 机器上安装了 Gluster。Everyting 看起来不错,但是当我将文件写入服务器 1 上的文件夹时,它不会出现在服务器 2 上的文件夹中。这是我所知道的唯一两个测试卷是否正常工作的测试。我已经测试了对等方是否可以连接并且确实可以。

我在两台服务器上得到相同的结果。

0 投票
1 回答
186 浏览

perl - GlusterFS 挂载共享上的文件复制问题

我在将文件复制到基本上是 GlusterFS 安装共享的文件夹时遇到问题。

我的 Perl 脚本读取一个文件,进行一些解析,然后创建一个新文件。之后,我将新创建的具有不同名称的文件复制到不同的位置。

我收到这个错误

我的 perl 代码:

0 投票
1 回答
1635 浏览

ssh - glusterfs 无法读取 gsyncd 状态文件

我想在我的计算机上的一些 virtualboxes 中尝试 glusterfs 地理复制,以便以后分布在多个站点上使用。

我在 ubuntu 32 位服务器上安装了 glusterfs 3.6,如下所示:

/etc/hosts每个 virtualbox 上都有一个这样的条目,以便我可以使用主机名:

首先,我在 master 上创建并启动了一个卷(在 r​​ootfs 上force创建):

工作正常。我设置了无密码root登录ssh-copy-id并手动登录一次,以检查设置是否正确并且主机存储在known_hosts.

我无法将同步设置到Geo-Replication Terminology - Understanding the URI中所述的目录中。由于 URI 问题,创建异地复制失败。

日志文件包含类似Invalid slave name, Unable to store slave volume name,的条目Unable to fetch slave or confpath details

当我创建一个卷ivyslave2.com并使用该卷创建异地复制时,这有效:

不幸的是,gluster volume geo-replication master ivyslave2.com::slave2 status说复制的状态是错误的。

执行此命令后,master 上的日志文件包含Using passed config template(/var/lib/glusterd/geo-replication/master_ivyslave2.com_slave2/gsyncd.conf)., Unable to read gsyncd status file, Unable to read the statusfile for /var/glusterfs_master_nv brick for master(master), ivyslave2.com::slave2(slave) session.

从站上的日志文件包含Received status volume req for volume slave2, tune2fs exited with non-zero exit status, failed to get inode size.

这是slave上的音量有问题吗?如何在没有卷的情况下设置异地复制?异地复制配置有问题吗?

0 投票
1 回答
2411 浏览

wordpress - GlusterFS 未启动且未创建卷

我正在尝试设置一个可以在其中安装 wordpress 的集群,glusterFS以便主节点将运行 wordpress 的实际副本,而其他两个节点将拥有其副本。另外我想设置主从 Mysql 设置。我已经GlusterFS在三个 droplets 上安装了 Mysql server、server、nginx server,第四个已经Nginx Load balancer安装。问题是我无法创建GlusterFS卷,以下是我在构建该 FS 期间遇到的错误。

使用的命令:

我尝试了这些命令,还尝试了私有 IP 代替主机名,还尝试通过最后移除强制来做到这一点。

这是我得到的错误。

错误的砖和使用<hostname>等等等或operation failed

请帮我解决问题。我一直在使用下面的教程来开发它

https://www.digitalocean.com/community/tutorials/automating-the-deployment-of-a-scalable-wordpress-site

我已按照文档中的所有步骤进行操作,但对我不起作用。我现在被困住了GlusterFS

我也尝试重新启动GlusterFS服务器,但它现在甚至没有启动。它说GlusterFS服务器已启动,但是当我检查服务状态时它说Failed

请帮忙。

提前致谢

0 投票
0 回答
551 浏览

filesystems - 如何调整 GlusterFS 性能?

我有 2 台具有以下规格的专用服务器: - E3 1270V3 CPU - 32GB RAM - 960GB SSD - 1Gbps 专用以太网网络。

使用本地驱动器,dd 测试通常在 600MB/s 范围内,非常好。

我最近通过在每台机器上安装 glusterd 和 glusterfs 客户端来设置一个 GlusterFS 复制集群。全局命名空间的 dd 测试结果下降到 50MB/s,每当我尝试运行需要高读/写性能的应用程序时,应用程序就会崩溃。

如何使用 2 台机器复制集群调整 GlusterFS 以获得更好的性能?

0 投票
0 回答
957 浏览

linux - Glusterfs 安装完成但无法在第二个节点上启动服务

glusterfs在 ubuntu 和 linux 6 上安装文件系统,试图将这两个服务器作为对等体连接。

我在两台服务器上都成功安装了它,但由于一些复制问题,我停止glusterfs了 linux 6 服务器上的服务。之后我无法在同一台服务器上启动服务。

挖掘日志我发现了以下错误。

glusterfs tail -f cli.log [2015-06-22 16:36:13.342468] W [socket.c:642:__socket_rwv] 0-glusterfs: readv on /var/run/glusterd.socket 失败(无效参数)[2015 -06-22 16:36:13.342496] I [socket.c:2409:socket_event_handler] 0-transport: 现在断开 [2015-06-22 16:36:15.490601] W [cli-rl.c:106:cli_rl_process_line] 0-glusterfs:无法处理行 [2015-06-22 16:36:16.344012] W [socket.c:642:__socket_rwv] 0-glusterfs:/var/run/glusterd.socket 上的 readv 失败(无效参数)[ 2015-06-22 16:36:16.344067] 我 [socket.c:2409:socket_event_handler] 0-传输:现在断开连接 [2015-06-22 16:36:19.346585] W [socket.c:642:__socket_rwv] 0 -glusterfs:/var/run/glusterd.socket 上的 readv 失败(无效参数)[2015-06-22 16:36:19.346641] I [socket.c:2409:socket_event_handler] 0-transport:现在断开 [2015-06-22 16:36:20.545822] W [cli-rl.c:106:cli_rl_process_line] 0-glusterfs:无法处理行 [2015-06-22 16:36:22.346947] W [socket. c:642:__socket_rwv] 0-glusterfs: readv on /var/run/glusterd.socket 失败(无效参数)[2015-06-22 16:36:22.347001] I [socket.c:2409:socket_event_handler] 0-transport : 现在断开

没有glusterfs进程在同一台服务器上运行。

提前致谢。

0 投票
0 回答
170 浏览

amazon-web-services - Glusterfs Gett 属性 IOPS 缓存

我正在为繁重的 Get Attribute 工作负载构建 GlusterFS 共享。此集群以“复制方式”配置,需要托管数 TB 的数据。

在这种情况下,来自客户端的请求的最大部分是“获取属性”类型(例如 Apache last modified)。

我想知道 IO(磁盘)性能:

  • GlusterFS 在获取属性的磁盘上的 IO 方面如何执行?
  • 每个 Get Attribute 请求是到达底层磁盘还是从服务器提供而不影响磁盘 IO?
  • gluster 缓存在这种情况下有效吗?
  • 每次 Get Attribute 到达 Gluster Server 时,是否都会向副本服务器发出请求?
  • 考虑到 Gluster 作为首选的服务器解决方案,在这种特定工作负载下使用 NFS 客户端的 GlusterFS 客户端是否更好?

提前致谢。

0 投票
1 回答
1287 浏览

ubuntu - 如何在 ubuntu 14.04 中将 glusterfs 卷挂载到 /var/lib/docker

我在 ubuntu 14.04 上安装了 gluster-server 和 docker

当我跑下线时

sudo docker run -p 80:80 --name docker-wordpress-nginx -d eugeneware/docker-wordpress-nginx

我收到了这条消息:

来自守护进程的错误响应:创建 aufs 挂载到 /var/lib/docker/aufs/mnt/0b78a98c13f26eebcdef6517654ff80bdf6b35f433ac06be632aa55e8f3bb4a1-init 时出错:文件太大

你能帮我理解这个错误吗?如何在 ubuntu 14.04 中将 glusterfs 卷挂载到 /var/lib/docker

0 投票
1 回答
87 浏览

cluster-computing - 用于存储大量备份的集群文件系统

在选择分布式文件系统时需要您的建议。
因此,我需要分布式文件系统来存储许多备份(常规文件、sql 转储等)。
理想将是:

  • 分散式
  • 积极维护(至少没有死)
  • 快速故障转移(适用于地理分布的节点)
  • 大社区
  • 开源

到目前为止,我有两个选择:XtreemFS 和 GlusterFS。First 似乎很酷,但它没有大型社区并且通常开发缓慢(也是基于 Java 的)。
Gluster - RedHat 和其他好东西,但有一些负面评论。

需要帮助:)

0 投票
0 回答
649 浏览

cluster-computing - 在 GlusterFS 3.7 上将少量数据写入大量文件

我正在试验 2 台 Gluster 3.7 服务器的 1x2 配置。服务器通过 1 Gbit 网络连接。我正在使用 Debian Jessie。

我的用例如下:打开文件 -> 追加 64 个字节 -> 关闭文件,并在循环中为大约 5000 个不同的文件执行此操作。如果我通过挂载的 glusterfs 驱动器访问文件,这种循环的执行时间大约为 10 秒。如果我直接使用libgfsapi,执行时间大约是 5 秒(快 2 倍)。

然而,在普通的 ext4 磁盘上,相同的循环在 50 毫秒内执行。

Gluster 3.7 早期版本之间存在巨大的性能差异,我相信这是由于cluster.eager-lock设置。

我的目标是在不到 1 秒的时间内执行循环。

我尝试了很多 Gluster 设置但没有成功。具有各种 bsize 值的dd测试的行为就像未设置TCP 无延迟选项一样,尽管从 Gluster 源代码看来,无延迟是默认设置。

知道如何提高性能吗?

编辑:

我找到了一个适用于我的解决方案,所以我想分享它,以防其他人面临同样的问题。

问题的根本原因是在执行打开/写入/关闭序列期间客户端和 Gluster 服务器之间的往返次数。我不确切知道背后发生了什么,但时间测量正好显示了这种模式。现在,显而易见的想法是将打开/写入/关闭序列“打包”到单个写入函数中。大致而言,此类函数的 C 原型将是:

int write(const char* fname, const void *buf, size_t nbyte, off_t offset)

但是,libgfapi 中已经有这样的 API 函数glfs_h_anonymous_write(感谢来自 Gluster 邮件组的 Suomya)。一种隐藏的东西是文件标识符,它不是普通的文件名,而是类型的东西struct glfs_object。客户端通过 API 调用获取此类对象的实例glfs_h_lookupat/glfs_h_creat。这里的重点是glfs_object表示文件名是“无状态的”,在某种意义上,对应inode的文件名保持不变(不计入引用)。应该将其glfs_object视为普通文件名标识符并像使用文件名一样使用它(实际上,glfs_object存储指向对应的普通指针inode而不对其进行引用计数)。

最后,我们应该使用glfs_h_lookupat/glfs_h_creat一次并多次写入文件glfs_h_anonymous_write

这样我就能够在0.5 秒内将 64 个字节附加到 5000 个文件,这比使用挂载卷和打开//写入/关闭序列快 20 倍。