设为首页 收藏本站
查看: 2145|回复: 0

[经验分享] CentOS(RedHat) 6.2 下Samba+CTDB+GlusterFS详细配置

[复制链接]

尚未签到

发表于 2015-12-12 13:19:08 | 显示全部楼层 |阅读模式
  为了实现《基于开源软件构建高性能集群NAS系统》中提到的全部用开源软件实现一个高性能集群NAS系统,趁着这几天有点时间,打算全部用VMware的虚拟机机来搭一个实验环境。全程参考RedHat官网与Samba官网以及Gluster官网的Gluster_CTDB_setup.v1
1. GlusterFS配置
1.1创建卷
  使用GlusterFS集群文件系统为所有节点提供共享存储空间,并为CTDB提供lock和status等共享存储空间。CTDB卷和NAS卷都采用stripe volume,可以根据实际需求选择distribute, stripe, replica及复合卷。如下创建两个卷。
  请参考《GlusterFS学习之CentOS 6.2 Striped Volumes简单负载均衡 》来完成GlusterFS Stripe Volume的配置。


[root@server1 gluster]# gluster volume create nas_volume stripe 2 server1:/gluster/nas1

server2:/gluster/nas2
Creation of volume nas_volume has been successful. Please start the volume to access data. [root@server1 gluster]# [root@server1 gluster]# gluster volume create lock_volume stripe 2 server1:/gluster/lock1

server2:/gluster/lock2
Creation of volume lock_volume has been successful. Please start the volume to access data. [root@server1 gluster]# [root@server1 gluster]# [root@server1 gluster]# gluster volume start nas_volume
Starting volume nas_volume has been successful [root@server1 gluster]# gluster volume start lock_volume
Starting volume lock_volume has been successful [root@server1 gluster]# gluster volume status

Status of volume: nas_volume Gluster process                                         Port    Online  Pid ------------------------------------------------------------------------------ Brick server1:/gluster/nas1 24011 Y 3762 Brick server2:/gluster/nas2 24012 Y 3768 NFS Server on 192.168.142.142 38467 Y 8140 NFS Server on 192.168.142.142 38467 Y 3806  
Status of volume: lock_volume
Gluster process                                         Port    Online  Pid ------------------------------------------------------------------------------ Brick server1:/gluster/lock1 24013 Y 3794 Brick server2:/gluster/lock2 24014 Y 3800 NFS Server on 192.168.142.142 38467 Y 8140 NFS Server on 192.168.142.142 38467 Y 3806
1.2 挂载卷
  在2个节点上同时mount以上创建的nas和ctdb卷:


[root@server1 gluster]# mount -t glusterfs server1:nas_volume /gluster/share (集群NAS使用) [root@server1 gluster]# mount -t glusterfs server1:lock_volume /gluster/ctdb_lock/(CTDB使用) [root@server2 gluster]# mount -t glusterfs server1:nas_volume /gluster/share (集群NAS使用) [root@server2 gluster]# mount -t glusterfs server1:lock_volume /gluster/ctdb_lock/(CTDB使用)
  至此,存储空间已经准备完毕.
2. Samba配置
  参考《CentOS(RedHat) 6.2下Samba配置》与《CentOS(RedHat) 6.2 Samba share权限拒绝访问 》。smb.conf文件默认位于/etc/samba/smb.conf,我们把smb.conf放在CTDB lock卷上,并为所有节点建立符号链接至/etc/samba/smb.conf。


ln -s /gluster/ctdb_lock/smb.conf /etc/samba/smb.conf
  smb.conf配置内容如下:


[global] workgroup = MYGROUP
netbios name = MYSERVER
server string = Samba Server Version %v
private dir = /gluster/ctdb_lock
log file = /var/log/samba/log.%m max log size = 50 clustering = Yes //The clustering = yes entry instructs Samba to use CTDB
idmap backend = tdb2
guest ok = Yes
cups options = raw
  [homes] comment = Home Directories
read only = No
browseable = No
  [resource] comment = CTDB/GlusterFS resource path = /gluster/share
valid users = centostest
read only = No ea support = Yes //The ea parameter is required if you plan to use extended attributes
3. CTDB配置
  CTDB是一种轻量级的集群数据库实现,基于它可以实现很多应用集群,目前CTDB支持Samba, NFS, HTTPD, VSFTPD, ISCSI, WINBIND应用,集群共享数据存储支持GPFS,GFS(2),Glusterfs, Luster, OCFS(2)。CTDB本身不是HA解决方案,但与集群文件系统相结合,它可以提供一种简便高效的HA集群解决方案。
  集群配置两组IP,Private IP用于heartbeat和集群内部通信,Public IP用于提供外部服务访问。Public IP动态在所有集群节点上分配,当有节点发生故障,CTDB将调度其他可用节点接管其原先分配的Public IP,故障节点恢复后,漂移的PublicIP会重新被接管。这个过程对客户端是透明的,保证应用不会中断,也就是我们这里所说的高可用HA。
  高可用集群NAS的安装配置详细过程如下:
3.1 前提条件
  ? 升级Gluster
  ? 安装CTDB
  ? 配置GlusterFS并在所有节点加载用于CTDB的卷:A Gluster replicated volume for the CTDB lock file. The lock file is only required for CIFS. The best practice is to have a volume dedicated to the lock file.
  ? 安装并配置好
  ? Port 4379 open between the Gluster servers
3.2 CTDB设置
  配置还是比较简单的,所有节点必须把samba服务停掉,因为以后就由CTDB控制。然后配置所有节点的3个文件,确保一致。当然最好是共享存储。这里我们将/etc/sysconfig/ctdb, /etc/ctdb/public_addresses, /etc/ctdb/nodes存放于CTDB lock卷上,并为所有节点建立符号链接。


ln -s /gluster/ctdb_lock/nodes /etc/ctdb/nodes
ln -s /gluster/ctdb_lock/public_addresses /etc/ctdb/public_addresses
ln -s /gluster/ctdb_lock/ctdb /etc/sysconfig/ctdb
3.2.1 把samba服务停掉

service smb stop
chkconfig smb off (CTDB自动管理smb服务)

3.2.2 修改Samba配置文件smb.conf  Add the following lines to the [global] section of your Samba configuration


clustering = yes
idmap backend = tdb2
private dir = /gluster/lock
3.2.3 ctdb配置内容如下

CTDB_RECOVERY_LOCK="/gluster/ctdb_lock/lockfile" CTDB_PUBLIC_INTERFACE=eth0
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
CTDB_MANAGES_NFS=yes
CTDB_MANAGES_WINBIND=yes
CTDB_NODES=/etc/ctdb/nodes
CTDB_DEBUGLEVEL=ERR
3.2.4 public_addresses配置内容如下

[root@server1 ctdb_lock]# cat public_addresses
192.168.142.100/24 eth0
192.168.142.101/24 eth0
  这里要注意的是:public_addresses不能是系统中已存在的IP,否则只要你启动CTDB服务,你会得到意料不到的结果。


[root@server2 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:73:0E:72 inet addr:192.168.142.142  Bcast:192.168.142.255  Mask:255.255.255.0
eth1      Link encap:Ethernet  HWaddr 00:0C:29:73:0E:7C
inet addr:192.168.72.129  Bcast:192.168.72.255  Mask:255.255.255.0
  [root@server1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:1C:5A:0C
inet addr:192.168.142.133  Bcast:192.168.142.255  Mask:255.255.255.0
eth1      Link encap:Ethernet  HWaddr 00:0C:29:1C:5A:16 inet addr:192.168.72.128  Bcast:192.168.72.255  Mask:255.255.255.0
3.2.5 nodes配置内容如下

[root@server1 ctdb_lock]# cat nodes
192.168.72.129
192.168.72.128
3.3 启动服务并查看状态


chkconfig ctdb on service ctdb start
ctdb ip
ctdb ping -n all
ctdb status [root@server1 ~]# ctdb status
Number of nodes:2 pnn:0 192.168.72.129   OK
pnn:1 192.168.72.128   OK (THIS NODE) Generation:585626714 Size:2 hash:0 lmaster:0 hash:1 lmaster:1 Recovery mode:NORMAL (0) Recovery master:0
  从CTDB日志我们可以看到:


[root@server1 ~]# tail -f /var/log/log.ctdb
  2012/07/31 22:45:14.907926 [19762]: Node became HEALTHY. Ask recovery master 0 to perform ip

reallocation
3.4 访问测试
  Windows CIFS访问:
  \\192.168.142.100
  \\192.168.142.101

  拷贝一65MB的电影:


[root@server2 gluster]# du -sh /gluster/share/* 65M /gluster/share/Big Cat Trainer Rehabs Wild Lion Pride.avi
  文件能均衡分布在2个节点上存储:


[root@server2 gluster]# du -sh /gluster/nas2/* 33M /gluster/nas2/Big Cat Trainer Rehabs Wild Lion Pride.avi
  [root@server1 gluster]# du -sh /gluster/nas1/* 33M /gluster/nas1/Big Cat Trainer Rehabs Wild Lion Pride.avi
  注意:配置了CTDB后,就不能再使用各个节点本身的IP去访问Samba服务了,会直接报错:


cat /var/log/log.ctdb 2012/07/31 23:56:19.080880 [19762]: Could not add client IP 192.168.142.133. This is not a public

address. 2012/07/31 23:56:19.658146 [19762]: Could not add client IP 192.168.142.133. This is not a public

address.
3.5 负载均衡
  CTDB本身不能做到负载均衡,客户访问CIFS/NFS时需要指定IP。显而易见,这个高可用集群NAS不具备自动负载均衡(load balance)的功能,很容易导致集群NAS机头负载不均衡的情况发生,这对大规模高并发访问或数据密集型应用是非常不利的。
  我们可以基于源IP来做到负载均衡。最简单的方法是采用DNS/WINS轮询。它为同一个主机名配置多个IP地址,在应答DNS查询时根据Round Robin算法返回不同的IP地址,客户端使用返回的IP连接主机,从而实现负载均衡的目的。当然前提条件是CIFS 客户端是通过我们前面配置的netbios name = MYSERVER来访问的。
  RR-DNS的问题是无法感知集群节点负载状态并进行调度,对故障节点也会进行调度,可能造成额外的网络负载,不够均衡,容错反应时间长。
  另外一种最为常用的负载均衡技术是LVS(Linux Virtual Server),我们后续再聊。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-150083-1-1.html 上篇帖子: GlusterFS标准posix接口兼容性测试说明 下篇帖子: GlusterFS的安装(Ubuntu)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表