Server 2012 R2 AD域上的Samba文件共享

概观

我目前有一台CentOS 7服务器,设置为使用KVM的虚拟机主机。 它有一个4TB(2x2TB镜像)ZFSarrays,将用于虚拟机和文件存储。 这是在Server 2012 R2之上从头开始重buildAD域的过程的一部分(旧IT人员留下的当前2008 R2域有些混乱,并且运行在旧的Core 2时代台式机)。 我们需要Server 2012 R2来实现组策略。 有7 / 8.1 / 10机器的混合,但一切都将在几个月内运行Windows 10。 用户在安装到他们的机器上的服务器上有一个共享Z: ,他们还访问服务器上的共享各部门使用的文件。 我们也将实施一个新的备份系统(Crashplan / Carbonite / Mozy是目前最有可能的select)。

规模

该networking由总部约55台计算机以及办公室外的其他计算机组成,以后将通过OpenVPN连接。 总的来说,我在看大约150台电脑。 至less还有很多用户。 另外,新的域名将会有大约一到二十个安全组。

选项

我试图决定如何最好地处理文件存储和networking共享。 具体而言,我是否应该打扰Samba,如果不是,我应该将文件存储在磁盘映像中,还是在ZFSarrays上创build一个数据卷,然后将其作为原始块存储设备传递给Server 2012 VM 。

将文件存储在磁盘映像中以供虚拟机使用对我来说似乎总是一个糟糕的解决scheme。 这很简单,并会工作,但我不特别喜欢它。 如果我需要将这些文件传输到Windows服务器,则必须安装映像或启动虚拟机。 将所有文件都放在一个图像中便于传输,但如果传输中断,则是一个问题。 这可以通过使用像rsync这样的东西解决,但这意味着我只能转移到另一个Linux机器。 使用磁盘映像的另一个问题是,我受限于在虚拟机内部运行备份软件(否则我将失去文件级访问权限)。 虽然我想我可以在主机上以只读方式挂载映像,或者将映像添加到另一个虚拟机,只读访问专用于备份软件。

我知道ZFS允许您创build数据卷,作为块级设备,然后可以作为物理驱动器传递给VM。 这基本上意味着在ZFSarrays中有一个NTFS分区。 我可以将这个卷的只读权限授予另一个可以处理备份软件的虚拟机,也可以在裸机上以只读方式挂载卷,并且可能在Docker容器中运行备份软件。 我也可以通过ZFS快照将文件传输到另一台Linux主机。 转移到Windows主机仍然意味着挂载卷或启动虚拟机。

最后的select是将所有文件直接存储在ZFSarrays中,并运行Samba通过networking共享它们。 虽然我期望有一个相当复杂的权限层次结构,但我担心通过Samba来pipe理它(我只在家庭服务器环境中使用过Samba)。 另一方面,我知道我可以有效地pipe理Server 2012 R2中的层次结构,尤其是使用Powershell。 另外要考虑的是,我可以直接在VM主机上,VM内部或Docker容器内运行Samba,所以它非常灵活。

哪一个选项能够长期提供最大的灵活性,而不会引入不必要的开销或复杂性? 我想尽我所能保持责任,所以我喜欢让Samba共享文件的想法,而Server 2012 R2处理AD和组策略(尽pipe我也可以运行单独的Server 2012 R2实例而不是Samba)目的)。 不过就像我说的,我在使用这个规模的networking中使用Samba犹豫不决。 我也担心如果我使用Samba(Windows已经足够糟糕了,这就是本地选项),在解决文件权限时遇到困难。

任何其他可能的解决scheme也受到欢迎

我们有一个类似的设置,有一个很大的优势,我们的ZFS存储是由Solaris提供的。 为什么这么重要? 那么,Solaris有一个集成的SMB服务器。 只要你的Zpools是安全的方式,让你晚上睡得好,我会推荐这样的事情:

  • 设置Solaris主机而不是CentOS机器
  • 将Solaris主机join到您的域中
  • 设置身份映射
  • 为虚拟机存储创buildNFS共享
  • 为文件存储创buildSMB共享(在ZFS数据集上)
  • 在文件存储数据集上正确设置NFSV4 ACL
  • 在“数据集”上创build“快照”例程

优点:

  • 如果Windows用户/主机“挂载”这样的SMB数据集,则可以使用它的Kerberos票证进行身份validation(Windows DC)
  • 没有必要做复杂的事情,所有需要的服务都包含在solaris中
  • Windows可以处理SMB共享的ZFS快照。 它们可以通过以前的版本文件/文件夹对话框在Windows中访问
  • Windows和Solaris完全支持NFSV4 ACL。 他们甚至可以处理最复杂的权限
  • 如果要部署其他服务,则无需运行Linux VM,只需创build一个Solaris Zone。

如果你决定采用UNIX方式,我可以给你我的设置文档