您的位置:首页 > 其它

第九章 通过 SMB 共享虚拟机

2015-08-23 21:43 309 查看
 

自 Windows Server 2012 起,微软引入了 SMB 3.0 的概念,通过 SMB 3.0,可以实现很多新的功能,包括我们介绍过的"SMB 多通道",以及将虚拟机的存储安装在 SMB 3.0 的文件共享服务器上,实现另外一种高可用性。

相对于硬件存储而言,搭建 SMB 的文件共享服务器成本更为低廉。将虚拟机部署在 SMB 3.0 上,可以实现基本等同于 Hyper-V 故障转移群集的效果。

9.1 SMB 3.0 的特性

9.1.1 SMB 3.0 的部署和使用条件

SMB 3.0 是一项新技术,因此在带来新功能的同时,对部署环境和使用条件也有一定的限制。

部署一个常见的 Active Directory 域环境,对于域中的林和域的功能级别,SMB 3.0 并没有硬性要求。

使用 SMB 3.0 的客户端和服务器均必须支持 SMB 3.0。如 Windows Server 2012/2012 R2,Windows 8/8.1。

如果希望应用于 Hyper-V 主机,则 Hyper-V 角色和 SMB 3.0 角色不能同时存在于一台主机上,SMB 3.0 不支持环回的配置。

可以使用非微软的文件共享服务器,但必须同样支持 SMB 3.0。

 

9.1.2SMB 3.0 功能

SMB 3.0 相对于 Windows Server 2008 中存在的 SMB 2.0,增加了一些对于 Hyper-V 有用的功能:

SMB 透明的故障转移,在 SMB 2.0 中,如果管理员对 SMB 群集进行维护,则客户端会中断连接,用户必须重新连接才可以继续使用服务。而在 SMB 3.0 中,这一情况得到了改变。

SMB 多通道,该功能要求客户端和服务器双方都必须支持 SMB 3.0,但其实现的功能也是非常有用的,可以对客户端和服务器之间的流量在不同网卡之间分流、故障转移。

SMB 直通(RDMA),该功能只在 Windows Server 平台上使用,同样该功能要求客户端和服务器均需支持 SMB 3.0,同时需要主机拥有支持 RDMA 的网卡。

SMB 加密,在客户端和服务器均支持 SMB 3.0 的前提下,可以使用 SMB 3.0 加密功能。

     SMB PowerShell,在 Windows Server 2012 和 Windows8 起,开始引入 SMB PowerShell。需要注意的是,SMB PowerShell 仅支持 Windows Server 2012 以上的操作系统,之前的版本还需要使用 net.exe 或其他 API 进行管理。

9.2 部署 SMB 3.0

 

9.2.1 添加文件服务器角色

首先准备一台 Windows Server 2012 R2 的虚拟机,其 FQDN 为 fs.contoso.com。在生产环境中,为了保证良好的用户体验,可以使用物理机来实现。

第 1 步,依次打开"服务器管理器"→"添加角色和功能向导",在"安装类型"对话框中勾选"基于角色或基于功能的安装",如图 9-1 所示,点击"下一步"继续。


图 9-1 添加角色和功能

第 2 步,在"服务器选择"对话框,点选所需要添加角色的服务器,如图 9-2 所示,点击"下一步"继续。


图 9-2 选择需要添加角色的服务器

第 3 步,在"服务器角色"对话框,勾选"文件和 iSCSI 服务"下的"文件服务器",如图 9-3 所示,点击"下一步"继续。



图 9-3 安装文件服务器角色

第 4 步,功能对话框不勾选任何选项,点击"下一步"进入到"确认"对话框,点击"安装"完成,如图 9-4 所示。



图 9-4 确认安装角色

如果使用 PowerShell 在 fs.contoso.com 本地进行安装,则可以以管理员方式运行 PowerShell,执行以下命令。

Install-WindowsFeature
File-Services,
FS-FileServer

如果使用 PowerShell 在远程服务器上安装,则可以使用如下命令。

Invoke-Command
-ComputerName
fs
-Command{Install-WindowsFeature
-Name
File-Services,
FS-

FileServer }

 

9.2.2 添加共享文件夹

为了将 SMB 3.0 应用于 Hyper-V,还需要创建特定的共享文件夹方可使用。和普通的共享文件夹应用不同的是,Hyper-V 访问共享文件夹不是以"用户"的身份去进行访问,而是以"计算机"的身份进行访问,因此在配置共享文件夹时需要进行一些特殊的配置。第 1 步,依次点击"服务器管理器"→"文件和存储服务"→"共享",如图 9-5 所示。


图 9-5 共享管理界面

第 2 步,在"共享"对话框,点击"任务"按钮,选择"新建共享",启动"新建共享向导"。在"选择配置文件"对话框中,必须点选"SMB 共享-应用程序",仅此配置文件适用于 Hyper-V,如图 9-6 所示,点击"下一步"继续。



图 9-6 创建"SMB 共享-应用程序"

第 3 步,在"共享位置"对话框,点选"按卷选择"按钮,选择 D 盘,如图 9-7 所示,点击"下一步"继续。


图 9-7 创建"共享位置"

第 4 步,在"共享名称"对话框,依次输入"共享名称"和"共享描述",此处可以输入中文的名称和描述以方便识别。根据共享名称的不同,系统会自动在所选的 D 盘下创建"share\共享名称"目录,同时将其共享为"\\服务器名\共享名称"。如图 9-8 所示,点击"下一步"继续。


图 9-8 创建"共享名称"

第 5 步,在"其他设置"对话框,可以配置"启用基于存取的枚举"、"允许共享缓存"、 "加密数据访问"功能是否开启。由于所选共享配置文件以及本例未安装 BranchCache 功能的缘故,因此上两项功能无法使用,如图 9-9 所示,不勾选任何选项,直接点击"下一步" 继续。


图 9-9 创建"其他设置"

第 6 步,在"权限"对话框,需要配置能够访问该共享目录的安全权限和共享权限。点击"自定义权限"进入配置界面,如图 9-10 所示。


图 9-10 创建"其他设置"

第 7 步,在"高级安全设置"对话框,于默认的"权限"选项卡下,点击"添加",如图 9-11 所示。


图 9-11 添加安全权限

第 8 步,点击"选择主体"按钮,于弹出的"选择用户、计算机、服务账户或组"对话框中选择"对象类型",如图 9-12 所示。


图 9-12 选择对象类型

第 9 步,在"对象类型"对话框中,勾选"计算机"对象类型,点击"确定"返回上一级窗口,如图 9-13 所示。



图 9-13 选中"计算机"类型

第 10 步,在"选择用户、计算机、服务账户或组"对话框中,可以输入 hv2.contoso.com 的计算机名,如未进行过第 8-9 步的操作,则默认情况下无法选用计算机账户。点击"确定",如图 9-14 所示。



图 9-14 添加计算机账户

第 11 步,返回至特定安全主体的权限配置页面,可以对 hv2.contoso.com 对该共享文件夹的访问权限进行设定。此处勾选"完全控制",点击"确定"完成配置。如图 9-15 所示。



图 9-15 为计算机账户配置权限

第 12 步,依次对 hv3.contoso.com 和 hypervha.contoso.com(群集地址)添加相同的完全控制权限。原则上有多少台需要访问该目录的计算机,就需要添加多少个共享权限。如图 9-16 所示。


图 9-16 重复配置计算机安全权限

第 13 步,检查"共享"权限配置是否正确,依次对 hv3.contoso.com 和 hypervha.contoso.com(群集地址)添加相同的完全控制权限。原则上有多少台需要访问该目录的计算机,就需要添加多少个"共享"权限。如图 9-17 所示。


图 9-17 重复配置计算机安全权限

第 14 步,在"权限"对话框中,可以检查共享文件夹的安全权限配置是否正确。如图

9-18 所示,点击"下一步"继续。


图 9-18 检查安全权限的配置第 15 步,在"确认"对话框中,可以检查共享文件夹的整体配置是否正确。如图 9-19 所示,点击"创建"继续。


图 9-19 检查共享文件夹的整体配置

第 16 步,在"结果"对话框中,耐心等待共享文件夹的创建结束,如图 9-20 所示,点击"关闭"完成配置。


图 9-20 完成共享文件夹配置

第 17 步,回到"服务器管理器",可以"共享"下看到已创建的文件夹。如图 9-21 所示。


图 9-21 在服务器管理器中的共享文件夹

第 18 步,在运行中输入\\fs
可以看到已创建的文件夹,右键点击该文件夹,选择"属性",可以看到其安全权限的配置,后续的权限修改也可以在此进行。如图 9-22 所示。


图 9-22 检查共享文件夹配置

9.3 在 SMB 3.0 上创建虚拟机

9.3.1 创建虚拟机

完成共享文件夹的创建后,可以使用被允许的 Hyper-V 主机将虚拟机创建在该共享文件夹上。

第 1 步,远程登录 hv2.contoso.com,打开"Hyper-V 管理器",如图 9-23 所示。


图 9-23 远程的登录 hv2.contoso.com

第 2 步,通过"新建虚拟机向导"创建虚拟机,在"指定名称和位置"对话框,修改虚拟机的存储位置为上一阶段创建的共享文件夹:"\\fs\Hyper-V
存储共享\",如图 9-24 所示,点击"下一步"继续。


图 9-24 修改虚拟机存储位置。

第 3 步,依次进行其他配置,完成虚拟机的创建。如图 9-25 所示。


图 9-25 修改虚拟机存储位置。

第 4 步,在"Hyper-V 管理器"中,右键点击该虚拟机,选择"设置",可以检查该虚拟机的硬盘驱动器设置,能够发现其保存位置也确实在共享文件夹上。如图 9-26 所示。


图 9-26 检查虚拟机存储位置。

9.3.2 SMB3.0 上创建虚拟机的局限性

以上完成了在 SMB3.0 上创建虚拟机的操作,然而需要注意的是,如果仅仅是完成了以上操作,则只能登陆相应的 Hyper-V 主机,方可在共享文件夹上创建虚拟机。如登陆 hv2.contoso.com 后,只能在 hv2.contoso.com 上创建虚拟机,而无法使用"Hyper-V管理器" 在 hv3.contoso.com 上创建虚拟机。例如,在 hv1.contoso.com 上打开"Hyper-V 管理器",为 hv2.contoso.com 创建基于共享文件的虚拟机,则会出现如下错误提示,如图 9-27 共享文件夹上创建虚拟机的局限性。

图 9-27 所示。


9.4 权限委派

9.4.1 委派的意义

为了解决 SMB3.0 上创建虚拟机的局限性,需要引入一个新的概念"委派"。"委派"在Windows Server 中拥有久远的历史。其解决的是集中管理的问题,当只有少数的服务器时,服务器管理员可以远程登录到每一台服务器上,发起相应的操作,服务器和服务器之间通过用户密码或其他凭据进行正常的通信。如图 1 所示 9-28 所示。



图 9-28 无需使用委派的场景。

由于 Windows Server 默认只信任"自己"所发起的一些操作。当有人"代表"它进行操作时,默认是不成功的,这也就解释了默认情况下无法使用"Hyper-V 管理器"为其他 Hyper-V 主机创建虚拟机的问题,如图 9-29 所示。


图 9-29 不委派导致失败的场景。

然而当所需要管理的计算机越来越多时,每次都要登录到相应的计算机去操作显然不现实。此时就需要使用"委派"来解决这个问题,"委派"就好比一个声明,又可以理解为"领导"对"员工"工作的具体指派:"我允许你访问 a 资源和 b 资源,我允许 b 主机访问 c 资源和 d 资源"。委派是域内使用的一种策略,其策略实施不需要被委派方的回应。当实施委派后,就可以进行类似 hv1.contoso.com 上的"Hyper-V 管理器"操作 hv2.contoso.com 或 hv3.contoso.com 这种操作了,如图 9-30 所示。


图 9-30 委派的场景。

9.4.2 委派的分类

委派分为两种方式,分别是"委派"和"约束委派",顾名思义,委派就是将所有权限都委派给某一台计算机,而约束委派则是将某个或某几个应用的权限委派给某一台计算机。相对而言,约束委派的安全性要更好一些。但操作也稍微复杂一些。本例将以约束委派进行示例进行讲解。

9.4.3 委派的配置

本例要实现的最终目标是,可以在 hv1.contoso.com 上用 "Hyper-V 管理器 " 在 hv2.contoso.com、hv3.contoso.com 以及 hypervha.contoso.com(群集地址)上创建虚拟机。

委派的前提是需要操作计算机处于域环境中,对于非域环境的计算机,无法使用委派功能。

第 1 步,使用域管理员账号登录域控制器,打开"Active Directory 用户和计算机",在相应的 OU 下找到需要操作的计算机账户,本例中专门创建了一个 OU"物理主机",默认情况下,所有计算机账户位于"Computers"下。如图 9-31 所示。



图 9-31 打开"Active Directory 用户和计算机"

第 2 步,右键点击需要委派的计算机账户,选择"属性",如图 9-32 所示。



图 9-32 选择计算机账户的属性

第 3 步,在"属性"对话框中,切换至"委派"选项卡,如图 9-33 所示。此处有三个选项:

不信任此计算机来委派:默认值,表示不启用委派。

信任此计算机来委派任何服务(仅 Kerberos):即"委派",表示该计算机拥有"代表"其他计算机的所有权限。相对而言,使用"委派"所需的鼠标点击操作较少,但因为安全风险的缘故,不建议轻易使用。

仅信任此计算机来委派指定的服务:即"约束委派",表示该计算机可以对部分指定的应用或服务拥有"代表"的权限。



图 9-33 委派选项卡

第 4 步,点击"仅信任此计算机来委派指定的服务",默认点选"仅使用 Kerberos"。点击右下角的"添加"按钮。如图 9-34 所示。



图 9-34 指定"仅信任此计算机来委派指定的服务"

第 5 步,点击"用户或计算机",在弹出的"选择用户或计算机"对话框中,输入 hv2 或 hv2.contoso.com(需要委派的第一台 Hyper-V 主机),如图 9-35 所示,点击"确定"。



图 9-35 指定需委派的计算机

第 6 步,在弹出的"添加服务"对话框中,可以选择需要添加的各类服务,按下"Ctrl" 键可进行复选。本例中选择 cifs 即可。即表示允许 hv1.contoso.com 对 hv2.contoso.com 进行 cifs(Common Internet File System 通用 Internet 文件系统,即微软自家的 SMB 共享)的相应访问操作。如图 9-36 所示,点击"确定"。



图 9-36 委派 cifs 服务

第 7 步,除了 hv2.contoso.com 外,还需要依次添加 hv3.contoso.com 和

hypervha.contoso.com 的相应委派权限,以及需要访问的文件共享服务器(fs.contoso.com)的相应委派权限,如图 9-37 所示,点击"确定"完成约束委派的设置。


图 9-37 依次添加所有涉及的服务

第 8 步,在生产中,为了后期操作方便,而不局限于只能在 hv1.contoso.com 上管理,可以依次对其他所涉及的 Hyper-V 主机委派相应的权限,如图 9-38 所示。



图 9-38 依次对所有涉及的 Hyper-V 主机进行相同操作

第 9 步,在"Active Directory 用户和计算机"上完成委派后,策略可能不会即时生效,如遇这种情况,需要重启所涉及的 Hyper-V 主机,并刷新组策略方可生效。

委派生效后,即可解决未配置委派时,无法用"Hyper-V 管理器"远端创建和维护虚拟机的问题。

9.4.4 委派的其他作用

在微软的虚拟化和私有云中,委派还有另外两个重要的作用,通过委派"Hyper-V Replica Service"和"Microsoft Virtual System Migration Service",可以为虚拟化环境带来"实时迁移" 和"Hyper-V 副本"两项重要的功能。配置如图 9-39 所示,如果未正确配置委派,则这两项功能无法使用,和配置 cifs 的委派同理,该操作需要在所有涉及的 Hyper-V 主机上设置。


图 9-39 配置委派 Hyper-V 副本和实时迁移功能

9.5 小结

本章通过创建 SMB 文件共享和委派,实现了使用"Hyper-V 管理器"将虚拟机创建在共享文件夹上的操作。在 SMB 上创建虚拟机是一种廉价的高可用解决方案,无需企业拥有独立的硬件存储,配置方面也非常简单。通过 SMB 文件共享,可以实现接下来将要介绍的共享实时迁移。

而委派这项操作,尽管并非实时迁移的必要准备条件。但未配置"Microsoft Virtual System Migration Service"委派的情况下,就必须登录到目标主机上进行操作,这将会极大的降低工作效率。因此实际的生产活动当中,委派可以说是一项必备条件。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: