以前我问过在 Ubuntu 12.04 服务器中启动时挂载 GlusterFS的问题,答案是这在 12.04 中存在问题并且在 14.04 中工作。出于好奇,我在笔记本电脑上运行的虚拟机上进行了尝试,并且在 14.04 中可以正常工作。由于这对我来说很重要,我决定将我正在运行的服务器升级到 14.04 却发现 GlusterFS 也没有自动挂载本地主机卷。
这是一个 Linode 服务器,fstab 如下所示:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/xvda / ext4 noatime,errors=remount-ro 0 1
/dev/xvdb none swap sw 0 0
/dev/xvdc /var/lib/glusterfs/brick01 ext4 defaults 1 2
koraga.int.example.com:/public_uploads /var/www/shared/public/uploads glusterfs defaults,_netdev 0 0
Run Code Online (Sandbox Code Playgroud)
启动过程是这样的(围绕网络挂载部分,这是唯一的失败):
* Stopping Mount network filesystems [ OK ]
* Starting set sysctls from /etc/sysctl.conf [ OK ]
* Stopping set …
Run Code Online (Sandbox Code Playgroud) 我们已经设置了一对 GlusterFS 服务器镜像。无需特殊调整,无论官方 RHEL6 RPM 中的 GlusterFS-3.5.1 “开箱即用”什么,这就是我们所拥有的。
集群可以工作,但性能非常糟糕。例如,firefox-31.0.source.tar.bz2
通过本地主机上的 GlusterFS 提取一个大的 tarball () 需要长达 44 分钟的时间。直接在同一磁盘上提取相同的文件所需时间不到 2。删除创建的树也存在类似的差异(通过 gluster 需要 10 分钟)...
当然,可以预见的是,需要进行镜像,等等,使用网络的文件系统会更慢——但是慢30 倍?简单地复制大文件速度很快——所以这不是我们所缺乏的带宽。当解压正在运行时,我看到glusterfs
(客户端)和glusterfsd
(服务器)进程都消耗了大量的 CPU(每个进程大约 10%),但系统仍然保持大约 70% 的空闲状态——两个 gluster 进程都消耗了大量的 CPU。比提取 bzip2 和 tar 更忙......他们在做什么?
我可以做一些调整来显着提高性能吗?或者我应该尝试ceph(或gfarm?)而不是 gluster ?或者对于大量的小文件来说它们都很糟糕?谢谢你!
performance-tuning distributed-filesystems glusterfs ceph glusterfs-3.5