分类: 服务器与存储
2010-05-19 14:41:45
·
1 简介
·
2 服务器端协议
o 2.1 验证模块
§ 2.1.1 auth.addr
§ 2.1.2 auth.login
· 3 客户端协议
使用有效的GlusterFS协议,这些模块可以使不同机器之间进行通信,根据功能分为两类:服务器端、客户端
下面是服务器端的例子,通过这个容器实现各种连接
### Add network serving capability to volumes 'brick1' and 'brick2'.
volume server
type protocol/server
option transport-type tcp # For TCP/IP transport
subvolumes brick1 brick2
option auth.addr.brick1.allow 192.168.* # Allow access to "brick1" volume
option auth.addr.brick2.allow 192.168.* # Allow access to "brick2" volume
end-volume
下面逐条解释选项:
这个选项声明传输模块使用的格式。可供使用的协议有:
基于TCP/IP socket通信的传输,当使用以下选项的时候,这个选项是可用的:
服务器所监听的端口,默认值为6996。
服务器绑定并监听的IP地址和端口,默认情况下,服务器监听所有接口(0.0.0.0)。
基于UNIX域的socket传输,使用以下选项时,该选项是可用的:
UNIX路径,在该路径上建立socket和监听将要连接的服务
这是千兆网卡的套接字直接协议传输端口,与tcp类似
千兆网卡动态传输接口,当使用’ib-verbs’时,以下选项是可用的:
这个是千兆网卡所用的设备,默认设备是ibv_devinfo命令列出的第一个设备。
设备上的物理端口号,默认值为1。
千兆网卡中的握手协议监听的TCP端口,默认值为6997。
使用逗号作为间隔,声明多个IP地址,可以运行多IP地址或者子网,如下:
option auth.addr.brick1.allow 192.168.1.10,192.168.1.20,192.168.2.*
由于在存储数据时需要一个安全的环境,作为网络文件系统的GlusterFS更需要在客户端连接前进行验证。目前GlusterFS支持的验证模块有两个方式:
这个模块的验证机制基于客户端的IP,选项使用方法如下:
option auth.addr..allow # seperated by comma ','
option auth.addr..reject # seperated by comma ','
这个选项仅能在protocol/server容器中使用
声明为所有IP地址允许链接到该容器。
声明为所有IP均拒绝连接到该容器
这个模块提供“用户名/口令”的认证机制。
服务器端的选项:
option auth.login..allow # seperated by comma
option auth.login..password
声明为允许进入该容器
声明为拒绝进入该容器
当auth.login被使用,根据protocol/client中选项提供的用户名和口令信息进行判断:
option username
option password
允许连接到GlusterFS提供的服务器端。
### Add client feature and attach to remote subvolume of server1
volume client1
type protocol/client
option transport-type tcp # for TCP/IP transport
option remote-subvolume brick # name of the remote volume
end-volume
这个选项声明链接到服务器端的传输方法,他们可以是tcp, ib-sdp, ib-verbs 或者是unix。
这个选项声明服务器名或服务器端IP地址。
声明服务器端的端口号,使用的传输协议不同,默认值也不同 (使用tcp协议的 默认值为6996 而是用ib-verbs协议的默认值为6997)
当login模式被使用时,这些认证信息才会被使用:
由于服务器端提供容器,这个选项是选择进入的容器。
等待响应帧的超时时间,默认值为1800秒。