如何在CentOS 6上部署分布式文件系统服务器
说明
分布式文件系统(DFS)用于使用网络上的单个名称空间轻松访问托管在单独服务器上的多个CIFS文件共享。实际共享可以在DFS服务器本身上本地托管,也可以在单独的服务器上托管。
使用DFS的另一个好处(也是主要的好处)是能够在用户不知情的情况下将共享数据从一个存储平台或者服务器透明,快速地迁移到另一个存储平台或者服务器。我们只需将DFS托管的共享重定向到新的CIFS共享,而无需更改共享的名称。
使用标准cifs文件服务器,我们需要在迁移后将用户发送到新的共享路径,或者在新旧文件服务器硬件之间切换时遭受停机,这可能会导致长时间的中断,具体取决于共享的复杂性及其权限。
准备
本教程将基于以下配置。
- 一台运行CentOS 6.X的服务器。
- 互联网连接,用于访问CentOS软件包存储库。
安装和配置Samba
- 安装Samba。
yum install samba
- 在文本编辑器(例如VIM或者Gedit)中打开Samba的配置文件。
vi /etc/samba/smb.conf
- 在[global]设置下,定义以下选项,修改突出显示的值以匹配环境。
[global] workgroup = WORKGROUP netbios = MY-DFS-SERVER host msdfs = yes
了解我们定义的选项:
工作组 |
---|
Windows对等网络的名称。Microsoft的默认值是WORKGROUP |
这是Windows在网络上使用的单标签计算机名。将其设置为我们希望Samba服务器在网络上拥有的名称 |
告诉Samba充当DFS主机的必需参数 |
为Selinux设置Samba权限
默认情况下,CentOS上的Selinux将阻止与Samba共享的连接。我们需要取消此限制,以允许用户访问我们的DFS并授予他们读/写权限。
- 允许对我们的samba共享具有读写权限:
setsebool samba_export_all_rw yes
创建DFS根目录
在DFS根目录中,可以创建到其他CIFS共享的DFS目标链接。使用msdfs协议通过创建到其他cif共享的符号链接来创建目标。共享可以存在于任何服务器上。为了使此实验简单,我们将在DFS根目录上创建一个CIF共享,并为其创建目标。
- 创建将托管CIFS目标的目录:
mkdir -p /export/dfsroot
- 确保DFS根目录归Root所有。
chown root:root /export/dfsroot
- 保护DFS根目录以保护DFS目标免遭未经授权的用户更改:
chmod 755 /export/dfsroot
创建到DFS根目录的共享
接下来,我们需要共享DFS根目录,以允许我们的用户从单个名称空间访问DFS目标。为此,我们需要打开Samba的配置文件并添加新共享。
- 在文本编辑器(如VIM)中打开Samba的配置文件:
vi /etc/samba/smb.conf
- 在配置文件底部附近,通过将以下行添加到文件底部来创建DFS根目录的Samba共享,并替换高亮行以匹配环境:
[dfs] comment = DFS Root Share path = /export/dfsroot browsable = yes msdfs root = yes read only = no
创建共享用作DFS目标
DFS目标是DFS根服务器将提供从单个名称空间访问的CIFS共享。这些共享可以托管在本地DFS根服务器上,或者理想情况下,可以托管在单独的服务器上。为简单起见,我们将在DFS根服务器上创建第一个共享。
- 准备要共享的目录
mkdir -p /export/samba/finance
- 通过在文本编辑器(例如VIM)中打开Samba的配置文件来定义共享:
vi /etc/samba/smb.conf
- 在文件底部附近,配置共享,使其看起来类似于以下示例:
[finance] path = /export/samba/finance public = yes writable = yes browseable = yes
添加DFS目标
最后,是时候向我们的DFS服务器添加一些目标了。我们目标的CIFS共享可以在任何主机上,Linux或者Windows上。为了使本教程更简单,我们将在本地DFS主机上创建一个共享,该共享将用作DFS目标。
- 创建到DFS目标的符号链接。
link -s msdfs:my-dfs-server\finance /export/dfsroot/finance
警告:msdfs共享的符号链接文件必须为小写。如果不是,则尝试连接到共享时会出现错误。
- 重新启动Samba的守护程序以应用我们的更改
service smb restart