hpcsync

从 Windows Azure 存储帐户复制 OPC 包,并将其解压缩到 Windows Azure 节点上。

注意

此命令是在具有 Service Pack 1 的 HPC Pack 2008 R2 中引入的,在以前的版本中不受支持。

语法

hpcsync [<storageAccountName> <storageKey>] [<packageRoot>] [/packageName:<packageNameFilter>]   
[/container:<Container name>] [/blocksize:<blockSize>] [/usehttp]   
  
hpcsync {/? | /help}  

参数

在某些情况下,群集管理员可以运行 clusrun hpcsync,而无需为 hpcsync 命令指定任何参数。

参数 描述
<storageAccountName> 指定 Windows Azure 存储帐户的公共名称(在 Windows Azure 节点模板中指定的相同存储名称)。

这是帐户公共 URL 中 <storageAccountName> 的值:https://<storageAccountName>.blob.core.windows.net

如果指定 <storageAccountName>,则还必须指定 <storageKey>注意: 如果群集管理员 clusrun hpcsync运行命令,则不需要指定存储帐户名称和密钥。 这些值由 CCP_AZURE_CONNECTIONSTRING 环境变量提供(仅在 clusrun 作业的进程级别设置)。 如果群集管理员在没有 clusrun的情况下运行 hpcsync,或者群集用户运行 hpcsync,则必须在命令参数中提供存储帐户信息。
<storageKey> 指定 Windows Azure 存储帐户的访问密钥。

如果指定 <storageKey>,则还必须指定 <storageAccountName>注意: 如果群集管理员 clusrun hpcsync运行命令,则不需要指定存储帐户名称和密钥。 这些值由 CCP_AZURE_CONNECTIONSTRING 环境变量提供(仅在 clusrun 作业的进程级别设置)。 如果群集管理员在没有 clusrun的情况下运行 hpcsync,或者群集用户运行 hpcsync,则必须在命令参数中提供存储帐户信息。
<packageRoot> 指定用于部署包的目标根目录。

当群集管理员运行命令时,默认值为 %CCP_PACKAGE_ROOT%。 群集用户的默认值为其用户目录,%USERPROFILE%\Packages

若要使 SOA 服务和 XL 正常工作,根目录应为默认值(%CCP_PACKAGE_ROOT%%USERPROFILE%\Packages)。

%CCP_PACKAGE_ROOT% 环境变量指向由 Windows Azure 管理的位置。 HPC Pack 使用 Windows Azure API 在部署 Windows Azure 节点后为此变量设置值。 %CCP_PACKAGE_ROOT% 的值在 Windows Azure 部署中是一致的,但部署之间可能有所不同。 注意: 将包上传到存储帐户时(使用 hpcpack 上传),可以定义相对路径属性。 如果包指定相对路径,则包将部署到 <packageRoot>\<relativePath> ,例如,%CCP_PACKAGE_ROOT%\myDir
/packageName 指定要下载的包。 如果未指定此参数,则下载所有 OPC 包。
/容器 指定要从中下载文件的 Windows Azure 存储帐户中的容器的名称。 如果未指定此参数,将从默认位置下载包:存储帐户中名为 hpcpackages 的容器
/blocksize 指定文件在下载时将分隔到的块的大小(以字节为单位)。 默认块大小为 4 MB(4194304 字节)。 4 MB 也是最大块大小。 如果遇到不稳定的网络连接,可能需要指定较小的块大小。
/usehttp 指定想要通过端口 443 重写默认 https 通道,并使用 http over port 80 尝试通信。 如果失败,它将还原到端口 443。 注意: 在具有 Service Pack 3 的 HPC Pack 2008 R2 中引入了此参数,在早期版本中不受支持。
/? 在命令提示符处显示帮助。
/帮助 在命令提示符处显示帮助。

言论

  • hpcsync 在已加入本地群集 加入本地群集的 Windows Azure 计算资源上提供,该群集 运行至少Microsoft具有 SP1 的 HPC Pack 2008 R2,或作为 Windows Azure HPC 计划程序 部署的一部分的 Windows Azure 计算资源。

  • hpcsync 从 HPC 群集管理器启动 Windows Azure 节点时自动运行,如果任何节点实例作为 Windows Azure 维护的一部分重新预配,也会自动运行。 此机制有助于确保启动时的节点上提供所需的文件,或者重新预配节点实例。 在节点预配运行时自动 hpcsync 调用,无需任何参数。 这意味着将包从存储中的默认位置复制到节点上的默认位置。 有关详细信息,请参阅本主题后面的 利用应用程序部署的自动 hpcsync 调用

  • 因为它在突发到 Windows Azure 部署期间自动运行,因此无需直接运行 hpcsync。 但是,如果在部署 Windows Azure 节点后将包暂存到存储,或者要将包部署到 Windows Azure HPC 计划程序部署,则可以使用 clusrun手动运行 hpcsynchpcsync 还提供了一些参数,用于从不同的存储容器复制包,并将包部署到备用目标目录。

  • hpcsync 非常适合将 SOA 服务、XLL 文件和启动脚本从 Windows Azure 存储部署到 Windows Azure 节点上的预期位置。 或者,可以使用 hpcpack 命令(hpcpack 上传hpcpack 下载)在 Windows Azure 存储和 Windows Azure 节点之间移动其他类型的文件、应用程序或作业数据。 有关详细信息,请参阅 hpcpack

  • 若要使用此命令,群集用户必须知道存储帐户名称和主访问密钥。

例子

对于群集管理员,将 Windows Azure 存储帐户上默认容器中的所有 OPC 文件部署到一组 Windows Azure 辅助角色节点:

clusrun /nodegroup:AzureWorkerNodes hpcSync

对于群集用户,将 Windows Azure 存储帐户(myContainer)上特定容器中的所有 OPC 文件部署到一组 Windows Azure 节点(节点 1-3)上的默认目录:

job submit /requestednodes:node1,node2,node3 hpcSync myAccount myKey /container:myContainer

若要帮助排查文件部署问题,可以通过尝试将文件部署到 C:\temp中的本地计算机来测试命令:

hpcsync myAccount myKey C:\temp

利用应用程序部署的自动 hpcsync 调用

若要在节点预配期间利用自动 hpcsync 调用,必须在部署节点之前将 OPC 包暂存到 Windows Azure 存储帐户上的 hpcpackages 容器。 可以使用 hpcpack 命令打包文件,然后将文件上传到 Windows Azure 存储。 (默认情况下,hpcpack 上传 将包放置在 hpcpackages 容器中;如果不希望将包自动部署到所有 Windows Azure 节点,请指定备用容器。

默认情况下,对于群集管理员,hpcsync 将文件部署到由 %CCP_PACKAGE_ROOT% 环境变量部分确定的 Windows Azure 节点上的位置。 预配过程中,此变量在 Windows Azure 节点上设置。 提取的文件放置在一个文件夹中,其确定如下:%CCP_PACKAGE_ROOT%\<packageName>\<uploadTimeStamp>。 这是从节点模板调用的 SOA 服务、XL、Excel 工作簿和 启动 脚本的预期位置。 但是,对于群集用户在其命令行中调用的应用程序来说,这并不方便。

为了简化可执行文件的文件夹结构,可以在将包上传到存储时设置包的相对路径属性。 hpcsync 提取文件时应用相对路径,以便按如下所示确定路径:%CCP_PACKAGE_ROOT%\<relativePath>。 然后,用户可以指定其应用程序的路径,如以下作业提交命令示例所示:作业提交 %CCP_PACKAGE_ROOT%\myRelativePath\myapp.exe

有关详细信息,请参阅 将应用程序部署到 Windows HPC 群集中的 Windows Azure 节点

有关 %CCP_PACKAGE_ROOT% 的重要注意事项

  • 在 Windows Azure 节点上,%CCP_PACKAGE_ROOT% 文件夹是在 10 GB 磁盘分区上创建的。 这意味着节点实例上的所有应用程序文件不能超过 10 GB。 如果应用程序具有相当大的输入和输出文件,则可以使用启动脚本授予用户对 C:\ 驱动器的权限,以便用户可以写入节点上的所有可用暂存空间。

  • 手动运行 hpcsync 时,可以替代默认位置 (%CCP_PACKAGE_ROOT%)。 例如,可以在每个 Windows Azure 节点上创建一个文件夹,然后在运行 hpcsync时指定该位置。 所有包都将提取到该文件夹。 但是,部署的任何新节点实例(或自动重新预配)都不会包含该文件夹,并且包将自动部署到默认位置。

  • 群集用户仅对 %CCP_PACKAGE_ROOT%中的文件夹具有写入权限。 除非修改 Windows Azure 节点上的文件夹权限,否则只有群集管理员可以在 %CCP_PACKAGE_ROOT%外部运行应用程序。

  • hpcsync 部署包时,提取的文件都不能具有超过 256 个字符的完整路径。 提取文件的根目录暂时放置,然后最终放置最多可能需要 136 个字符,为文件名、子目录(如果有)保留 120 个字符,relativePath(如果指定)。 如果提取的文件的路径超过 256 个字符,包部署将失败。

另请参阅

hpcpack
clusrun
使用 Microsoft HPC Pack 突发到 Azure 辅助角色实例