使用ctdb+samba+glusterfs搭建NAS集群系统

1概述

本文介绍使用开源软件ctdb+samba+gluster搭建NAS集群系统。

1.1 使用的开源软件介绍

1、glusterfs
glusterfs是一个开源的分布式文件系统,只适用于大文件存储,存储海量小文件性能很差,不建议使用。

2、samba
Samba为选定的Unix目录(包括所有子目录)建立网络共享。使Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。

3、ctdb
ctdb是tdb的集群实现,用来在集群文件系统上使用samba或其他共享项目(例如nfs)。

1.2 集群环境说明

本文集群由2台服务器组成(可以多台),服务器IP为 192.168.57.93,192.168.57.94,集群VIP为192.168.57.95。

2 安装配置

注:下面安装步骤以CENTOS6安装为例。

2.1 安装配置glusterfs

2.1.1安装前准备

下载yum源配置文件
http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/gluste...

2.1.2安装

yum install glusterfs glusterfs-fuse glusterfs-server

2.1.3 配置

1、创建glusterfs集群
glusterd start ——启动glusterfs服务,与版本不同。老版本服务名为glusterfs-server。
gluster peer probe 192.168.57.94 ——加入集群节点
gluster peer status ——查看集群节点状态

2、创建卷并挂载到主机
创建nas卷存储数据,创建ctdb卷存储ctdb相关配置文件。
gluster volume create nas replica 2 192.168.57.93:/app/nas 192.168.57.94:/app/nas
gluster volume create ctdb replica 2 192.168.57.93:/app/ctdb 192.168.57.94:/app/ctdb
挂载卷到主机,另外1台主机也上也要进行相同操作。
mount -t glusterfs 192.168.57.93:/nas /data
mount -t glusterfs 192.168.57.93:/ctdb /lock

2.2安装samba和ctdb

yum install samba samba-client samba-swat
注:samba-swat为samba的WEB界面配置程序,可以不装。

yum install ctdb

2.3配置samba和ctdb

2.3.1配置samba

在CTDB lock卷上创建smb.conf,使用集群中的主机可以共享配置文件,内容如下。
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m

clustering = yes  
idmap backend = tdb2  
private dir = /lock  
fileid:mapping = fsid  
use mmap = no  
nt acl support = yes  
ea support = yes  

security = user  
passdb backend = tdbsam  

[public]
comment = CTDB NAS
path = /data
public = yes
writable = yes

创建符号链接,链接配置文件到samba默认目录
ln -s /lock/smb.conf /etc/samba/smb.conf

2.3.2配置ctdb

将ctdb的配置文件/etc/sysconfig/ctdb, /etc/ctdb/public_addresses, /etc/ctdb/nodes也存放于lock卷上,并为所有节点建立符号链接。
ln -s /lock/ctdb /etc/sysconfig/ctdb
ln -s /lock/public_addresses /etc/ctdb/public_addresses
ln -s /lock/nodes /etc/ctdb/nodes

配置文件内容如下。
1、ctdb文件
CTDB_RECOVERY_LOCK=/lock/lockfile
CTDB_PUBLIC_INTERFACE=eth0
CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
CTDB_MANAGES_WINBIND=yes
CTDB_MANAGES_NFS=no
CTDB_NODES=/etc/ctdb/nodes

2、public_addresses文件
192.168.57.95/24 eth0
注,可以配置多个IP,IP会随机分配给node。

3、nodes文件
192.168.57.93
192.168.57.94
注:每个IP一行,前后不能有空格,否则会报错Failed to translate IP。

3 启动服务及测试

3.1启动服务

1、配置系统启动项
chkconfig ctdb on
chkconfig smb off (CTDB自动管理smb服务)
chkconfig nfs off (CTDB自动管理nfs服务)

2、启动服务
/etc/rc.d/init.d/ctdb start

3、查看服务状态
ctdb status
ctdb ip
ctdb ping -n all

3.2测试

Windows CIFS访问:
\192.168.57.95\public

注:认证的用户和密码为samba的用户密码。

附:参考文档

1、基于开源软件构建高性能集群NAS系统(刘爱贵CSDN博客)
http://blog.csdn.net/liuaigui/article/details/7163482

2、CentOS(RedHat) 6.2下Samba配置
http://www.storageonline.com.cn/storage/nas/samba-configuration-in-cen...

3、CentOS(RedHat) 6.2 下Samba+CTDB+GlusterFS详细
http://linux.it.net.cn/CentOS/server/set/2015/0118/12213.html

阅读 12.4k

推荐阅读
人在边缘
用户专栏

原创技术文档和记录各种问题的大杂烩

1 人关注
5 篇文章
专栏主页