glusterfs安装和简单配置

[root@weihao04-vm gluster]# iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination         

ACCEPT     udp  --  anywhere             anywhere            udp dpt:domain 

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:domain 

ACCEPT     udp  --  anywhere             anywhere            udp dpt:bootps 

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:bootps 

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

ACCEPT     icmp --  anywhere             anywhere            

ACCEPT     all  --  anywhere             anywhere            

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         

ACCEPT     all  --  anywhere             192.168.122.0/24    state RELATED,ESTABLISHED 

ACCEPT     all  --  192.168.122.0/24     anywhere            

ACCEPT     all  --  anywhere             anywhere            

REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination         

[root@weihao04-vm gluster]# iptables -F

[root@weihao04-vm gluster]# iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination         

 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination         

[root@weihao04-vm gluster]#


    在CentOS系统中安装glusterfs并进行简单的配置。

 

  server端和client glusterfs安装

1.    下载glusterfs对应的rpm包。

下载地址: http://download.gluster.org/pub/gluster/glusterfs/

注意:下载时需下载和系统相匹配的版本。在下载前执行rpm -qa |grep glusterfs查看系统已经安装的glusterfs关联的rpm版本号,然后下载和该版本对应的glusterfs版本。(因为不同版本需求libcrypto.so.* ,libpython*.*.so.*等库依赖版本不同)

[root@weihao01-vm glusterfs]#  rpm -qa |grep glusterf

glusterfs-devel-3.4.0-8.el6.x86_64

[root@weihao01-vm glusterfs]#


所以在glusterfs  ftp中找到对应的版本进行下载。

下载后文件目录:

[root@weihao01-vm 3.4.16]# ls

glusterfs-3.4.0-8.el6.x86_64.rpm            glusterfs-debuginfo-3.4.0-8.el6.x86_64.rpm        glusterfs-libs-3.4.0-8.el6.x86_64.rpm

glusterfs-api-3.4.0-8.el6.x86_64.rpm        glusterfs-devel-3.4.0-8.el6.x86_64.rpm            glusterfs-rdma-3.4.0-8.el6.x86_64.rpm

glusterfs-api-devel-3.4.0-8.el6.x86_64.rpm  glusterfs-fuse-3.4.0-8.el6.x86_64.rpm             glusterfs-server-3.4.0-8.el6.x86_64.rpm

glusterfs-cli-3.4.0-8.el6.x86_64.rpm        glusterfs-geo-replication-3.4.0-8.el6.x86_64.rpm

[root@weihao01-vm 3.4.16]#

 

2.    安装以及安装确认

  执行rpm命令进行包的安装和更新(我做的时候所有包都进行了安装-_-)

rpm -Uvh --force --nodeps glusterfs-libs-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-api-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-api-devel-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-cli-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-debuginfo-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-devel-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-fuse-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-geo-replication-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-server-3.4.0-8.el6.x86_64.rpm 

  rpm -Uvh --force --nodeps glusterfs-rdma-3.4.0-8.el6.x86_64.rpm

 

  查看rpm是否安装成功:

[root@weihao01-vm 3.4.16]#  rpm -qa |grep glusterfs

glusterfs-api-devel-3.4.0-8.el6.x86_64

glusterfs-rdma-3.4.0-8.el6.x86_64

glusterfs-fuse-3.4.0-8.el6.x86_64

glusterfs-libs-3.4.0-8.el6.x86_64

glusterfs-cli-3.4.0-8.el6.x86_64

glusterfs-geo-replication-3.4.0-8.el6.x86_64

glusterfs-api-3.4.0-8.el6.x86_64

glusterfs-debuginfo-3.4.0-8.el6.x86_64

glusterfs-server-3.4.0-8.el6.x86_64

glusterfs-devel-3.4.0-8.el6.x86_64

glusterfs-3.4.0-8.el6.x86_64

[root@weihao01-vm 3.4.16]#

 

查看glusterfs是否可以正常运行:

[root@weihao01-vm 3.4.16]# /etc/init.d/glusterd start

Starting glusterd:                                         [  OK  ]

[root@weihao01-vm 3.4.16]#


可以正常运行。

停止glusterfs的运行:

[root@weihao01-vm 3.4.16]# /etc/init.d/glusterd stop

[root@weihao01-vm 3.4.16]#                                 [  OK  ]

Glusterfs停止运行。

Server端和client glusterfs安装完成。

 

二简单配置服务端和客户端

 

   进行glusterfs简单的配置。2server(server1:192.168.100.11, server2:192.168.100.12) 1client(192.168.100.14)

1.    服务端配置文件配置

Server1(192.168.100.11)作成配置文件如下所示:

[root@weihao01-vm glusterfs]# cat glusterfsd.vol 

#指定一个卷,路径为/opt/gluster,作为服务器文件

volume brick

  type storage/posix  #指定一个本地目录给GlusterFS内的一个卷使用

  option directory /opt/gluster

end-volume

 

#设置卷brick为锁中继(关于中继在附录中介绍)

volume locker

  type features/posix-locks   #锁中继,只能用于服务器端的posix中继之上,表示给这个卷提供加锁(fcntl locking)的功能;

  subvolumes brick

end-volume

 

#设置卷brick为服务器模式,并指定IP和检测端口,同时设置卷的使用权限为*(全部授权),也可以设置成部分授权,如:192.168.100.*

volume server

  type protocol/server  #服务器中继,表示此节点在GlusterFS中为服务器模式,可以说明其IP、守护端口、访问权限

  option transport-type tcp/server

  option bind-address 192.168.100.11 #Server2时IP配置为: 192.168.100.12

  option listen-port 6996

  subvolumes locker

  option auth.addr.brick.allow *

  option auth.addr.locker.allow *

end-volume 

[root@weihao01-vm glusterfs]#


2.    客户端配置文件配置

Client1(192.168.100.14)作成配置文件如下所示:

[root@weihao04-vm glusterfs]# cat glusterfs.vol

#指向Server1:192.168.100.11服务器的客户端访问配置

volume client1

  type    protocol/client   #客户端中继,用于客户端连接服务器时使用,需要指明服务器IP和定义好的卷

  option  transport-type  tcp/client

  option  remote-host  192.168.100.11

  option  transport.socket.remote-port 6996

  option  remote-subvolume locker

end-volume

 

#指向Server2:192.168.100.12服务器的客户端访问配置

volume client2

  type      protocol/client

  option    transport-type  tcp/client

  option    remote-host  192.168.100.12

#  option    transport.socket.remote-port 6996

  option    remote-port 6996

  option    remote-subvolume locker

end-volume

 

#将client1和client2设置成复制模式

volume bricks

  type cluster/replicate

  subvolumes client1 client2

end-volume

[root@weihao04-vm glusterfs]#


 

3.    启动

启动server1server2并在/tmp/glusterfsd.log(路径文件自己制定)中查看log信息。

启动命令如下所示:

[root@weihao01-vm glusterfs]#  glusterfsd -f /usr/local/etc/glusterfs/glusterfsd.vol -l /tmp/glusterfsd.log 

[root@weihao01-vm glusterfs]# tail -f /tmp/glusterfsd.log 

 16:   option transport-type tcp/server

 17:   option bind-address 192.168.100.11 #Server2时IP配置为: 192.168.100.12

 18:   option listen-port 6996

 19:   subvolumes locker

 20:   option auth.addr.brick.allow *

 21:   option auth.addr.locker.allow *

 22: end-volume 

 23: 

 

+------------------------------------------------------------------------------+


 

 

   启动client1并在/tmp/glusterfsd.log(路径文件自己制定)中查看log信息。

   启动命令如下所示:

 

  [root@weihao04-vm glusterfs]# glusterfs -f /usr/local/etc/glusterfs/glusterfs.vol -l /tmp/glusterfs.log /data/glusterfs/

[root@weihao04-vm glusterfs]# tail -f /tmp/glusterfs.log

[2014-05-19 10:21:38.473815] I [client-handshake.c:1456:client_setvolume_cbk] 0-client1: Connected to 192.168.100.11:6996, attached to remote volume 'locker'.

[2014-05-19 10:21:38.473868] I [client-handshake.c:1468:client_setvolume_cbk] 0-client1: Server and Client lk-version numbers are not same, reopening the fds

[2014-05-19 10:21:38.474139] I [client-handshake.c:450:client_set_lk_version_cbk] 0-client1: Server lk version = 1

[2014-05-19 10:21:59.423537] I [afr-common.c:2057:afr_set_root_inode_on_first_lookup] 0-bricks: added root inode

[2014-05-20 00:01:16.117221] W [socket.c:514:__socket_rwv] 0-client2: readv failed (No data available)

[2014-05-20 00:01:16.117342] W [socket.c:1962:__socket_proto_state_machine] 0-client2: reading from socket failed. Error (No data available), peer (192.168.100.12:6996)

[2014-05-20 00:01:16.117451] I [client.c:2097:client_rpc_notify] 0-client2: disconnected

[2014-05-20 01:39:41.087290] I [glusterfsd.c:1910:main] 0-glusterfs: Started running glusterfs version 3.4.0 (glusterfs -f /usr/local/etc/glusterfs/glusterfs.vol -l /tmp/glusterfs.log /data/glusterfs/)

[2014-05-20 01:39:41.087813] E [fuse-bridge.c:4973:init] 0-fuse: Mountpoint /data/glusterfs/ seems to have a stale mount, run 'umount /data/glusterfs/' and try again.

[2014-05-20 01:39:41.087846] E [xlator.c:390:xlator_init] 0-fuse: Initialization of volume 'fuse' failed, review your volfile again

^C

[root@weihao04-vm glusterfs]#

<span style="color:black;"><span style="font-size:14px;"> </span></span>

log中发现了一个错误: run 'umount /data/glusterfs/' and try again.所以我们需要先执行: umount /data/glusterfs/然后再次执行。

[root@weihao04-vm glusterfs]# umount /data/glusterfs/

[root@weihao04-vm glusterfs]# glusterfs -f /usr/local/etc/glusterfs/glusterfs.vol -l /tmp/glusterfs.log /data/glusterfs/

[root@weihao04-vm glusterfs]# tail -f /tmp/glusterfs.log

[2014-05-20 01:52:36.453956] I [client-handshake.c:1456:client_setvolume_cbk] 0-client1: Connected to 192.168.100.11:6996, attached to remote volume 'locker'.

[2014-05-20 01:52:36.453996] I [client-handshake.c:1468:client_setvolume_cbk] 0-client1: Server and Client lk-version numbers are not same, reopening the fds

[2014-05-20 01:52:36.454074] I [afr-common.c:3698:afr_notify] 0-bricks: Subvolume 'client1' came back up; going online.

[2014-05-20 01:52:36.454284] I [client-handshake.c:450:client_set_lk_version_cbk] 0-client1: Server lk version = 1

[2014-05-20 01:52:36.456319] I [client-handshake.c:1456:client_setvolume_cbk] 0-client2: Connected to 192.168.100.12:6996, attached to remote volume 'locker'.

[2014-05-20 01:52:36.456345] I [client-handshake.c:1468:client_setvolume_cbk] 0-client2: Server and Client lk-version numbers are not same, reopening the fds

[2014-05-20 01:52:36.477231] I [fuse-bridge.c:4726:fuse_graph_setup] 0-fuse: switched to graph 0

[2014-05-20 01:52:36.477459] I [client-handshake.c:450:client_set_lk_version_cbk] 0-client2: Server lk version = 1

[2014-05-20 01:52:36.477662] I [fuse-bridge.c:3682:fuse_init] 0-glusterfs-fuse: FUSE inited with protocol versions: glusterfs 7.13 kernel 7.13

[2014-05-20 01:52:36.478430] I [afr-common.c:2057:afr_set_root_inode_on_first_lookup] 0-bricks: added root inode

 

 

这样就OK了,现在进入clinet创建和操作文件,发现server端也会有对应的文件。

 

其他问题点:

  client端启动glusterfs后,可能会发现如下错误:

[2014-05-19 10:20:56.398025] W [socket.c:514:__socket_rwv] 0-client2: readv failed (No data available)

[2014-05-19 10:20:56.398302] I [fuse-bridge.c:3682:fuse_init] 0-glusterfs-fuse: FUSE inited with protocol versions: glusterfs 7.13 kernel 7.13

[2014-05-19 10:20:59.389793] W [socket.c:514:__socket_rwv] 0-client1: readv failed (No data available)

[2014-05-19 10:21:00.393177] W [socket.c:514:__socket_rwv] 0-client2: readv failed (No data available)

[2014-05-19 10:21:02.396760] W [socket.c:514:__socket_rwv] 0-client1: readv failed (No data available)

[2014-05-19 10:21:03.399659] W [socket.c:514:__socket_rwv] 0-client2: readv failed (No data available)


 

没有和server1server2创建连接,然后查看iptables发现对端口进行了限制,删除设定的ipables(客户端和服务端都要进行修改),创建链接成功。

 

 

 GlusterFS常用的中继介绍

  1. storage/posix   #指定一个本地目录给GlusterFS内的一个卷使用;

2. protocol/server  #服务器中继,表示此节点在GlusterFS中为服务器模式,可以说明其IP、守护端口、访问权限;

3. protocol/client  #客户端中继,用于客户端连接服务器时使用,需要指明服务器IP和定义好的卷;

4. cluster/replicate  #复制中继,备份文件时使用,若某子卷掉了,系统仍能正常工作,子卷起来后自动更新(通过客户端);

5. cluster/distribute  #分布式中继,可以把两个卷或子卷组成一个大卷,实现多存储空间的聚合;

6. features/locks   #锁中继,只能用于服务器端的posix中继之上,表示给这个卷提供加锁(fcntl locking)的功能;

7. performance/read-ahead    #预读中继,属于性能调整中继的一种,用预读的方式提高读取的性能,有利于应用频繁持续性的访问文件,当应用完成当前数据块读取的时候,下一个数据块就已经准备好了,主要是在IB-verbs10G的以太网上使用;

8. performance/write-behind  #回写中继,属于性能调整中继的一种,作用是在写数据时,先写入缓存内,再写入硬盘,以提高写入的性能,适合用于服务器端;

9. performance/io-threads  #IO线程中继,属于性能调整中继的一种,由于glusterfs服务是单线程的,使用IO 线程转换器可以较大的提高性能,这个转换器最好是被用于服务器端;

10. performance/io-cache  #IO缓存中继,属于性能调整中继的一种,作用是缓存住已经被读过的数据,以提高IO性能,当IO 缓存中继检测到有写操作的时候,它就会把相应的文件从缓存中删除,需要设置文件匹配列表及其设置的优先级等内容;

11. cluster/stripe  #条带中继,将单个大文件分成多个小文件存于各个服务器中,实现大文件的分块存储。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值