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手动运行 hpcsync。 hpcsync 还提供了一些参数,用于从不同的存储容器复制包,并将包部署到备用目标目录。
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 个字符,包部署将失败。